annotate level1/modules/sscpak.asm @ 1244:9b74e4e23293

Commented out Obj6309 for 6809 port of kernel
author boisy
date Tue, 12 Aug 2003 01:32:18 +0000
parents 4e235f213651
children 10957d54bf16
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2 * SSCPAK - Tandy Speech/Sound Pak driver
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
4 * $Id$
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
5 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
6 * Ed. Comments Who YY/MM/DD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
7 * ------------------------------------------------------------------
201
668388823050 Fixed headers to be consistent
boisy
parents: 0
diff changeset
8 * 1 From Tandy OS-9 Level One VR 02.00.00
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
10 nam SSCPAK
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
11 ttl Tandy Speech/Sound Pak driver
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
12
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
13 * Disassembled 98/08/23 17:33:46 by Disasm v1.6 (C) 1988 by RML
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17 use scfdefs
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 tylg set Drivr+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21 atrv set ReEnt+rev
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 rev set $01
201
668388823050 Fixed headers to be consistent
boisy
parents: 0
diff changeset
23 edition set 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25 BusyBit equ %10000000 SSPak busy status bit (active low)
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26 CRA equ $01 PIA CRA offset
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
27 CRB equ $03 PIA CRB offset
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
28 MUXBit equ %00001000 COCO sound MUX control/select bit position
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29 SpeakBit equ %01000000 SSPak speech status bit (active low)
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30 SSPData equ $FF7E SSPak data register offset
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31 SSPReset equ $FF7D SSPak reset register offset
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32 SSPStat equ $FF7E SSPak status register offset
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34 mod eom,name,tylg,atrv,start,size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
36 rmb 29
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
37 size equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
39 fcb READ.+WRITE. mode byte
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
41 name fcs /SSCPAK/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44 start lbra Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45 lbra Read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 lbra Write
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 lbra GetStat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48 lbra SetStat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 lbra Term
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 Init pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 lda #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 sta >SSPReset reset SSPak
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 sta >SSPReset end SSPak reset
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
56 puls pc,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
57
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
58 Read ldb #E$BMode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
59 bra ErrEx
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
61 GetStat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 SetStat ldb #E$UnkSvc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
63 ErrEx orcc #Carry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 Term rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66 Write ldy #SSPData
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 201
diff changeset
67 ldx #PIA0Base
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 201
diff changeset
68 ldu #PIA1Base
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
69 cmpa #C$LF linefeed?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
70 beq WritEx ..yep, ignore it
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
71 cmpa #C$CR carriage return?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
72 bne NormChar ..no
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
73 lda CRA,x get PIA0 CRA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74 ldb CRB,x get PIA0 CRB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 pshs b,a save them
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76 anda #^MUXBit clear PIA0 CA2 control LSBit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 orb #MUXBit set PIA0 B@ control LSBit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78 sta CRA,x * set CoCo sound MUX to cartridge input
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
79 stb CRB,x *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 lda CRB,u get PIA1 CRB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 pshs a save it
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
82 ora #MUXBit set PIA1 CB2 control LSBit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
83 sta CRB,u enable COCO sound MUX
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
84 lda #C$CR get carriage return
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
85 bsr ChkHW wait for SSPak to get ready
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
86 sta ,y store it in SSPak
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
87 bsr SpchWait wait until speech is active
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
88 bsr SSWait wait until speech is inactive
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
89 puls a get original PIA1 CRB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
90 sta CRB,u disable COCO sound MUX
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
91 puls b,a get original PIA0 CRA/CRB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
92 sta CRA,x restore original PIA0 CRA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
93 stb CRB,x restore original PIA0 CRB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94 bra WritEx exit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95 NormChar bsr ChkHW wait for HW
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
96 sta ,y write char to HW
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
97 WritEx clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
99
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
100 * Check SSC hardware, loop until it's ready
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
101 ChkHW pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
102 ChkHWLp lda ,y get SSPak status
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
103 anda #BusyBit SSPak busy?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
104 beq ChkHWLp yep, go check again
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
105 puls pc,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
106
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
107 * routine to loop until SSPak speech is inactive
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
108 SSWait pshs x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
109 SSWait2 lda ,y get SSPak status
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
110 anda #SpeakBit SSPak speech active yet?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
111 bne SSWaitEx yep, exit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
112 ldx #$0001 sleep remainder of tick
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
113 os9 F$Sleep
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
114 bra SSWait2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
115 SSWaitEx puls pc,x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
116
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
117 * routine to loop until SSPak speech is active
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
118 SpchWait pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
119 SpchLoop lda ,y get SSPak status
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
120 anda #SpeakBit SSPak speech active yet?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
121 bne SpchLoop no, go check again
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
122 puls pc,a return
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
123
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
124 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
125 eom equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
126 end
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
127