###   Projekte und Informationen rund um den KC85   ### 

CAOS-Dateien unter CP/M erzeugen

von Mario Leubner

Enrico Grämer fragte mich neulich:

"Wenn ich mich richtig entsinne, stand in dem Assemblerkurs nix darüber, wie ich unter CP/M ein CAOS-Programm schreibe. Kannst Du mir mal 'nen Tip dazu geben, z.B. wie das am Besten mit dem Vorspann zu lösen ist?"

Das geht ganz einfach: Der Vorblock ist 128 Bytes groß und wird mittels DEFB-Anweisungen gefüllt. Danach kommt der CAOS-Programmcode. Um die Adressen im CAOS-Vorblock automatisch zu setzen, schreibt man entsprechende Marken ins Programm und legt diese mit Hilfe von DEFW-Anweisungen im Vorspann ab. Das Ganze sieht dann etwa so aus:

; CAOS-Vorblock:
      DB      '12345678ABC'  ; Dateiname 12345678.ABC (kompatibel zum
                             ; Kassettenformat, kann auch entfallen)
      DS      5,0            ; 5 Byte frei
      DB      3              ; 2 falls ohne, 3 falls mit Startadresse
      DEFW    AADR           ; Anfangsadresse
      DEFW    EADR           ; Endadresse + 1
      DEFW    SADR           ; Startadresse
      DS      105,0          ; der Rest im Vorblock ist frei!

; Programmcode:
      ORG     <adresse>      ; CAOS-Adresse festlegen
AADR:
      <programmcode>
SADR:
      <programmcode>
EADR:
      END

Die Marken AADR, EADR und SADR setzt man an die gewünschten Stellen und während der Assemblierung werden die Marken belegt.

Die genaue Syntax ist noch etwas abhängig je nach verwendetem Assembler, aber das Prinzip dürfte erkennbar sein. So macht sich beim ASM.COM von "robotron" statt der ORG-Anweisung ein .PHASE gut, um die KC-Adresse einzustellen. Man muß nur aufpassen, daß der Assembler bzw. Linker die Datei so erzeugt, daß nicht vor der CAOS-Adresse noch entsprechend viele Dummy-Bytes stehen.

Ein Beispiel dieser Art findet Ihr z.B. in meinem Quelltext WPLOAD6.Z80 (im Archiv von WordPro6). Also dann viel Erfolg damit!