-
Notifications
You must be signed in to change notification settings - Fork 82
/
ob4src
218 lines (218 loc) · 2.58 KB
/
ob4src
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
.PAG 'O/C CHAN,R/W TAPE'
CHKIN PHA
TXA
PHA
TYA
PHA
LDA #0
STA SATUS
TXA
JSR JLTLK
BEQ JX310
JX300 LDY #MS3-MS1
JX305 JMP ERMSG
JX310 JSR JZ100
LDA FA
BEQ JX320
CMP #3
BEQ JX320
BCS JX330
LDX SA
BEQ JX320
LDY #MS15-MS1
BNE JX305
JX320 STA DFLTN
JMP RSTOR
JX330 PHA
JX3301 JSR TALK
LDA SA
BPL JX340
JSR TKATN
JMP JX350
JX340 AND #$1F
ORA #$60
JSR TKSA
JX350 LDA SATUS
BPL *+5
JMP OP37
PLA
JMP JX320
CHKOUT
CKOUT PHA
TXA
PHA
TYA
PHA
LDA #0
STA SATUS
LDA #$FF
STA L026A
TXA
JSR JLTLK
BNE JX300
JSR JZ100
LDA FA
BEQ JX300
CK10 CMP #3
BEQ JX360
BPL JX370
LDX SA
BNE JX360
LDY #MS16-MS1
BNE JX305
JX360 STA DFLTO
JMP RSTOR
JX370 PHA
JSR LISTN
LDA SA
BPL JX380
JSR SCATN
JMP JX390
JX380 AND #$1F
ORA #$60
JSR SECND
JX390 LDA SATUS
BPL *+5
JMP OP37
PLA
JMP JX360
JTP20 JSR ZZZ
LDX FA
INC BUFPT-1,X
LDY BUFPT-1,X
CPY #BUFSZ
RTS
;STAYS IN ROUTINE TILL PLAY SWITCH
CSTE1 JSR CS10
BEQ CS25
LDY #MS7-MS1 ;"PRESS PLAY"
CS30 JSR MSG
LDY #MS9-MS1 ;"ON CASSETTE #"
JSR MSG
LDA FA
ORA #'0
JSR PRT ;PRINT CASSETTE #
CS40 JSR STOP ;WATCH FOR STOP KEY
JSR CS10 ;WATCH CASSETTE SWITCHES
BNE CS40
LDY #MS18-MS1 ;"OK"
JMP MSG
;SUBR RETURNS <> FOR CASSETTE SWITCH
CS10 LDA #$10 ;ASSUME CASSETTE #1
LDX FA
CPX #$01 ;REALLY CASSETTE 1
BEQ CS20 ;YES. .
LDA #$20 ;NO. . .CASSETTE #2
CS20 BIT PIAL ;CLOSED
BNE CS25 ;NO. . .
BIT PIAL ;CHECK AGAIN TO DEBOUNCE
CS25 RTS
;CHECKS FOR PLAY & RECORD
CSTE2 JSR CS10
BEQ CS25
LDY #MS7-MS1 ;"PRESS PLAY AND"
JSR MSG
LDY #MS8-MS1 ;"RECORD"
BNE CS30
RBLK LDA #0
STA SATUS
STA VERCK
JSR LDAD1
TRD JSR TWAIT
JSR CSTE1
SEI
LDA #0
STA RDFLG
STA SNSW1
STA CMP0
STA PTR1
STA PTR2
STA DPSW
LDX #$0E
JSR BSIV
LDX FA
DEX
BEQ TRD2
LDA #$90
STA IER
BNE TAPE
TRD2 INC PIAL1
BNE TAPE
WBLK JSR LDAD1
TWRT JSR TWAIT
LDA #20
STA SHCNH
TWRT2 JSR CSTE2
SEI
LDA #$A0
STA IER
LDX #8
JSR BSIV
TAPE LDA #2
STA FSBLK
JSR NEWCH
DEC PIAS
LDX FA
DEX
BNE TP20
LDA #$34
STA PIAS
STA CAS1
BNE TP30
TP20 LDA PIA
STX CAS2
AND #$EF
STA PIA
TP30 STA T2H
CLI
TP40 LDA #>KEY
CMP CINV+1
BEQ TP50
JSR TSTOP
BIT PIAS
BPL TP40
BIT PIAK
JSR UDTIM
JMP TP40
TP50 RTS
TWAIT JSR TSTOP
LDA #>KEY
CMP CINV+1
BNE TWAIT
RTS
TSTOP JSR STOP1
BNE STOP3
PHP
JSR TNIF
JSR JX770
PLP
STOP3 JMP BSTOP
STT1 STX TEMP
LDA CMP0
ASL A
ASL A
CLC
ADC CMP0
CLC
ADC TEMP
STA TEMP
LDA #0
BIT CMP0
BMI STT2
ROL A
STT2 ASL TEMP
ROL A
ASL TEMP
ROL A
TAX
STT3 LDA T2L
CMP #21
BCC STT3
ADC TEMP
STA TIL
TXA
ADC T2H
STA TIH
CLI
RTS
.FILE OB5SRC