![]() |
Routines |
| Prev: 1D03 | Up: Map | Next: 1DAB |
|
This subroutine is used to find occurrences of either DATA, DEF FN or NEXT.
|
||||||||||||||
| LOOK_PROG | 1D86 | LD A,(HL) | Fetch the present character. | |||||||||||
| 1D87 | CP ":" | Jump forward if it is a ':', which will indicate there are more statements in the present line. | ||||||||||||
| 1D89 | JR Z,LOOK_P_2 | |||||||||||||
|
Now a loop is entered to examine each further line in the program.
|
||||||||||||||
| LOOK_P_1 | 1D8B | INC HL | Fetch the high byte of the line number and return with carry set if there are no further lines in the program. | |||||||||||
| 1D8C | LD A,(HL) | |||||||||||||
| 1D8D | AND $C0 | |||||||||||||
| 1D8F | SCF | |||||||||||||
| 1D90 | RET NZ | |||||||||||||
| 1D91 | LD B,(HL) | The line number is fetched and passed to NEWPPC. | ||||||||||||
| 1D92 | INC HL | |||||||||||||
| 1D93 | LD C,(HL) | |||||||||||||
| 1D94 | LD ($5C42),BC | |||||||||||||
| 1D98 | INC HL | Then the length is collected. | ||||||||||||
| 1D99 | LD C,(HL) | |||||||||||||
| 1D9A | INC HL | |||||||||||||
| 1D9B | LD B,(HL) | |||||||||||||
| 1D9C | PUSH HL | The pointer is saved whilst the address of the end of the line is formed in the BC register pair. | ||||||||||||
| 1D9D | ADD HL,BC | |||||||||||||
| 1D9E | LD B,H | |||||||||||||
| 1D9F | LD C,L | |||||||||||||
| 1DA0 | POP HL | The pointer is restored. | ||||||||||||
| 1DA1 | LD D,$00 | Set the statement counter to zero. | ||||||||||||
| LOOK_P_2 | 1DA3 | PUSH BC | The end-of-line pointer is saved whilst the statements of the line are examined. | |||||||||||
| 1DA4 | CALL EACH_STMT | |||||||||||||
| 1DA7 | POP BC | |||||||||||||
| 1DA8 | RET NC | Make a return if there was an 'occurrence'; otherwise consider the next line. | ||||||||||||
| 1DA9 | JR LOOK_P_1 | |||||||||||||
| Prev: 1D03 | Up: Map | Next: 1DAB |