-
Notifications
You must be signed in to change notification settings - Fork 85
/
Copy pathob5src
307 lines (307 loc) · 3.18 KB
/
ob5src
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
.PAG 'CASSETTE READ'
READ LDX T2H
LDY #$FF
TYA
SBC T2L
CPX T2H
BNE READ
RD1 STX TEMP
TAX
STY T2L
STY T2H
TYA
SBC TEMP
STX TEMP
LSR A
ROR TEMP
LSR A
RADS ROR TEMP
RD3 LDA CMP0
CLC
ADC #60
BIT PIA
BIT PIAL
CMP TEMP
BCS RDBK
LDX DPSW
BEQ RJDJ
JRADJ JMP RADJ
RJDJ LDX PCNTR
BMI JRAD2
LDX #0
ADC #48
ADC CMP0
CMP TEMP
BCS RADX2
INX
ADC #38
ADC CMP0
CMP TEMP
BCS RADL
ADC #44
ADC CMP0
CMP TEMP
BCC SRER
JRAD2 JMP RAD2
SRER LDA SNSW1
BEQ RDBK
STA RER
BNE RDBK
RADX2 INC REZ
BCS RAD5
RADL DEC REZ
RAD5 SEC
SBC #19
SBC TEMP
ADC SVXT
STA SVXT
LDA FIRT
EOR #1
STA FIRT
BEQ RAD3
STX DATA
RDBK LDA SNSW1
BEQ RADBK
BIT IFR
BVC RADBK
LDA #0
STA FIRT
LDA PCNTR
BPL RAD4
BMI JRAD2
RADP LDX #166
JSR STT1
LDA PRTY
BNE SRER
RADBK JMP PREND
RAD3 LDA SVXT
BEQ ROUT1
BMI ROUT2
DEC CMP0
DEC CMP0
ROUT2 INC CMP0
ROUT1 LDA #0
STA SVXT
CPX DATA
BNE RAD4
TXA
BNE SRER
LDA REZ
BMI RDBK
CMP #16
BCC RDBK
RAD3G STA SYNO
BCS RDBK
RAD4 TXA
EOR PRTY
STA PRTY
LDA SNSW1
BEQ RADBK
DEC PCNTR
BMI RADP
LSR DATA
ROR MYCH
LDX #218
JSR STT1
JMP PREND
RAD2 LDA SYNO
BEQ RAD2Y
LDA SNSW1
BEQ RAD2X
RAD2Y LDA PCNTR
BMI RAD2X
JMP RADL
RAD2X LSR TEMP
LDA #147
SEC
SBC TEMP
ADC CMP0
ASL A
TAX
JSR STT1
INC DPSW
RADQ LDA SNSW1
BNE RADQ2
RADQ1 LDA SYNO
BEQ RDBK2
STA RER
LDA #0
STA SYNO
LDA #$C0
STA IER
STA SNSW1
RADQ2 LDA SYNO
STA DIFF
BEQ RADK
LDA #0
STA SNSW1
LDA #$40
STA IER
RADK LDA MYCH
STA OCHAR
LDA RER
RADR1 ORA REZ
STA PRP
RDBK2 JMP PREND
RADJ JSR NEWCH
STA DPSW
LDX #218
JSR STT1
LDA FSBLK
BEQ RD15
STA SHCNL
SPERR=16
CKERR=32
SBERR=4
LBERR=8
RD15 LDA #$F
BIT RDFLG
BPL RD20
LDA DIFF
BNE RD12
LDX FSBLK
DEX
BNE RD10
;LONG BLOCK ERROR
LDA #LBERR
JSR UDST
BNE RD10
RD12 LDA #0
STA RDFLG
RD10 JMP PREND
RD20 BVS RD60
BNE RD200
LDA DIFF
BNE RD10
LDA PRP
BNE RD10
LDA SHCNL
LSR A
LDA OCHAR
BMI RD22
BCC RD40
CLC
RD22 BCS RD40
AND #$F
STA RDFLG
RD200 DEC RDFLG
BNE RD10
LDA #$40
STA RDFLG
JSR RD300
LDA #0
STA SHCNH
BEQ RD10
RD40 LDA #$80
STA RDFLG
BNE RD10
RD60 LDA DIFF
BEQ RD70
LDA #SBERR
; SHORT BLOCK ERROR
JSR UDST
LDA #0
JMP RD161
RD70 JSR WRT62
BNE *+5
JMP RD160
LDX SHCNL
DEX
BEQ RD58
LDA VERCK
BEQ RD80
LDY #0
LDA OCHAR
CMP (SAL)Y
BEQ RD80
LDA #1
STA PRP
RD80 LDA PRP
BEQ RD59
LDX #61
CPX PTR1
BCC RD55
RD56 LDX PTR1
LDA SAH
STA BAD+1,X
LDA SAL
STA BAD,X
INX
INX
STX PTR1
JMP RD59
RD58 LDX PTR2
CPX PTR1
BEQ RD90
LDA SAL
CMP BAD,X
BNE RD90
LDA SAH
CMP BAD+1,X
BNE RD90
INC PTR2
INC PTR2
LDA VERCK
BEQ RD52
LDA OCHAR
LDY #0
CMP (SAL)Y
BEQ RD90
LDA #1
STA PRP
RD52 LDA PRP
BEQ RD59
;SECOND PASS ERR
RD55 LDA #SPERR
JSR UDST
BNE RD90
RD59 LDA VERCK
BNE RD90
LDA OCHAR
LDY #0
STA (SAL)Y
RD90 INC SAL
BNE RD180
INC SAH
BNE RD180
RD160 LDA #$80
RD161 STA RDFLG
LDX FSBLK
DEX
BMI RD167
STX FSBLK
RD167 DEC SHCNL
BEQ RD175
LDA PTR1
BNE RD180
STA FSBLK
BEQ RD180
RD175 JSR TNIF
JSR RD300
LDY #0
STY SHCNH
JSR VPRTY
LDA SHCNH
EOR OCHAR
BEQ RD180
LDA #CKERR
;CHKSUM ERROR
JSR UDST
RD180 JMP PREND
RD300 LDA STAH
STA SAH
LDA STAL
STA SAL
RTS
UDST ORA SATUS
STA SATUS
RTS
NEWCH LDA #8
STA PCNTR
LDA #0
STA FIRT
STA RER
STA PRTY
STA REZ
RTS
.FILE OB6SRC