$F409/62473:   Open RS232

Jump from $F388:

F409: 20 83 F4  JSR $F483
F40C: 8C 97 02  STY $0297     ; RS232 Pseudo 6551 Status Register Image

Jump from $F41B:

F40F: C4 B7     CPY $B7       ; Number of Characters in Filename
F411: F0 0A     BEQ $F41D
F413: B1 BB     LDA ($BB),Y   ; Pointer: Current File name Address
F415: 99 93 02  STA $0293,Y   ; RS232 Pseudo 6551 control Register Image
F418: C8        INY
F419: C0 04     CPY #$04
F41B: D0 F2     BNE $F40F

Jump from $F411:

F41D: 20 4A EF  JSR $EF4A     ; Compute Bit Count
F420: 8E 98 02  STX $0298     ; RS232 Number of Bits left to send
F423: AD 93 02  LDA $0293     ; RS232 Pseudo 6551 control Register Image
F426: 29 0F     AND #$0F
F428: F0 1C     BEQ $F446
F42A: 0A        ASL
F42B: AA        TAX
F42C: AD A6 02  LDA $02A6     ; Flag: TV Standard
F42F: D0 09     BNE $F43A
F431: BC C1 FE  LDY $FEC1,X   ; Exit Interrupt
F434: BD C0 FE  LDA $FEC0,X   ; Exit Interrupt
F437: 4C 40 F4  JMP $F440

Jump from $F42F:

F43A: BC EB E4  LDY $E4EB,X   ; Pause After Finding Tape File
F43D: BD EA E4  LDA $E4EA,X   ; Pause After Finding Tape File

Jump from $F437:

F440: 8C 96 02  STY $0296     ; RS232 Non-standard Bits/Second
F443: 8D 95 02  STA $0295     ; RS232 Non-standard Bits/Second

Jump from $F428:

F446: AD 95 02  LDA $0295     ; RS232 Non-standard Bits/Second
F449: 0A        ASL
F44A: 20 2E FF  JSR $FF2E     ; NMI RS232 Out
F44D: AD 94 02  LDA $0294     ; RS232 Pseudo 6551 command Register Image
F450: 4A        LSR
F451: 90 09     BCC $F45C
F453: AD 01 DD  LDA $DD01     ; CIA2: Data Port B (User Port, RS232)
F456: 0A        ASL
F457: B0 03     BCS $F45C
F459: 20 0D F0  JSR $F00D     ; No DSR (Data Set Ready) Error

Jump from $F451, $F457:

F45C: AD 9B 02  LDA $029B     ; RS232 Index to End of Input Buffer
F45F: 8D 9C 02  STA $029C     ; RS232 Pointer: High Byte of Input Buffer
F462: AD 9E 02  LDA $029E     ; RS232 Index to End of Output Buffer
F465: 8D 9D 02  STA $029D     ; RS232 Pointer: High Byte of Output Buffer
F468: 20 27 FE  JSR $FE27     ; Read / Set Top of Memory
F46B: A5 F8     LDA $F8       ; RS232 Input Buffer Pointer
F46D: D0 05     BNE $F474
F46F: 88        DEY
F470: 84 F8     STY $F8       ; RS232 Input Buffer Pointer
F472: 86 F7     STX $F7       ; RS232 Input Buffer Pointer

Jump from $F46D:

F474: A5 FA     LDA $FA       ; RS232 Output Buffer Pointer
F476: D0 05     BNE $F47D
F478: 88        DEY
F479: 84 FA     STY $FA       ; RS232 Output Buffer Pointer
F47B: 86 F9     STX $F9       ; RS232 Output Buffer Pointer

Jump from $F476, $F2C5:

F47D: 38        SEC
F47E: A9 F0     LDA #$F0
F480: 4C 2D FE  JMP $FE2D     ; Read / Set Top of Memory

Jump from $F409, $F2AF:

F483: A9 7F     LDA #$7F
F485: 8D 0D DD  STA $DD0D     ; CIA2: Interrupt (NMI) Control Register
F488: A9 06     LDA #$06
F48A: 8D 03 DD  STA $DD03     ; CIA2: Data Direction Register B
F48D: 8D 01 DD  STA $DD01     ; CIA2: Data Port B (User Port, RS232)
F490: A9 04     LDA #$04
F492: 0D 00 DD  ORA $DD00     ; CIA2: Data Port A (Serial Bus, RS232, VIC Base Mem.)
F495: 8D 00 DD  STA $DD00     ; CIA2: Data Port A (Serial Bus, RS232, VIC Base Mem.)
F498: A0 00     LDY #$00
F49A: 8C A1 02  STY $02A1     ; RS232 Enables
F49D: 60        RTS

    Previous Page / Next Page