Kassetten-Ein/Ausgabe
Suche
Index
FAQ
Kontakt
Zurück

9. Kassetten-Ein/Ausgabe
       In diesem Kapitel werden ROM_Routinen angegeben, mit deren Hilfe es auf einfachste
        Art moeglich ist, beliebige Dateien auf Band zu schreiben und vom Band zu lesen.
        Diese Files muessen nicht dem vom Betriebssystem (O.S.) vorgesehenen Standard
        entsprechen, sollten es nach Moeglichkeit, damit sie mit den Schreib-/Leseroutinen
        des O.S. vertraeglich sind.

        Das erste Byte jedes Datenblocks (normalerweise im Tape-Buffer #1 ab $027A oder #2
        ab $033A) enthaelt eine Angabe ueber den File-Typ :

             1:  Program File-Header
             2: Datenblock
             3: Datenblock File-Header

        Die folgenden vier Bytes enthalten die Start und Endadresse des Programms (bei Datenfiles
        die Start- und Endadresse des Tape-buffers) im Format low Byte - high Byte.
        Darauf folgt dann der Filename im ASCII-Code.

        Die verwendeten ROM-Routinen und Speicherplaetze sind :

        Name       2001     3001    8001         Beschreibung
        -----------------------------------------------------
        CLRTB      $F5E3     ----    ----        Tape-buffer loeschen
        LOAD       $F3E4    $F3C9   $F408        Programmfile laden
        RDBLK      $F88A    $F85E   $F8A3        Block lesen
        RDTBUF     $F87F    $F885   $F89A        Tape-buffer lesen
        SAVE       $F6B1    $F6A4   $F6E3        Programmfile schreiben
        SFIH       $F5AE    $F5A6   $F5E5        Suche nach File-Header
        TWAIT      $F913    $F8E6   $F92B        I/O- Abschluss abwarten
        WRTBLK     $F8C4    $F890   $F8D5        Block schreiben

        CHECKS     $C3      $0279   $0279        Pruefsumme
        DN         $F1      $D4     $D4          Device-Nummer (Recorder 1,2)
        ENDADR     $E5-E6   $C9-CA  $C9-CA       Endadresse+1 schreiben/lesen
        FNADR      $F9-FA   $DA-DB  $DA-DB       Adresse des Filenamens
        FNLEN      $EE      $D1     $D1          Laenge es Filenamens
        START      $F7-F8   $FB-FC  $FB-FC       Startadresse lesen/schreiben
        STATUS     $020C    $96     $96          I/O-Status-Byte
        TBUF       $F3-F4   $D6-D7  $D6-D7       Startadresse Tape-buffer

9.1 LOAD
        Diese Routine laedt ein Programm-File in den Speicher. Das Programm
        wird in die im File-Header angegebenen Adressen gespeichert. Die LOAD-Routine
        setzt die Zeiger : Programmanfang $7A-7B/$28-29/$28-29 und Programmende $7c-7D/
        $2A-2B/$2A-2B. Nach dem LOAD kann das Programm mit RUN oder durch den Aufruf
        entsprechender Routinen gestartet werden.

        Die LOAD-Routine benoetigt die Angaben DN, FNADR und FNLEN.

                  LDA #0
                  STA STATUS
                  JSR LOAD


9.2 SAVE
        Diese Routine schreibt ein Programm aus dem Speicher auf Band. Nach der SAVE-Operation
        sind keine Zeiger veraendert, d.h. das Programm kann normal weiterlaufen. Die SAVE-Routine
        benoetigt die Angaben DN, FNADR, FNLEN, START und ENDADR.

                  JSR SAVE

9.3 Lesen eines Blockes von Band
        Diese Routine liest einen Block beliebiger Laenge vom Band in den Speicher.
        Die Angabe DN, START und ENDADR werden benoetigt.

                  JSR RDBLK
                  JSR TWAIT

9.4 Schreiben eines Blockes auf Band
        Diese Routine schreibt einen Speicherblock beliebiger Laenge aus dem Speicher auf Band.
        Die Angaben DN, START und ENDADR werden benoetigt.

                  JSR TWAIT
                  LDA #$69
                  STA CHECKS
                  JSR WRTBLK

9.5 Tape-buffer loeschen
        Der laeufende Tape-buffer kann mit dieser Routine (nur 2001) geloescht werden (er wird
        mit Space-Zeichen beschrieben). Die Anfangsadresse des gueltigen Puffers steht in TBUF
        (#1: $027A, #2:$033A).

                  JSR CLRTB

        Die Befehlsfolge ist in den ROMs der 3001- und 8001-Computer ebenfalls vorhanden, aber
        nicht als Subroutine abrufbar.

9.6 Einlesen des Tape-buffers
        Jeder Datenblock (192 Zeichen) kann mit dieser Routine gelesen werden. Die Routine
        benoetigt die Angaben DN und TBUF.

                  JSR RDTBUF

9.7 Suchen eines File-headers
        Die Routine durchsucht das Band nach dem naechsten File-header. Die Angaben DN
        und TBUF werden benoetigt.

         JSR SFIH

 

Letzte Änderung: 2019-01-04 10:06:36
  Rubrik:  CBM PET
Rubriken-Übersicht
 7 Besucher online 

Valid XHTML 1.0 Transitional Valid CSS!