-
Notifications
You must be signed in to change notification settings - Fork 82
/
ob3src
230 lines (230 loc) · 2.34 KB
/
ob3src
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
.PAG 'SAVE-SYS-TIME'
FAH LDA VERCK
PHA
FAH30 JSR RBLK
LDY #0
LDA (TBUF)Y
CMP #EOT
BEQ FAH40
CMP #BLF
BEQ FAH50
CMP #BDFH
BNE FAH30
FAH50 TAX
LDA TXTPTR+1
BNE FAH45
LDY #MS17-MS1
JSR MSG
LDY #5
FAH55 LDA (TBUF)Y
JSR PRT
INY
CPY #21
BNE FAH55
FAH45 LDY #1
FAH40 PLA
STA VERCK
TYA
RTS
LF5E3 LDY #192-1
LDA #'
LF5E7 STA (TBUF)Y
DEY
BNE LF5E7
RTS
TAPEH STA T1
LDA STAH
PHA
LDA STAL
PHA
LDA EAH
PHA
LDA EAL
PHA
JSR LF5E3
LDA T1
STA (TBUF)Y
INY
LDA STAL
STA (TBUF)Y
INY
LDA STAH
STA (TBUF)Y
INY
LDA EAL
STA (TBUF)Y
INY
LDA EAH
STA (TBUF)Y
INY
STY T2
LDY #0
STY T1
TH20 LDY T1
CPY FNLEN
BEQ TH30
LDA (FNADR)Y
LDY T2
STA (TBUF)Y
INC T1
INC T2
BNE TH20
TH30 JSR LDAD1
JSR TWAIT
LDA #$69
STA SHCNH
JSR TWRT2
PLA
STA EAL
PLA
STA EAH
PLA
STA STAL
PLA
STA STAH
RTS
LDAD2 JSR TWAIT
LDX #0
LDY #1
LDAD3 LDA (TBUF)Y
STA SAL,X
INX
INY
CPX #4
BNE LDAD3
LDA SAL
STA STAL
LDA SAH
STA STAH
RTS
ZZZ LDA #<TAPE1
STA TBUF
LDA #>TAPE1
STA TBUF+1
LDA FA
LSR A
BCS ZZ10
LDA #<TAPE2
STA TBUF
LDA #>TAPE2
STA TBUF+1
ZZ10 RTS
LDAD1 JSR TWAIT
JSR ZZZ
LDA TBUF
STA STAL
CLC
ADC #BUFSZ
STA EAL
LDA TBUF+1
STA STAH
ADC #0
STA EAH
RTS
SYS JSR FRMNUM
JSR GETADR
JMP (LINNUM)
SAVE JSR PARS1
LDA VARTAB
STA EAL
LDA VARTAB+1
STA EAH
LDA #>$0400
STA STAH
LDA #<$0400
STA STAL
LDA FA
BNE SV20
SV10 LDY #MS13-MS1
JMP ERMSG
SV20 CMP #3
BEQ SV10
BCC SV100
JSR LF71C
JSR OPENI
JSR LISTN
LDY #0
JSR RD300
SV30 JSR WRT62
BEQ SV50
LDA (SAL)Y
JSR CIOUT
JSR STOP
INC SAL
BNE SV30
INC SAH
BNE SV30
SV50 JSR UNLSN
CLSE1 BIT SA
BMI LF735
JSR LISTN
LDA SA
AND #$EF
ORA #$E0
JMP SECND
SV100 JSR ZZZ
JSR CSTE2
LDA TXTPTR+1
BNE SV105
LDY #MS11-MS1
JSR MSG
JSR LD105
SV105 LDA #BLF
JSR TAPEH
JSR TWRT
LDX SA
BEQ LF735
DEX
BEQ LF735
LDA #EOT
JMP TAPEH
LF71C LDX #0
STX SA
LF720 LDX #0
INC SA
LF724 CPX LDTND
BEQ UD65
LDA SAT,X
AND #$1F
CMP SA
BEQ LF720
INX
BNE LF724
LF735 RTS
UDTIM LDA CRFAC
ADC #1
STA CRFAC
BCC UD10
INC CRFAC+1
UD10 CMP #$6F
BNE UD20
LDA CRFAC+1
CMP #2
BEQ UD50
UD20 INC TIME+2
BNE UD30
INC TIME+1
BNE UD30
INC TIME
UD30 LDX #0
UD40 LDA TIME,X
CMP UD70,X
BCC UD60
INX
CPX #3
BNE UD40
LDA #0
UD45 STA TIME-1,X
DEX
BNE UD45
BEQ UD60
UD50 LDA #0
STA CRFAC
STA CRFAC+1
UD60 LDA PIAK
CMP PIAK
BNE UD60
STA STKEY
UD65 RTS
UD70 .BYT $4F,$1A,1
.FILE OB4SRC