ATARI HOME |
Neu in SOURCGEN V. 3.2
SOURCGEN V.3 benötigt einen XL- oder XE-ATARI.
Die Fram-disk: nicht nur für SOURCGEN User Wer ohne Ramdisk mit dem SOURCGEN Reassembler arbeitet, weiß wie dieses Programm seinen Diskettenlaufwerk beanspruchen kann. Wird von SOURCGEN ein Quelltext zu einem Diskettenfile erzeugt und den Text gleichzeitig auf die gleiche Diskette geschrieben, so muss sich der Schreib-Lesekopf des Laufwerks wiederholt von einem File zu dem anderen hin und her bewegen. Aber auch mancher Ramdiskbesitzer wird sich darüber geärgert haben, dass ein File unbedingt als ein einziges zusammenhängendes Block auf der Diskette bzw. in der Ramdisk gespeichert werden muss bevor SOURCGEN auf das File zugreifen kann. So ist man manchmal gezwungen vor der Arbeit das File erst auf eine leere Diskette zu kopieren. Oder es müssen ein oder mehrere Files von der Ramdisk gelöscht und das File, das man bearbeiten möchte, neu in die Ramdisk kopiert werden. Es lag also nah die für SOURCGEN maßgeschneidete Ramdisk "FDISK"
zu schreiben, die den freien Speicher unter dem XL-Betriebssystem ausnutzt.
Das sind 14K in jedem XL- und XE-Gerät die wegen ihre Unzugänglichkeit
meist unbenutzt bleiben. Der Klarheit wegen nennen wir ab dieser Stelle
die von FDISK erzeugte Ramdisk FDISK enthält die wichtigsten Routinen, die bei diskettenorientierten Programmen benötigt werden. Diese sind die Routinen OPEN, CLOSE, GETBYTE, PUTBYTE, NOTE und POINT. FDISK belegt die Speicheradressen $540 bis $573 und $600 bis $6FF. Unter SOURCGEN ist die F-Ramdisk gegenüber der <RESET>-Taste unempfindlich. Ansonsten muss die F-Ramdisk nach einem Reset mit einem Sprung durch $600 (JSR $600) neu inizialisiert werden. Der Inhalt der F-Ramdisk bleibt dabei jedoch erhalten. Wenn Sie ohne SOURCGEN die F-Ramdisk benutzen wollen, brauchen Sie nur
das File FDISK zu laden. Schon ist der F-Ramdisk initiallisiert! Beim Laden von SOURCGEN V.3 erscheint jetzt der neue Menupunkt U. UTILITY. Die U. UTILITY f-Funktion dient zwei verschiedene Zwecke:
Befehlsketten Nach dem Drücken der <U>-Taste können Sie unter Beachtung folgender Syntax eine beliebige Folge gültiger Befehle eingeben: /;<BEFEHLSFOLGE> Nach der Eingabe kann durch Betätigung der <@>-Taste (<SHIFT-8>) die Befehlsfolge beliebig oft ausgeführt werden. Die Eingabe /;FD:FDISK^OD:FDISK^P540^H540 6FE/F: erledigt z.B. in einem Schwung die folgende Aufgaben: Das File "FDISK" wird geöffnet. Das Zeichen "^" interpretiert SOURCGEN als "<RETURN>". Die obenbeschriebene Funktion ist deshalb nützlich und zeitsparend,
da man solche Befehlsfolgen ohne weiteres in die Symboltabelle eintragen
kann, von wo aus sie gespeichert und geladen werden können. Am besten
benutzen Sie hierzu die Adressen $100 bis $1FF. Da sich in diesem Adressenbereich
der Stack befindet, werden hier Symbole kaum vorkommen. Wenn Sie eine schon vorhandene Befehlsfolge brauchen: Es wird empfohlen alle auf Dauer benötigte Befehlsfolgen dem AUTOLOAD.SMB Datei zuzufügen, damit sie beim Laden von SOURCGEN immer gleich vorhanden sind.
Nach dem Drücken der <U>-Taste können Sie auch ein Befehl
mit folgender Syntax eingeben: Tippen Sie den Namen eines Diskettenfiles und drücken Sie <RETURN>. Das File wird jetzt in die F-Ramdisk kopiert. Mit einer Eingabe für <GRÖSSE>, bestimmen Sie die Anzahl
der Double-Density-Sektoren in der Ramdisk. (Ein Sektor umfaßt 253
($FD) Bytes) Wird kein Filenamen angegeben so wird das mit dem F. FILE-Funktion zuletzt geöffnetes File in die F-Ramdisk kopiert. Beim Laden eines Files wird die Startadresse der F-Ramdisk angezeigt. Das Adressenbereich $BC00 bis $C000 wird umgangen, da hier generell die Display-List und das Bildschirm-RAM liegt. Wenn Sie noch kein File in die F-Ramdisk kopieren möchten sondern
lediglich ihre Grösse festlegen wollen, geben Sie <GRÖSSE>
gefolgt von dem Zeichen "/" ein. Ein größerer Textpuffer für ATMAS-II Tippen Sie den Namen eines Diskettenfiles und drücken Sie <RETURN>. Das File wird jetzt in die F-Ramdisk kopiert. Mit einer Eingabe für <GRÖSSE>, bestimmen Sie die Anzahl
der Double-Density-Sektoren in der Ramdisk. (Ein Sektor umfaßt 253
($FD) Bytes) Wird kein Filenamen angegeben so wird das mit dem F. FILE-Funktion zuletzt geöffnetes File in die F-Ramdisk kopiert. Beim Laden eines Files wird die Startadresse der F-Ramdisk angezeigt. Das Adressenbereich $BC00 bis $C000 wird umgangen, da hier generell die Display-List und das Bildschirm-RAM liegt. Wenn Sie noch kein File in die F-Ramdisk kopieren möchten sondern
lediglich ihre Grösse festlegen wollen, geben Sie <GRÖSSE>
gefolgt von dem Zeichen "/" ein. Jetzt liest SOURCGEN jegliche File Zu dem F. FILE-Funktion gilt jetzt zusätzlich folgende Funktion: F. FILE <NUM> <ADR1> [<ADR2>]/D<x>:<FILENAME>.<EXT> Es wird von einem beliebigen Diskettenfile gelesen. <ADR1>
gilt als Anfangsadresse. Sie können für <NUM>
eine beliebige Zahl eingeben. Die obenbeschriebene Funktion ist eine sinnvolle Erweiterung zu SOURCGEN,
da nicht alle Maschinenspracheprogramme als Load-Files aufgezeichnet sind.
Es kommt zum Beispiel vor, dass ein größeres File durch ein
kleineres 'Loader'-Programm in den Speicher geladen wird, wobei nur der
Loader sich als Load-File auf der Diskette befindet. Es gilt dann erst
das Code für den Loader anzuschauen um die <NUM> <ADR1> [<ADR2>] Beim Wiederholen der Funktion, muß der Dateiname nicht nochmals eingegeben werden.
Zu dem C. CODE-search-Funktion gilt jetzt zusätzlich folgende Funktion: C. CODE-search <ADR1> <ADR2> <WORD> /W Im Adressenbereich <ADR1> bis <ADR2> wird nach dem Doppelbyte
<WORD> gesucht. Diese Funktion ist wesentlich schneller als die
anderen zwei in SOURCGEN eingebauten CODE-search-Funktionen, da die Darstellungsweise
des gefundenen Codes nicht berücksichtigt wird.
Die H. HEAD-Funktion arbeitet jetzt auch dann korrekt, wenn das Adressenbereich eines Load-Files mehrere Segmente umfaßt. Nehmen wir z.B. an es werden beim Öffnen eines LOAD-Files folgende Segmente angezeigt: 4DOO 4EOO 1 Sie können jetzt bei der H. HEAD-Funktion beispielsweise den Adressenbereich 600 573 eingeben. Es spielt u.a. keine Rolle mehr, dass die zweite Adresse niedriger ist als die erste. (Das gleiche gilt übrigens auch für die Funktionen P. PREPARE labels, G. GO und J. JUNK?) <ADR1> <ADR2> A/D<x>:<FILENAME> Die Angabe "A"
hinter ADR2 verursacht,
dass das Listing als PC-kompatibles ASCI-Datei gespeichert wird. So ist
eine Weiterverarbeitung des erzeugten Quelltextes auf dem PC mit dem ATMAS-kompatiblen
Crossassembler CODEGEN möglich. E. EDIT <ADR1> [<ADR2>]/<ZEI> Ab Adresse <ADR1>
wird der Code entsprechend dem Zeichen <ZEI>
interpretiert bzw. dargestellt. ( :Normalcode.
zB. LDA #LABEL (wobei
LABEL <= $FF
und eine Konstante oder zero page Adresse darstellt)
[Leertaste] verursacht
das Listen der nächsten Zeile.
|