Prev: A613 Up: Map Next: A642
A617: search Basic for temp integer line number from AX
Used by the routine at A8C0.
returns carry set if found
A617 A0 01 LDY #$01 set index to next line pointer high byte
A619 85 5F STA $5F save low byte as current
A61B 86 60 STX $60 save high byte as current
A61D B1 5F LDA ($5F),Y get next line pointer high byte from address
A61F F0 1F BEQ $A640 pointer was zero so done, exit
A621 C8 INY increment index ...
A622 C8 INY ... to line # high byte
A623 A5 15 LDA $15 get temporary integer high byte
A625 D1 5F CMP ($5F),Y compare with line # high byte
A627 90 18 BCC $A641 exit if temp < this line, target line passed
A629 F0 03 BEQ $A62E go check low byte if =
A62B 88 DEY else decrement index
A62C D0 09 BNE $A637 branch always
A62E A5 14 LDA $14 get temporary integer low byte
A630 88 DEY decrement index to line # low byte
A631 D1 5F CMP ($5F),Y compare with line # low byte
A633 90 0C BCC $A641 exit if temp < this line, target line passed
A635 F0 0A BEQ $A641 exit if temp = (found line#)
not quite there yet
A637 88 DEY decrement index to next line pointer high byte
A638 B1 5F LDA ($5F),Y get next line pointer high byte
A63A AA TAX copy to X
A63B 88 DEY decrement index to next line pointer low byte
A63C B1 5F LDA ($5F),Y get next line pointer low byte
A63E B0 D7 BCS $A617 go search for line # in temporary integer from AX, carry always set
A640 18 CLC clear found flag
This entry point is used by the routines at A642 and A69C.
A641 60 RTS
Prev: A613 Up: Map Next: A642