
 1000  *SAVE FIND.START
 1010  *--------------------------------
 1020  *   SEARCH FROM HIMEM TO PP FOR LINE "1000"
 1030  *   SET $CA,CB TO BEGINNING OF THAT LINE
 1040  *--------------------------------
 1050  SRCP   .EQ $00,01
 1060  HIMEM  .EQ $4C,4D
 1070  PP     .EQ $CA,CB
 1080  *--------------------------------
 1090         .OR $300
 1100  *--------------------------------
 1110  DO
 1120         LDX PP       IF NOT FIRST TIME,
 1130         LDA PP+1          START WHERE WE LEFT OFF
 1140         BIT DONE.ONCE.FLAG
 1150         BMI .1       ...NOT FIRST TIME
 1160  *---HAS TO BE A FIRST TIME-------
 1170         SEC          SET FLAG
 1180         ROR DONE.ONCE.FLAG
 1190         LDX HIMEM    START AT TOP OF SOURCE AREA
 1200         LDA HIMEM+1
 1210  *---STORE STARTING POINTER-------
 1220  .1     STX SRCP
 1230         STA SRCP+1
 1240         JSR DEC.SRCP
 1250  *---SEARCH FOR "1000"------------
 1260  .2     JSR DEC.SRCP
 1270         LDA SRCP+1
 1280         CMP /$0800   DON'T SEARCH BEYOND $800
 1290         BCC .3       ...END OF SEARCH
 1300         LDY #0
 1310         LDA (SRCP),Y
 1320         CMP #1000    COMPARE LO-BYTE
 1330         BNE .2       ...NO, KEEP SCANNING
 1340         INY          ...MATCH, CHECK HI-BYTE
 1350         LDA (SRCP),Y
 1360         CMP /1000
 1370         BNE .2       ...NO, KEEP SCANNING
 1380  *---FOUND IT, POINT PP TO IT-----
 1390         JSR DEC.SRCP BACK UP OVER BYTE COUNT
 1400         LDA SRCP
 1410         STA PP
 1420         LDA SRCP+1
 1430         STA PP+1
 1440  .3     RTS
 1450  *--------------------------------
 1460  DEC.SRCP
 1470         LDA SRCP
 1480         BNE .1
 1490         DEC SRCP+1
 1500  .1     DEC SRCP
 1510         RTS
 1520  *--------------------------------
 1530  DONE.ONCE.FLAG .HS 00
 1540  *--------------------------------

