[ASM] Get an address by line...

Anything Sinclair ZX Basic related; history, development, tips - differences between BASIC on the ZX80 and ZX81
Post Reply
User avatar
XavSnap
Posts: 1941
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

[ASM] Get an address by line...

Post by XavSnap »

HI,
It's a little routine to retrieve the first REM address in a specific line…


Get_line.jpg


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
Basic demo:
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 
GetLine.zip
(1.36 KiB) Downloaded 167 times
GETLINE.P
(1.23 KiB) Downloaded 151 times
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Moggy
Posts: 3266
Joined: Wed Jun 18, 2008 2:00 pm

Re: [ASM] Get an address by line...

Post by Moggy »

Thanks for this very useful at the moment for me. :D
Post Reply