     $E07C/57468:   Write a byte in a record

    Jump from $E0B4, $E0FE:

    E07C: 20 05 E1  JSR $E105
    E07F: 20 93 DF  JSR $DF93       ; get buffer number
    E082: 0A        ASL             ; times 2
    E083: AA        TAX
    E084: A5 85     LDA $85         ; data byte
    E086: 81 99     STA ($99,X)     ; write in buffer
    E088: B4 99     LDY $99,X       ; buffer pointer
    E08A: C8        INY             ; increment
    E08B: D0 09     BNE $E096       ; not equal zero?
    E08D: A4 82     LDY $82         ; channel number
    E08F: B9 C1 00  LDA $C1,Y       ; write pointer
    E092: F0 0A     BEQ $E09E       ; equal zero?
    E094: A0 02     LDY #$02        ; buffer pointer to 2

    Jump from $E08B:

    E096: 98        TYA
    E097: A4 82     LDY $82         ; channel number
    E099: D9 C1 00  CMP $C1,Y       ; buffer pointer = write pointer?
    E09C: D0 05     BNE $E0A3       ; no

    Jump from $E092:

    E09E: A9 20     LDA #$20
    E0A0: 4C 97 DD  JMP $DD97       ; set bit 5

    Jump from $E09C:

    E0A3: F6 99     INC $99,X       ; increment buffer pointer
    E0A5: D0 03     BNE $E0AA       ; not zero?
    E0A7: 20 3C E0  JSR $E03C       ; else write block, read next one

    Jump from $E0A5:

    E0AA: 60        RTS

        Previous Page / Next Page