    IRQ-Routine

    DAFD: 48        PHA              Prozessor-Register retten
    DAFE: 8A        TXA
    DAFF: 48        PHA
    DB00: 98        TYA
    DB01: 48        PHA
    DB02: AD 0D 40  LDA $400D        ICR: Interrupt-Ursache holen
    DB05: A8        TAY
    DB06: 25 76     AND $76          Bus-Modus b3=1: FSM-erlaubt ?
    DB08: 29 08     AND #$08         und wenn ja: Byte ueber FSM-empfangen ?
    DB0A: F0 06     BEQ $DB12        nein, ==>
    DB0C: A5 76     LDA $76
    DB0E: 09 20     ORA #$20         FSM-Modus aktivieren
    DB10: 85 76     STA $76

    Einsprung von $DB0A:

    DB12: 98        TYA
    DB13: 29 10     AND #$10         ATN aufgetreten ?
    DB15: F0 06     BEQ $DB1D        nein, ==>
    DB17: A5 76     LDA $76
    DB19: 09 01     ORA #$01         Flag fuer ATN merken
    DB1B: 85 76     STA $76

    Einsprung von $DB15:

    DB1D: 98        TYA
    DB1E: 29 02     AND #$02         Timer-IRQ aufgetreten ?
    DB20: F0 03     BEQ $DB25        nein, ==>
    DB22: 20 39 FF  JSR $FF39        Controller-Routine aufrufen

    Einsprung von $DB20:

    DB25: BA        TSX
    DB26: BD 04 01  LDA $0104,X      BRK-Kommando ?
    DB29: 29 10     AND #$10
    DB2B: F0 03     BEQ $DB30        nein, ==>
    DB2D: 20 39 FF  JSR $FF39        Controller-Routine aufrufen

    Einsprung von $DB2B:

    DB30: 68        PLA              Prozessor-Register zurueckholen
    DB31: A8        TAY
    DB32: 68        PLA
    DB33: AA        TAX
    DB34: 68        PLA
    DB35: 40        RTI

    ROM-Tabellen

    U0-Befehle:     Adressen, Befehlsnr., Name,    Drive, Seite

    DB36: 11 BB      W $BB11       $00: Read          N0 S0
    DB38: FA BA      W $BAFA       $01: Read (n.v.)   N1 S0
    DB3A: 01 BC      W $BC01       $02: Write         N0 S0
    DB3C: F9 BB      W $BBF9       $03: Write (n.v.)  N1 S0
    DB3E: B2 BC      W $BCB2       $04: Inquire Disk  N0 S0
    DB40: FA BA      W $BAFA       $05: Inq.D.(n.v.)  N1 S0
    DB42: 12 BD      W $BD12       $06: Format        N0
    DB44: 12 BD      W $BD12       $07: Format        N1
    DB46: FC BD      W $BDFC       $08: (Syntax Error)
    DB48: FC BD      W $BDFC       $09: (Syntax Error)
    DB4A: 06 BE      W $BE06       $0a: Query Format  N0 S0
    DB4C: FA BA      W $BAFA       $0b: Query (n.v.)  N1 S0
    DB4E: BB BE      W $BEBB       $0c: Inquire Stat  N0
    DB50: FA BA      W $BAFA       $0d: Inq.S.(n.v.)  N1
    DB52: F8 BE      W $BEF8       $0e: (Syntax Error)
    DB54: F8 BE      W $BEF8       $0f: (Syntax Error)

    DB56: 11 BB      W $BB11       $10: Read          N0 S1
    DB58: FA BA      W $BAFA       $11: Read (n.v.)   N1 S1
    DB5A: 01 BC      W $BC01       $12: Write         N0 S1
    DB5C: F9 BB      W $BBF9       $13: Write (n.v.)  N1 S1
    DB5E: B2 BC      W $BCB2       $14: Inquire Disk  N0 S1
    DB60: FA BA      W $BAFA       $15: Inq.D.(n.v.)  N1 S1
    DB62: 12 BD      W $BD12       $16: Format        N0
    DB64: 12 BD      W $BD12       $17: Format        N1
    DB66: CB 89      W $89CB       $18: (rts)
    DB68: CB 89      W $89CB       $19: (rts)
    DB6A: 06 BE      W $BE06       $1a: Query Format  N0 S1
    DB6C: FA BA      W $BAFA       $1b: Query (n.v.)  N1 S1
    DB6E: 02 BF      W $BF02       $1c: Dump Cache    N0
    DB70: 02 BF      W $BF02       $1d: Dump Cache    N1
    DB72: 3C AA      W $AA3C       $1e: ChgUtl
    DB74: D5 B8      W $B8D5       $1f: Fastload

    DB76: 06        Anzahl der BAM-Bytes pro Spur
    DB77: 04        Position des Disknamens im Verzeichnis-Header

    Diskettenkommandos

    DB78: 56 49 2F 4D 42 55 50 26  vi/mbup&   [Der sowieso nicht verwendbare
    DB80: 43 52 53 4E              crsn        Duplicate-Befehl der 1541 ist
    DB84: 09 0C 0F 12 15 18 1B 1E  Lo-Bytes    durch den Partition-Befehl '/'
    DB8C: 21 24 27 2A                          ersetzt worden.]
    DB90: FF FF FF FF FF FF FF FF  Hi-Bytes
    DB98: FF FF FF FF

    Bitmuster zur Ueberpruefung des Befehlsformates

    b0 : 1: '=' notwendig
    b1 : 1: '=' verboten
    b2 : 0: ',' nach '=' erlaubt
    b3 : 0: '*' nach '=' erlaubt

    b4 : immer 0
    b5 : immer 1
    b6 : 0: ',' vor '=' erlaubt
    b7 : 0: '*' vor '=' erlaubt

    DB9C: 51        %01010001      Copy
    DB9D: DD        %11011101      Rename
    DB9E: 1C        %00011100      Scratch
    DB9F: 9E        %10011110      New

    DBA0: 1C        %00011100      Laden
    DBA1: 52 57 41 4D              'RWAM'   Filemodi
    DBA5: 44 53 50 55 4C 43        'DSPULC' Filetypen

    DBAB: 44 53 50 55 52 43        DSPURC   Filetypen
    DBB1: 45 45 52 53 45 42        EERSEB   [senkrecht lesen !]
    DBB6: 4C 51 47 52 4C 4D        LQGRLM

    DBBD: 00                       z-Flag setzen durch BIT-Befehl

    gezieltes Setzen der nv-Flags durch BIT-Befehl

    DBBE: 3F 7F BF FF              --, -v, n-, nv

    DBC2: 01 FF FF 01 00           Kopfjustage bei Leseproblemen (n.v.)

        Previous Page / Next Page