C64 ROM | Routines |
Prev: F3D5 | Up: Map | Next: F47D |
Used by the routine at F34A.
|
||||
F409 | 20 83 F4 | JSR $F483 | initialise RS232 output | |
F40C | 8C 97 02 | STY $0297 | save the RS232 status register | |
F40F | C4 B7 | CPY $B7 | compare with file name length | |
F411 | F0 0A | BEQ $F41D | exit loop if done | |
F413 | B1 BB | LDA ($BB),Y | get file name byte | |
F415 | 99 93 02 | STA $0293,Y | copy to 6551 register set | |
F418 | C8 | INY | increment index | |
F419 | C0 04 | CPY #$04 | compare with $04 | |
F41B | D0 F2 | BNE $F40F | loop if not to 4 yet | |
F41D | 20 4A EF | JSR $EF4A | compute bit count | |
F420 | 8E 98 02 | STX $0298 | save bit count | |
F423 | AD 93 02 | LDA $0293 | get pseudo 6551 control register | |
F426 | 29 0F | AND #%00001111 | mask 0000 xxxx, baud rate | |
F428 | F0 1C | BEQ $F446 | if zero skip the baud rate setup | |
F42A | 0A | ASL A | * 2 bytes per entry | |
F42B | AA | TAX | copy to the index | |
F42C | AD A6 02 | LDA $02A6 | get the PAL/NTSC flag | |
F42F | D0 09 | BNE $F43A | if PAL go set PAL timing | |
F431 | BC C1 FE | LDY $FEC1,X | get the NTSC baud rate value high byte | |
F434 | BD C0 FE | LDA $FEC0,X | get the NTSC baud rate value low byte | |
F437 | 4C 40 F4 | JMP $F440 | go save the baud rate values | |
F43A | BC EB E4 | LDY $E4EB,X | get the PAL baud rate value high byte | |
F43D | BD EA E4 | LDA $E4EA,X | get the PAL baud rate value low byte | |
F440 | 8C 96 02 | STY $0296 | save the nonstandard bit timing high byte | |
F443 | 8D 95 02 | STA $0295 | save the nonstandard bit timing low byte | |
F446 | AD 95 02 | LDA $0295 | get the nonstandard bit timing low byte | |
F449 | 0A | ASL A | * 2 | |
F44A | 20 2E FF | JSR $FF2E | ||
F44D | AD 94 02 | LDA $0294 | read the pseudo 6551 command register | |
F450 | 4A | LSR A | shift the X line/3 line bit into Cb | |
F451 | 90 09 | BCC $F45C | if 3 line skip the DRS test | |
F453 | AD 01 DD | LDA $DD01 | read VIA 2 DRB, RS232 port | |
F456 | 0A | ASL A | shift DSR in into Cb | |
F457 | B0 03 | BCS $F45C | if DSR present skip the error set | |
F459 | 20 0D F0 | JSR $F00D | set no DSR | |
F45C | AD 9B 02 | LDA $029B | get index to Rx buffer end | |
F45F | 8D 9C 02 | STA $029C | set index to Rx buffer start, clear Rx buffer | |
F462 | AD 9E 02 | LDA $029E | get index to Tx buffer end | |
F465 | 8D 9D 02 | STA $029D | set index to Tx buffer start, clear Tx buffer | |
F468 | 20 27 FE | JSR $FE27 | read the top of memory | |
F46B | A5 F8 | LDA $F8 | get the RS232 input buffer pointer high byte | |
F46D | D0 05 | BNE $F474 | if buffer already set skip the save | |
F46F | 88 | DEY | decrement top of memory high byte, 256 byte buffer | |
F470 | 84 F8 | STY $F8 | save the RS232 input buffer pointer high byte | |
F472 | 86 F7 | STX $F7 | save the RS232 input buffer pointer low byte | |
F474 | A5 FA | LDA $FA | get the RS232 output buffer pointer high byte | |
F476 | D0 05 | BNE $F47D | if ?? go set the top of memory to F0xx | |
F478 | 88 | DEY | ||
F479 | 84 FA | STY $FA | save the RS232 output buffer pointer high byte | |
F47B | 86 F9 | STX $F9 | save the RS232 output buffer pointer low byte |
Prev: F3D5 | Up: Map | Next: F47D |