Programmbeschreibung: Der PC_ASS ist eine Kombination aus einem Assembler und einem Disassembler fr die Maschinensprache der Sharp Pocket Computer. Er dient dazu, die l„stige Zettelwirtschaft, die bei der Entwick- lung der Maschinenprogramme entsteht, zu verhindern. Aužerdem k”nnen die Programme auf Diskette gespeichert werden, so daž sie dort sicher untergebracht und jederzeit abrufbereit sind. Auch das Ausdrucken der erstelen Listings, sowie das L”schen, das Korrigieren und das Einfgen von Programmzeilen ist m”glich. Der PC_ASS ist vollst„ndig in GFA-Basic geschrieben, so daž es jedem m”glich ist, individuelle Ver„nderungen vorzunehmen. Fr diejenigen, die keinen GFA-Basic Interpreter besitzen ist, eine compilierte Version auf der Diskette enthalten. Ich wnsche allen Benutzern von PC_ASS frohes Schaffen und All Reset freie Pro- gramme. Der Autor: Stefan Schwardt Der Disassembler: Hier k”nnen Sie bereits bestehende oder neue Programme im HEX- Code eingeben. Das Programm versucht dann sofort, diese zu disassemblieren. Die Hex-Codes k”nnen ber die rechte Zehner- tastatur eingegeben werden. Diese habe ich jedoch in eine Hex- Tastatur umgewandelt, um das eingeben der Codes zu erleichtern. Durch die neue Belegung ist es nicht mehr n”tig, die in der Hex- Form vorkommenden Buchstaben (a-f) ber das normale Buchstaben- feld einzugeben. Die neue Belegung ist wie folgt: "("="a", ")"="b", "/"="c","*"="d", "-"="e", "+"="f" Bei der Eingabe bedarf es keiner Best„tiung durch Return, da das Programm selbstst„ndig das Zeilenende erkennt. Auch andere Tasten wie Space brauchen nicht bet„tigt zu werden. So ist ein flssiges Eingeben der Codes m”glich. Allerdings mžen die Hex-Codes aus zwei Zeichen bestehen. Sie mssen also zum Beispiel anstelle von "2" "02" eingeben. Sollte sich beim Eingeben ein Fehler eingeschlichen haben, so kann dieser durch bet„tigen der DELET-Taste korrigiert werden. Doch Achtung: DELET l”scht jeweils die ganze zu letz eingegebene Zeile. Ist das Programm vollst„ndig eingegeben, so kann der Disassembler ber die ESC-Taste verlassen werden. Das Programm befindet sich nun im Speicher und kann ber die Option SPEICHERN auf Diskette abgelegt werden. Vorsicht: Es k”nnen nicht mehr als 8000 Zeilen im Speicher aufgenommen werden (es sei denn, Sie „ndern die Dimensionierung von Byte$(8000,3) und Buff2%(8000,3)). Es findet keine šberlaufsabfrage statt. Der Assembler: Der Assembler erm”glicht das Eingeben von Programmtexten in Assemblerformat. Dabei muž jedoch der Syntax der Befehle peinlich genau befolgt werden (siehe Befehlssatz anzeigen). Die Eingabe einer Zeile muž hier, anders als beim Disassembler, mit RETURN abgeschložen werden. Das Programm gibt zur Best„tigung die Zeile dann in ihrem entgltigen Format aus. Die Korrektur einer bereits mit Return best„tigten Zeile ist im Assembler nicht m”glich (siehe Zeilen korrigieren). Jedoch k”nnen Sie innerhalb einer Zeile mit DELET Korekturen vornehmen. Verlassen k”nnen Sie den Assembler indem Sie statt einem Befehl nur ein "x" eingeben und mit RETURN best„tigen. Nach Verlassen des Assemblers ist das Programm wie beim Disassembler im Speicher abgelegt und kannt mit SPEICHERN auf Diskette geschrieben werden. Vorsicht: Auch hier gilt nicht mehr als 8000 Zeichen und keine šberlaufsabfrage. Programm zeigen: Bei Anwahl dieser Option wird ein im speicherbefindliches Pro- gramm Zeile fr Zeile auf dem Bildschirm ausgegeben. Die Ausgabe kann durch bet„tigen der SPACE-Taste unterbrochen werden. Wird die SPACE-Taste erneut bet„tigt, so wird die Ausgabe fortgesetzt. Programm drucken: Wenn Sie diese Option anw„hlen, dann wird ein ein, zwei oder drei spaltiges Programmlisting vom Drucker ausgegeben. Jedoch ist das Programm auf einen Panasonic KX-P 1091 abgestimmt. Eine Drucker- anpassung ist allerdings m”glich. Dazu muž die Zeile, die in der Procedur DRUCKEN mit " 'Tabulator' " gekennzeichnet ist, an den jeweiligen Drucker angepažt werden. Sie stellt die Tabulatorweite des Druckers ein. Aužerdem muž die Zeile, die mit " 'Tabulator 2' " gekennzeichnet ist, angepažt werden. Hier wird mir chr$(9) ein Tabulatorsprung ausgefhrt. Speichern: Es kann ein im Speicher befindliches Programm abgespeichert wer- den. Laden: Bereits abgespeicherte Programme k”nnen zur weiteren Bearbeitung wieder in den Speicher geladen werden. Dabei wird jedoch ein Programm, daž sich schon vorher im Speicher befunden hat, gel”scht. Zeilen einfgen: Mit dieser Option k”nnen neue Zeilen in das bereits bestehende Programm eingefgt werden. Sie werden zuerst nach der Zeile gefragt, hinter der die neuen Zeilen eingefgt werden sollen. Dann k”nnen Sie die neuen Zeilen eingeben, allerdings nur im Hex- Code, da diese Procedur den Disassembler benutzt. Beendet wird die Eingabe wie im Disassembler durch die ESC-Taste. Vorsicht: Es k”nnen nicht mehr als 8000 Zeilen im Speicher aufgenommen werden. Es erfolgt auch hier keine berlaufsabfrage. Zeilen l”schen: Hier k”nnen Programmzeilen gel”scht werden. Sie werden nach der Start- und der Endzeile gefragt. Vorsicht: Die Zeilen sind fr immer verloren. Zeilen korrigieren: Wenn sie nach Fertigstellung eines Programms noch Fehler ent- decken, so k”nnen Sie mit dieser Procedur einzelne Zeilen korrigieren. Nach Eingabe der zur korrigierenden Zeilen wird die alte Zeile angezeigt. Sie k”nnen nun die neue Zeile eingeben (auch hier wieder im Hex-Code). Die alte Zeile wird nun durch die neue ersetzt. Befehlssatz anzeigen: Diese Option gibt den Befehlssatz in tabellenform auf dem Bildschirm aus. Der Syntax der einzelnen Befehle ist fr den Assembler sehr wichtig. Deshalb sollten Sie sich einen Ausdruck des Befehlssatzes erstellen, denn diese Funktion kann vom Assembler aus nicht aufgerufen werden. Befehssatz drucken: Befehlssatz drucken druckt den Befehlssatz in Tabellenform aus. Es ist keine Druckeranpassung n”tig. Beispielprogram: Das Beispielprogram ist der Maschienenteil des nachfolgenden Programs. Es erzeugt einige T”ne und ist fr dem Sharp PC-1450. 5 DIM B$(0)*30 10 POKE 23569,&3,&FD,&2,&FE,&67,&FF,&38,&E,&12,&5F,&61,&10,&DF, &4E,&FF,&60,&E9 20 POKE 23586,&DF,&42,&2D,&10,&DA,&67,&FF,&38,&5,&42,&DA,&2D,&1B,&37 30 FOR I=50 TO 100 STEP 2 40 POKE 23570,253,2,22:POKE 23583,I:CALL 23569 50 NEXT I