-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathLABEL.asm
95 lines (85 loc) · 1.3 KB
/
LABEL.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
10 ORG 100H
20 JP MAIN
30RPTCHR EQU 0BFEEH
40GPF EQU 0BFD0H
50AOUT EQU 0BD09H
60PUTSTR EQU 0BFF1H
70WAITK EQU 0BFCDH
80LDPSTR EQU 0BD00H
100MAIN: CALL CLS
110 LD DE,0104H
120 LD (POSXY), DE
130 LD HL,LABEL
140 CALL STRLN
150 LD A,B
160 LD (LNSTR),A
170 CALL DSPLBL
180 CALL WAIT
190 RET
980LABEL: DB ' poking stuff '
985LNSTR: DB 0
990POSXY: DB 0,0
1000WIDTH: DB 0
1020BUFFER: DEFS 144
1030DSPLBL: LD A,(LNSTR)
1040 LD B,A
1050 LD DE,(POSXY)
1060 CALL PUTSTR
1070 LD A,(LNSTR)
1080 ADD A,A ; B*2
1090 LD C,A
1100 ADD A,A ; B*4
1110 ADD A,C ; B*6
1120 LD (WIDTH),A
1130 LD B,A
1140 LD DE,(POSXY)
1150 LD HL,BUFFER
1160 INC HL
1170 INC HL
1180 CALL LDPSTR
1190 LD HL,BUFFER
1200 LD (HL),0FFH
1210 INC HL
1220 LD (HL),0FFH
1230 INC HL
1240 LD A,(WIDTH)
1250 LD B,A
1260LBL0: LD A,(HL)
1265 XOR 7EH
1270 OR 81H
1280 LD (HL),A
1290 INC HL
1300 DJNZ LBL0
1310 LD (HL),0FFH
1320 INC HL
1330 LD (HL),0FFH
1340 LD HL,BUFFER
1350 LD A,(WIDTH)
1360 ADD A,4
1370 LD B,A
1380 LD DE,(POSXY)
1390 CALL GPF
1400 RET
1600WAIT: CALL WAITK
1610 CP 0
1620 JP Z,WAIT
1630 RET
2000CLS: LD B, 144
2010 LD DE, 0
2020CLS0: LD A, 32
2030 CALL RPTCHR
2040 RET
2050CLLN: LD B,24
2060 LD E,0
2070 JP CLS0
3190STRLN: LD B,0
3200 PUSH HL
3210STRLN0: LD A,(HL)
3220 CP 0
3230 JP Z,STRLN1
3240 INC HL
3250 INC B
3260 JP STRLN0
3270STRLN1: POP HL
3280 RET