(C) Eugene Frost
Krasnoyarsk Territory, pp. Brazhnoe.
I suggest a program like "running a line on the table at
interrupt." Text of the program is given adapted to interrupt,
as I believe that it is easier to remove
"Preryvatelnye" bells and whistles than
their supply. Here is its listing:
147.
ORG 50000
TABLE EQU 60000
SIZE EQU 8
IMOFF DI
LD A, 63
LD I, A
IM 1
EI
RET
ENT
IMON DI
LD A, 9
LD I, A
IM 2
LD A, # C3
LD (65129), A
LD HL, SCROLL
LD (65130), HL
EI
RET
SCROLL PUSH AF
PUSH HL
PUSH DE
PUSH BC
CALL LINE
POP BC
POP DE
POP HL
POP AF
JP 1956
NEXT LD HL, (TXTM)
INC HL
LD (TXTM), HL
LD A, (HL)
CP 255
JR NZ, NEXT1
LD HL, TXT
LD (TXTM), HL
LD A, (HL)
NEXT1 AND 127
CP 1932
JR C, NEXT3
LD L, A
LD H, 0
ADD HL, HL
ADD HL, HL
ADD HL, HL
LD DE, (23606)
ADD HL, DE
LD DE, BUF + SIZE
LD B, 8
NEXT2 LD A, (HL)
LD (DE), A
INC HL
INC D
DJNZ NEXT2
NEXT3 LD A, 7
JR LINE2
LINE LD A, (LINEM)
DEC A
JR Z, NEXT
LINE2 LD (LINEM), A
CALL SCR
RET
SCR LD DE, TABLE
LD HL, BUF + SIZE
LD C, 8
SCR1 PUSH HL
AND A
RL (HL)
DEC HL
LD B, SIZE
SCR2 PUSH BC
RL (HL)
PUSH AF
CALL DEG
DEC HL
POP AF
POP BC
DJNZ SCR2
POP HL
INC H
DEC C
JR NZ, SCR1
RET
DEG LD B, 8
DEG1 PUSH BC
LD A, (HL)
DEG2 RLA
DJNZ DEG2
CALL PLOT
POP BC
DJNZ DEG1
RET
PLOT PUSH HL
EX DE, HL
LD C, (HL)
JR NC, PL2
PL1 LD B, C
PL2 INC HL
LD E, (HL)
INC HL
LD D, (HL)
INC HL
EX DE, HL
LD A, (HL)
OR C
XOR C
OR B
LD (HL), A
POP HL
RET
LINEM DEFB 1
TXTM DEFW TXT-1
BUF DEFS 2048
TXT DEFM "HELLO ALL HA"
DEFM "CKERS ALL OV"
DEFM "ER THE WORLD"
DEFM "!!!"
DEFS SIZE
DEFB 255
2
Also, give it a dump:
C350: F3 3E 3F ED 47 ED 56 FB: F5
C358: C9 F3 3E 09 ED 47 ED 5E: 9D
C360: 3E C3 32 69 FE 21 6D C3: 0E
C368: 22 6A FE FB C9 F5 E5 D5: 28
C370: C5 CD AE C3 C1 D1 E1 F1: 9A
C378: C3 38 00 2A FE C3 23 22:66
C380: FE C3 7E FE FF 20 July 1921: C7
C388: 00 CC 22 FE C3 7E E6 7F: DD
C390: FE 20 38 16 6F 26 00 29:7 D
C398: 29 29 ED 5B 36 5C 19 November: B1
C3A0: 08 C4 06 08 7E 12 23 14:04
C3A8: 10 FA 3E 18 July 2006 3A FD: 0F
C3B0: C3 3D 28 C7 32 FD C3 CD: 21
C3B8: BB C3 C9 EA 21 November 1960 8:46
C3C0: C4 0E 08 E5 A7 CB 16 2B: F5
C3C8: June 2008 C5 CB 16 F5 CD DC: DD
C3D0: C3 2B F1 C1 10 F4 E1 24:3 C
C3D8: 0D 20 E8 C9 June 2008 C5 7E: CA
C3E0: October 17 FD CD EA C3 C1 10:12
C3E8: F5 C9 E5 EB 4E 30 January 1941: F9
C3F0: 23 5E 23 56 23 EB 7E B1: EA
C3F8: A9 B0 77 E1 C9 01 FF CB: 00
C400 - CBFF - buffer area
CC00: 48 45 4C 4C 4F 20 41 4C: ED
CC08: 4C 20 48 41 43 45 52 4B: EE
CC10: 53 20 41 4C 4C 4F 20 56: ED
CC18: 45 52 20 54 48 45 20 57: F3
CC20: 4F 52 4C 44 20 21 21 21: A0
CC28: 20 00 00 00 00 00 00 00:14
CC30: 00 FF 00 00 00 00 00 00: FB
Without any change
program interrupt takes more than 1 / 50 seconds
SOS but not too slow
strongly (to work with him at the end of the handler put JP 56 -
it can safely remove).
Table size for scroll'a and
its length depends on the variable
SIZE and SIZE * equal to 192. In the present form of the
variable is set to eight, which means that the screen SPECCY
will run eight quite decent form letters. If necessary, it is
enough just to change the text on the assembler and text in
BASIC (an editor table - at the request of the program).
The editor is mashinokodovaya
insert - the text:
147.
ORG [PROG +7]; so
; Can not write, count
; This value.
LD A, (PROG +5)
AND # 18
RRCA
RRCA
RRCA
OR # 58
LD B, A
LD A, (PROG +6)
AND # 07
RRCA
RRCA
RRCA
ADD A, D
LD C, A
RET
2
This text should be in line otassemblirovat REM, leaving two
bytes of variables. Value
PROG take from the editor, she
depends on the availability BETA-DISK and
INTERFACE-1. Reduced version
editor written per
taped version of the computer
(I drive is not burdened).
Happy as their owners can easily add the necessary
USR 15619. He is rather clumsy,
but in general, cope with their
work, setting the trajectory of scrolling, using the "wavy"
graphics sinus (can cosine).
Also, no problem you can
instead "volnovodstva"
insert an elementary survey of the keyboard and create their
own unique and inimitable table. Your attention is drawn to the
label BUF, which reserves a memory space large enough to store
32 letters, the storage format that matches the format
sinklerovskogo screen (this explains so a considerable amount
of buffer), so that when you install the BUF in the screen you
will have another very ordinary traveling line needed to
scan.
Tag TAB determines the starting address table and must
conform to the input value of request BASIC editor.
0 REM this should be mashinokodovaya procedure.
10 PAPER 0: INK 7: BORDER 0: CLEAR 24999
20 INPUT "TAB"; r; REM start address of the location of the
table. 30 INPUT "SIZE"; d; REM and its size (in chars)
40 LET q = PEEK 23636 * 256 + PEEK 23635
100 FOR m = 88 TO 57 STEP -32 / d
110 FOR n = 255 TO 0 STEP -32 / d
120 LET x = n
130 LET y = INT (m + n / 5 * SIN (n/25))
140 PLOT x, y
150 GO SUB 300
160 NEXT n
170 NEXT m
180 STOP
300 REM * CREATING TABLE *
310 LET c = INT (x / 8): LET u = INT (y / 8)
320 POKE q +5,21-u: POKE q +6, c
330 LET s = USR (q +7) + ABS (7 - (yu * 8)) * 256: PRINT # 0;
AT 1,0;
"SCREEN $" s
340 LET b = 2 ^ (ABS (xc * 8-7)): PRINT # 0; AT 1,23; "BIN"; b;
"" 350 PRINT # 0; AT 0,23; "TAB"; r
360 POKE r, b
370 POKE r +2, INT (s/256): POKE r +1, (s-INT (s/256) * 256)
380 LET r = r +3
390 RETURN
********************************