It's a little routine to retrieve the first REM address in a specific line…
Code: Select all
LINE_ADDR .equ $09D8 ; ZX81 ROM ROUTINE
RAM_SPARE2 .equ $407B ; TEMP LINE BUFFER
.org 16514 ; or somethings else
.dw $7676 ; hide me
main:
LD HL,(RAM_SPARE2) ; BASIC LINE BUFFER (16507)
CALL LINE_ADDR ; [LINE-ADDR]
LD BC,$0005
ADD HL,BC
LD B,H
LD C,L
RET
.end
1000 > Get ADD value from LINE address L=LINE (+ 5: HEADER+REM token).
2000 > Display the REM line.
Code: Select all
0 REM [HEX:\
76,76,2A,7B,40,CD,D8,09,\
01,05,00,09,44,4D,C9 ]
# REM HELLO
6 REM [HEX:\
2D,2A,31,31,34 ]
# REM WORLD
8 REM [HEX:\
3C,34,37,31,29 ]
10 LET L=6
20 GOSUB 1E3
30 PRINT ADD
40 GOSUB 2E3
50 PRINT
60 LET L=8
70 GOSUB 1E3
80 PRINT ADD
90 GOSUB 2E3
95 PRINT
100 LIST 6
1000 POKE 16508,INT (L/256)
1100 POKE 16507,L-256*PEEK 16508
1200 LET ADD=USR 16516
1300 RETURN
2000 FOR A=ADD TO 5E4
2200 PRINT (CHR$ PEEK A) AND PEEK A<>118;
2300 IF PEEK A<>118 THEN NEXT A
2400 RETURN