Mercurial > hg > Members > kono > nitros9-code
annotate level1/cmds/tuneport.asm @ 937:9f5945771770
Rewritten in assembler for size -- thanks Bob
author | boisy |
---|---|
date | Tue, 21 Jan 2003 04:31:22 +0000 |
parents | 207aaa792076 |
children | 84ea83668304 |
rev | line source |
---|---|
97 | 1 ******************************************************************** |
2 * TunePort - Tune Printer Port | |
3 * | |
4 * $Id$ | |
5 * | |
6 * Ed. Comments Who YY/MM/DD | |
7 * ------------------------------------------------------------------ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
163
diff
changeset
|
8 * 3 From Tandy OS-9 Level One VR 02.00.00 |
97 | 9 |
10 nam TunePort | |
11 ttl Tune Printer Port | |
12 | |
13 ifp1 | |
14 use os9defs | |
15 use scfdefs | |
16 endc | |
17 | |
927 | 18 DOHELP set 0 |
19 | |
97 | 20 tylg set Prgrm+Objct |
21 atrv set ReEnt+rev | |
22 rev set $01 | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
163
diff
changeset
|
23 edition set 3 |
97 | 24 |
25 mod eom,name,tylg,atrv,start,size | |
924 | 26 |
27 org 0 | |
97 | 28 u0000 rmb 1 |
29 u0001 rmb 1 | |
30 u0002 rmb 1 | |
31 u0003 rmb 2 | |
32 u0005 rmb 2 | |
33 u0007 rmb 2 | |
34 u0009 rmb 1 | |
35 u000A rmb 1 | |
36 u000B rmb 2 | |
37 u000D rmb 2 | |
38 u000F rmb 2 | |
39 u0011 rmb 1 | |
40 u0012 rmb 1 | |
41 u0013 rmb 3 | |
42 size equ . | |
43 | |
44 name fcs /TunePort/ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
163
diff
changeset
|
45 fcb edition |
97 | 46 |
47 AdjPmpt fcb C$CR | |
48 fcb C$LF | |
49 fcc " TO ADJUST YOUR PORT ENTER A" | |
50 fcb C$CR | |
51 fcb C$LF | |
52 fcc "NEW VALUE FOR THE LOOP DELAY" | |
53 fcb C$CR | |
54 fcb C$LF | |
55 fcc "AFTER THE PROMPT AND CURRENT" | |
56 fcb C$CR | |
57 fcb C$LF | |
58 fcc "VALUE ARE GIVEN. HIT [ENTER]" | |
59 fcb C$CR | |
60 fcb C$LF | |
61 fcc "TO END." | |
62 fcb C$CR | |
63 fcb C$LF | |
64 PmptLen equ *-AdjPmpt | |
65 | |
66 DoneMsg fcb C$LF | |
67 fcb C$CR | |
68 fcb $20 | |
69 fcc "YOUR PORT IS NOW ADJUSTED FOR" | |
70 fcb C$CR | |
71 fcb C$LF | |
72 fcc "THE CURRENT BAUD RATE AND THE" | |
73 fcb C$CR | |
74 fcb C$LF | |
75 fcc "CRC OF THE MODULE HAS BEEN UP-" | |
76 fcb C$CR | |
77 fcb C$LF | |
78 fcc "DATED. TO MAKE THE CHANGE" | |
79 fcb C$CR | |
80 fcb C$LF | |
81 fcc "PERMANENT IN THE BOOT USE THE" | |
82 fcb C$CR | |
83 fcb C$LF | |
84 fcc "COBBLER OR OS9GEN UTILITIES" | |
85 fcb C$CR | |
86 fcb C$LF | |
87 fcc "OR THE -S OPTION OF TUNEPORT" | |
88 fcb C$CR | |
89 fcc "AT SYSTEM STARTUP" | |
90 fcb C$CR | |
91 DoneLen equ *-DoneMsg | |
92 | |
927 | 93 IFNE DOHELP |
97 | 94 HelpMsg fcc "USE:TUNEPORT </P OR /T1> [-OPT]" |
95 fcb C$CR | |
96 fcb C$LF | |
97 fcc " ADJUST BAUD RATE DELAY ON" | |
98 fcb C$CR | |
99 fcb C$LF | |
100 fcc " SERIAL PORTS." | |
101 fcb C$CR | |
102 fcb C$LF | |
103 fcc "Opt: -S=VALUE TO SET LOOP DELAY" | |
104 fcb C$CR | |
105 fcb C$LF | |
106 fcc " FOR CURRENT BAUD VALUE" | |
107 fcb C$CR | |
108 HelpLen equ *-HelpMsg | |
927 | 109 ENDC |
97 | 110 |
111 ErrMsg fcc "TUNEPORT: CURRENT BAUD RATE" | |
112 fcb C$CR | |
113 fcb C$LF | |
114 fcc "IS OUT OF RANGE" | |
115 fcb C$CR | |
116 ErrLen equ *-ErrMsg | |
117 L0241 fcb C$BELL | |
118 | |
119 TestNow fcb C$CR | |
120 fcc "NOW TESTING ....." | |
121 TestLen equ *-TestNow | |
122 | |
123 NewVMsg fcb C$CR | |
124 fcc "NEW VALUE = " | |
125 NewVLen equ *-NewVMsg | |
126 | |
127 CurVMsg fcb C$LF | |
128 fcb C$CR | |
129 fcb C$LF | |
130 fcc "CURRENT VALUE = " | |
131 CurVLen equ *-CurVMsg | |
132 | |
133 TestMsg fcc " This is a test line for the TunePort utility" | |
134 fcb C$CR | |
135 TMsgLen equ *-TestMsg | |
136 | |
137 start stu <u0003 | |
138 clr <u0002 | |
139 lbsr L0455 | |
140 stx <u0009 | |
141 cmpb #C$CR | |
142 lbeq L03FB | |
143 cmpb #'/ | |
144 lbne L03FB | |
145 lda #Devic+Objct | |
146 leax $01,x | |
147 os9 F$Link | |
148 lbcs L03E6 | |
149 stu <u000B | |
150 lda <u0012,u | |
151 ldu <u0003 | |
152 cmpa #$00 | |
153 lbne L03FB | |
154 ldy <u000B | |
155 leax <IT.BAU,y | |
156 lda ,x | |
157 anda #$0F | |
158 cmpa #$06 | |
159 lbgt L03E9 | |
160 sta <u0000 | |
161 leax M$PDev,y | |
162 ldd ,x | |
163 leax d,y | |
164 leay <$19,u | |
165 L02EA lda ,x+ | |
166 bmi L02F2 | |
167 sta ,y+ | |
168 bra L02EA | |
169 L02F2 anda #$7F | |
170 sta ,y+ | |
171 lda #C$CR | |
172 sta ,y+ | |
173 ldu <u000B | |
174 os9 F$UnLink | |
175 lbcs L03E6 | |
176 ldu <u0003 | |
177 ldx <u0009 | |
178 lda #WRITE. | |
179 os9 I$Open | |
180 lbcs L03E6 | |
181 sta <u0001 | |
182 lbsr L0455 | |
183 cmpb #C$CR | |
184 beq L031D | |
185 inc <u0002 | |
186 stx <u0009 | |
187 L031D lda #Drivr+Objct | |
188 leax <$19,u | |
189 os9 F$Link | |
190 lbcs L03DE | |
191 stu <u000B | |
192 sty <u000D | |
193 ldu <u0003 | |
194 tst <u0002 | |
195 bne L0345 | |
196 lda #$01 | |
197 leax >AdjPmpt,pcr | |
198 ldy #PmptLen | |
199 os9 I$Write | |
200 lbcs L03D7 | |
201 L0345 ldd <u000D | |
202 subd #$000E | |
203 tfr d,x | |
204 lda <u0000 | |
205 lsla | |
206 leax a,x | |
207 stx <u000F | |
208 tst <u0002 | |
209 bne L035D | |
210 lbsr L045E | |
211 lbsr L040D | |
212 L035D tst <u0002 | |
213 beq L038E | |
214 ldx <u0009 | |
215 ldb ,x | |
216 cmpb #'- | |
217 lbne L03FB | |
218 leax $01,x | |
219 ldb ,x+ | |
220 cmpb #'S | |
221 beq L037A | |
163 | 222 cmpb #'s |
97 | 223 beq L037A |
224 lbra L03FB | |
225 L037A ldb ,x+ | |
163 | 226 cmpb #'= |
97 | 227 bne L03FB |
228 stx <u0009 | |
229 lbsr L04F1 | |
230 ldd <u0005 | |
231 ldx <u000F | |
232 std ,x | |
233 clrb | |
234 bra L03D7 | |
235 L038E lbsr L0432 | |
236 lbsr L04DC | |
237 bcc L039D | |
238 lbsr L0444 | |
239 andcc #^Carry | |
240 bra L038E | |
241 L039D ldd <u0005 | |
242 beq L03A9 | |
243 ldx <u000F | |
244 std ,x | |
245 bsr L040D | |
246 bra L038E | |
247 L03A9 ldx <u000B | |
248 ldd $02,x | |
249 subd #$0003 | |
250 tfr d,y | |
251 leau d,x | |
252 ldd #$FFFF | |
253 std u0001,u | |
254 sta ,u | |
255 os9 F$CRC | |
256 com ,u | |
257 com u0001,u | |
258 com u0002,u | |
259 ldu <u0003 | |
260 clra | |
261 leax >DoneMsg,pcr | |
262 ldy #DoneLen | |
263 os9 I$Write | |
264 bcs L03E6 | |
265 lbsr L045E | |
266 L03D7 ldu <u000B | |
267 os9 F$UnLink | |
268 bcs L03E6 | |
269 L03DE lda <u0001 | |
270 os9 I$Close | |
271 bcs L03E6 | |
272 clrb | |
273 L03E6 os9 F$Exit | |
274 L03E9 lda #$02 | |
275 leax >ErrMsg,pcr | |
276 ldy #ErrLen | |
277 os9 I$Write | |
278 bcs L03E6 | |
279 clrb | |
280 bra L03E6 | |
927 | 281 L03FB equ * |
282 IFNE DOHELP | |
283 lda #$02 | |
97 | 284 leax >HelpMsg,pcr |
285 ldy #HelpLen | |
286 os9 I$Write | |
287 bcs L03E6 | |
927 | 288 ENDC |
97 | 289 clrb |
290 bra L03E6 | |
291 L040D lda #$01 | |
292 leax >TestNow,pcr | |
293 ldy #TestLen | |
294 os9 I$Write | |
295 bcs L03E6 | |
296 lda <u0001 | |
297 leax >TestMsg,pcr | |
298 ldy #TMsgLen | |
299 os9 I$WritLn | |
300 bcs L03E6 | |
301 ldx #$000A | |
302 os9 F$Sleep | |
303 rts | |
304 L0432 bsr L045E | |
305 lda #$01 | |
306 leax >NewVMsg,pcr | |
307 ldy #NewVLen | |
308 os9 I$Write | |
309 bcs L03E6 | |
310 rts | |
311 L0444 pshs y,x,b,a | |
312 lda #$02 | |
313 leax >L0241,pcr | |
314 ldy #$0001 | |
315 os9 I$Write | |
316 puls pc,y,x,b,a | |
317 L0455 ldb ,x+ | |
318 cmpb #C$SPAC | |
319 beq L0455 | |
320 leax -$01,x | |
321 rts | |
322 L045E pshs y,x,b,a | |
323 lda #$01 | |
324 leax >CurVMsg,pcr | |
325 ldy #CurVLen | |
326 os9 I$Write | |
327 lbcs L03E6 | |
328 ldx <u000F | |
329 ldd ,x | |
330 std <u0005 | |
331 leay >L04D0,pcr | |
332 leax <u0013,u | |
333 stx <u0011 | |
334 L0480 ldd ,y | |
335 beq L04BC | |
336 ldd <u0005 | |
337 pshs b,a | |
338 ldd ,y++ | |
339 lbsr L053F | |
340 cmpb #$00 | |
341 bne L0498 | |
342 leax <u0013,u | |
343 cmpx <u0011 | |
344 beq L0480 | |
345 L0498 std <u0007 | |
346 addb #$30 | |
347 ldx <u0011 | |
348 stb ,x+ | |
349 stx <u0011 | |
350 ldx <u0007 | |
351 leax -$01,x | |
352 leay -$02,y | |
353 ldd ,y++ | |
354 std <u0007 | |
355 L04AC addd <u0007 | |
356 leax -$01,x | |
357 bne L04AC | |
358 std <u0007 | |
359 ldd <u0005 | |
360 subd <u0007 | |
361 std <u0005 | |
362 bra L0480 | |
363 L04BC ldx <u0011 | |
364 lda #$0D | |
365 sta ,x | |
366 leax <u0013,u | |
367 lda #$01 | |
368 ldy #$0006 | |
369 os9 I$WritLn | |
370 puls pc,y,x,b,a | |
371 L04D0 fcb $27,$10,$03,$e8,$00,$64,$00,$0a,$00,$01,$00,$00 | |
372 L04DC pshs y,x,b,a | |
373 clra | |
374 leax <u0013,u | |
375 L04E2 ldy #$0006 | |
376 os9 I$ReadLn | |
377 lbcs L03E6 | |
378 bsr L0504 | |
379 puls pc,y,x,b,a | |
380 L04F1 pshs y,x,b,a | |
381 ldx <u0009 | |
382 leay <u0013,u | |
383 L04F8 lda ,x+ | |
384 sta ,y+ | |
385 cmpa #C$CR | |
386 bne L04F8 | |
387 bsr L0504 | |
388 puls pc,y,x,b,a | |
389 L0504 pshs y,x,b,a | |
390 clra | |
391 clrb | |
392 std <u0005 | |
393 leay <u0013,u | |
394 L050D ldb ,y+ | |
395 cmpb #'0 | |
396 blt L0537 | |
397 cmpb #'9 | |
398 bgt L0537 | |
399 pshs b | |
400 ldx #$0009 | |
401 ldd <u0005 | |
402 std <u0007 | |
403 L0520 addd <u0007 | |
404 leax -$01,x | |
405 bne L0520 | |
406 std <u0005 | |
407 puls b | |
408 subb #'0 | |
409 clra | |
410 std <u0007 | |
411 ldd <u0005 | |
412 addd <u0007 | |
413 std <u0005 | |
414 bra L050D | |
415 L0537 cmpb #C$CR | |
416 beq L053D | |
417 orcc #Carry | |
418 L053D puls pc,y,x,b,a | |
419 L053F pshs b,a | |
420 leas -$02,s | |
421 clr ,s | |
422 clr $01,s | |
423 lda #$01 | |
424 L0549 inca | |
425 lsl $03,s | |
426 rol $02,s | |
427 bpl L0549 | |
428 sta ,s | |
429 ldd $06,s | |
430 clr $06,s | |
431 clr $07,s | |
432 L0558 subd $02,s | |
433 bcc L0562 | |
434 addd $02,s | |
435 andcc #^Carry | |
436 bra L0564 | |
437 L0562 orcc #Carry | |
438 L0564 rol $07,s | |
439 rol $06,s | |
440 lsr $02,s | |
441 ror $03,s | |
442 dec ,s | |
443 bne L0558 | |
444 std $02,s | |
445 tst $01,s | |
446 beq L057E | |
447 ldd $06,s | |
448 nega | |
449 negb | |
450 sbca #$00 | |
451 std $06,s | |
452 L057E ldx $04,s | |
453 ldd $06,s | |
454 std $04,s | |
455 stx $06,s | |
456 ldx $02,s | |
457 ldd $04,s | |
458 leas $06,s | |
459 rts | |
460 | |
461 emod | |
462 eom equ * | |
463 end | |
464 |