     $E909/59657:   Send data

    Jump from $E8F7:

    E909: 78        SEI
    E90A: 20 EB D0  JSR $D0EB       ; open channel for read
    E90D: B0 06     BCS $E915       ; channel active

    Jump from $E996:

    E90F: A6 82     LDX $82         ; channel number
    E911: B5 F2     LDA $F2,X       ; set READ flag?
    E913: 30 01     BMI $E916       ; yes

    Jump from $E90D:

    E915: 60        RTS

    Jump from $E913:

    E916: 20 59 EA  JSR $EA59       ; check EOI
    E919: 20 C0 E9  JSR $E9C0       ; read IEEE port
    E91C: 29 01     AND #$01        ; isolate data bit
    E91E: 08        PHP             ; and save
    E91F: 20 B7 E9  JSR $E9B7       ; CLOCK OUT lo
    E922: 28        PLP
    E923: F0 12     BEQ $E937

    Jump from $E92D:

    E925: 20 59 EA  JSR $EA59       ; check EOI
    E928: 20 C0 E9  JSR $E9C0       ; read IEEE port
    E92B: 29 01     AND #$01        ; isolate data bit
    E92D: D0 F6     BNE $E925
    E92F: A6 82     LDX $82         ; channel number
    E931: B5 F2     LDA $F2,X
    E933: 29 08     AND #$08
    E935: D0 14     BNE $E94B

    Jump from $E923, $E93F:

    E937: 20 59 EA  JSR $EA59       ; check EOI
    E93A: 20 C0 E9  JSR $E9C0       ; read IEEE port
    E93D: 29 01     AND #$01        ; isolate data bit
    E93F: D0 F6     BNE $E937

    Jump from $E949:

    E941: 20 59 EA  JSR $EA59       ; check EOI
    E944: 20 C0 E9  JSR $E9C0       ; read IEEE port
    E947: 29 01     AND #$01        ; isolate data bit
    E949: F0 F6     BEQ $E941

    Jump from $E935, $E956:

    E94B: 20 AE E9  JSR $E9AE       ; CLOCK OUT hi
    E94E: 20 59 EA  JSR $EA59       ; check EOI
    E951: 20 C0 E9  JSR $E9C0       ; read IEEE port
    E954: 29 01     AND #$01        ; isolate data bit
    E956: D0 F3     BNE $E94B
    E958: A9 08     LDA #$08        ; counter to 8 bits for serial
    E95A: 85 98     STA $98         ; transmission

    Jump from $E985:

    E95C: 20 C0 E9  JSR $E9C0       ; read IEEE port
    E95F: 29 01     AND #$01        ; isolate data bit
    E961: D0 36     BNE $E999
    E963: A6 82     LDX $82
    E965: BD 3E 02  LDA $023E,X
    E968: 6A        ROR             ; lowest data bit in carry
    E969: 9D 3E 02  STA $023E,X
    E96C: B0 05     BCS $E973       ; set bit
    E96E: 20 A5 E9  JSR $E9A5       ; DATA OUT, output bit '0'
    E971: D0 03     BNE $E976       ; absolute jump

    Jump from $E96C:

    E973: 20 9C E9  JSR $E99C       ; DATA OUT, output bit '1'

    Jump from $E971:

    E976: 20 B7 E9  JSR $E9B7       ; set CLOCK OUT
    E979: A5 23     LDA $23
    E97B: D0 03     BNE $E980
    E97D: 20 F3 FE  JSR $FEF3       ; delay for serial bus

    Jump from $E97B:

    E980: 20 FB FE  JSR $FEFB       ; set DATA OUT and CLOCK OUT
    E983: C6 98     DEC $98         ; all bits output?
    E985: D0 D5     BNE $E95C       ; no

    Jump from $E98F:

    E987: 20 59 EA  JSR $EA59       ; check EOI
    E98A: 20 C0 E9  JSR $E9C0       ; read IEEE port
    E98D: 29 01     AND #$01        ; isolate data bit
    E98F: F0 F6     BEQ $E987
    E991: 58        CLI
    E992: 20 AA D3  JSR $D3AA       ; get next data byte
    E995: 78        SEI
    E996: 4C 0F E9  JMP $E90F       ; and output

    Jump from $E961:

    E999: 4C 4E EA  JMP $EA4E       ; to delay loop

        Previous Page / Next Page