-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy path88VRAM.ASM
More file actions
327 lines (304 loc) · 2.94 KB
/
Copy path88VRAM.ASM
File metadata and controls
327 lines (304 loc) · 2.94 KB
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
; LSX-Dodgers VRAM
; PC-8801mkIISR
AT_VRAM:
ORG 0F000H,AT_VRAM-OFFSET
ESC1:
LD A,E
CP 'A'
JP Z,CTRL1E
CP 'B'
JP Z,CTRL1F
CP 'C'
JP Z,CTRL1C
CP 'D'
JP Z,CTRL1D
CP 'E'
JR Z,CT0CX
CP 'j'
CT0CX:
JP Z,CTRL0C
CP 'H'
JP Z,CTRL0B
CP 'J'
JP Z,CTRL06
CP 'K'
JP Z,CTRL05
CP 'L'
JP Z,CTRL0E
CP 'T'
JP Z,CTRL05
CP 'x'
JR Z,ESC1X
CP 'y'
JR NZ,ESC1Y
ESC1X:
LD (HL),1
ESC1Y:
CP '='
JR Z,ESC1W
CP 'Y'
JR NZ,ESC1Z
ESC1W:
LD (HL),2
ESC1Z:
CP 020H
JR C,ESC1C
ADD A,A
RET NC
ESC1C:
POP HL
JP ANK
ESC:
LD HL,PRINTE5
PUSH HL
LD HL,ESCFLG
LD (HL),0
DEC A
JR Z,ESC1
DEC A
JR NZ,ESC2
LD (HL),3
LD A,E
SUB 020H
LD (ESCYP+1),A
RET
ESC2:
DEC A
RET NZ
ESCYP: LD H,0
LD A,E
SUB 020H
LD L,A
JP _LOC
CTRL:
LD A,E
ADD A,A
OR 080H
LD L,A
LD H,CTRLTB/256
LD A,(HL)
INC L
LD H,(HL)
LD L,A
CALL JPHL
JP PRINTE5
CTRL1C:
LD HL,(_TXADR)
INC L
PRINTE3:
LD A,WIDTH
DEC A
CP L
JR NC,SET_TXADR_HL
LD L,0
INC H
PRINTE8:
LD A,(_LINE)
CP H
JR Z,PRINT2
LOC:
SET_TXADR_HL:
LD (_TXADR),HL
CTRL00:
RET
PRINT2:
CALL SCR
DEC H
JR SET_TXADR_HL
CTRL08:
LD A,(INSFLG)
CP 0CDH ;CALL ????
JR Z,CTRL02
CTRL1D:
LD HL,(_TXADR)
LD A,H
OR L
RET Z
LD A,L
OR A
JR Z,CTRL1DX1
DEC L
JR SET_TXADR_HL
CTRL1DX1:
LD A,WIDTH
DEC A
LD L,A
DEC H
JR SET_TXADR_HL
CTRL1E:
LD HL,(_TXADR)
LD A,H
OR A
RET Z
DEC H
JR SET_TXADR_HL
CTRL09:
LD HL,(_TXADR)
LD A,L
AND 0F8H
ADD A,8
LD L,A
JR PRINTE3
CTRL02:
LD A,(_TXADR)
OR A
JR Z,CTRL1D
CALL CTRL1D
LD HL,(_TXADR)
LD A,WIDTH
LD C,A
SUB L
LD B,A
LD A,C
DEC A
LD L,A
CALL LOC1
LD A,020H
C8X1:
LD C,(HL)
LD (HL),A
DEC HL
LD A,C
DJNZ C8X1
RET
CTRL05:
CALL _POS
LD HL,(_TXADR)
LD A,WIDTH
SUB L
LD B,A
CALL LOC0
CLLINE:
LD A,020H
CLLINE1:
LD (HL),A
INC HL
DJNZ CLLINE1
RET
CTRL0D:
XOR A
LD (_TXADR),A
RET
CTRL12:
LD HL,INSFLG
LD A,(HL)
XOR 0CCH ;CD:CALL ???? 1:LD BC,????
LD (HL),A
RET
CTRL0B:
LD HL,0
LD (_TXADR),HL
RET
CTRL1B:
LD A,1
LD (ESCFLG),A
RET
CTRL07:
LD A,(WK40)
PUSH AF
OR 20H
OUT (040H),A
LD B,16
C07X1:
CALL VBLANK
DJNZ C07X1
POP AF
OUT (040H),A
RET
INSERT:
LD HL,(_TXADR)
LD A,WIDTH
SUB L
LD B,A
CALL LOC0
LD A,020H
INS1:
LD C,(HL)
LD (HL),A
LD A,C
INC HL
DJNZ INS1
RET
CTRL0C:
CALL CTRL0B
CTRL06:
LD HL,(_TXADR)
CLS1:
CLS2:
PUSH HL
LD A,WIDTH
SUB L
LD B,A
CALL LOC1
LD A,020H
CLS3:
LD (HL),A
INC HL
DJNZ CLS3
POP HL
LD L,0
INC H
LD A,(_LINE)
CP H
JR NZ,CLS2
RET
CTRL04:
CALL _POS
LD A,L
OR A
RET Z
CTRL03:
CALL CTRL0D
CTRL0A:
CTRL1F:
LD HL,(_TXADR)
INC H
JP PRINTE8
CTRL0E:
CALL _POS
LD A,H
JR SCR1
SCR:
LD A,(_LINE)
DEC A
SCR1:
PUSH BC
PUSH DE
PUSH HL
PUSH AF
LD HL,0
CALL LOC1
EX DE,HL
LD HL,0100H
CALL LOC1
POP BC
LD A,B
OR A
SCRUP1:
JR Z,SCRCL
PUSH HL
PUSH DE
LD B,8
LD E,A
LD HL,120*256
LD D,L
SCRH2:
ADD HL,HL
JR NC,SCRH3
ADD HL,DE
SCRH3:
DJNZ SCRH2
LD C,L
LD B,H
POP DE
POP HL
LDIR
SCRCL:
LD A,WIDTH
LD B,A
EX DE,HL
CALL CLLINE
POP HL
POP DE
POP BC
RET