-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathheader2.as_
executable file
·166 lines (153 loc) · 3.04 KB
/
header2.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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
NUMRD: EQU 20
NUMCH: EQU 5
DATA: EQU 8000H
TABL: EQU 9000H
NUMTR: EQU 20
APRM: EQU 0FDH
JMP ST1
START: CALL 0F81BH
CPI 0FFH
JNZ 0F86CH
ST1: CALL ANONE
LDA îéôï
RLC
CPI NUMTR
JNC îåíïçõ
RLC
CPI NUMTR
JNC îåíïçõ
LDA ðáõúá
RLC
CPI NUMTR
JNC MORE2
RLC
CPI NUMTR
JNC úáîñôï
RLC
CPI NUMTR
JC îåíïçõ
úáîñôï: CALL PRINT
DB 0CH,0AH,'úáîñôï ',0
JMP START
îåíïçõ: CALL PRINT
DB 0CH,0AH,'îå íïçõ óëáúáôø',0
JMP START
MORE2: LDA çõäïë
ORA A
JZ PAUSE
ó÷ïâïäîï:
CALL PRINT
DB 0CH,0AH,'ó÷ïâïäîï ',0
JMP START
PAUSE: CALL PRINT
DB 0CH,0AH,'ðAõúá ',0
JMP START
ANONE: MVI A,0
STA ðáõúá
STA çõäïë
STA îéôï
MVI A,NUMTR
STA TRACE
STRT: LDA TRACE
DCR A
STA TRACE
RZ
LXI H,0F7E8H
MVI M,80H
CALL READ
CALL 0F82DH
CALL APR
CALL RDTABL
CALL FMAX
CPI NUMCH
JC ERR1
MOV A,B
CPI APRM
JZ SP1
LXI H,çõäïë
INR M
JMP STRT
ERR1: LXI H,îéôï
INR M
JMP STRT
SP1: LXI H,ðáõúá
INR M
JMP STRT
READ: LXI H,DATA
MVI B,NUMRD
MVI D,0
RD2: MVI C,0
RD1: LDA 0F782H
ANI 10H
RRC
RRC
RRC
RRC
XRA D
JZ RD0
INR C
JNZ RD1
MVI C,255
JMP RD3
RD0: MOV A,D
XRI 1
MOV D,A
RD3: MOV M,C
DCR B
INX H
JNZ RD2
RET
APR: LXI H,DATA
MVI B,NUMRD
AP0: MOV A,M
ANI APRM
MOV M,A
INX H
DCR B
JNZ AP0
RET
RDTABL: LXI H,TABL
LXI D,DATA
MVI B,NUMRD
MVI L,255
RDT1: MVI M,0
DCR L
JNZ RDT1
MVI M,0
RDT0: LDAX D
MOV L,A
INR M
DCR B
INX D
JNZ RDT0
RET
FMAX: LXI H,TABL
MVI L,0FFH
MVI A,0
MOV B,L
FM1: CMP M
JNC FM2
MOV B,L
MOV A,M
FM2: DCR L
JNZ FM1
RET
PRINT: POP H
MOV D,H
MOV E,L
PR0: MOV A,M
ORA A
JZ PR1
INX H
JMP PR0
PR1: INX H
XCHG
PUSH D
CALL 0F818H
POP D
XCHG
PCHL
çõäïë: DS 1
ðáõúá: DS 1
îéôï: DS 1
TRACE: DS 1