---------------------------------------------------- | Tips und Tricks zu TERMINAL 2000 / Sharp PC-1403 | ---------------------------------------------------- Der Inhalt dieser Datei bezieht sich auf die aktuelle Programm-Version. 0.0 šBERSICHT 1.0 Programmbeschreibung 1.1 Entstehungsgeschichte 1.2 EMULATOR.ACC 1.3 Anwahl der Programmfunktionen 1.3.1 Pull-Down-Men 1.3.2 Funktionstasten 1.3.3 Shortcuts 1.4 Titelzeile eines Fensters 2.0 šbertragung 2.1 šbertragung Sharp ==> Atari 2.2 šbertragung Atari ==> Sharp 2.3 Fehler w„hrend der šbertragung 2.4 Fehler nach der šbertragung 2.5 Nach der šbertragung 3.0 Datei-Operationen 3.1 Aufruf eines Editors 3.2 Anmeldung eines Editors 3.3 M”gliche Fehlerquellen 3.4 Tip fr Diskettenbenutzer 3.5 Datei ansehen/drucken 3.6 Datei kopieren 3.7 Renumber - Listing neu nummerieren 4.0 Tips und Tricks 4.1 Allgemeines 4.2 RESET 4.3 Zeilennummern 5.0 Anhang 5.1 Updates / Fehler im Programm 5.2 PC-1403 -Emulator 5.3 Copyright 5.4 Systemkonfiguration 5.5 Hinweise fr PC-1403 mit 32 kB RAM 6.0 Schlusswort 7.0 šberblick ber bisherige Updates ----------------------------------------------------------------------- 1.0 PROGRAMMBESCHREIBUNG 1.1 Entstehungsgeschichte : Nachdem ich das Interface fertig aufgebaut hatte, wollte ich natrlich gleich ein paar Daten bertragen. Doch mit den mir vorliegenden PD- Terminal-Programmen liess sich dabei berhaupt nichts anfangen. Einige Programme waren ungeeignet, da sie eine šbertragungsrate von maximal 1200 Baud erm”glichten, hier werden jedoch 4800 Baud ben”tigt. Andere Programme erlaubten eine solche Vielzahl von Einstellungen, von denen ich ehrlich gesagt keine Ahnung habe. Ein weiterer Grund, weshalb diese Programme mit dem Interface nicht zu- sammenarbeiten, mag darin begrndet sein, dass das Interface als Handshake- Leitungen die Signale DTR (Data Terminal Ready) und CTS (Clear To Send) verwendet. Die Terminal-Programme verwenden jedoch zum Handshake die Signale RTS (Ready To Send) und CTS. Also machte ich mich an die Arbeit, ein Terminal-Programm zu schreiben, das voll und ganz auf das Interface abgestimmt ist. Es wurde sehr sorg- f„ltig erstellt, woraus sich eine hohe Betriebssicherheit, sowie eine komfortable Bedienung ergeben. 1.2 EMULATOR.ACC : Das berhmte Accessory EMULATOR.ACC, das die Einstellung der RS-232- Schnittstelle erm”glicht, hat in Terminal 2000 keine Wirkung. Vor jeder šbertragung wird die korrekte Einstellung von Terminal 2000 vorgenommen. EMULATOR.ACC muss also nicht mit gebootet werden. Doch ganz unntz ist dieses ACC auch nicht. So lassen sich ein Listing vom Sharp oder ein auf die RS-232 umgeleiteter PRINT-Befehl auf dem ATARI- Monitor ausgeben. Terminal 2000 wird dazu nicht ben”tigt !! Dazu w„hlt man den ACC-Eintrag 'VT52 Emulator' mit folgender Einstellung : - 4800 Baud - keine Parit„t - 8 Bit/Zeichen - andere Einstellungen sollten keine Wirkung haben und schon hat ihr Pocket-Computer einen hochaufl”senden Bildschirm. So lassen sich mit dem Sharp auch Ausgaben realisieren, wie man es von TOS- Programmen her kennt, denn es sind 80 Zeichen pro Zeile m”glich ! Wie ein PRINT-Befehl umzuleiten ist, geht aus dem c't-Artikel hervor. Dazu noch ein Beispiel-Programm, welches den Zeichensatz des Sharp ausgibt: 1 WAIT 0 2 FOR I=32 TO 126 3 PRINT I;" ";CHR$(I):CALL &80CA 4 NEXT I 5 WAIT 6 END Der CALL-Befehl in diesem Programm gilt nur fr PC-1403/32kByte ! 1.3 Anwahl der Programmfunktionen : Terminal 2000 ist auf drei verschiedene Arten zu bedienen : - Pull-Down-Mens - Funktionstasten - Shortcuts Die Bedienung ist also mit als auch (fast) ohne Maus m”glich. 1.3.1 Pull-Down-Mens : Da ab Version 1.4 die Menleiste mit umfangreichen Funktionen ausgestattet ist, folgt jetzt eine kurze Erkl„rung : - Hauptbestandteil ist die allseits beliebte Pull-Down-Menleiste mit den Oberbegriffen : DESK, DATEI, EXTRAS, HILFE . - Zus„tzlich gibt es die Eintr„ge : FILTER:ein/aus und TERMINAL 2000. Diese beiden Menpunkte werden aktiv, sobald der Mauszeiger sich ber ihnen befindet, ein Mausklick ist hier nicht notwendig. - Bei hoher Aufl”sung werden oben rechts die Versionsnummer und das Datum der letzten Source-Code-Žnderung eingeblendet. Da dieser Bereich gerne fr die Einblendung einer Uhrzeit ( z.B.durch ein Uhrprogramm oder ein modifiziertes Betriebssystem ) genutzt wird, erfolgt zum Programmstart ein Test, ob dieser Bereich frei ist. Wenn nicht, werden Version/Datum nicht eingeblendet. Die Einblendung ist bei Verwendung des ACC Turbo ST, TRBOMONO.ACC, nicht m”glich. 1.3.2 Funktionstasten : Die wichtigsten Routinen sind auch ber die Funktionstasten aufrufbar. Die F-Tasten-Belegung wird nach Bet„tigung der HELP-Taste angezeigt. 1.3.3 Shortcuts Als Shortcuts werden hier Tastenkrzel bezeichnet, die in Verbindung mit der Alternate-Taste eine gewnschte Programmfunktion anw„hlen. Die je- weiligen Shortcuts sind in den Pull-Down-Mens hinter den Menpunkten ange- geben. So l„sst sich beispielsweise durch die Tastenkombination Alternate-Q (Krzel fr Quit) das Programm beenden. 1.4 Titelzeile eines Fensters : W„hrend des Programm-Ablaufes wird h„ufig ein Fenster, meist fr Textaus- gaben, ge”ffnet. Oberhalb eines Fensters befindet sich eine sogenannte Titelzeile. In diesem Programm wird die Titelzeile dazu benutzt, Meldungen oder Anweisungen fr den Benutzer auszugeben. Es ist also darauf zu achten, dass diese Meldungen/Anweisungen nicht verdeckt werden, wie dies durch eine neue Fileselect-Box geschehen kann. Es gibt auf dem PD-Markt mehrere Programme, die die j„mmerliche Fileselect- Box des TOS durch eine neue, ausgereiftere Box ersetzen. Ist die neue Box gr”sser, als die Original-Box, sollte darauf geachtet werden, dass die Titelzeile nicht verdeckt wird. 2.0 šbertragung : Im Folgenden ist von 'Ctrl-Z' die Rede. Dies ist ein Steuerzeichen, das dem Empf„nger das Ende einer šbertragung anzeigt.(ASCII-Code: 1A) 2.1 šbertragung Sharp ==> Atari : Es wird das gesamte im Speicher befindliche BASIC-Listing bertragen. Die Endung des Abspeichernamens kann frei gew„hlt werden (z.B.: .BAS). Diese Datei kann jetzt zur weiteren Bearbeitung in einen beliebigen ASCII-Editor geladen werden. Es hat sich als zweckm„ssig herausgestellt, die einzelnen Programme aus dem Gesamtlisting mittels den Blockoperationen 'markieren' und 'speichern' separat auf Diskette zu speichern. Terminal 2000 verwendet keinen Zwischenspeicher beim Datenempfang. Die Daten werden also direkt in eine Datei auf Diskette oder Festplatte geschrieben. Dieses Verfahren ist aber nach meiner Erfahrung nicht von Nachteil, besonders Aufgrund der geringen Datenmenge. Die UNDO-Taste bricht den Empfang der Daten ab. Alle Datenkan„le werden geschlossen. Ist der Sharp noch BUSY, kann die Senderoutine im Sharp durch l„ngeres Drcken der BREAK-Taste bis zum Ende ausgefhrt werden. 2.2 šbertragung Atari ==> Sharp : Es sollten sich zu diesem Zeitpunkt alle Basic-Programme auf Diskette befinden, da jetzt ein NEW -Befehl zweckm„ssig ist! (Das Treiber-Programm fr die RS-232 und Centronics- Schnittstellen wird nicht durch NEW gel”scht, wenn es vorschriftsm„ssig eingegeben worden ist.) Jetzt stellt man sich im Editor aus den gesammelten Einzelprogrammen, die man im Sharp haben m”chte, mittels 'Block laden' ein Gesamtlisting zusammen, wobei auf eine fortlaufende Zeilennummerierung zu achten ist. Hier l„sst sich auch die Routine RENUMBER auf elegante Art einsetzen. Dieses Gesamtlisting wird nun zum Sharp bertragen. Es sollten keine einzelnen Programme nach und nach vom Atari in den Sharp geladen werden, da diese im Sharp, unabh„ngig von der Zeilennummerierung, an die bereits im Speicher befindlichen Programme hinten angeh„ngt werden. Es k”nnte somit nur das letzte bertragene Programm korrekt im Sharp editiert werden. Eine erneute šbertragung Sharp==>Atari w„re nur noch fr das zuletzt im Speicher angeh„ngte Programm m”glich. Deshalb also der NEW -Befehl vor der šbertragung zum Sharp. Die UNDO-Taste bricht die šbertragung ab. Alle Datenkan„le werden ge- schlossen. Es wird noch ein Ctrl-Z zum Sharp gesendet, damit dieser den Empfang beendet. Falls der Sharp einmal BUSY bleiben sollte, gibt es den Menpunkt 'Ctrl-Z', der den Sharp noch einmal an den Abbruch des Empfanges erinnern soll. Bis einschl. Version 1.5 gab's hier noch leichte Probleme, ab Version 1.51 sollte eigentlich alles korrekt laufen. Ein Linefeed (nach dem Carriage Return) wird nicht gesendet, da dies beim Sharp, sofort nach der ersten Zeile, einen Empfangsabbruch bewirken wrde. In dieser šbertragungsrichtung ist ein Filter zuschaltbar, das die Zeichen einzeln auf einen gltigen ASCII-Wert hin berprft. Ausserdem ist als erstes Zeichen einer Zeile nur eine Ziffer oder ein Ctrl-Z zul„ssig. Bei aktivem Filter verringert sich die šbertragungsgeschwindigkeit etwas. Dafr hat man aber eine gewisse Sicherheit, dass man den Sharp nicht v”llig durcheinander bringt, falls man versehentlich z.B. ein Degas-Bild als Quell- datei gew„hlt hat. Das Filter ist durchl„ssig fr folgende Zeichen : - ASCII 10 : Linefeed (darf im File stehen, wird aber nicht gesendet) - ASCII 13 : Carriage Return - ASCII 26 : End of File / Ctrl-Z - ASCII 32 : space, einige Sonderzeichen, Zahlen, Buchstaben bis 126 Das Filter ist defaultm„ssig eingeschaltet. 2.3 Fehler w„hrend der šbertragung : Ab und zu kann es vorkommen, dass der Sharp nach der ersten Zeile den Empfang beendet. Dann einfach nochmal den Maschinenbefehl zum Datei- Laden eingeben. Der Rest der Datei wird jetzt ordnungsgem„ss an die schon geladene, erste Zeile angeh„ngt. 2.4 Fehler nach der šbertragung : Sollte nach beendigter šbertragung vom Terminal-Programm keine Fertig- Meldung erscheinen oder der Sharp BUSY bleiben, kann es helfen, wenn : - ein Ctrl-Z abgeschickt wird (nach Atari ==> Sharp) oder - das Interface kurz spannungslos gemacht wird (nach Atari ==> Sharp) oder - der Sharp kurz ein- und ausgeschaltet wird (nach Atari ==> Sharp) oder - die BRK-Taste l„ngere Zeit gedrckt wird. (nach Sharp ==> Atari) In letzterem Fall piept der Rechner vor sich hin, er šbertr„gt also weiter, wenn auch nicht mehr zum Atari! 2.5 Nach der šbertragung : Nach der šbertragung erscheint eine von vier m”glichen Meldungen : - "Es wurden XX Zeichen bertragen" Die šbertragung wurde erfolgreich durchgefhrt. Die ausgegebene Anzahl sollte in jedem Fall mit der Gr”sse der Quell- bzw. Zieldatei bereinstimmen. Sie ist jedoch gr”sser, als der Speicherbedarf im Sharp, da in diesem die Basic-Befehle einem ASCII-Code entsprechen. Ein GOSUB nimmt also beispielsweise nur ein Byte im Sharp in Anspruch, w„hrend es im Atari fnf Byte (plus ein Byte fr das nachfolgende Space) ben”tigt. - "šbertragung abgebrochen" Die šbertragung wurde abgebrochen, da die UNDO-Taste bet„tigt wurde. - "Illegales Zeichen" Die Quelldatei enthielt ein Zeichen, das vom Filter abgefangen wurde. Die šbertragung wird abgebrochen, der ASCII-Code des illegalen Zeichens in dezimaler Darstellung sowie das Zeichen selber erscheinen im Button der Alert-Box. - "Kein Sharp-Basic" Das Filter hat am Anfang einer Zeile ein Zeichen festgestellt, das weder eine Ziffer, noch ein Ctrl-Z ist. Hierauf folgt noch die Meldung "Illegales Zeichen", die nun das am Anfang der Zeile gefundene Zeichen, als ASCII-Code in dezimaler Darstellung, sowie das Zeichen selbst im Button der Box ausgibt. 3.0 Datei-Operationen : 3.1 Aufruf eines Editors : Ab Version 1.3 ist es m”glich, einen Editor zur Bearbeitung der Daten aufzurufen, ohne Terminal 2000 zu verlassen. Es kann ein beliebiger ASCII-Editor verwendet werden. Damit Terminal 2000 den Editor erkennt, muss eine Datei TERM2000.INF vor- handen sein, in der Pfad und Programmname des Editors stehen. Die Datei TERM2000.INF muss im selben Verzeichnis wie TERM2000.PRG stehen. 3.2 Anmeldung eines Editors : Terminal 2000 liest die Datei TERM2000.INF, falls vorhanden, ein und ber- prft, ob ein entsprechendes Programm vorhanden ist. Wenn die Info-Datei nicht existiert, oder sie existiert, aber es wurde keine entsprechendes Programm gefunden, wird die M”glichkeit gegeben einen Editor anzumelden. Es sind nur die TOS-blichen Extensionen TOS,TTP,PRG,APP im Editornamen zul„ssig. Die Anmeldung eines Editors hat zwei Konsequenzen: 1. Im laufenden Programm Terminal 2000 wird beim n„chsten Editoraufruf der Editor gestartet. 2. Es wird die Datei TERM2000.INF erzeugt, so dass fr die Zukunft dem Programm Terminal 2000 der Editor bekannt ist. 3.3 M”gliche Fehlerquellen beim Editoraufruf : Terminal 2000 wechselt bei einem Editoraufruf nicht in dessen Verzeichnis. Das Editorprogramm, zumindest aber ein evtl. zugeh”riges .RSC-File, sollte daher m”glichst im selben Verzeichnis, wie TERM2000.PRG bzw. im Quellver- zeichnis stehen. Da sich beim Editoraufruf zwei Programme, Editor und Terminal 2000, im Speicher befinden, kann es auf Rechnern mit einer Speichergr”sse von 512- kByte zu Speicherplatzmangel kommen. ( Terminal 2000 reserviert 40kByte Speicher fr sich : 32kByte Bildspeicher und etwas fr die Variablen. ) Sollte beim Aufruf des Editors ein Fehler auftreten, so wird die Fehler- nummer ausgegeben und die M”glichkeit gegeben den Editor neu Anzumelden. 3.4 Tip fr Diskettenbenutzer : Benutzer von Disketten sollten sich Terminal 2000 und einen Editor nach Wahl auf eine gemeinsame Diskette kopieren. Wer ein TOS der Version 1.4 oder h”her in seinem Rechner hat, sollte dann TERM2000.PRG als AUTO-Start- Anwendung anmelden. 3.5 Datei ansehen / drucken : Unter diesem Menpunkt lassen sich Dateien, die sich auf Diskette oder Festplatte befinden, ansehen oder auch ausdrucken. Mit der linken Maustaste l„sst sich das Listing auf anhalten, mit der rechten Maustaste wird die Ausgabe abgebrochen. Die Datei wird hierbei zun„chst komplett in den Speicher eingelesen, dann wird der entsprechende Speicherinhalt auf Monitor oder Drucker ausgegeben. Bei diesen Routinen l„sst sich auch das Filter (De-)aktivieren. 3.6 Datei kopieren : Es k”nnen beliebige Dateien kopiert werden. Zu beachten ist jedoch, dass die Dateigr”sse kleiner als der freie RAM-Speicherplatz sein muss. Nach Auswahl der Quelldatei ist mittels Fileselect-Box der Pfad und der Name der Zieldatei zu w„hlen. Sollte die Datei nicht in den Speicher passen, so wird eine entsprechende Fehlermeldung ausgegeben. 3.7 Renumber - Datei neu nummerieren Žhnlich des RENUM-Befehles im Sharp, lassen sich Dateien von Diskette oder Festplatte neu nummerieren. Dies ist jedoch nur m”glich, wenn als Sprung- ziele hinter GOTO, GOSUB, RESTORE keine Zeilennummern angegeben sind. Wie Zeilennummern als Sprungziele vermeidbar sind ist in Kapitel 4.3 be- schrieben. Das Quell-Listing darf keinen Doppelpunkt hinter der Zeilennummer aufweisen, wie er auf dem Display des Sharp erscheint. Nach der Zeilennummer muss ein Leerzeichen folgen. Sofern kein Fehler auftritt, geschieht etwa folgendes : - es wird eine Sharp-Basic-Datei eingelesen - eine neue Zeilennummerierung, beginnend ab 10, in Zehnerschritten, wird durchgefhrt - eine oder mehrere Dateien k”nnen an die erste angeh„ngt werden, wobei die Zeilennummerierung fortlaufend bleibt - zwischen den einzelnen Listings wird die Zeile REM --- neues Programm --- mit entsprechender Zeilennummer eingefgt - das fertige Listing wird unter neuem Dateinamen abgespeichert Als Besonderheit werden auch Listings, die keine Zeilennummern enthalten, durch diese Routine nachtr„glich nummeriert. Die Routine erkennt selbst, ob das Listing bereits nummeriert ist. Dazu wird untersucht, ob das erste Zeichen des Listings eine Zahl ist. Zur Kontrolle des Ablaufes wird im oberen Fenster das neue Listing ausge- geben. Im unteren Fenster kann dann verfolgt werden, wie das Programm nach Zeilennummern oder Labels hinter GOTO, GOSUB und RESTORE sucht. Wird in einer Zeile eines dieser Worte gefunden, so wird zun„chst das erste von rechts untersucht. Danach werden jeweils die n„chsten vorhandenen in Richtung Zeilenanfang hin untersucht. Wird eine Zeilennummer hinter einem der Worte gefunden, so wird im unteren Fenster darauf hingewiesen. Die Routine wird jedoch nicht abgebrochen. Es wird bercksichtigt, dass hinter RESTORE keine Sprungangabe erforderlich ist. In dieser Routine hat die Filterfunktion keinen Einfluss ! Wenn Daten vom Sharp empfangen werden, wird das Ctrl-Z als letztes Zeichen in der Zieldatei gespeichert. Bis einschliesslich Version 1.51 fhrte ein Ctrl-Z-Zeichen am Ende der Quelldatei in der Renumber-Routine zum Programmabbruch ! (Sorry) 4.0 TIPS UND TRICKS 4.1 Allgemeines : Werden Programme auf dem Atari erstellt/bearbeitet, muss darauf geachtet werden, dass die Zeilenl„nge keinesfalls 80 Zeichen berschreiten darf. Das einundachzigste Zeichen wrde im Sharp in der n„chsten Zeile, an der Posi- tion einer Zeilennummer auftauchen, was dieser natrlich nicht versteht. In diesem Zusammenhang ist darauf hinzuweisen, dass sich durch die šber- tragung die L„nge einer Zeile ver„ndern kann. Der Sharp kann fr die Zahl PI und die Wurzelfunktion SQR ein einzelnes Zeichen verwenden. Dieses wird bei der šbertragung zum Atari in die zwei bzw. drei Zeichen PI bzw. SQR umgewandelt. So verl„ngert sich eine Zeile, die PI oder SQR beinhaltet, entsprechend. Lange Zeilen, die im Sharp erstellt wurden, k”nnen im ungnstigen Fall sich somit auf ber 80 Zeichen verl„ngern. 4.2 RESET : Ist ein RESET beim Sharp unumg„nglich, so sollte er nach der Handbuch beschriebenen Art geschehen (Seite 9, beliebige Taste drcken, dann zus„tzlich den ALL-RESET-Schalter). So bleiben die Programme im Sharp erhalten. Das ist insbesondere fr das Treiber-Programm wichtig, das sonst komplett neu eingegeben werden msste. Ohne Treiber-Programm im Sharp, kann natrlich auch nicht das Treiber-Programm von der Diskette im Atari zum Sharp bertragen werden. Achtung : Wenn das Interface an den Sharp angeschlossen wird, sollten beide Ger„te ausgeschaltet sein, sonst k”nnte ein MEMORY ALL CLEAR O.K.? die Folge sein. 4.3 Zeilennummern : Das Sharp-BASIC ist Zeilennummernorientiert. Beispiel : 10 I=1 20 PAUSE I 30 I=I+1 40 GOTO 20 Eine neue Zeilennummerierung ist im Sharp durch den RENUM -Befehl unproblematisch. Žndert man jedoch die Zeilennummern im Editor auf dem Atari, so geschieht es sehr schnell, dass man die Zeilennummern hinter GOTO oder GOSUB vergisst anzupassen. Hier kann ein Programmiertrick weiterhelfen. Es ist sicherlich bekannt, dass man im Sharp die Programme mit der DEF -Taste starten kann. Beispiel : 10 "C" : REM Beispiel 20 BEEP 2 30 END Dieses Progr„mmchen kann durch die Tastenkombination DEF C gestartet werden. Der Sharp sucht also nach dem Label "C". Solch ein Label kann nun auch fr GOTO oder GOSUB Verwendung finden. Beispiel : 10 I=1 15 "LOOP" 20 PAUSE I 30 I=I+1 40 GOTO "LOOP" Die Funktion drfte aus dem Beispiel deutlich werden. Wichtig ist jedoch, dass die Namen dieser Label natrlich in einem anderen Programm nicht gleich lauten drfen. "LOOP" und "Loop" sind brigens verschiedene Label ! Die Funktion ist fr GOSUB entsprechend. Sharp schreibt im Handbuch zum PC-1403 zwar vor, dass hinter GOTO oder GOSUB eine Zeilennummer im Wertebereich 1 bis 65279 folgen muss, jedoch gibt es mit obigem Trick weder Probleme, noch die von Sharp im Handbuch angedrohte Fehlermeldung ERROR 4. Was jetzt folgt, ist wohl eher ein Spezialfall. Folgendes Programm l„sst sich noch vereinfachen : 10 INPUT "Sprung zu Label ?";B$ 20 IF B$="AB" GOSUB "AB" 30 IF B$="XY" GOSUB "XY" 40 END 50 "AB" 60 BEEP 1 70 RETURN 80 "XY" 90 BEEP 5 100 RETURN Hier wird das anzuspringende Label w„hrend des Programmablaufes abgefragt und eingegeben. Die Vereinfachung k”nnte so aussehen : 10 INPUT "Sprung zu Label ?";B$ 20 GOSUB B$ 30 END 40 "AB" 50 BEEP 1 60 RETURN 70 "XY" 80 BEEP 5 90 RETURN Man beachte Zeile 20 ! Bei einer grossen Zahl von Verzweigungen in Unterprogramme lassen sich also entsprechend viele IF GOSUB