With BASIC:
Code: Select all
1 DIM B$(30)
3 LET A$="HELLO WORLD, THIS IS A SCROLLING ON THE 18TH LINE ON YOUR ZX81 SCREEN IN BASIC. JUST INITIALIZE A STRING VALUE IN A$ AND LET\' S RUN IT... "
4 LET A$=A$+A$( TO 30)
5 FOR A=1 TO LEN A$-30
6 LET B$=A$( A TO A+30)
7 PRINT AT 18,1;B$
8 IF INKEY$="" THEN NEXT A
11 GOTO 5
Code: Select all
3 LET A$="HELLO WORLD, THIS IS A SCROLLING ON THE 18TH LINE ON YOUR ZX81 SCREEN IN BASIC. JUST INITIALIZE A STRING VALUE IN A$ AND LET\' S RUN IT... "
4 LET A$=A$+A$( TO 30)
5 FOR A=1 TO LEN A$-30
7 PRINT AT 18,1;A$( A TO A+30)( TO 30)
8 IF INKEY$="" THEN NEXT A
11 GOTO 5
;------- Rom and Ram Symbols -------
RAM_D_FILE equ $400C
RAM_SPARE2 equ $407B
ORG $4082 ; [@16514/@h4082]
Lb4082:
LD HL,(RAM_D_FILE) ; GET D-FILE
LD DE,$0252
ADD HL,DE
INC HL
INC HL
LD B,$1D
Lb408D:
INC HL
LD A,(HL)
DEC HL
LD (HL),A
INC HL
DJNZ Lb408D ; [$408D:16525]
PUSH HL
LD HL,(RAM_SPARE2) ; GET UNUSED-16
LD A,(HL)
INC HL
LD (RAM_SPARE2),HL ; SET UNUSED-16
POP HL
LD (HL),A
RET ; ==========================
;------- Rom and Ram Symbols -------
RAM_VARS equ $4010
RAM_SPARE2 equ $407B
ORG $40A6 ; [@16550/@h40A6]
Lb40A6:
LD HL,(RAM_VARS) ; GET VARS
Lb40A9:
INC HL
LD A,(HL)
CP $FF ; [255]
JR NZ, Lb40A9 ; [$40A9:16553]
INC HL
LD A,(HL)
CP $FF ; [255]
JR NZ, Lb40A9 ; [$40A9:16553]
INC HL
LD (RAM_SPARE2),HL ; SET UNUSED-16
RET ; ==========================
Code: Select all
# 16514: SCROLLING LINE#18
1 REM [HEX:2A,0C,40,11,52,02,\
19,23,23,06,1D,23,7E,2B,\
77,23,10,F9,E5,2A,7B,40,\
7E,23,22,7B,40,E1,77,C9]
# 16550: RETRIVE $FF$FF TAG IN VARS
2 REM [HEX:\
2A,10,40,23,7E,FE,FF,20,FA,23,\
7E,FE,FF,20,F4,23,22,7B,40,C9 ]
3 LET A$=CHR$ 255+CHR$ 255+"HELLO WORLD, THIS IS A SCROLLING ON THE 18TH LINE ON YOUR ZX81 SCREEN. JUST INITIALIZE A STRING VALUE WITH A $FFFF TAG AND LET\' S RUN IT... "
4 RAND USR 16550
5 FOR A=1 TO LEN A$-2
6 RAND USR 16514
7 RAND SIN PI
8 IF INKEY$="" THEN NEXT A
10 CLS
11 GOTO 4