annotate level1/modules/ccio.asm @ 1587:5f18094d961d

kernel modules renamed to krn, updated makefiles, clock2_tc3 now clock2_cloud9...
author boisy
date Mon, 24 May 2004 14:51:21 +0000
parents e26f7d2e40df
children 11f38ece79ef
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 * CCIO - OS-9 Level One V2 CoCo I/O 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 *
1340
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
7 * Comment
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 * ------------------------------------------------------------------
1340
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
9 * 12 ????/??/?? ???
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
10 * From Tandy OS-9 Level One VR 02.00.00.
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
11 *
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
12 * 12r1 2003/09/11 Rodney V. Hamilton
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
13 * Modified key table to include $7F, $1D, $1E and $1F codes.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 nam CCIO
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 ttl OS-9 Level One V2 CoCo I/O driver
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 use scfdefs
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
21 use cciodefs
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24 tylg set Drivr+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25 atrv set ReEnt+rev
1340
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
26 rev set $01
201
668388823050 Fixed headers to be consistent
boisy
parents: 164
diff changeset
27 edition set 12
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
28
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29 mod eom,name,tylg,atrv,start,size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
31 size equ V.Last
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32
256
9e9648e17298 Additional source improvements
boisy
parents: 201
diff changeset
33 fcb UPDAT.+EXEC.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35 name fcs /CCIO/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
36 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
37
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38 start lbra Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
39 lbra Read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40 lbra Write
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
41 lbra GetStat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 lbra SetStat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43 lbra Term
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45 * Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 * Entry:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48 * Y = address of device descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 * U = address of device memory area
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 * Exit:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 * CC = carry set on error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 * B = error code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54 *
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
55 Init stu >D.KbdSta store devmem ptr
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
56 clra clear A
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
57 leax <V.SCF,u point to memory after V.SCF
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
58 ldb #$5D get counter
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
59 L002E sta ,x+ clear mem
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
60 decb decrement counter
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
61 bne L002E continue if more
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
62 coma A = $FF
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
63 comb B = $FF
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
64 stb <V.Caps,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
65 std <V.LKeyCd,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
66 std <V.2Key2,u
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
67 lda #60
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
68 sta <V.ClkCnt,u
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
69 leax >AltIRQ,pcr get IRQ routine ptr
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
70 stx >D.AltIRQ store in AltIRQ
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
71 leax >SetDsply,pcr get display vector
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
72 stx <V.DspVct,u store in vector address
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
73 leax >XY2Addr,pcr get address of XY2Addr
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
74 stx <V.CnvVct,u
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
75 ldd <IT.PAR,y get parity and baud
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
76 lbra L05CE process them
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78 * Term
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
79 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 * Entry:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 * U = address of device memory area
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
82 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
83 * Exit:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
84 * CC = carry set on error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
85 * B = error code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
86 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
87 Term pshs cc
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
88 orcc #IRQMask mask interrupts
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
89 ldx >D.Clock get clock vector
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
90 stx >D.AltIRQ and put back in AltIRQ
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
91 puls pc,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
92
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
93 * Read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95 * Entry:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
96 * Y = address of path descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
97 * U = address of device memory area
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
99 * Exit:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
100 * A = character read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
101 * CC = carry set on error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
102 * B = error code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
103 *
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
104 Read leax <V.InBuf,u point X to input buffer
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
105 ldb <V.IBufT,u get tail pointer
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
106 orcc #IRQMask mask IRQ
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
107 cmpb <V.IBufH,u same as head pointer
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
108 beq Put2Bed if so, buffer is empty, branch to sleep
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
109 abx X now points to curr char
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
110 lda ,x get char
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
111 bsr L009D check for tail wrap
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
112 stb <V.IBufT,u store updated tail
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
113 andcc #^(IRQMask+Carry) unmask IRQ
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
114 rts
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
115
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
116 Put2Bed lda V.BUSY,u get calling process ID
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
117 sta V.WAKE,u store in V.WAKE
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
118 andcc #^IRQMask clear interrupts
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
119 ldx #$0000
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
120 os9 F$Sleep sleep forever
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
121 clr V.WAKE,u clear wake
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
122 ldx <D.Proc get pointer to current proc desc
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
123 ldb <P$Signal,x get signal recvd
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
124 beq Read branch if no signal
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
125 cmpb #S$Window window signal?
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
126 bcc Read branch if so
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
127 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
128 rts
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
129 * Check if we need to wrap around tail pointer to zero
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
130 L009D incb increment pointer
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
131 cmpb #$7F at end?
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
132 bls L00A3 branch if not
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
133 clrb else clear pointer (wrap to head)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
134 L00A3 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
135
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
136 *
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
137 * IRQ routine for keyboard
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
138 *
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
139 AltIRQ ldu >D.KbdSta get keyboard static
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
140 ldb <V.CFlg1,u graphics screen currently being displayed?
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
141 beq L00B7 branch if not
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
142 ldb <V.Alpha,u alpha mode?
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
143 beq L00B7 branch if so
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
144 lda <V.PIA1,u
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
145 lbsr SetDsply set up display
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
146 L00B7 ldx #PIA0Base point to PIA base
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
147 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
148 clrb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
149 std <V.KySns,u clear keysense byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
150 bsr L00E8 get bits
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
151 bne L00CC
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
152 clr $02,x clear PIA0Base+2
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
153 lda ,x get byte from PIA
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
154 coma complement
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
155 anda #$7F strip off hi bit
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
156 bne L00F1 branch if any bit set
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
157 L00CC clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
158 clrb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
159 std <V.KTblLC,u clear
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
160 coma A = $FF
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
161 tst <V.Spcl,u special key?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
162 bne l@ branch if so
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
163 sta <V.LKeyCd,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
164 l@ stb <V.Spcl,u clear for next time
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
165 comb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
166 sta <V.2Key1,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
167 std <V.2Key2,u
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
168 L00E4 jmp [>D.Clock] jump into clock module
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
169
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
170 L00E8 comb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
171 stb $02,x strobe one column
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
172 ldb ,x read PIA #0 row states
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
173 comb invert bits so 1=key pressed
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
174 andb #$03 mask out all but lower 2 bits
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
175 rts
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
176
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
177 L00F1 bsr L015C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
178 bmi L00CC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
179 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
180 bsr L00E8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
181 bne L00CC
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
182 cmpa <V.6F,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
183 bne L010E
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
184 ldb <V.ClkCnt,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
185 beq L010A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
186 decb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
187 L0105 stb <V.ClkCnt,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
188 bra L00E4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
189 L010A ldb #$05
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
190 bra L011A
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
191 L010E sta <V.6F,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
192 ldb #$05
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
193 tst <V.KySame,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194 bne L0105
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
195 ldb #60
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
196 L011A stb <V.ClkCnt,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
197 ldb <V.IBufH,u get head pointer in B
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
198 leax <V.InBuf,u point X to input buffer
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
199 abx X now holds address of head
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
200 lbsr L009D check for tail wrap
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
201 cmpb <V.IBufT,u B at tail?
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
202 beq L012F branch if so
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
203 stb <V.IBufH,u
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
204 L012F sta ,x store our char at ,X
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
205 beq WakeIt if nul, do wake-up
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
206 cmpa V.PCHR,u pause character?
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
207 bne L013F branch if not
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
208 ldx V.DEV2,u else get dev2 statics
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
209 beq WakeIt branch if none
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
210 sta V.PAUS,x else set pause request
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
211 bra WakeIt
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
212 L013F ldb #S$Intrpt get interrupt signal
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
213 cmpa V.INTR,u our char same as intr?
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
214 beq L014B branch if same
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
215 ldb #S$Abort get abort signal
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
216 cmpa V.QUIT,u our char same as QUIT?
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
217 bne WakeIt branch if not
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
218 L014B lda V.LPRC,u get ID of last process to get this device
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
219 bra L0153 go for it
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
220 WakeIt ldb #S$Wake get wake signal
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
221 lda V.WAKE,u get process to wake
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
222 L0153 beq L0158 branch if none
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
223 os9 F$Send else send wakeup signal
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
224 L0158 clr V.WAKE,u clear process to wake flag
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
225 bra L00E4 and move along
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
226
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
227 L015C clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
228 clrb
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
229 std <V.ShftDn,u SHIFT/CTRL flag; 0=NO $FF=YES
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
230 std <V.KeyFlg,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
231 * %00000111-Column # (Output, 0-7)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
232 * %00111000-Row # (Input, 0-6)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
233 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
234 comb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
235 std <V.Key1,u key 1&2 flags $FF=none
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
236 sta <V.Key3,u key 3 "
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
237 deca lda #%11111110
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
238 sta $02,x write column strobe
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
239 L016F lda ,x read row from PIA0Base
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
240 coma invert so 1=key pressed
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
241 anda #$7F keep only keys, bit 0=off 1=on
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
242 beq L0183 no keys pressed, try next column
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
243 ldb #$FF preset counter to -1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
244 L0178 incb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
245 lsra bit test regA
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
246 bcc L017F no key, brach
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
247 lbsr L0221 convert column/row to matrix value and store
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
248 L017F cmpb #$06 max counter
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
249 bcs L0178 loop if more bits to test
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
250 L0183 inc <V.KeyFlg,u counter; used here for column
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
251 orcc #Carry bit marker; disable strobe
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
252 rol $02,x shift to next column
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
253 bcs L016F not finished with columns so loop
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
254 lbsr L0289 simultaneous check; recover key matrix value
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
255 bmi L020A invalid so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
256 cmpa <V.LKeyCd,u last keyboard code
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
257 bne L0199
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
258 inc <V.KySame,u same key flag ?counter?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
259 L0199 sta <V.LKeyCd,u setup for last key pressed
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
260 beq L01B9 if @ key, use lookup table
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
261 suba #$1A the key value (matrix) of Z
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
262 bhi L01B9 not a letter, so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
263 adda #$1A restore regA
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
264 ldb <V.CtrlDn,u CTRL flag
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
265 bne L01E9 CTRL is down so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
266 adda #$40 convert to ASCII value; all caps
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
267 ldb <V.ShftDn,u shift key flag
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
268 eorb <V.Caps,u get current device static memory pointer
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
269 andb #$01 tet caps flag
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
270 bne L01E9 not shifted so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
271 adda #$20 convert to ASCII lowercase
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
272 bra L01E9
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
273 * Not a letter key, use the special keycode lookup table
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
274 * Entry: A = table idnex (matrix scancode-26)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
275 L01B9 ldb #$03 three entries per key (normal, SHIFT, CTRL)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
276 mul convert index to table offset
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
277 lda <V.ShftDn,u shift key flag
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
278 beq L01C4 not shifted so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
279 incb else adjust offset for SHIFTed entry
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
280 bra L01CB and do it
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
281 L01C4 lda <V.CtrlDn,u CTRL flag?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
282 beq L01CB adjust offset for CTRL key
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
283 addb #$02
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
284 L01CB lda <V.KySnsF,u key sense flag?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
285 beq L01D4 not set, so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
286 cmpb #$11 spacebar?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
287 ble L0208 must be an arrow so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
288 L01D4 cmpb #$4C ALT key? (SHOULD BE $4C???)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
289 blt L01DD not ALT, CTRL, F1, F2 or SHIFT so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
290 inc <V.AltDwn,u flag special keys (ALT, CTRL)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
291 subb #$06 adjust offset to skip them
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
292 L01DD pshs x save X
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
293 leax >KeyTbl,pcr point to keyboard table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
294 lda b,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
295 puls x
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
296 bmi L01FD if A = $81 - $84, special key
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
297 * several entries to this routine from any key press; A is already ASCII
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
298 L01E9 ldb <V.AltDwn,u was ALT flagged?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
299 beq L01FA no, so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
300 cmpa #$3F ?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
301 bls L01F8 # or code
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
302 cmpa #$5B [
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
303 bcc L01F8 capital letter so go
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
304 ora #$20 convert to lower case
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
305 L01F8 ora #$80 set for ALT characters
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
306 L01FA andcc #^Negative not negative
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
307 rts
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
308 * Flag that special key was hit
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
309 L01FD inc <V.Spcl,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
310 ldb <V.KySame,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
311 bne L0208
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
312 com <V.Caps,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
313 L0208 orcc #Negative set negative
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
314 L020A rts
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
315
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
316 * Calculate arrow keys for key sense byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
317 L020B pshs b,a convert column into power of 2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
318 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
319 orcc #Carry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
320 inca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
321 L0211 rolb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
322 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
323 bne L0211
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
324 bra L0219
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
325 L0217 pshs b,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
326 L0219 orb <V.KySns,u previous value of column
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
327 stb <V.KySns,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
328 puls pc,b,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
329 * Check special keys (SHIFT, CTRL, ALT)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
330 L0221 pshs b,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
331 cmpb #$03 is it row 3?
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
332 bne L0230
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
333 lda <V.KeyFlg,u get column #
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
334 cmpa #$03 is it column 3?; ie up arrow
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
335 blt L0230 if lt it must be a letter
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
336 bsr L020B its a non letter so bsr
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
337 L0230 lslb B*8 8 keys per row
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
338 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
339 lslb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
340 addb <V.KeyFlg,u add in the column #
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
341 beq L025D
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
342 cmpb #$33 ALT
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
343 bne L0243
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
344 inc <V.AltDwn,u ALT down flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
345 ldb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
346 bra L0219
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
347 L0243 cmpb #$31 CLEAR?
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
348 beq L024B
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
349 cmpb #$34 CTRL?
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
350 bne L0252
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
351 L024B inc <V.CtrlDn,u CTRL down flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
352 ldb #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
353 bra L0219
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
354 L0252 cmpb #$37 SHIFT key
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
355 bne L0262
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
356 com <V.ShftDn,u SHIFT down flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
357 ldb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
358 bra L0219
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
359 L025D ldb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
360 bsr L0217
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
361 clrb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
362 * Check how many key (1-3) are currently being pressed
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
363 L0262 pshs x
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
364 leax <V.Key1,u 1st key table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
365 bsr L026D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
366 puls x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
367 puls pc,b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
368 L026D pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
369 lda ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
370 bpl L0279
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
371 stb ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
372 ldb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
373 puls pc,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
374 L0279 lda $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
375 bpl L0283
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
376 stb $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
377 ldb #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
378 puls pc,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
379 L0283 stb $02,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
380 ldb #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
381 puls pc,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
382 * simultaneous key test
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
383 L0289 pshs y,x,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
384 bsr L02EE
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
385 ldb <V.KTblLC,u key table entry #
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
386 beq L02C5
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
387 leax <V.2Key1,u point to 2nd key table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
388 pshs b
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
389 L0297 leay <V.Key1,u 1st key table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
390 ldb #$03
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
391 lda ,x get key #1
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
392 bmi L02B6 go if invalid? (no key)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
393 L02A0 cmpa ,y is it a match?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
394 bne L02AA go if not a matched key
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
395 clr ,y
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
396 com ,y set value to $FF
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
397 bra L02B6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
398 L02AA leay $01,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
399 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
400 bne L02A0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
401 lda #$FF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
402 sta ,x
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
403 dec <V.KTblLC,u key table entry #
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
404 L02B6 leax $01,x
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
405 dec ,s column counter
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
406 bne L0297
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
407 leas $01,s
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
408 ldb <V.KTblLC,u key table entry (can test for 3 simul keys)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
409 beq L02C5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
410 bsr L0309
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
411 L02C5 leax <V.Key1,u 1st key table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
412 lda #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
413 L02CA ldb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
414 bpl L02DE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
415 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
416 bne L02CA
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
417 ldb <V.KTblLC,u key table entry (can test for 3 simul keys)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
418 beq L02EA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
419 decb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
420 leax <V.2Key1,u 2nd key table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
421 lda b,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
422 bra L02E8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
423 L02DE tfr b,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
424 leax <V.2Key1,u 2nd key table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
425 bsr L026D
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
426 stb <V.KTblLC,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
427 L02E8 puls pc,y,x,b
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
428 L02EA orcc #Negative flag negative
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
429 puls pc,y,x,b
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
430
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
431 L02EE ldd <V.ShftDn,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
432 bne L0301
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
433 lda #$03
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
434 leax <V.Key1,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
435 L02F8 ldb ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
436 beq L0302
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
437 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
438 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
439 bne L02F8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
440 L0301 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
441 L0302 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
442 stb ,x
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
443 inc <V.AltDwn,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
444 rts
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
445
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
446 * Sort 3 byte packet @ G.2Key1 according to sign of each byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
447 * so that positive #'s are at beginning & negative #'s at end
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
448 L0309 leax <V.2Key1,u 2nd key table
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
449 bsr L0314 sort bytes 1 & 2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
450 leax $01,x
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
451 bsr L0314 sort bytes 2 & 3
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
452 leax -$01,x sort 1 & 2 again (fall thru for third pass)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
453 L0314 lda ,x get current byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
454 bpl L0320 positive - no swap
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
455 ldb $01,x get next byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
456 bmi L0320 negative - no swap
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
457 sta $01,x swap the bytes
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
458 stb ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
459 L0320 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
460
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
461 * Key Table
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
462 * 1st column = key (no modifier)
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
463 * 2nd column = SHIFT+key
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
464 * 3rd column = CTRL+key
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
465 KeyTbl fcb $00,$40,$60 ALT @ `
1340
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
466 fcb $0c,$1c,$13 UP
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
467 fcb $0a,$1a,$12 DOWN
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
468 fcb $08,$18,$10 LEFT
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
469 fcb $09,$19,$11 RIGHT
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
470 fcb $20,$20,$20 SPACEBAR
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
471 fcb $30,$30,$81 0 0 capslock
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
472 fcb $31,$21,$7c 1 ! |
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
473 fcb $32,$22,$00 2 " null
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
474 fcb $33,$23,$7e 3 # ~
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
475 fcb $34,$24,$1d 4 $ RS (was null)
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
476 fcb $35,$25,$1e 5 % GS (was null)
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
477 fcb $36,$26,$1f 6 & US (was null)
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
478 fcb $37,$27,$5e 7 ' ^
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
479 fcb $38,$28,$5b 8 ( [
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
480 fcb $39,$29,$5d 9 ) ]
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
481 fcb $3a,$2a,$00 : * null
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
482 fcb $3b,$2b,$7f ; + del (was null)
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
483 fcb $2c,$3c,$7b , < {
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
484 fcb $2d,$3d,$5f - = _
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
485 fcb $2e,$3e,$7d . > }
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
486 fcb $2f,$3f,$5c / ? \
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
487 fcb $0d,$0d,$0d ENTER key
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
488 fcb $00,$00,$00 CLEAR key
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
489 fcb $05,$03,$1b BREAK key
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
490 fcb $31,$33,$35 F1 key
63bfe1e5c5f4 Rodney added several additional codes that can be generated from the
boisy
parents: 1287
diff changeset
491 fcb $32,$34,$36 F2 key
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
492
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
493 * Write
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
494 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
495 * Entry:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
496 * A = character to write
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
497 * Y = address of path descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
498 * U = address of device memory area
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
499 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
500 * Exit:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
501 * CC = carry set on error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
502 * B = error code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
503 *
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
504 Write ldb <V.NGChr,u are we in the process of getting parameters?
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
505 bne PrmHandl yes, go process
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
506 sta <V.WrChr,u save character to write
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
507 cmpa #C$SPAC space or higher?
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
508 bcc GoCo yes, normal write
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
509 cmpa #$1E escape sequence $1E or $1F?
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
510 bcc Escape yes, go process
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
511 cmpa #$0F GFX codes?
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
512 lbcc GfxDispatch branch if so
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
513 cmpa #C$BELL bell?
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
514 lbeq Ding if so, ring bell
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
515 * Here we call the CO-module to write the character
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
516 GoCo lda <V.CurCo,u get CO32/CO80 flag
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
517 CoWrite ldb #$03 we want to write
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
518 CallCO leax <V.GRFOE,u get base pointer to CO-entries
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
519 ldx a,x get pointer to CO32/CO80
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
520 beq NoIOMod branch if no module
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
521 lda <V.WrChr,u get character to write
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
522 L039D jmp b,x call i/o subroutine
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
523 NoIOMod comb
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
524 ldb #E$MNF
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
525 rts
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
526
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
527 * Parameter handler
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
528 PrmHandl cmpb #$02 two parameters left?
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
529 beq L03B0 branch if so
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
530 sta <V.NChr2,u else store in V.NChr2
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
531 clr <V.NGChr,u clear parameter counter
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
532 jmp [<V.RTAdd,u] jump to return address
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
533 L03B0 sta <V.NChar,u store in V.NChar
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
534 dec <V.NGChr,u decrement parameter counter
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
535 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
536 rts
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
537
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
538 Escape beq L03C5 if $1E, we conveniently ignore it
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
539 leax <COEscape,pcr else it's $1F... set up to get next char
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
540 L03BD ldb #$01
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
541 L03BF stx <V.RTAdd,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
542 stb <V.NGChr,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
543 L03C5 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
544 rts
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
545
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
546 COEscape ldb #$03 write offset into CO-module
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
547 lbra JmpCO
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
548
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
549 * Show VDG or Graphics screen
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
550 * Entry: B = 0 for VDG, 1 for Graphics
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
551 SetDsply pshs x,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
552 stb <V.Alpha,u save passed flag in B
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
553 lda >PIA1Base+2
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
554 anda #$07 mask out all but lower 3 bits
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
555 ora ,s+ OR in passed A
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
556 tstb display graphics?
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
557 bne L03DE branch if so
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
558 ora <V.CFlag,u
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
559 L03DE sta >PIA1Base+2
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
560 sta <V.PIA1,u
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
561 tstb display graphics?
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
562 bne DoGfx branch if so
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
563 * Set up VDG screen for text
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
564 DoVDG
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
565 stb >$FFC0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
566 stb >$FFC2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
567 stb >$FFC4
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
568 lda <V.ScrnA,u get pointer to alpha screen
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
569 bra L0401
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
570
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
571 * Set up VDG screen for graphics
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
572 DoGfx stb >$FFC0
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
573 stb >$FFC3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
574 stb >$FFC5
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
575 lda <V.SBAdd,u get pointer to graphics screen
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
576
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
577 L0401 ldb #$07
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
578 ldx #$FFC6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
579 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
580 L0407 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
581 bcs L0410
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
582 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
583 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
584 bra L0414
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
585 L0410 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
586 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
587 L0414 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
588 bne L0407
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
589 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
590 puls pc,x
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
591
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
592 GRFO fcs /GRFO/
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
593 CO32 fcs /CO32/
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
594 CO80 fcs /CO80/
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
595
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
596 * GetStat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
597 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
598 * Entry:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
599 * A = function code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
600 * Y = address of path descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
601 * U = address of device memory area
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
602 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
603 * Exit:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
604 * CC = carry set on error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
605 * B = error code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
606 *
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
607 GetStat sta <V.WrChr,u save off stat code
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
608 cmpa #SS.Ready ready call?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
609 bne L0439 branch if not
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
610 lda <V.IBufT,u get buff tail ptr
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
611 suba <V.IBufH,u num of chars ready in A
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
612 lbeq NotReady branch if empty
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
613 SSEOF clrb
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
614 rts
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
615 L0439 cmpa #SS.EOF EOF?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
616 beq SSEOF branch if so
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
617 ldx PD.RGS,y get caller's regs
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
618 cmpa #SS.Joy joystick?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
619 beq SSJOY branch if so
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
620 cmpa #SS.ScSiz screen size?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
621 beq SSSCSIZ branch if so
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
622 cmpa #SS.KySns keyboard sense?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
623 beq SSKYSNS branch if so
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
624 cmpa #SS.DStat display status?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
625 lbeq SSDSTAT branch if so
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
626 ldb #$06 getstat entry into CO-module
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
627 lbra JmpCO
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
628
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
629 * Return key sense information
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
630 SSKYSNS ldb <V.KySns,u get key sense info
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
631 stb R$A,x put in caller's A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
632 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
633 rts
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
634
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
635 * Return screen size
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
636 SSSCSIZ clra clear upper 8 bits of D
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
637 ldb <V.Col,u get column count
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
638 std R$X,x save in X
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
639 ldb <V.Row,u get row count
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
640 std R$Y,x save in Y
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
641 clrb no error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
642 rts
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
643
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
644 * Get joytsick values
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
645 SSJOY pshs y,cc
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
646 orcc #IRQMask mask interrupts
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
647 lda #$FF
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
648 sta >PIA0Base+2
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
649 ldb >PIA0Base
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
650 ldy R$X,x get joystick number to poll
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
651 bne L0481
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
652 andb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
653 bne L0485
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
654 bra L0486
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
655 L0481 andb #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
656 beq L0486
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
657 L0485 clra
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
658 L0486 sta R$A,x
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
659 lda >PIA0Base+3
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
660 ora #$08
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
661 ldy R$X,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
662 bne L0494
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
663 anda #$F7
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
664 L0494 sta >PIA0Base+3
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
665 lda >PIA0Base+1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
666 anda #$F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
667 bsr L04B3
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
668 std R$X,x
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
669 lda >PIA0Base+1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
670 ora #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
671 bsr L04B3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
672 pshs b,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
673 ldd #63
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
674 subd ,s++
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
675 std R$Y,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
676 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
677 puls pc,y,cc
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
678
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
679 L04B3 sta >PIA0Base+1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
680 lda #$7F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
681 ldb #$40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
682 bra L04C7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
683 L04BC lsrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
684 cmpb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
685 bhi L04C7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
686 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
687 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
688 tfr a,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
689 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
690 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
691 L04C7 pshs b
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
692 sta >PIA1Base
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
693 tst >PIA0Base
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
694 bpl L04D5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
695 adda ,s+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
696 bra L04BC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
697 L04D5 suba ,s+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
698 bra L04BC
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
699
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
700 * Return display status
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
701 * Entry: A = path
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
702 * Exit: A = color code of pixel at cursor address
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
703 * X = address of graphics display memory
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
704 * Y = graphics cursor address; X = MSB, Y = LSB
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
705 SSDSTAT lbsr GfxActv gfx screen allocated?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
706 bcs L050E branch if not
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
707 ldd <V.GCrsX,u else get X/Y gfx cursor position
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
708 bsr XY2Addr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
709 tfr a,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
710 andb ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
711 L04E7 bita #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
712 bne L04F6
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
713 lsra divide D by 2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
714 lsrb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
715 tst <V.Mode,u which mode?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
716 bmi L04E7 branch if 256x192
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
717 lsra else divide D by 2 again
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
718 lsrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
719 bra L04E7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
720 L04F6 pshs b
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
721 ldb <V.PMask,u get pixel color mask in B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
722 andb #$FC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
723 orb ,s+
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
724 ldx PD.RGS,y get caller's regs
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
725 stb R$A,x place pixel color in A
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
726 ldd <V.GCrsX,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
727 std R$Y,x cursor X/Y pos in Y,
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
728 ldd <V.SBAdd,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
729 std R$X,x and screen addr in X
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
730 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
731 L050E rts
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
732
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
733 * Entry: A = X coor, B = Y coor
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
734 XY2Addr pshs y,b,a save off regs
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
735 ldb <V.Mode,u get video mode
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
736 bpl L0517 branch if 128x192 (divide A by 4)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
737 lsra else divide by 8
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
738 L0517 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
739 lsra
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
740 pshs a save on stack
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
741 ldb #191 get max Y
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
742 subb $02,s sutract from Y on stack
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
743 lda #32 byte sper line
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
744 mul
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
745 addb ,s+ add offset on stack
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
746 adca #$00
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
747 ldy <V.SBAdd,u get base address
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
748 leay d,y move D bytes into address
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
749 lda ,s pick up original X coor
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
750 sty ,s put offset addr on stack
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
751 anda <V.PixBt,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
752 ldx <V.MTabl,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
753 lda a,x
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
754 puls pc,y,x X = offset address, Y = base
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
755
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
756 * SetStat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
757 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
758 * Entry:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
759 * A = function code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
760 * Y = address of path descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
761 * U = address of device memory area
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
762 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
763 * Exit:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
764 * CC = carry set on error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
765 * B = error code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
766 *
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
767 SetStat sta <V.WrChr,u save function code
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
768 ldx PD.RGS,y get caller's regs
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
769 cmpa #SS.ComSt
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
770 lbeq SSCOMST
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
771 cmpa #SS.AAGBf
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
772 beq SSAAGBF
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
773 cmpa #SS.SLGBf
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
774 beq SSSLGBF
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
775 cmpa #SS.KySns
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
776 bne CoGetStt
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
777 ldd R$X,x get caller's key sense set data
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
778 beq L0558 branch if zero
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
779 ldb #$FF else set all bits
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
780 L0558 stb <V.KySnsF,u store value in KySnsFlag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
781 L055B clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
782 L055C rts
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
783
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
784 CoGetStt ldb #$09 CO-module setstat
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
785 JmpCO pshs b
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
786 lda <V.CurCo,u get CO-module in use
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
787 lbsr CallCO
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
788 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
789 bcc L055B
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
790 tst <V.GRFOE,u GRFO linked?
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
791 beq L055C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
792 tfr a,b
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
793 clra GRFO address offset in statics
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
794 lbra CallCO call it
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
795
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
796 * Reserve an additional graphics buffer (up to 2)
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
797 SSAAGBF ldb <V.Rdy,u was initial buffer allocated with $0F?
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
798 lbeq NotReady branch if not
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
799 pshs b save buffer number
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
800 leay <V.AGBuf,u point to additional graphics buffers
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
801 ldd ,y first entry empty?
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
802 beq L058E branch if so
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
803 leay $02,y else move to next entry
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
804 inc ,s increment B on stack
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
805 ldd ,y second entry empty?
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
806 bne L059E if not, no room for more... error out
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
807 L058E lbsr GetMem allocate graphics buffer memory
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
808 bcs L05A1 branch if error
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
809 std ,y save new buffer pointer at ,Y
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
810 std R$X,x and in caller's X
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
811 puls b get buffer number off stack
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
812 clra clear hi byte of D
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
813 std R$Y,x and put in caller's Y (buffer number)
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
814 clrb call is ok
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
815 rts and return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
816 L059E ldb #E$BMode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
817 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
818 L05A1 puls pc,a
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
819
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
820 * Select a graphics buffer
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
821 SSSLGBF ldb <V.Rdy,u was initial buffer allocated with $0F?
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
822 lbeq NotReady branch if not
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
823 ldd R$Y,x else get buffer number from caller
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
824 cmpd #$0002 compare against high
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
825 bhi BadMode branch if error
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
826 leay <V.GBuff,u point to base graphics buffer address
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
827 lslb multiply by 2
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
828 ldd b,y get pointer
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
829 beq BadMode branch if error
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
830 std <V.SBAdd,u else save in current
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
831 ldd R$X,x get select flag
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
832 beq L05C3 if zero, do nothing
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
833 ldb #$01 else set display flag
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
834 L05C3 stb <V.CFlg1,u save display flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
835 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
836 rts
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
837 BadMode comb
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
838 ldb #E$BMode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
839 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
840
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
841 SSCOMST ldd R$Y,x Get caller's Y
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
842 L05CE bita #$02 CO80?
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
843 bne GoCO80 branch if so
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
844 ldb #$10 assume true lower case TRUE
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
845 bita #$01 true lowercase bit set?
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
846 bne GoCO32 branch if so
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
847 clrb true lower case FALSE
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
848 GoCO32 stb <V.CFlag,u save flag for later
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
849 lda #$02 CO32 is loaded bit
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
850 ldx #$2010 32x16
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
851 pshs u,y,x,a
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
852 leax >CO32,pcr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
853 bra L05F4
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
854 GoCO80 lda #$04 'CO80 is loaded' bit
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
855 ldx #$5018 80x24
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
856 pshs u,y,x,a
164
20f0878b4a7f Added more verbosity to source
boisy
parents: 0
diff changeset
857 leax >CO80,pcr
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
858 L05F4 bsr L0601 load CO-module if not already loaded
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
859 puls u,y,x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
860 bcs L0600
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
861 stx <V.Col,u save screen size
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
862 sta <V.CurCo,u current module in use? ($02=CO32, $04=C080)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
863 L0600 rts
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
864 L0601 bita <V.COLoad,u module loaded?
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
865 beq L0608 branch if not
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
866 L0606 clrb else clear carry
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
867 rts and return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
868 L0608 pshs y,x,a
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
869 lbsr LinkSub
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
870 bcc L061F branch if link was successful
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
871 ldx $01,s get pointer to name on stack
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
872 pshs u
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
873 os9 F$Load try to load subroutine I/O module
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
874 puls u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
875 bcc L061F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
876 puls y,x,a
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
877 lbra NoIOMod
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
878 L061F leax <V.GRFOE,u get base pointer to CO-entries
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
879 lda ,s get A off stack
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
880 sty a,x save off CO32/CO80 entry point
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
881 puls y,x,a
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
882 ldb #$00 CO-module init offset
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
883 lbra CallCO call it
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
884
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
885 * Link to subroutine
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
886 LinkSub pshs u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
887 lda #Systm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
888 os9 F$Link
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
889 puls pc,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
890
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
891 * 128x192 4 color pixel table
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
892 Mode1Clr fdb $0055,$aaff
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
893
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
894 GfxDispatch
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
895 cmpa #$15 GRFO-handled code?
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
896 bcc GoGrfo branch if so
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
897 cmpa #$0F display graphics code?
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
898 beq Do0F branch if so
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
899 suba #$10
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
900 bsr GfxActv check if first gfx screen was alloc'ed
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
901 bcs L0663 if not, return with error
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
902 leax <gfxtbl,pcr else point to jump table
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
903 lsla multiply by two
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
904 ldd a,x get address of routine
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
905 jmp d,x jump to it
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
906
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
907 * Jump table for graphics codes $10-$14
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
908 gfxtbl fdb Do10-gfxtbl $10 - Preset Screen
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
909 fdb Do11-gfxtbl $11 - Set Color
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
910 fdb Do12-gfxtbl $12 - End Graphics
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
911 fdb Do13-gfxtbl $13 - Erase Graphics
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
912 fdb Do14-gfxtbl $14 - Home Graphics Cursor
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
913
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
914 GfxActv ldb <V.Rdy,u gfx screen allocated?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
915 bne L0606 branch if so
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
916 NotReady comb
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
917 ldb #E$NotRdy
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
918 L0663 rts
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
919
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
920 GoGrfo bsr GfxActv
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
921 bcs L0663
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
922 ldx <V.GRFOE,u get GRFO entry point
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
923 bne L0681 branch if not zero
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
924 pshs y,a else preserve regs
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
925 bne L067F
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
926 leax >GRFO,pcr get pointer to name string
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
927 bsr LinkSub link to GRFO
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
928 bcc L067B branch if ok
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
929 puls pc,y,a else exit with error
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
930 L067B sty <V.GRFOE,u save module entry pointer
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
931 L067F puls y,a restore regs
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
932 L0681 clra A = GRFO address offset in statics
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
933 lbra CoWrite
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
934
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
935 * Allocate GFX mem -- we must allocate on a 512 byte page boundary
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
936 GetMem pshs u save static pointer
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
937 ldd #6144+256 allocate graphics memory + 1 page
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
938 os9 F$SRqMem do it
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
939 bcc L0691 branch if ok
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
940 puls pc,u else return with error
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
941 L0691 tfr u,d move mem ptr to D
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
942 puls u restore statics
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
943 tfr a,b move high 8 bits to lower
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
944 bita #$01 odd page?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
945 beq L069F branch if not
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
946 adda #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
947 bra L06A1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
948 L069F addb #$18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
949 L06A1 pshs u,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
950 tfr b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
951 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
952 tfr d,u
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
953 ldd #256
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
954 os9 F$SRtMem return page
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
955 puls u,a
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
956 bcs L06B3 branch if error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
957 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
958 L06B3 rts
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
959
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
960 * $0F - display graphics
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
961 Do0F leax <DispGfx,pcr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
962 ldb #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
963 lbra L03BF
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
964
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
965 DispGfx ldb <V.Rdy,u already allocated initial buffer?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
966 bne L06D1 branch if so
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
967 bsr GetMem else get graphics memory
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
968 bcs L06EF branch if error
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
969 std <V.SBAdd,u save memory
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
970 std <V.GBuff,u and GBuff
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
971 inc <V.Rdy,u ok, we're ready
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
972 lbsr EraseGfx clear gfx mem
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
973 L06D1 lda <V.NChr2,u get character after next
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
974 sta <V.PMask,u save color set (0-3)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
975 anda #$03 mask out all but lower 2 bits
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
976 leax >Mode1Clr,pcr point to mask byte table
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
977 lda a,x get byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
978 sta <V.Msk1,u save mask byte here
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
979 sta <V.Msk2,u and here
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
980 lda <V.NChar,u get next char, mode byte (0-1)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
981 cmpa #$01 compare against max
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
982 bls L06F0 branch if valid
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
983 comb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
984 ldb #E$BMode else invalid mode specified, send error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
985 L06EF rts
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
986
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
987 L06F0 tsta test user supplied mode byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
988 beq L0710 branch if 256x192
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
989 ldd #$C003
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
990 std <V.MCol,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
991 lda #$01
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
992 sta <V.Mode,u 128x192 mode
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
993 lda #$E0
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
994 ldb <V.NChr2,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
995 andb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
996 beq L0709
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
997 lda #$F0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
998 L0709 ldb #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
999 leax <L0742,pcr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1000 bra L072D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1001 L0710 ldd #$8001
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1002 std <V.MCol,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1003 lda #$FF
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1004 tst <V.Msk1,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1005 beq L0723
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1006 sta <V.Msk1,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1007 sta <V.Msk2,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1008 L0723 sta <V.Mode,u 256x192 mode
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1009 lda #$F0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1010 ldb #$07
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1011 leax <L0746,pcr
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1012 L072D stb <V.PixBt,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1013 stx <V.MTabl,u
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1014 ldb <V.NChr2,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1015 andb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1016 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1017 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1018 ora ,s+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1019 ldb #$01
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1020 * Indicate screen is current
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
1021 lbra SetDsply
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1022
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1023 L0742 fcb $c0,$30,$0c,$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1024 L0746 fcb $80,$40,$20,$10,$08,$04,$02,$01
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
1025
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1026 * $11 - set color
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1027 Do11 leax <SetColor,pcr set up return address
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1028 lbra L03BD
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1029
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1030 SetColor clr <V.NChar,u get next char
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1031 lda <V.Mode,u which mode?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1032 bmi L075F branch if 256x192
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1033 inc <V.NChar,u
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1034 L075F lbra L06D1
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1035
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1036 * $12 - end graphics
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1037 Do12 leax <V.GBuff,u point to first buffer
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1038 ldy #$0000 Y = 0
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1039 ldb #$03 free 3 gfx screens max
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1040 pshs u,b
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
1041 L076D ldd #6144 size of graphics screen
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1042 ldu ,x++ get address of graphics screen
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1043 beq L077A branch if zero
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1044 sty -$02,x else clear entry
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1045 os9 F$SRtMem and return memory
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1046 L077A dec ,s decrement counter
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1047 bgt L076D keep going if not end
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1048 ldu ,x flood fill buffer?
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1049 beq L0788 branch if not allocated
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1050 ldd #512 else get size
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1051 os9 F$SRtMem and free memory
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1052 L0788 puls u,b restore regs
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1053 clra
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1054 sta <V.Rdy,u gfx mem no longer alloced
1584
0e3a28789196 Source comments updated
boisy
parents: 1583
diff changeset
1055 lbra SetDsply
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1056
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1057 Do10 leax <Preset,pcr set up return address
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1058 lbra L03BD
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1059
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1060 * NOTE! Shouldn't this be lda <V.NChar,u ??
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1061 Preset lda <V.NChr2,u get next char
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1062 tst <V.Mode,u which mode?
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1063 bpl L07A7 branch if 128x192 4 color
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1064 ldb #$FF assume we will clear with $FF
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1065 anda #$01 mask out all but 1 bit (2 colors)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1066 beq EraseGfx erase graphic screen with color $00
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1067 bra L07B2 else erase screen with color $FF
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1068 L07A7 anda #$03 mask out all but 2 bits (4 colors)
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1069 leax >Mode1Clr,pcr point to color table
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1070 ldb a,x get appropriate byte
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1071 bra L07B2 and start the clearing
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1072
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1073 * Erase graphics screen
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1074 Do13
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
1075 EraseGfx clrb value to clear screen with
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1076 L07B2 ldx <V.SBAdd,u
1586
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
1077 leax >6144+1,x point to end of gfx mem + 1
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
1078 L07B9 stb ,-x clear
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
1079 cmpx <V.SBAdd,u X = to start?
e26f7d2e40df source updated
boisy
parents: 1585
diff changeset
1080 bhi L07B9 if not, continue
1583
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1081 * Home Graphics cursor
2d73cd04596b More comments
boisy
parents: 1582
diff changeset
1082 Do14 clra
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1083 clrb
1585
4a2a4667a4cf Source enhancements
boisy
parents: 1584
diff changeset
1084 std <V.GCrsX,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1085 rts
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
1086
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
1087 *
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
1088 * Ding - tickle CoCo's PIA to emit a sound
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
1089 *
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
1090 Ding pshs b,a
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1091 lda >PIA0Base+1
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1092 ldb >PIA0Base+3
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1093 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1094 anda #$F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1095 andb #$F7
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1096 sta >PIA0Base+1
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1097 stb >PIA0Base+3
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1098 lda >PIA1Base+3
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1099 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1100 ora #$08
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1101 sta >PIA1Base+3
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1102 ldb #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1103 L07E6 lda #$FE
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
1104 bsr DingDuration
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1105 lda #$02
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
1106 bsr DingDuration
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1107 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1108 bne L07E6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1109 puls a
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1110 sta >PIA1Base+3
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1111 puls b,a
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1112 sta >PIA0Base+1
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 317
diff changeset
1113 stb >PIA0Base+3
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1114 puls pc,b,a
307
1580bbd1e2fc Added more comments and source symbolics in ccio.asm
boisy
parents: 257
diff changeset
1115
1582
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
1116 DingDuration
e19a38f50c3a More commments added
boisy
parents: 1340
diff changeset
1117 sta >PIA1Base
317
e6dcf1ac92b2 Modified ccio.asm for better comments, init.asm simplified
boisy
parents: 307
diff changeset
1118 lda #128
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1119 L0805 inca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1120 bne L0805
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1121 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1122
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1123 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1124 eom equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1125 end