-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoutstr.as_
executable file
·150 lines (149 loc) · 1.49 KB
/
outstr.as_
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
ORG 7D00H
LXI H,ZAST
CALL 0F818H
MVI B,3
M03:
MOV A,B
CALL CADR
LXI D,20H
DAD D
MVI M,80H
DCR B
JNZ M03
MVI A,1
CALL CADR
MVI M,0EH
MVI A,1
STA INSTR
STA MODCOD
MVI B,1
M00:
PUSH B
CALL 0F803H
POP B
CPI 19H
JZ UP
CPI 1AH
JZ DOWN
CPI 20H
JNZ M00
LXI H,MODCOD
MOV A,B
CPI 3
JZ START
DCR A
ADD L
MOV L,A
MOV A,M
CPI 1
JZ ON
MVI M,1
MOV A,B
CALL CADR
INX H
MVI M,20H
JMP M00
ON:
MVI M,2
MOV A,B
CALL CADR
INX H
MVI M,82H
JMP M00
UP:
MOV A,B
DCR A
JZ M00
MOV A,B
CALL CADR
MVI M,20H
MOV A,B
DCR A
CALL CADR
MVI M,0EH
JMP M00
DOWN:
MOV A,B
CPI 3
JNC M00
CALL CADR
MVI M,20H
MOV A,B
INR A
CALL CADR
MVI M,0EH
JMP M00
INR A
CADR:
MOV B,A
LXI H,0E7C2H+2
LXI D,78+78
M01:
DAD D
DCR A
JNZ M01
RET
START:
LXI H,STR0
CALL 0F818H
LXI D,8000H
LXI H,2100H
MOV A,D
CALL 0F815H
MOV A,E
CALL 0F815H
M05:
MOV A,M
MOV B,A
CPI 0DH
JZ CR
CPI 0FFH
JZ _END
LDA MODCOD
CPI 1
JZ M06
MOV A,B
CPI 60H
JC M06
CPI 128
JNC M06
ADI 128
MOV B,A
M06: MOV A,B
STAX D
INX H
INX D
JMP M05
CR:
STAX D
MVI B,0AH
INX D
LDA INSTR
CPI 1
JZ M06
MVI A,0AH
STAX D
INX D
MVI A,0DH
STAX D
INX D
JMP M06
_END:
MVI A,1AH
STAX D
LXI H,STR1
CALL 0F818H
MOV A,D
CALL 0F815H
MOV A,E
CALL 0F815H
JMP 0F86CH
MODCOD: DS 1
INSTR: DS 1
ZAST: DB 1FH,' íåîà'
DB 0AH,0AH,0DH,' íïäéæéëáãéñ ëïäï÷'
DB 0AH,0AH,0DH,' ðòïðõóë óôòïþåë'
DB 0AH,0AH,0DH,' úáðõóë íïäéæéëáôïòá'
DB 0
STR0: DB 0DH,0AH,' îáþáìï:',0
STR1: DB 0DH,0AH,' ëïîåã :',0