C64 ROM | Routines |
Prev: AF14 | Up: Map | Next: AFA7 |
Used by the routine at AE86.
|
||||
AF28 | 20 8B B0 | JSR $B08B | get variable address | |
AF2B | 85 64 | STA $64 | save variable pointer low byte | |
AF2D | 84 65 | STY $65 | save variable pointer high byte | |
AF2F | A6 45 | LDX $45 | get current variable name first character | |
AF31 | A4 46 | LDY $46 | get current variable name second character | |
AF33 | A5 0D | LDA $0D | get data type flag, $FF = string, $00 = numeric | |
AF35 | F0 26 | BEQ $AF5D | branch if numeric | |
variable is string
|
||||
AF37 | A9 00 | LDA #$00 | else clear A | |
AF39 | 85 70 | STA $70 | clear FAC1 rounding byte | |
AF3B | 20 14 AF | JSR $AF14 | check address range | |
AF3E | 90 1C | BCC $AF5C | exit if not in BASIC ROM | |
AF40 | E0 54 | CPX #"T" | compare variable name first character with "T" | |
AF42 | D0 18 | BNE $AF5C | exit if not "T" | |
AF44 | C0 C9 | CPY #"I"+$80 | compare variable name second character with "I$" | |
AF46 | D0 14 | BNE $AF5C | exit if not "I$" | |
variable name was "TI$"
|
||||
AF48 | 20 84 AF | JSR $AF84 | read real time clock into FAC1 mantissa, 0HML | |
AF4B | 84 5E | STY $5E | clear exponent count adjust | |
AF4D | 88 | DEY | Y = $FF | |
AF4E | 84 71 | STY $71 | set output string index, -1 to allow for pre increment | |
AF50 | A0 06 | LDY #$06 | HH:MM:SS is six digits | |
AF52 | 84 5D | STY $5D | set number of characters before the decimal point | |
AF54 | A0 24 | LDY #$24 | index to jiffy conversion table | |
AF56 | 20 68 BE | JSR $BE68 | convert jiffy count to string | |
AF59 | 4C 6F B4 | JMP $B46F | exit via STR$() code tail | |
AF5C | 60 | RTS | ||
variable name set-up, variable is numeric
|
||||
AF5D | 24 0E | BIT $0E | test data type flag, $80 = integer, $00 = float | |
AF5F | 10 0D | BPL $AF6E | branch if float | |
AF61 | A0 00 | LDY #$00 | clear index | |
AF63 | B1 64 | LDA ($64),Y | get integer variable low byte | |
AF65 | AA | TAX | copy to X | |
AF66 | C8 | INY | increment index | |
AF67 | B1 64 | LDA ($64),Y | get integer variable high byte | |
AF69 | A8 | TAY | copy to Y | |
AF6A | 8A | TXA | copy loa byte to A | |
AF6B | 4C 91 B3 | JMP $B391 | convert fixed integer AY to float FAC1 and return | |
variable name set-up, variable is float
|
||||
AF6E | 20 14 AF | JSR $AF14 | check address range | |
AF71 | 90 2D | BCC $AFA0 | if not in BASIC ROM get pointer and unpack into FAC1 | |
AF73 | E0 54 | CPX #"T" | compare variable name first character with "T" | |
AF75 | D0 1B | BNE $AF92 | branch if not "T" | |
AF77 | C0 49 | CPY #"I" | compare variable name second character with "I" | |
AF79 | D0 25 | BNE $AFA0 | branch if not "I" | |
variable name was "TI"
|
||||
AF7B | 20 84 AF | JSR $AF84 | read real time clock into FAC1 mantissa, 0HML | |
AF7E | 98 | TYA | clear A | |
AF7F | A2 A0 | LDX #$A0 | set exponent to 32 bit value | |
AF81 | 4C 4F BC | JMP $BC4F | set exponent = X and normalise FAC1 | |
read real time clock into FAC1 mantissa, 0HML
|
||||
AF84 | 20 DE FF | JSR $FFDE | read real time clock | |
AF87 | 86 64 | STX $64 | save jiffy clock mid byte as FAC1 mantissa 3 | |
AF89 | 84 63 | STY $63 | save jiffy clock high byte as FAC1 mantissa 2 | |
AF8B | 85 65 | STA $65 | save jiffy clock low byte as FAC1 mantissa 4 | |
AF8D | A0 00 | LDY #$00 | clear Y | |
AF8F | 84 62 | STY $62 | clear FAC1 mantissa 1 | |
AF91 | 60 | RTS | ||
variable name set-up, variable is float and not "Tx"
|
||||
AF92 | E0 53 | CPX #"S" | compare variable name first character with "S" | |
AF94 | D0 0A | BNE $AFA0 | if not "S" go do normal floating variable | |
AF96 | C0 54 | CPY #"T" | compare variable name second character with "T" | |
AF98 | D0 06 | BNE $AFA0 | if not "T" go do normal floating variable | |
variable name was "ST"
|
||||
AF9A | 20 B7 FF | JSR $FFB7 | read I/O status word | |
AF9D | 4C 3C BC | JMP $BC3C | save A as integer byte and return | |
variable is float
|
||||
AFA0 | A5 64 | LDA $64 | get variable pointer low byte | |
AFA2 | A4 65 | LDY $65 | get variable pointer high byte | |
AFA4 | 4C A2 BB | JMP $BBA2 | unpack memory (AY) into FAC1 |
Prev: AF14 | Up: Map | Next: AFA7 |