C64 ROM | Routines |
Prev: A69C | Up: Map | Next: A742 |
the uncrunch BASIC tokens vector is initialised to point here
|
||||
A71A | 10 D7 | BPL $A6F3 | just go print it if not token byte | |
else was token byte so uncrunch it
|
||||
A71C | C9 FF | CMP #$FF | compare with the token for PI. in this case the token is the same as the PI character so it just needs printing | |
A71E | F0 D3 | BEQ $A6F3 | just print it if so | |
A720 | 24 0F | BIT $0F | test the open quote flag | |
A722 | 30 CF | BMI $A6F3 | just go print character if open quote set | |
A724 | 38 | SEC | else set carry for subtract | |
A725 | E9 7F | SBC #$7F | reduce token range to 1 to whatever | |
A727 | AA | TAX | copy token # to X | |
A728 | 84 49 | STY $49 | save index for line | |
A72A | A0 FF | LDY #$FF | start from -1, adjust for pre increment | |
A72C | CA | DEX | decrement token # | |
A72D | F0 08 | BEQ $A737 | if now found go do printing | |
A72F | C8 | INY | else increment index | |
A730 | B9 9E A0 | LDA $A09E,Y | get byte from keyword table | |
A733 | 10 FA | BPL $A72F | loop until keyword end marker | |
A735 | 30 F5 | BMI $A72C | go test if this is required keyword, branch always | |
found keyword, it's the next one
|
||||
A737 | C8 | INY | increment keyword table index | |
A738 | B9 9E A0 | LDA $A09E,Y | get byte from table | |
A73B | 30 B2 | BMI $A6EF | go restore index, mask byte and print if byte was end marker | |
A73D | 20 47 AB | JSR $AB47 | else go print the character | |
A740 | D0 F5 | BNE $A737 | go get next character, branch always |
Prev: A69C | Up: Map | Next: A742 |