Author: Martin Ancher
Release Date: 15 April 2017
Requirements: 16K
Description: My first ZX81 release. A small utility to print the labels (and their address) generated by ZX Assembler 2 v38.
Download link: lstlab-h4f.p (source is relocatable)
Freeware - BSD license.
Code: Select all
1 REM ///<<<< LIST LABELS <<<
EMRND? PLOT 4:5 ?Y 7 IF 7 PL
OT FFPI4PF NEW LIST ACS ZACS
ZACS ZACS ZLEN 0NOT ? NEW ?LE
N 0NOT FACS ZACS ZACS ZLEN 0N
OT ? NEW ?LEN 0NOT Y8711 /TAN
?NOT ?
2 RAND 1
3 RAND USR 16516
4 STOP
5 PRINT "INPUT CODE YOU REMBERED [X999]"
6 INPUT A$
55 RAND (CODE A$( TO 1)-28)*1000+VAL A$(2 TO )
56 CLS
57 RAND USR 16516
9995 STOP
9996 SAVE "LSTLAB"
9997 LIST 9999
9999 REM LIST LABELS
___________
THIS LITTLE UTILITY WILL LIST
LABELS OF ASSEMBLER SOURCE
COMPILED WITH [ZX] [ASSEMBLER] [2] [V38]
[RUN] WILL DISPLAY THE 1ST PAGE.
THIS CAN THEN BE PRINTED WITH
[LLIST]
IF THERE ARE MORE LABELS THAN
CAN BE WRITTEN ON 1 PAGE, THE
PROGRAM STOPS WITH ERROR [5] AND A
CODE LIKE [X999]. REMEMBER THIS
CODE
START THE PROGRAM AGAIN WITH
[GOTO] [5] AND INPUT THE CODE TO
CONTINUE THE DISPLAY OF THE LIST
THIS MAY BE REPEATED TO DISPLAY
AND PRINT ALL PAGES
Code: Select all
SEED=4032
; CALL WITH RAND 1
; RAND USR X
; IF SEED IS NOT 1 MOVE
; SEED TO POSITION AND
; GO TO LABEL FIRST
JR START
DM "<<< LIST LABELS <<<"
START LD HL,(SEED)
LD A,H
OR 0
JR NZ NXTLT
; FIND 00 00
LD HL,6100
FIRST LD A,0
INC HL
CP (HL)
JR NZ FIRST
INC HL
CP (HL)
JR NZ FIRST
DEC HL
NXTLT DEC HL
; GO BACKWARD AND WRITE
; CHAR UNTIL CHAR IS
; BELOW 28 OR PI
LD A,(HL)
CP 1C
JR C END
CP 42
JR NZ WRITE
; IF PI WRITE SPACES, THE
; NEXT 2 NUMBERS AND
; SPACES AND GO BACK TO
; LABEL WRITE
DEC HL
LD A,(HL)
LD B,A
LD A,0
RST 10
LD A,B
AND F0
SRL A
SRL A
SRL A
SRL A
ADD A,1C
RST 10
LD A,B
AND F
ADD A,1C
RST 10
DEC HL
LD A,(HL)
LD B,A
AND F0
SRL A
SRL A
SRL A
SRL A
ADD A,1C
RST 10
LD A,B
AND F
ADD A,1C
RST 10
LD A,76
LD (4007),HL
WRITE RST 10
JR NXTLT
END RET