annotate level2/modules/covdg.asm @ 2018:505c8d261ef6

Futher division of krn, commnents added
author boisy
date Wed, 08 Mar 2006 01:58:50 +0000
parents 21bf55c38692
children 8b36468b2edb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1 ********************************************************************
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2 * CoVDG - CoCo 3 VDG I/O module
1e312b144f4d Major changes:
boisy
parents:
diff changeset
3 *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
4 * $Id$
1e312b144f4d Major changes:
boisy
parents:
diff changeset
5 *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
6 *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
7 * Edt/Rev YYYY/MM/DD Modified by
1e312b144f4d Major changes:
boisy
parents:
diff changeset
8 * Comment
1e312b144f4d Major changes:
boisy
parents:
diff changeset
9 * ------------------------------------------------------------------
1e312b144f4d Major changes:
boisy
parents:
diff changeset
10 * 4 2003/01/09 Boisy G. Pitre
1e312b144f4d Major changes:
boisy
parents:
diff changeset
11 * Quite a few changes:
1e312b144f4d Major changes:
boisy
parents:
diff changeset
12 * - Merged in CoCo 2 gfx code from original OS-9 Level 2 code.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
13 * - Incorporated code tweaks for 6809 and 6309 code from the vdgint_small
1e312b144f4d Major changes:
boisy
parents:
diff changeset
14 * and vdgint_tiny source files.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
15 * - Fixed long-standing cursor color bug.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
16 * - Fixed long-standing F$SRtMem bug in CoCo 2 "graphics end" code $12
1e312b144f4d Major changes:
boisy
parents:
diff changeset
17 * (see comments)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
18 *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
19 * 4r1 2003/09/16 Robert Gault
1e312b144f4d Major changes:
boisy
parents:
diff changeset
20 * Added patch to work 1MB and 2MB CoCo 3s.
1938
14e43c3ec661 Reset editions
boisy
parents: 1933
diff changeset
21 *
14e43c3ec661 Reset editions
boisy
parents: 1933
diff changeset
22 * 1 2005/11/26 Boisy G. Pitre
14e43c3ec661 Reset editions
boisy
parents: 1933
diff changeset
23 * Renamed from VDGInt, reset edition.
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
24 *
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
25 * 2006/01/17 Robert Gault
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
26 * Changed the Select routine to permit the use of display 1b 21 within
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
27 * scripts when changing from a window to a vdg screen. See discriptions
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
28 * in cowin.asm. RG
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
29
1e312b144f4d Major changes:
boisy
parents:
diff changeset
30 nam CoVDG
1e312b144f4d Major changes:
boisy
parents:
diff changeset
31 ttl CoCo 3 VDG I/O module
1e312b144f4d Major changes:
boisy
parents:
diff changeset
32
1e312b144f4d Major changes:
boisy
parents:
diff changeset
33 * Disassembled 98/09/31 12:15:57 by Disasm v1.6 (C) 1988 by RML
1e312b144f4d Major changes:
boisy
parents:
diff changeset
34
1e312b144f4d Major changes:
boisy
parents:
diff changeset
35 ifp1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
36 use defsfile
1e312b144f4d Major changes:
boisy
parents:
diff changeset
37 use vdgdefs
1e312b144f4d Major changes:
boisy
parents:
diff changeset
38 endc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
39
1e312b144f4d Major changes:
boisy
parents:
diff changeset
40 FFStSz equ 512 flood fill stack size in bytes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
41
1e312b144f4d Major changes:
boisy
parents:
diff changeset
42 tylg set Systm+Objct
1e312b144f4d Major changes:
boisy
parents:
diff changeset
43 atrv set ReEnt+rev
1938
14e43c3ec661 Reset editions
boisy
parents: 1933
diff changeset
44 rev set $00
14e43c3ec661 Reset editions
boisy
parents: 1933
diff changeset
45 edition set 1
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
46
1e312b144f4d Major changes:
boisy
parents:
diff changeset
47 skip2 equ $8C cmpx instruction
1e312b144f4d Major changes:
boisy
parents:
diff changeset
48
1e312b144f4d Major changes:
boisy
parents:
diff changeset
49 mod eom,name,tylg,atrv,start,size
1e312b144f4d Major changes:
boisy
parents:
diff changeset
50
1e312b144f4d Major changes:
boisy
parents:
diff changeset
51 u0000 rmb 0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
52 size equ .
1e312b144f4d Major changes:
boisy
parents:
diff changeset
53
1e312b144f4d Major changes:
boisy
parents:
diff changeset
54 fcb $07
1e312b144f4d Major changes:
boisy
parents:
diff changeset
55
1e312b144f4d Major changes:
boisy
parents:
diff changeset
56 name fcs /CoVDG/
1e312b144f4d Major changes:
boisy
parents:
diff changeset
57 fcb edition
1e312b144f4d Major changes:
boisy
parents:
diff changeset
58
1e312b144f4d Major changes:
boisy
parents:
diff changeset
59 start lbra Read actually more like INIZ...
1e312b144f4d Major changes:
boisy
parents:
diff changeset
60 lbra Write
1e312b144f4d Major changes:
boisy
parents:
diff changeset
61 lbra GetStat
1e312b144f4d Major changes:
boisy
parents:
diff changeset
62 lbra SetStat
1e312b144f4d Major changes:
boisy
parents:
diff changeset
63 lbra Term
1e312b144f4d Major changes:
boisy
parents:
diff changeset
64
1e312b144f4d Major changes:
boisy
parents:
diff changeset
65 * Update Window
1e312b144f4d Major changes:
boisy
parents:
diff changeset
66 * Called from VTIO
1e312b144f4d Major changes:
boisy
parents:
diff changeset
67 * Entry: A = function code
1e312b144f4d Major changes:
boisy
parents:
diff changeset
68 * 0 = select new window to be active
1e312b144f4d Major changes:
boisy
parents:
diff changeset
69 * 1 = update mouse packet
1e312b144f4d Major changes:
boisy
parents:
diff changeset
70 * >1 = only used by CoGrf/CoWin
1e312b144f4d Major changes:
boisy
parents:
diff changeset
71 * U = device memory pointer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
72 * X = path descriptor pointer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
73
1e312b144f4d Major changes:
boisy
parents:
diff changeset
74 tsta zero?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
75 bne L0035 branch if not
1e312b144f4d Major changes:
boisy
parents:
diff changeset
76 ldb <VD.DGBuf,u get number of currently displayed buffer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
77 lbne ShowS branch if not zero
1e312b144f4d Major changes:
boisy
parents:
diff changeset
78 ldd <VD.TFlg1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
79 lbra DispAlfa
1e312b144f4d Major changes:
boisy
parents:
diff changeset
80
1e312b144f4d Major changes:
boisy
parents:
diff changeset
81 L0035 deca set x,y size of window?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
82 beq L003B branch if so
1e312b144f4d Major changes:
boisy
parents:
diff changeset
83 clrb no errors
1e312b144f4d Major changes:
boisy
parents:
diff changeset
84 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
85
1e312b144f4d Major changes:
boisy
parents:
diff changeset
86 L003B ldx <D.CCMem pointer to start of CC memory
1e312b144f4d Major changes:
boisy
parents:
diff changeset
87 leax <G.Mouse+Pt.AcX,x to X,Y coor, X,Y window
1e312b144f4d Major changes:
boisy
parents:
diff changeset
88 * leax <$54,x to X,Y coor, X,Y window
1e312b144f4d Major changes:
boisy
parents:
diff changeset
89 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
90 ldq ,x get X,Y coordinate
1e312b144f4d Major changes:
boisy
parents:
diff changeset
91 stq $04,x copy to window relative X,Y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
92 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
93 ldd ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
94 std $04,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
95 ldd $02,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
96 std $06,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
97 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
98 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
99 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
100
1e312b144f4d Major changes:
boisy
parents:
diff changeset
101 * Terminate device
1e312b144f4d Major changes:
boisy
parents:
diff changeset
102 Term pshs u,y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
103 ldb #$03
1e312b144f4d Major changes:
boisy
parents:
diff changeset
104 L004E pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
105 lbsr GetScrn get screen table entry into X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
106 lbsr FreeBlks free blocks used by screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
107 puls b get count
1e312b144f4d Major changes:
boisy
parents:
diff changeset
108 decb decrement
1e312b144f4d Major changes:
boisy
parents:
diff changeset
109 bne L004E branch until zero
1e312b144f4d Major changes:
boisy
parents:
diff changeset
110 clr <VD.Start,u no screens in use
1e312b144f4d Major changes:
boisy
parents:
diff changeset
111 ldd #512 size of alpha screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
112 ldu <VD.ScrnA,u get pointer to alpha screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
113 beq ClrStat branch if none
1e312b144f4d Major changes:
boisy
parents:
diff changeset
114 os9 F$SRtMem else return memory
1e312b144f4d Major changes:
boisy
parents:
diff changeset
115 ClrStat ldb #$E1 size of 1 page -$1D (SCF memory requirements)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
116 leax <VD.Strt1,u point to start of VDG statics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
117 L006F clr ,x+ set stored byte to zero
1e312b144f4d Major changes:
boisy
parents:
diff changeset
118 decb decrement
1e312b144f4d Major changes:
boisy
parents:
diff changeset
119 bne L006F until zero
1e312b144f4d Major changes:
boisy
parents:
diff changeset
120 bra L00D5 and exit
1e312b144f4d Major changes:
boisy
parents:
diff changeset
121
1e312b144f4d Major changes:
boisy
parents:
diff changeset
122 * Read bytes from IN
1e312b144f4d Major changes:
boisy
parents:
diff changeset
123 * Actually, this is more like an INIZ of the device.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
124 Read pshs u,y,x save regs
1e312b144f4d Major changes:
boisy
parents:
diff changeset
125 bsr SetupPal set up palettes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
126 lda #$AF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
127 sta <VD.CColr,u default color cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
128 pshs u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
129 ldd #768 gets 1 page on an odd page boundary
1e312b144f4d Major changes:
boisy
parents:
diff changeset
130 os9 F$SRqMem request from top of sys ram
1e312b144f4d Major changes:
boisy
parents:
diff changeset
131 bcs L00D6 error out of no system mem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
132 tfr u,d U = addr of memory
1e312b144f4d Major changes:
boisy
parents:
diff changeset
133 tfr u,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
134 bita #$01 test to see if on even page
1e312b144f4d Major changes:
boisy
parents:
diff changeset
135 beq IsEven branch if even
1e312b144f4d Major changes:
boisy
parents:
diff changeset
136 leax >256,x else point 100 bytes into mem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
137 bra IsOdd and free
1e312b144f4d Major changes:
boisy
parents:
diff changeset
138 IsEven leau >512,u we only need 2 pages for the screen memory
1e312b144f4d Major changes:
boisy
parents:
diff changeset
139 IsOdd ldd #256 1 page return
1e312b144f4d Major changes:
boisy
parents:
diff changeset
140 os9 F$SRtMem return system memory
1e312b144f4d Major changes:
boisy
parents:
diff changeset
141 puls u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
142 stx <VD.ScrnA,u save start address of the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
143 stx <VD.CrsrA,u and start cursor position
1e312b144f4d Major changes:
boisy
parents:
diff changeset
144 leax >512,x point to end of screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
145 stx <VD.ScrnE,u save it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
146 lda #$60 get default character
1e312b144f4d Major changes:
boisy
parents:
diff changeset
147 sta <VD.CChar,u put character under the cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
148 sta <VD.Chr1,u only referenced here ??
1e312b144f4d Major changes:
boisy
parents:
diff changeset
149 lbsr ClrScrn clear the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
150 inc <VD.Start,u increment VDG screen in use
1e312b144f4d Major changes:
boisy
parents:
diff changeset
151 ldd <VD.Strt1,u seemling useless??
1e312b144f4d Major changes:
boisy
parents:
diff changeset
152 lbsr L054C set to true lowercase, screen size
1e312b144f4d Major changes:
boisy
parents:
diff changeset
153 leax <VD.NChar,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
154 stx <VD.EPlt1,u where to get next character from
1e312b144f4d Major changes:
boisy
parents:
diff changeset
155 stx <VD.EPlt2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
156 ldu <D.CCMem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
157 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
158 oim #$02,<G.BCFFlg,u set to VDGINT found
1e312b144f4d Major changes:
boisy
parents:
diff changeset
159 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
160 ldb <G.BCFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
161 orb #$02 set to VDGINT found
1e312b144f4d Major changes:
boisy
parents:
diff changeset
162 stb <G.BCFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
163 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
164 L00D5 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
165 L00D6 puls pc,u,y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
166
1e312b144f4d Major changes:
boisy
parents:
diff changeset
167 SetupPal pshs u,y,x,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
168 lda #$08
1e312b144f4d Major changes:
boisy
parents:
diff changeset
169 sta <VD.PlFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
170 leax >L011A,pcr default palette
1e312b144f4d Major changes:
boisy
parents:
diff changeset
171 leay <VD.Palet,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
172 L00E6 leau >L00F8,pcr CMP to RGB conversion
1e312b144f4d Major changes:
boisy
parents:
diff changeset
173 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
174 L00EA tfr u,w
1e312b144f4d Major changes:
boisy
parents:
diff changeset
175 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
176 L00EA pshs u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
177 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
178 leau >L012A,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
179 ldb #16
1e312b144f4d Major changes:
boisy
parents:
diff changeset
180 L00F2 lda ,x+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
181 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
182 jmp ,w
1e312b144f4d Major changes:
boisy
parents:
diff changeset
183 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
184 jmp [,s]
1e312b144f4d Major changes:
boisy
parents:
diff changeset
185 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
186 L00F6 lda a,u remap to CMP values
1e312b144f4d Major changes:
boisy
parents:
diff changeset
187 L00F8 sta ,y+ and save RGB data
1e312b144f4d Major changes:
boisy
parents:
diff changeset
188 decb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
189 bne L00F2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
190 IFEQ H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
191 leas $02,s clean up stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
192 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
193 L00FF puls pc,u,y,x,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
194
1e312b144f4d Major changes:
boisy
parents:
diff changeset
195 SetPals pshs u,y,x,b,a puts palette data in.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
196 lda >WGlobal+G.CrDvFl is this screen active?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
197 beq L00FF 0 = not active
1e312b144f4d Major changes:
boisy
parents:
diff changeset
198 leax <VD.Palet,u point X to palette table
1e312b144f4d Major changes:
boisy
parents:
diff changeset
199 ldy #$FFB0 point Y to palette register
1e312b144f4d Major changes:
boisy
parents:
diff changeset
200 lda >WGlobal+G.MonTyp universal RGB/CMP 0 = CMP, 1 = RGB, 2 = MONO
1e312b144f4d Major changes:
boisy
parents:
diff changeset
201 bne L00E6 if not 0 (CMP) don't re-map colors
1e312b144f4d Major changes:
boisy
parents:
diff changeset
202 leau >L00F6,pcr else do re-map colors
1e312b144f4d Major changes:
boisy
parents:
diff changeset
203 bra L00EA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
204
1e312b144f4d Major changes:
boisy
parents:
diff changeset
205 L011A fcb $12,$36,$09,$24 default palette data
1e312b144f4d Major changes:
boisy
parents:
diff changeset
206 fcb $3f,$1b,$2d,$26
1e312b144f4d Major changes:
boisy
parents:
diff changeset
207 fcb $00,$12,$00,$3f
1e312b144f4d Major changes:
boisy
parents:
diff changeset
208 fcb $00,$12,$00,$26
1e312b144f4d Major changes:
boisy
parents:
diff changeset
209
1e312b144f4d Major changes:
boisy
parents:
diff changeset
210 * converts CMP to RGB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
211 L012A fdb $000c,$020e,$0709,$0510
1e312b144f4d Major changes:
boisy
parents:
diff changeset
212 fdb $1c2c,$0d1d,$0b1b,$0a2b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
213 fdb $2211,$1221,$0301,$1332
1e312b144f4d Major changes:
boisy
parents:
diff changeset
214 fdb $1e2d,$1f2e,$0f3c,$2f3d
1e312b144f4d Major changes:
boisy
parents:
diff changeset
215 fdb $1708,$1506,$2716,$2636
1e312b144f4d Major changes:
boisy
parents:
diff changeset
216 fdb $192a,$1a3a,$1829,$2838
1e312b144f4d Major changes:
boisy
parents:
diff changeset
217 fdb $1404,$2333,$2535,$2434
1e312b144f4d Major changes:
boisy
parents:
diff changeset
218 fdb $203B,$313E,$3739,$3F30
1e312b144f4d Major changes:
boisy
parents:
diff changeset
219
1e312b144f4d Major changes:
boisy
parents:
diff changeset
220 * Entry: A = char to write
1e312b144f4d Major changes:
boisy
parents:
diff changeset
221 * Y = path desc ptr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
222 Write equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
223 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
224 cmpa #$0F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
225 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
226 cmpa #$0E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
227 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
228 bls Dispatch
1e312b144f4d Major changes:
boisy
parents:
diff changeset
229 cmpa #$1B escape code?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
230 lbeq Escape yes, do escape immediately
1e312b144f4d Major changes:
boisy
parents:
diff changeset
231 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
232 cmpa #$1E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
233 bcs Do1E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
234 cmpa #$1F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
235 bls Dispatch
1e312b144f4d Major changes:
boisy
parents:
diff changeset
236 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
237 cmpa #$1F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
238 lbls NoOp ignore gfx codes if not CoCo 2 compatible
1e312b144f4d Major changes:
boisy
parents:
diff changeset
239 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
240 tsta
1e312b144f4d Major changes:
boisy
parents:
diff changeset
241 bmi L01BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
242 ldb <VD.CFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
243 beq L019A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
244 cmpa #$5E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
245 bne L018A re-map characters from ASCII-VDG
1e312b144f4d Major changes:
boisy
parents:
diff changeset
246 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
247 bra L01BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
248 L018A cmpa #$5F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
249 bne L0192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
250 lda #$1F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
251 bra L01BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
252 L0192 cmpa #$60
1e312b144f4d Major changes:
boisy
parents:
diff changeset
253 bne L01AA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
254 lda #$67
1e312b144f4d Major changes:
boisy
parents:
diff changeset
255 bra L01BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
256
1e312b144f4d Major changes:
boisy
parents:
diff changeset
257 L019A cmpa #$7C true lowercase
1e312b144f4d Major changes:
boisy
parents:
diff changeset
258 bne L01A2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
259 lda #$21
1e312b144f4d Major changes:
boisy
parents:
diff changeset
260 bra L01BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
261 L01A2 cmpa #$7E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
262 bne L01AA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
263 lda #$2D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
264 bra L01BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
265 L01AA cmpa #$60
1e312b144f4d Major changes:
boisy
parents:
diff changeset
266 bcs L01B2 re-map ASCII
1e312b144f4d Major changes:
boisy
parents:
diff changeset
267 suba #$60
1e312b144f4d Major changes:
boisy
parents:
diff changeset
268 bra L01BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
269 L01B2 cmpa #$40
1e312b144f4d Major changes:
boisy
parents:
diff changeset
270 bcs L01B8
1e312b144f4d Major changes:
boisy
parents:
diff changeset
271 suba #$40
1e312b144f4d Major changes:
boisy
parents:
diff changeset
272 L01B8 eora #$40
1e312b144f4d Major changes:
boisy
parents:
diff changeset
273 L01BA ldx <VD.CrsrA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
274 sta ,x+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
275 stx <VD.CrsrA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
276 cmpx <VD.ScrnE,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
277 bcs L01CA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
278 lbsr SScrl if at end of screen, scroll it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
279 L01CA lbsr ShowCrsr ends with a CLRB/RTS anyhow
1e312b144f4d Major changes:
boisy
parents:
diff changeset
280 NoOp clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
281 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
282
1e312b144f4d Major changes:
boisy
parents:
diff changeset
283 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
284 Do1E lbsr ChkDvRdy
1e312b144f4d Major changes:
boisy
parents:
diff changeset
285 bcc Dispatch
1e312b144f4d Major changes:
boisy
parents:
diff changeset
286 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
287 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
288
1e312b144f4d Major changes:
boisy
parents:
diff changeset
289 Dispatch leax >DCodeTbl,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
290 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
291 ldd a,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
292 jmp d,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
293
1e312b144f4d Major changes:
boisy
parents:
diff changeset
294 DCodeTbl fdb NoOp-DCodeTbl $00 - No Operation
1e312b144f4d Major changes:
boisy
parents:
diff changeset
295 fdb CurHome-DCodeTbl $01 - Home Cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
296 fdb CurXY-DCodeTbl $02 - Move Cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
297 fdb DelLine-DCodeTbl $03 - Delete Line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
298 fdb ErEOLine-DCodeTbl $04 - Erase to End Of Line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
299 fdb CrsrSw-DCodeTbl $05 - Switch Cursor Color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
300 fdb CurRght-DCodeTbl $06 - Move Cursor Right
1e312b144f4d Major changes:
boisy
parents:
diff changeset
301 fdb NoOp-DCodeTbl $07 - Bell (Handled by VTIO)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
302 fdb CurLeft-DCodeTbl $08 - Move Cursor Left
1e312b144f4d Major changes:
boisy
parents:
diff changeset
303 fdb CurUp-DCodeTbl $09 - Move Cursor Up
1e312b144f4d Major changes:
boisy
parents:
diff changeset
304 fdb CurDown-DCodeTbl $0A - Move Cursor Down
1e312b144f4d Major changes:
boisy
parents:
diff changeset
305 fdb ErEOScrn-DCodeTbl $0B - Erase to End Of Screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
306 fdb ClrScrn-DCodeTbl $0C - Clear Screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
307 fdb Retrn-DCodeTbl $0D - Carriage Return
1e312b144f4d Major changes:
boisy
parents:
diff changeset
308 fdb Do0E-DCodeTbl $0E - Display Alpha Screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
310 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
311 fdb Do0F-DCodeTbl $0F - Display Graphics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
312 fdb Do10-DCodeTbl $10 - Preset Screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
313 fdb Do11-DCodeTbl $11 - Set Color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
314 fdb Do12-DCodeTbl $12 - End Graphics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
315 fdb Do13-DCodeTbl $13 - Erase Graphics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
316 fdb Do14-DCodeTbl $14 - Home Graphics Cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
317 fdb Do15-DCodeTbl $15 - Set Graphics Cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
318 fdb Do16-DCodeTbl $16 - Draw Line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
319 fdb Do17-DCodeTbl $17 - Erase Line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
320 fdb Do18-DCodeTbl $18 - Set Point
1e312b144f4d Major changes:
boisy
parents:
diff changeset
321 fdb Do19-DCodeTbl $19 - Erase Point
1e312b144f4d Major changes:
boisy
parents:
diff changeset
322 fdb Do1A-DCodeTbl $1A - Draw Circle
1e312b144f4d Major changes:
boisy
parents:
diff changeset
323 fdb Escape-DCodeTbl $1B - Escape
1e312b144f4d Major changes:
boisy
parents:
diff changeset
324 fdb Do1C-DCodeTbl $1C - Erase Circle
1e312b144f4d Major changes:
boisy
parents:
diff changeset
325 fdb Do1D-DCodeTbl $1D - Flood Fill
1e312b144f4d Major changes:
boisy
parents:
diff changeset
326 fdb NoOp-DCodeTbl $1E - No Operation
1e312b144f4d Major changes:
boisy
parents:
diff changeset
327 fdb NoOp-DCodeTbl $1F - No Operation
1e312b144f4d Major changes:
boisy
parents:
diff changeset
328 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
329
1e312b144f4d Major changes:
boisy
parents:
diff changeset
330 * Code fragment from original CoCo 3 VDGInt by Tandy - not referenced
1e312b144f4d Major changes:
boisy
parents:
diff changeset
331 * comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
332 * ldb #E$Write
1e312b144f4d Major changes:
boisy
parents:
diff changeset
333 * rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
334
1e312b144f4d Major changes:
boisy
parents:
diff changeset
335 * $1B does palette changes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
336 Escape ldx <VD.EPlt1,u now X points to VD.NChar
1e312b144f4d Major changes:
boisy
parents:
diff changeset
337 lda ,x get char following
1e312b144f4d Major changes:
boisy
parents:
diff changeset
338 cmpa #$30 default color?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
339 bne L0209 branch if not
1e312b144f4d Major changes:
boisy
parents:
diff changeset
340 lbsr SetupPal do default palette
1e312b144f4d Major changes:
boisy
parents:
diff changeset
341 lbra L026E put palette and exit
1e312b144f4d Major changes:
boisy
parents:
diff changeset
342
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
343 * The reasons for the commented out lines below are discussed in cowin.asm
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
344 * where the functions are identical. RG
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
345 L0209 cmpa #$31 change palette?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
346 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
347 lbeq PalProc branch if so
1e312b144f4d Major changes:
boisy
parents:
diff changeset
348 cmpa #$21
1e312b144f4d Major changes:
boisy
parents:
diff changeset
349 lbne NoOp return without error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
350 ldx PD.RGS,y get registers
1e312b144f4d Major changes:
boisy
parents:
diff changeset
351 lda R$A,x get path
1e312b144f4d Major changes:
boisy
parents:
diff changeset
352 ldx <D.Proc get current proc
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
353 * There does not seem to be a reason for the next two lines. RG
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
354 * cmpa >P$SelP,x compare against selected path
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
355 * beq L0249 branch if empty
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
356 ldb >P$SelP,x else load selected path from process descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
357 sta >P$SelP,x and store passed path
1e312b144f4d Major changes:
boisy
parents:
diff changeset
358 pshs y save our path desc ptr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
359 bsr L024A get device table entry for path
1e312b144f4d Major changes:
boisy
parents:
diff changeset
360 ldy V$STAT,y get driver statics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
361 ldx <D.CCMem get CoCo memory
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
362 * Again, there does not seem to be a reason for this or the next branch. RG
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
363 * cmpy <G.CurDev,x
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
364 puls y restore our path desc ptr
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
365 * bne L0248
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
366 inc <VD.DFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
367 ldy <G.CurDev,x get current static mem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
368 sty <G.PrWMPt,x copy to previous
1e312b144f4d Major changes:
boisy
parents:
diff changeset
369 stu <G.CurDev,x and save new static mem ptr
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
370 * Give system a chance to stabilize. RG
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
371 ldx #2
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
372 os9 F$Sleep
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
373 L0248 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
374 L0249 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
375
1e312b144f4d Major changes:
boisy
parents:
diff changeset
376 * Entry: A = path to process
1e312b144f4d Major changes:
boisy
parents:
diff changeset
377 L024A leax <P$Path,x point to path table in process descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
378 lda b,x get system path number
1e312b144f4d Major changes:
boisy
parents:
diff changeset
379 ldx <D.PthDBT point to path descriptor base table
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
380 * protect regB incase of error report. RG
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
381 pshs b
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
382 os9 F$Find64 put found path descriptor in Y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
383 ldy PD.DEV,y load Y with device table entry
1981
21bf55c38692 Changes to permit selection of vdg windows within a script file.
robert
parents: 1938
diff changeset
384 puls b,pc
1933
1e312b144f4d Major changes:
boisy
parents:
diff changeset
385 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
386 bne NoOp
1e312b144f4d Major changes:
boisy
parents:
diff changeset
387 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
388
1e312b144f4d Major changes:
boisy
parents:
diff changeset
389 PalProc leax <DoPals,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
390 ldb #$02
1e312b144f4d Major changes:
boisy
parents:
diff changeset
391 lbra GChar
1e312b144f4d Major changes:
boisy
parents:
diff changeset
392
1e312b144f4d Major changes:
boisy
parents:
diff changeset
393 DoPals ldx <VD.EPlt1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
394 ldd ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
395 cmpa #16 max 16 palettes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
396 lbhi IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
397 cmpb #63 color has max. 63
1e312b144f4d Major changes:
boisy
parents:
diff changeset
398 lbhi IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
399 leax <VD.Palet,u to palette buffer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
400 stb a,x save it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
401 L026E lbsr SetPals
1e312b144f4d Major changes:
boisy
parents:
diff changeset
402 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
403 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
404
1e312b144f4d Major changes:
boisy
parents:
diff changeset
405 * anda #$0F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
406 * andb #$3F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
407 * leax <VD.Palet,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
408 * stb a,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
409 *L026E inc <VD.DFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
410 * clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
411 * rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
412
1e312b144f4d Major changes:
boisy
parents:
diff changeset
413 * Screen scroll
1e312b144f4d Major changes:
boisy
parents:
diff changeset
414 SScrl ldx <VD.ScrnA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
415 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
416 ldd #$2060
1e312b144f4d Major changes:
boisy
parents:
diff changeset
417 leay a,x down one line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
418 ldw #512-32
1e312b144f4d Major changes:
boisy
parents:
diff changeset
419 tfm y+,x+ scroll screen up
1e312b144f4d Major changes:
boisy
parents:
diff changeset
420 stx <VD.CrsrA,u save new cursor address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
421 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
422 leax <32,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
423 L0279 ldd ,x++
1e312b144f4d Major changes:
boisy
parents:
diff changeset
424 std <-34,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
425 cmpx <VD.ScrnE,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
426 bcs L0279
1e312b144f4d Major changes:
boisy
parents:
diff changeset
427 leax <-32,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
428 stx <VD.CrsrA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
429 lda #32
1e312b144f4d Major changes:
boisy
parents:
diff changeset
430 ldb #$60
1e312b144f4d Major changes:
boisy
parents:
diff changeset
431 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
432 L028D stb ,x+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
433 deca
1e312b144f4d Major changes:
boisy
parents:
diff changeset
434 bne L028D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
435 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
436
1e312b144f4d Major changes:
boisy
parents:
diff changeset
437 * $0D - carriage return
1e312b144f4d Major changes:
boisy
parents:
diff changeset
438 Retrn bsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
439 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
440 aim #$E0,<VD.CrsAL,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
441 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
442 tfr x,d
1e312b144f4d Major changes:
boisy
parents:
diff changeset
443 andb #$E0 strip out bits 0-4
1e312b144f4d Major changes:
boisy
parents:
diff changeset
444 stb <VD.CrsAL,u save updated cursor address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
445 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
446 ShowCrsr ldx <VD.CrsrA,u get cursor address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
447 lda ,x get char at cursor position
1e312b144f4d Major changes:
boisy
parents:
diff changeset
448 sta <VD.CChar,u save it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
449 lda <VD.CColr,u get cusor character
1e312b144f4d Major changes:
boisy
parents:
diff changeset
450 beq RtsOk branch if none
1e312b144f4d Major changes:
boisy
parents:
diff changeset
451 L02A9 sta ,x else turn on cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
452 RtsOk clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
453 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
454
1e312b144f4d Major changes:
boisy
parents:
diff changeset
455 * $0A - moves cursor down
1e312b144f4d Major changes:
boisy
parents:
diff changeset
456 CurDown bsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
457 leax <32,x move X down one line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
458 cmpx <VD.SCrnE,u at the end of the screen?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
459 bcs L02C1 branch if not
1e312b144f4d Major changes:
boisy
parents:
diff changeset
460 leax <-32,x else go back up one line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
461 pshs x save X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
462 lbsr SScrl and scroll the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
463 puls x and restore pointer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
464 L02C1 stx <VD.CrsrA,u save cursor pointer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
465 bra ShowCrsr show cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
466
1e312b144f4d Major changes:
boisy
parents:
diff changeset
467 * $08 - moves cursor left one
1e312b144f4d Major changes:
boisy
parents:
diff changeset
468 CurLeft bsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
469 cmpx <VD.ScrnA,u compare against start of screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
470 bls ShowCrsr ignore it if at the screen start
1e312b144f4d Major changes:
boisy
parents:
diff changeset
471 leax -$01,x else back up one
1e312b144f4d Major changes:
boisy
parents:
diff changeset
472 stx <VD.CrsrA,u save updated pointer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
473 bra ShowCrsr and show cur
1e312b144f4d Major changes:
boisy
parents:
diff changeset
474
1e312b144f4d Major changes:
boisy
parents:
diff changeset
475 * $06 - moves cursor right one
1e312b144f4d Major changes:
boisy
parents:
diff changeset
476 CurRght bsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
477 leax 1,x move to the right
1e312b144f4d Major changes:
boisy
parents:
diff changeset
478 cmpx <VD.SCrnE,u compare against start of screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
479 bcc ShowCrsr if past end, ignore it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
480 stx <VD.CrsrA,u else save updated pointer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
481 bra ShowCrsr and show cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
482
1e312b144f4d Major changes:
boisy
parents:
diff changeset
483 * $0B - erase from current char to end of screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
484 ErEOScrn bsr HideCrsr kill the cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
485 * bra L02E8 and clear the rest of the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
486 fcb skip2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
487
1e312b144f4d Major changes:
boisy
parents:
diff changeset
488 * $0C - clear screen & home cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
489 ClrScrn bsr CurHome home cursor (returns X pointing to start of screen)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
490 lda #$60 get default char
1e312b144f4d Major changes:
boisy
parents:
diff changeset
491 ClrSLoop sta ,x+ save at location
1e312b144f4d Major changes:
boisy
parents:
diff changeset
492 cmpx <VD.SCrnE,u end of screen?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
493 bcs ClrSLoop branch if not
1e312b144f4d Major changes:
boisy
parents:
diff changeset
494 bra ShowCrsr now show cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
495
1e312b144f4d Major changes:
boisy
parents:
diff changeset
496 * $01 - Homes the cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
497 CurHome bsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
498 ldx <VD.ScrnA,u get pointer to screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
499 stx <VD.CrsrA,u save as new cursor position
1e312b144f4d Major changes:
boisy
parents:
diff changeset
500 bra ShowCrsr and show it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
501
1e312b144f4d Major changes:
boisy
parents:
diff changeset
502 * Hides the cursor from the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
503 * Exit: X = address of cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
504 HideCrsr ldx <VD.CrsrA,u get address of cursor in X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
505 lda <VD.CChar,u get value of char under cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
506 sta ,x put char in place of cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
507 clrb must be here, in general, for [...] BRA HideCrsr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
508 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
509
1e312b144f4d Major changes:
boisy
parents:
diff changeset
510 * $05 - turns cursor on/off, color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
511 CrsrSw lda <VD.NChar,u get next char
1e312b144f4d Major changes:
boisy
parents:
diff changeset
512 suba #C$SPAC take out ASCII space
1e312b144f4d Major changes:
boisy
parents:
diff changeset
513 bne L0313 branch if not zero
1e312b144f4d Major changes:
boisy
parents:
diff changeset
514 sta <VD.CColr,u else save cursor color zero (no cursor)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
515 bra HideCrsr and hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
516 L0313 cmpa #$0B greater than $0B?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
517 bge RtsOk yep, just ignore byte
1e312b144f4d Major changes:
boisy
parents:
diff changeset
518 cmpa #$01 is it one?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
519 bgt L031F branch if greater
1e312b144f4d Major changes:
boisy
parents:
diff changeset
520 lda #$AF else get default blue cursor color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
521 bra L032F and save cursor color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
522 L031F cmpa #$02 is it two?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
523 bgt L0327 branch if larger
1e312b144f4d Major changes:
boisy
parents:
diff changeset
524 lda #$A0 else get black cursor color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
525 bra L032F and save it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
526 ** BUG ** BUG ** BUG ** BUG
1e312b144f4d Major changes:
boisy
parents:
diff changeset
527 L0327 suba #$03 ** BUG FIXED ! ** !!! Was SUBB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
528 lsla shift into upper nibble
1e312b144f4d Major changes:
boisy
parents:
diff changeset
529 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
530 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
531 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
532 ora #$8F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
533 L032F sta <VD.CColr,u save new cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
534 ldx <VD.CrsrA,u get cursor address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
535 lbra L02A9 branch to save cursor in X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
536
1e312b144f4d Major changes:
boisy
parents:
diff changeset
537 * $02 - moves cursor to X,Y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
538 CurXY ldb #$02 we want to claim the next two chars
1e312b144f4d Major changes:
boisy
parents:
diff changeset
539 leax <DoCurXY,pcr point to processing routine
1e312b144f4d Major changes:
boisy
parents:
diff changeset
540 lbra GChar get two chars
1e312b144f4d Major changes:
boisy
parents:
diff changeset
541
1e312b144f4d Major changes:
boisy
parents:
diff changeset
542 DoCurXY bsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
543 ldb <VD.NChr2,u get ASCII Y-pos
1e312b144f4d Major changes:
boisy
parents:
diff changeset
544 subb #C$SPAC take out ASCII space
1e312b144f4d Major changes:
boisy
parents:
diff changeset
545 lda #32 go down
1e312b144f4d Major changes:
boisy
parents:
diff changeset
546 mul multiply it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
547 addb <VD.NChar,u add in X-pos
1e312b144f4d Major changes:
boisy
parents:
diff changeset
548 adca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
549 subd #C$SPAC take out another ASCII space
1e312b144f4d Major changes:
boisy
parents:
diff changeset
550 addd <VD.ScrnA,u add top of screen address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
551 cmpd <VD.ScrnE,u at end of the screen?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
552 lbcc RtsOk exit if off the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
553 std <VD.CrsrA,u otherwise save new cursor address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
554 lbra ShowCrsr and show cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
555
1e312b144f4d Major changes:
boisy
parents:
diff changeset
556 * $04 - clear characters to end of line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
557 ErEOLine bsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
558 tfr x,d move current cursor position to D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
559 andb #$1F number of characters put on this line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
560 negb negative
1e312b144f4d Major changes:
boisy
parents:
diff changeset
561 bra L0374 and clear one line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
562 * pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
563 * ldb #32
1e312b144f4d Major changes:
boisy
parents:
diff changeset
564 * subb ,s+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
565 * bra L0376 and clear one line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
566
1e312b144f4d Major changes:
boisy
parents:
diff changeset
567 * $03 - erase line cursor is on
1e312b144f4d Major changes:
boisy
parents:
diff changeset
568 DelLine lbsr Retrn do a carriage return
1e312b144f4d Major changes:
boisy
parents:
diff changeset
569 * ldb #32 B = $00 from Retrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
570 L0374 addb #32 B = $00 from Retrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
571 L0376 lda #$60 get default char
1e312b144f4d Major changes:
boisy
parents:
diff changeset
572 ldx <VD.CrsrA,u get cursor address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
573 L037B sta ,x+ save default char
1e312b144f4d Major changes:
boisy
parents:
diff changeset
574 decb decrement
1e312b144f4d Major changes:
boisy
parents:
diff changeset
575 bne L037B and branch if not end
1e312b144f4d Major changes:
boisy
parents:
diff changeset
576 lbra ShowCrsr else show cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
577
1e312b144f4d Major changes:
boisy
parents:
diff changeset
578 * $09 - moves cursor up one line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
579 CurUp lbsr HideCrsr hide cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
580 leax <-32,x move X up one line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
581 cmpx <VD.ScrnA,u compare against start of screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
582 lbcs ShowCrsr branch if we went beyond
1e312b144f4d Major changes:
boisy
parents:
diff changeset
583 stx <VD.CrsrA,u else store updated X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
584 L0391 lbra ShowCrsr and show cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
585
1e312b144f4d Major changes:
boisy
parents:
diff changeset
586 * $0E - switches from graphics to alpha mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
587 Do0E equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
588 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
589 clrd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
590 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
591 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
592 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
593 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
594 DispAlfa pshs x,y,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
595 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
596 stb <VD.Alpha,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
597 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
598 clr <VD.DGBuf,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
599 lda >PIA1Base+2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
600 anda #$07
1e312b144f4d Major changes:
boisy
parents:
diff changeset
601 ora ,s+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
602 tstb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
603 bne L03AD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
604 anda #$EF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
605 ora <VD.CFlag,u lowercase flag
1e312b144f4d Major changes:
boisy
parents:
diff changeset
606 L03AD sta <VD.TFlg1,u save VDG info
1e312b144f4d Major changes:
boisy
parents:
diff changeset
607 tst >WGlobal+G.CrDvFl is this screen currently showing?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
608 lbeq L0440
1e312b144f4d Major changes:
boisy
parents:
diff changeset
609 sta >PIA1Base+2 set lowercase in hardware
1e312b144f4d Major changes:
boisy
parents:
diff changeset
610 ldy #$FFC6 Ok, now set up via old CoCo 2 mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
611 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
612 tstb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
613 bne L03CB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
614 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
615 * Set up VDG screen for text
1e312b144f4d Major changes:
boisy
parents:
diff changeset
616 stb -6,y $FFC0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
617 stb -4,y $FFC2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
618 stb -2,y $FFC4
1e312b144f4d Major changes:
boisy
parents:
diff changeset
619 lda <VD.ScrnA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
620 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
621 bra L03D7
1e312b144f4d Major changes:
boisy
parents:
diff changeset
622 * Set up VDG screen for graphics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
623 L03CB stb -6,y $FFC0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
624 stb -3,y $FFC3
1e312b144f4d Major changes:
boisy
parents:
diff changeset
625 stb -1,y $FFC5
1e312b144f4d Major changes:
boisy
parents:
diff changeset
626 lda <VD.SBAdd,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
627 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
628 L03D7 lbsr SetPals
1e312b144f4d Major changes:
boisy
parents:
diff changeset
629 ldb <D.HINIT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
630 orb #$80 set CoCo 2 compatible mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
631 stb <D.HINIT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
632 stb >$FF90
1e312b144f4d Major changes:
boisy
parents:
diff changeset
633 ldb <D.VIDMD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
634 andb #$78
1e312b144f4d Major changes:
boisy
parents:
diff changeset
635 stb >$FF98
1e312b144f4d Major changes:
boisy
parents:
diff changeset
636 stb <D.VIDMD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
637 pshs a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
638 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
639 clrd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
640 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
641 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
642 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
643 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
644 std >$FF99 set resolution AND border color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
645 std <D.VIDRS
1e312b144f4d Major changes:
boisy
parents:
diff changeset
646 puls a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
647 tfr a,b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
648 anda #$1F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
649 pshs a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
650 andb #$E0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
651 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
652 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
653 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
654 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
655 ldx <D.SysDAT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
656 * leax a,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
657 abx
1e312b144f4d Major changes:
boisy
parents:
diff changeset
658 * lda $01,x get block number to use
1e312b144f4d Major changes:
boisy
parents:
diff changeset
659 * pshs a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
660 * anda #$F8 keep high bits only
1e312b144f4d Major changes:
boisy
parents:
diff changeset
661 * lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
662 * lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
663 * clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
664 * PATCH START: Mod for >512K systems, Robert Gault
1e312b144f4d Major changes:
boisy
parents:
diff changeset
665 ldb 1,x get block number to use
1e312b144f4d Major changes:
boisy
parents:
diff changeset
666 pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
667 andb #$F8 keep high bits only
1e312b144f4d Major changes:
boisy
parents:
diff changeset
668 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
669 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
670 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
671 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
672 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
673 sta >$FF9B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
674 tfr b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
675 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
676 * PATCH END: Mod for >512K systems, Robert Gault
1e312b144f4d Major changes:
boisy
parents:
diff changeset
677 std <D.VOFF1 display it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
678 std >$FF9D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
679 ldd #$0F07
1e312b144f4d Major changes:
boisy
parents:
diff changeset
680 sta <D.VOFF2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
681 sta >$FF9C
1e312b144f4d Major changes:
boisy
parents:
diff changeset
682 puls a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
683 asla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
684 asla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
685 asla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
686 asla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
687 asla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
688 ora ,s+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
689 * Y now holds $FFC6, so we don't need to work with X here
1e312b144f4d Major changes:
boisy
parents:
diff changeset
690 * ldx #$FFC6
1e312b144f4d Major changes:
boisy
parents:
diff changeset
691 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
692 L0430 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
693 bcc L041A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
694 leay 1,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
695 sta ,y+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
696 fcb skip2 skip 2 bytes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
697 L041A sta ,y++ rather than additional leax 1,x on next line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
698 decb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
699 bne L0430
1e312b144f4d Major changes:
boisy
parents:
diff changeset
700 L0440 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
701 puls pc,y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
702
1e312b144f4d Major changes:
boisy
parents:
diff changeset
703 GChar1 ldb #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
704 GChar stb <VD.NGChr,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
705 stx <VD.RTAdd,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
706 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
707 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
708
1e312b144f4d Major changes:
boisy
parents:
diff changeset
709 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
710 * $0F - display graphics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
711 Do0F leax <DispGfx,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
712 ldb #$02
1e312b144f4d Major changes:
boisy
parents:
diff changeset
713 bra GChar
1e312b144f4d Major changes:
boisy
parents:
diff changeset
714
1e312b144f4d Major changes:
boisy
parents:
diff changeset
715 DispGfx ldb <VD.Rdy,u memory already alloced?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
716 bne L0468 branch if so
1e312b144f4d Major changes:
boisy
parents:
diff changeset
717 lbsr Get8KHi else get an 8k block from high ram
1e312b144f4d Major changes:
boisy
parents:
diff changeset
718 bcs L0486 branch if error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
719 stb <VD.GBuff,u save starting block number
1e312b144f4d Major changes:
boisy
parents:
diff changeset
720 stb <VD.Blk,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
721 tfr d,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
722 ldd <D.Proc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
723 pshs u,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
724 ldd <D.SysPrc get system proc desc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
725 std <D.Proc make current
1e312b144f4d Major changes:
boisy
parents:
diff changeset
726 ldb #$01 one block
1e312b144f4d Major changes:
boisy
parents:
diff changeset
727 os9 F$MapBlk map it in to our space
1e312b144f4d Major changes:
boisy
parents:
diff changeset
728 tfr u,x get address into x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
729 puls u,b,a restore other regs
1e312b144f4d Major changes:
boisy
parents:
diff changeset
730 std <D.Proc restore process pointer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
731 bcs L0486 branch if error occurred
1e312b144f4d Major changes:
boisy
parents:
diff changeset
732 stx <VD.SBAdd,u else store address of gfx mem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
733 inc <VD.Rdy,u we're ready
1e312b144f4d Major changes:
boisy
parents:
diff changeset
734 lda #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
735 ldb #$20
1e312b144f4d Major changes:
boisy
parents:
diff changeset
736 bsr L04D9
1e312b144f4d Major changes:
boisy
parents:
diff changeset
737 lbsr Do13 erase gfx screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
738 L0468 lda <VD.NChr2,u get character after next
1e312b144f4d Major changes:
boisy
parents:
diff changeset
739 sta <VD.PMask,u store color set (0-3)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
740 anda #$03 mask off pertinent bytes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
741 leax >Mode1Clr,pcr point to mask byte table
1e312b144f4d Major changes:
boisy
parents:
diff changeset
742 lda a,x get byte
1e312b144f4d Major changes:
boisy
parents:
diff changeset
743 sta <VD.Msk1,u save mask byte here
1e312b144f4d Major changes:
boisy
parents:
diff changeset
744 sta <VD.Msk2,u and here
1e312b144f4d Major changes:
boisy
parents:
diff changeset
745 lda <VD.NChar,u get next char, mode byte (0-1)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
746 cmpa #$01 compare against max
1e312b144f4d Major changes:
boisy
parents:
diff changeset
747 bls L0487 branch if valid
1e312b144f4d Major changes:
boisy
parents:
diff changeset
748 comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
749 ldb #E$BMode else invalid mode specified, send error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
750 L0486 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
751
1e312b144f4d Major changes:
boisy
parents:
diff changeset
752 L0487 tsta test user supplied mode byte
1e312b144f4d Major changes:
boisy
parents:
diff changeset
753 beq L04A7 branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
754 ldd #$C003
1e312b144f4d Major changes:
boisy
parents:
diff changeset
755 std <VD.MCol,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
756 lda #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
757 sta <VD.Mode,u 128x192 mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
758 lda #$E0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
759 ldb <VD.NChr2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
760 andb #$08
1e312b144f4d Major changes:
boisy
parents:
diff changeset
761 beq L04A0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
762 lda #$F0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
763 L04A0 ldb #$03
1e312b144f4d Major changes:
boisy
parents:
diff changeset
764 leax <L04EB,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
765 bra L04C4
1e312b144f4d Major changes:
boisy
parents:
diff changeset
766 L04A7 ldd #$8001
1e312b144f4d Major changes:
boisy
parents:
diff changeset
767 std <VD.MCol,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
768 lda #$FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
769 tst <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
770 beq L04BA
1e312b144f4d Major changes:
boisy
parents:
diff changeset
771 sta <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
772 sta <VD.Msk2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
773 L04BA sta <VD.Mode,u 256x192 mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
774 lda #$F0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
775 ldb #$07
1e312b144f4d Major changes:
boisy
parents:
diff changeset
776 leax <L04EF,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
777 L04C4 stb <VD.PixBt,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
778 stx <VD.MTabl,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
779 ldb <VD.NChr2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
780 andb #$04
1e312b144f4d Major changes:
boisy
parents:
diff changeset
781 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
782 pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
783 ora ,s+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
784 ldb #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
785 * Indicate screen is current; next line is critical for >512K - Robert Gault
1e312b144f4d Major changes:
boisy
parents:
diff changeset
786 stb >WGlobal+G.CrDvFl is this screen currently showing?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
787 lbra DispAlfa
1e312b144f4d Major changes:
boisy
parents:
diff changeset
788
1e312b144f4d Major changes:
boisy
parents:
diff changeset
789 L04D9 pshs x,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
790 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
791 ldb $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
792 ldx <D.SysMem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
793 leax d,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
794 puls b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
795 L04E4 sta ,x+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
796 decb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
797 bne L04E4
1e312b144f4d Major changes:
boisy
parents:
diff changeset
798 puls pc,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
799
1e312b144f4d Major changes:
boisy
parents:
diff changeset
800 L04EB fdb $C030,$0C03
1e312b144f4d Major changes:
boisy
parents:
diff changeset
801
1e312b144f4d Major changes:
boisy
parents:
diff changeset
802 L04EF fcb $80,$40,$20,$10,$08,$04,$02,$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
803
1e312b144f4d Major changes:
boisy
parents:
diff changeset
804 * $11 - set color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
805 Do11 leax <SetColor,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
806 lbra GChar1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
807 SetColor lda <VD.NChar,u get next char
1e312b144f4d Major changes:
boisy
parents:
diff changeset
808 sta <VD.NChr2,u save in next after
1e312b144f4d Major changes:
boisy
parents:
diff changeset
809 L0503 clr <VD.NChar,u and clear next
1e312b144f4d Major changes:
boisy
parents:
diff changeset
810 lda <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
811 bmi L050E branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
812 inc <VD.NChar,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
813 L050E lbra L0468
1e312b144f4d Major changes:
boisy
parents:
diff changeset
814
1e312b144f4d Major changes:
boisy
parents:
diff changeset
815 * $12 - end graphics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
816 Do12 ldx <VD.SBAdd,u get screen address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
817 beq L051B branch if empty
1e312b144f4d Major changes:
boisy
parents:
diff changeset
818 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
819 ldb #$20
1e312b144f4d Major changes:
boisy
parents:
diff changeset
820 bsr L04D9
1e312b144f4d Major changes:
boisy
parents:
diff changeset
821 L051B leay <VD.GBuff,u point Y to graphics buffer block numbers
1e312b144f4d Major changes:
boisy
parents:
diff changeset
822 ldb #$03 number of blocks starting at VD.GBuff
1e312b144f4d Major changes:
boisy
parents:
diff changeset
823 pshs u,b save our static pointer, and counter (3)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
824 L0522 lda ,y+ get next block
1e312b144f4d Major changes:
boisy
parents:
diff changeset
825 beq L052D if empty, continue
1e312b144f4d Major changes:
boisy
parents:
diff changeset
826 clrb else clear B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
827 tfr d,x transfer D to X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
828 incb 1 block to deallocate
1e312b144f4d Major changes:
boisy
parents:
diff changeset
829 os9 F$DelRAM deallocate it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
830 L052D dec ,s dec counter
1e312b144f4d Major changes:
boisy
parents:
diff changeset
831 bgt L0522 if not zero, get more
1e312b144f4d Major changes:
boisy
parents:
diff changeset
832 * Note: this seems to be a bug. Here, Y is pointing to VD.HiRes ($4D), which
1e312b144f4d Major changes:
boisy
parents:
diff changeset
833 * is the block number of any CoCo 3 Hi-Res screen. This $0E command just
1e312b144f4d Major changes:
boisy
parents:
diff changeset
834 * deals with CoCo 2 graphics modes. What I think should happen here is
1e312b144f4d Major changes:
boisy
parents:
diff changeset
835 * that the byte flood fill buffer should be checked for non-zero,
1e312b144f4d Major changes:
boisy
parents:
diff changeset
836 * then freed. It looks as though this code would work IF the Hi-Res
1e312b144f4d Major changes:
boisy
parents:
diff changeset
837 * variables from $4D-$5B, which are CoCo 3 specific, didn't exist. So
1e312b144f4d Major changes:
boisy
parents:
diff changeset
838 * this bug was introduced when the CoCo 3 specific static vars were added
1e312b144f4d Major changes:
boisy
parents:
diff changeset
839 * between VD.AGBuf and VD.FFMem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
840 ldu VD.FFMem-VD.HiRes,y get flood fill stack memory ptr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
841 beq L053B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
842 ldd #FFStSz get flood fill stack size
1e312b144f4d Major changes:
boisy
parents:
diff changeset
843 os9 F$SRtMem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
844 L053B puls u,b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
845 clr <VD.Rdy,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
846 lbra Do0E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
847
1e312b144f4d Major changes:
boisy
parents:
diff changeset
848 * $10 - preset screen to a specific color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
849 Do10 leax <PrstScrn,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
850 lbra GChar1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
851
1e312b144f4d Major changes:
boisy
parents:
diff changeset
852 PrstScrn lda <VD.NChar,u get next char
1e312b144f4d Major changes:
boisy
parents:
diff changeset
853 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
854 bpl L0559 branch if 128x192 4 color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
855 ldb #$FF assume we will clear with $FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
856 anda #$01 mask out all but 1 bit (2 colors)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
857 beq Do13 erase graphic screen with color $00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
858 bra L0564 else erase with color $FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
859 L0559 anda #$03 mask out all but 2 bits (4 colors)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
860 leax >Mode1Clr,pcr point to color table
1e312b144f4d Major changes:
boisy
parents:
diff changeset
861 ldb a,x get appropriate byte
1e312b144f4d Major changes:
boisy
parents:
diff changeset
862 bra L0564 and start the clearing
1e312b144f4d Major changes:
boisy
parents:
diff changeset
863
1e312b144f4d Major changes:
boisy
parents:
diff changeset
864 * $13 - erase graphics
1e312b144f4d Major changes:
boisy
parents:
diff changeset
865 Do13 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
866 L0564 ldx <VD.SBAdd,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
867 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
868 * Note: 6309 version clears from top to bottom
1e312b144f4d Major changes:
boisy
parents:
diff changeset
869 * 6809 version clears from bottom to top
1e312b144f4d Major changes:
boisy
parents:
diff changeset
870 ldw #$1800
1e312b144f4d Major changes:
boisy
parents:
diff changeset
871 pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
872 tfm s,x+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
873 puls b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
874 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
875 leax >$1801,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
876 L056B stb ,-x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
877 cmpx <VD.SBAdd,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
878 bhi L056B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
879 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
880
1e312b144f4d Major changes:
boisy
parents:
diff changeset
881 * $14 - home graphics cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
882 Do14 equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
883 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
884 clrd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
885 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
886 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
887 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
888 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
889 std <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
890 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
891
1e312b144f4d Major changes:
boisy
parents:
diff changeset
892 * 128x192 4 color pixel table
1e312b144f4d Major changes:
boisy
parents:
diff changeset
893 Mode1Clr fcb $00,$55,$aa,$ff
1e312b144f4d Major changes:
boisy
parents:
diff changeset
894
1e312b144f4d Major changes:
boisy
parents:
diff changeset
895 * Fix X/Y coords:
1e312b144f4d Major changes:
boisy
parents:
diff changeset
896 * - if Y > 191 then cap it at 191
1e312b144f4d Major changes:
boisy
parents:
diff changeset
897 * - adjust X coord if in 128x192 mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
898 FixXY ldd <VD.NChar,u get next 2 chars
1e312b144f4d Major changes:
boisy
parents:
diff changeset
899 cmpb #192 Y greater than max?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
900 bcs L0585 branch if lower than
1e312b144f4d Major changes:
boisy
parents:
diff changeset
901 ldb #191
1e312b144f4d Major changes:
boisy
parents:
diff changeset
902 L0585 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
903 bmi L058B branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
904 lsra else divide X by 2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
905 L058B std <VD.NChar,u and save
1e312b144f4d Major changes:
boisy
parents:
diff changeset
906 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
907
1e312b144f4d Major changes:
boisy
parents:
diff changeset
908 * $15 - set graphics cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
909 Do15 leax <SetGC,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
910 GChar2 ldb #$02
1e312b144f4d Major changes:
boisy
parents:
diff changeset
911 lbra GChar
1e312b144f4d Major changes:
boisy
parents:
diff changeset
912
1e312b144f4d Major changes:
boisy
parents:
diff changeset
913 SetGC bsr FixXY fix coords
1e312b144f4d Major changes:
boisy
parents:
diff changeset
914 std <VD.GCrsX,u and save new gfx cursor pos
1e312b144f4d Major changes:
boisy
parents:
diff changeset
915 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
916 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
917
1e312b144f4d Major changes:
boisy
parents:
diff changeset
918 * $19 - erase point
1e312b144f4d Major changes:
boisy
parents:
diff changeset
919 Do19 clr <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
920 * $18 - set point
1e312b144f4d Major changes:
boisy
parents:
diff changeset
921 Do18 leax <DrawPnt,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
922 bra GChar2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
923
1e312b144f4d Major changes:
boisy
parents:
diff changeset
924 DrawPnt bsr FixXY fix coords
1e312b144f4d Major changes:
boisy
parents:
diff changeset
925 std <VD.GCrsX,u save as new gfx cursor pos
1e312b144f4d Major changes:
boisy
parents:
diff changeset
926 bsr DrwPt2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
927 lbra L067C
1e312b144f4d Major changes:
boisy
parents:
diff changeset
928 DrwPt2 lbsr XY2Addr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
929 L05B3 tfr a,b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
930 comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
931 andb ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
932 stb ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
933 anda <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
934 ora ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
935 sta ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
936 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
937
1e312b144f4d Major changes:
boisy
parents:
diff changeset
938 * $17 - erase line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
939 Do17 clr <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
940
1e312b144f4d Major changes:
boisy
parents:
diff changeset
941 * $16 - draw line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
942 Do16 leax <DrawLine,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
943 bra GChar2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
944
1e312b144f4d Major changes:
boisy
parents:
diff changeset
945 DrawLine bsr FixXY fix up coords
1e312b144f4d Major changes:
boisy
parents:
diff changeset
946 leas -$0E,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
947 std $0C,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
948 lbsr XY2Addr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
949 stx $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
950 sta $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
951 ldd <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
952 lbsr XY2Addr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
953 sta ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
954 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
955 clrd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
956 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
957 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
958 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
959 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
960 std $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
961 lda #$BF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
962 suba <VD.GCrsY,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
963 sta <VD.GCrsY,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
964 lda #$BF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
965 suba <VD.NChr2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
966 sta <VD.NChr2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
967 lda #$FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
968 sta $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
969 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
970 ldb <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
971 subb <VD.NChar,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
972 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
973 bpl L0608
1e312b144f4d Major changes:
boisy
parents:
diff changeset
974 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
975 negd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
976 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
977 nega
1e312b144f4d Major changes:
boisy
parents:
diff changeset
978 negb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
979 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
980 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
981 neg $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
982 L0608 std $08,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
983 bne L0611
1e312b144f4d Major changes:
boisy
parents:
diff changeset
984 ldd #$FFFF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
985 std $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
986 L0611 lda #$E0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
987 sta $07,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
988 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
989 ldb <VD.GCrsY,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
990 subb <VD.NChr2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
991 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
992 bpl L0626
1e312b144f4d Major changes:
boisy
parents:
diff changeset
993 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
994 negd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
995 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
996 nega
1e312b144f4d Major changes:
boisy
parents:
diff changeset
997 negb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
998 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
999 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1000 neg $07,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1001 L0626 std $0A,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1002 bra L0632
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1003 L062A sta ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1004 ldd $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1005 subd $0A,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1006 std $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1007 L0632 lda ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1008 lbsr L05B3
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1009 cmpx $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1010 bne L0641
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1011 lda ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1012 cmpa $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1013 beq L0675
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1014 L0641 ldd $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1015 bpl L064F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1016 addd $08,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1017 std $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1018 lda $07,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1019 leax a,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1020 bra L0632
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1021 L064F lda ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1022 ldb $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1023 bpl L0665
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1024 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1025 ldb <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1026 bmi L065C branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1027 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1028 L065C bcc L062A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1029 lda <VD.MCol2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1030 leax -$01,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1031 bra L062A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1032 L0665 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1033 ldb <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1034 bmi L066C branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1035 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1036 L066C bcc L062A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1037 lda <VD.MCol,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1038 leax $01,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1039 bra L062A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1040 L0675 ldd $0C,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1041 std <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1042 leas $0E,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1043 L067C lda <VD.Msk2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1044 sta <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1045 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1046 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1047
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1048 * $1C - erase circle
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1049 Do1C clr <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1050 * $1A - draw circle
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1051 Do1A leax <Circle,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1052 lbra GChar1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1053
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1054 Circle leas -$04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1055 ldb <VD.NChar,u get radius
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1056 stb $01,s store on stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1057 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1058 sta ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1059 addb $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1060 adca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1061 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1062 negd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1063 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1064 nega
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1065 negb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1066 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1067 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1068 addd #$0003
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1069 std $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1070 L06AB lda ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1071 cmpa $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1072 bcc L06DD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1073 ldb $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1074 bsr L06EB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1075 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1076 ldb $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1077 bpl L06C5
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1078 ldb ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1079 IFNE H6309X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1080 lsld
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1081 lsld
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1082 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1083 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1084 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1085 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1086 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1087 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1088 addd #$0006
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1089 bra L06D5
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1090 L06C5 dec $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1091 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1092 ldb ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1093 subb $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1094 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1095 IFNE H6309X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1096 lsld
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1097 lsld
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1098 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1099 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1100 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1101 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1102 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1103 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1104 addd #$000A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1105 L06D5 addd $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1106 std $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1107 inc ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1108 bra L06AB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1109 L06DD lda ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1110 cmpa $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1111 bne L06E7
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1112 ldb $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1113 bsr L06EB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1114 L06E7 leas $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1115 bra L067C
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1116 L06EB leas -$08,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1117 sta ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1118 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1119 std $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1120 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1121 negd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1122 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1123 nega
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1124 negb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1125 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1126 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1127 std $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1128 ldb ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1129 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1130 std ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1131 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1132 negd
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1133 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1134 nega
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1135 negb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1136 sbca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1137 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1138 std $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1139 ldx $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1140 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1141 ldd $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1142 ldx $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1143 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1144 ldd ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1145 ldx $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1146 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1147 ldd ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1148 ldx $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1149 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1150 ldd $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1151 ldx ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1152 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1153 ldd $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1154 ldx $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1155 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1156 ldd $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1157 ldx $04,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1158 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1159 ldd $06,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1160 ldx ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1161 bsr L0734
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1162 leas $08,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1163 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1164 L0734 pshs b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1165 ldb <VD.GCrsY,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1166 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1167 leax d,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1168 cmpx #$0000
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1169 bmi L0746
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1170 cmpx #$00BF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1171 ble L0748
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1172 L0746 puls pc,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1173 L0748 ldb <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1174 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1175 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1176 bmi L0753 branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1177 IFNE H6309X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1178 lsld
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1179 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1180 lslb else multiply D by 2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1181 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1182 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1183 L0753 addd ,s++
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1184 tsta
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1185 beq L0759
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1186 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1187 L0759 pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1188 tfr x,d
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1189 puls a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1190 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1191 lbmi DrwPt2 branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1192 lsra else divide a by 2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1193 lbra DrwPt2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1194
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1195 * $1D - flood fill
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1196 Do1D clr <VD.FF6,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1197 leas -$07,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1198 lbsr L08DD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1199 lbcs L0878
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1200 lda #$FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1201 sta <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1202 ldd <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1203 lbsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1204 lda <VD.FF1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1205 sta <VD.FF2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1206 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1207 bpl L0793 branch if 128x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1208 tsta
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1209 beq L0799
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1210 lda #$FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1211 bra L0799
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1212 L0793 leax >Mode1Clr,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1213 lda a,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1214 L0799 sta <VD.FFMsk,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1215 cmpa <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1216 lbeq L0878
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1217 ldd <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1218 L07A6 suba #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1219 bcs L07B1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1220 lbsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1221 bcs L07B1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1222 beq L07A6
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1223 L07B1 inca
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1224 std $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1225 L07B4 lbsr L08B6
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1226 adda #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1227 bcs L07C2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1228 lbsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1229 bcs L07C2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1230 beq L07B4
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1231 L07C2 deca
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1232 ldx $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1233 lbsr L0905
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1234 neg <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1235 lbsr L0905
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1236 L07CE lbsr L092B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1237 lbcs L0878
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1238 tst <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1239 bpl L07E5
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1240 subb #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1241 bcs L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1242 std $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1243 tfr x,d
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1244 decb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1245 bra L07EF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1246 L07E5 incb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1247 cmpb #$BF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1248 bhi L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1249 std $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1250 tfr x,d
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1251 incb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1252 L07EF std $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1253 lbsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1254 bcs L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1255 L07F6 bne L0804
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1256 suba #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1257 bcc L07FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1258 inca
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1259 bra L0808
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1260 L07FF lbsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1261 bcc L07F6
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1262 L0804 adda #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1263 bcs L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1264 L0808 cmpd $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1265 bhi L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1266 bsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1267 bcs L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1268 bne L0804
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1269 std $05,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1270 cmpd $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1271 bcc L082D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1272 ldd $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1273 decb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1274 cmpd $05,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1275 beq L082D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1276 neg <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1277 ldx $05,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1278 lbsr L0905
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1279 neg <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1280 L082D ldd $05,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1281 L082F std $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1282 L0831 bsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1283 bcs L083D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1284 bne L083D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1285 bsr L08B6
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1286 adda #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1287 bcc L0831
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1288 L083D deca
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1289 ldx $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1290 lbsr L0905
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1291 std $05,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1292 adda #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1293 bcs L0858
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1294 L0849 cmpd $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1295 bcc L0858
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1296 adda #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1297 bsr L0883
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1298 bcs L0858
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1299 bne L0849
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1300 bra L082F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1301 L0858 inc $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1302 inc $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1303 ldd $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1304 cmpa #$02
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1305 lbcs L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1306 ldd $05,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1307 cmpd $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1308 lbcs L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1309 neg <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1310 ldx $03,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1311 lbsr L0905
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1312 lbra L07CE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1313 L0878 leas $07,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1314 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1315 ldb <VD.FF6,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1316 beq L0882
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1317 L0880 orcc #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1318 L0882 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1319 L0883 pshs b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1320 cmpb #191
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1321 bhi L08B2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1322 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1323 bmi L0892 branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1324 cmpa #$7F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1325 bhi L08B2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1326 L0892 lbsr XY2Addr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1327 tfr a,b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1328 andb ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1329 L0899 bita #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1330 bne L08A8
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1331 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1332 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1333 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1334 bmi L0899 branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1335 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1336 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1337 bra L0899
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1338 L08A8 stb <VD.FF1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1339 cmpb <VD.FF2,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1340 andcc #^Carry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1341 puls pc,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1342 L08B2 orcc #Carry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1343 puls pc,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1344 L08B6 pshs b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1345 lbsr XY2Addr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1346 bita #$80
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1347 beq L08D8
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1348 ldb <VD.FFMsk,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1349 cmpb ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1350 bne L08D8
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1351 ldb <VD.Msk1,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1352 stb ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1353 puls b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1354 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1355 bmi L08D5 branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1356 adda #$03
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1357 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1358 L08D5 adda #$07
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1359 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1360 L08D8 lbsr L05B3
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1361 puls pc,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1362 L08DD ldx <VD.FFSTp,u get top of flood fill stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1363 beq AlcFFStk if zero, we need to allocate stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1364 stx <VD.FFSPt,u else reset flood fill stack ptr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1365 L08E5 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1366 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1367
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1368 * Allocate Flood Fill Stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1369 AlcFFStk pshs u save U for now
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1370 ldd #FFStSz get 512 bytes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1371 os9 F$SRqMem from system
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1372 bcc AllocOk branch if ok
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1373 puls pc,u else pull out with error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1374 AllocOk tfr u,d move pointer to alloced mem to D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1375 puls u get stat pointer we saved earlier
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1376 std <VD.FFMem,u save pointer to alloc'ed mem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1377 addd #FFStSz point D to end of alloc'ed mem
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1378 std <VD.FFSTp,u and save here as top of fill stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1379 std <VD.FFSPt,u and here
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1380 bra L08E5 do a clean return
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1381
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1382 L0905 pshs b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1383 ldd <VD.FFSPt,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1384 subd #$0004
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1385 cmpd <VD.FFMem,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1386 bcs L0924
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1387 std <VD.FFSPt,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1388 tfr d,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1389 lda <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1390 sta ,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1391 stx $01,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1392 puls b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1393 sta $03,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1394 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1395 L0924 ldb #$F5
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1396 stb <VD.FF6,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1397 puls pc,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1398 L092B ldd <VD.FFSPt,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1399 cmpd <VD.FFSTp,u top of flood fill stack?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1400 lbcc L0880
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1401 tfr d,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1402 addd #$0004
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1403 std <VD.FFSPt,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1404 lda ,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1405 sta <VD.FFFlg,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1406 ldd $01,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1407 tfr d,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1408 lda $03,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1409 andcc #^Carry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1410 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1411 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1412
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1413 GetStat ldx PD.RGS,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1414 cmpa #SS.AlfaS
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1415 beq Rt.AlfaS
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1416 cmpa #SS.ScSiz
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1417 beq Rt.ScSiz
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1418 cmpa #SS.Cursr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1419 beq Rt.Cursr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1420 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1421 cmpa #SS.DSTAT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1422 lbeq Rt.DSTAT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1423 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1424 cmpa #SS.Palet
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1425 lbeq Rt.Palet
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1426 comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1427 ldb #E$UnkSvc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1428 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1429
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1430 * Returns window or screen size
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1431 Rt.ScSiz equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1432 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1433 ldq #$00200010 a fast cheat
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1434 stq R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1435 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1436 * ldb <VD.Col,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1437 ldd #$0020
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1438 std R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1439 * ldb <VD.Row,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1440 ldb #$10
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1441 std R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1442 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1443 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1444 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1445
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1446 * Get palette information
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1447 Rt.Palet pshs u,y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1448 leay <VD.Palet,u point to palette data in proc desc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1449 ldu R$X,x pointer to 16 byte palette buffer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1450 ldx <D.Proc current proc desc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1451 ldb P$Task,x destination task number
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1452 clra from task 0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1453 tfr y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1454 ldy #16 move 16 bytes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1455 os9 F$Move
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1456 puls pc,u,y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1457
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1458 * Return VDG alpha screen memory info
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1459 Rt.AlfaS ldd <VD.ScrnA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1460 anda #$E0 keep bits 4-6
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1461 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1462 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1463 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1464 lsra move to bits 0-2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1465 ldy <D.SysDAT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1466 ldd a,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1467 lbsr L06E1 map it in the process' memory area
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1468 bcs L0521
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1469 pshs b,a offset to block address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1470 ldd <VD.ScrnA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1471 anda #$1F make sure it's within the block
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1472 addd ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1473 std R$X,x memory address of the buffer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1474 ldd <VD.CrsrA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1475 anda #$1F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1476 addd ,s++
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1477 std R$Y,x memory address of the cursor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1478 lda <VD.Caps,u save caps lock status in A and exit
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1479 bra L051E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1480
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1481 * Returns VDG alpha screen cursor info
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1482 Rt.Cursr ldd <VD.CrsrA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1483 subd <VD.ScrnA,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1484 pshs b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1485 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1486 andb #$1F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1487 addb #$20
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1488 std R$X,x save column position in ASCII
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1489 puls b,a then divide by 32
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1490 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1491 rolb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1492 rolb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1493 rolb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1494 rolb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1495 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1496 andb #$0F only 16 lines to a screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1497 addb #$20
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1498 std R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1499 ldb <VD.CFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1500 lda <VD.CChar,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1501 bmi L051E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1502 cmpa #$60
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1503 bcc L0509
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1504 cmpa #$20
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1505 bcc L050D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1506 tstb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1507 beq L0507
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1508 cmpa #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1509 bne L04FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1510 lda #$5E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1511 bra L051E save it and exit
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1512
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1513 L04FF cmpa #$1F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1514 bne L0507
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1515 lda #$5F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1516 bra L051E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1517 L0507 ora #$20 turn it into ASCII from VDG codes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1518 L0509 eora #$40
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1519 bra L051E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1520 L050D tstb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1521 bne L051E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1522 cmpa #$21 remap specific codes
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1523 bne L0518
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1524 lda #$7C
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1525 bra L051E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1526 L0518 cmpa #$2D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1527 bne L051E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1528 lda #$7E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1529 L051E sta R$A,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1530 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1531 L0521 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1532
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1533 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1534 Rt.DSTAT bsr ChkDvRdy
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1535 bcs L0A4F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1536 ldd <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1537 lbsr XY2Addr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1538 tfr a,b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1539 andb ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1540 L0A23 bita #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1541 bne L0A32
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1542 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1543 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1544 tst <VD.Mode,u which mode?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1545 bmi L0A23 branch if 256x192
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1546 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1547 lsrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1548 bra L0A23
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1549 L0A32 pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1550 ldb <VD.PMask,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1551 andb #$FC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1552 orb ,s+
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1553 ldx PD.RGS,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1554 stb R$A,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1555 ldd <VD.GCrsX,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1556 std R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1557 ldb <VD.Blk,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1558 lbsr L06E1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1559 bcs L0A4F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1560 std R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1561 L0A4E clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1562 L0A4F rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1563
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1564 ChkDvRdy ldb <VD.Rdy,u is device ready?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1565 bne L0A4E branch if so
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1566 lbra NotReady else return error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1567
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1568 * Entry: A = X coor, B = Y coor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1569 XY2Addr pshs y,b,a save off
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1570 ldb <VD.Mode,u get video mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1571 bpl L0A60 branch if 128x192 (divide A by 4)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1572 lsra else divide A by 8
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1573 L0A60 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1574 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1575 pshs a save on stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1576 ldb #191 get max Y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1577 subb $02,s subtract from Y on stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1578 lda #32 bytes per line
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1579 mul
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1580 addb ,s+ add offset on stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1581 adca #$00
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1582 ldy <VD.SBAdd,u get base address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1583 leay d,y move D bytes into address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1584 lda ,s pick up original X coor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1585 sty ,s put offset addr on stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1586 anda <VD.PixBt,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1587 ldx <VD.MTabl,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1588 lda a,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1589 puls pc,y,x X = offset address, Y = base
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1590 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1591
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1592 SetStat ldx PD.RGS,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1593 cmpa #SS.ComSt
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1594 beq Rt.ComSt
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1595 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1596 cmpa #SS.AAGBf
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1597 beq Rt.AAGBf
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1598 cmpa #SS.SLGBf
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1599 beq Rt.SLGBf
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1600 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1601 cmpa #SS.ScInf new NitrOS-9 call
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1602 lbeq Rt.ScInf
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1603 cmpa #SS.DScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1604 lbeq Rt.DScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1605 cmpa #SS.PScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1606 lbeq Rt.PScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1607 cmpa #SS.AScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1608 lbeq Rt.AScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1609 cmpa #SS.FScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1610 lbeq Rt.FScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1611 comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1612 ldb #E$UnkSvc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1613 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1614
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1615 * Allow switch between true/fake lowercase
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1616 Rt.ComSt ldd R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1617 L054C ldb #$10 sets screen to lowercase
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1618 bita #$01 Y = 0 = true lowercase, Y = 1 = fake lower
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1619 bne L0553
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1620 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1621 L0553 stb <VD.CFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1622 ldd #$2010 32x16
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1623 inc <VD.DFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1624 std <VD.Col,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1625 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1626
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1627 IFNE COCO2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1628 Rt.AAGBf ldb <VD.Rdy,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1629 beq NotReady
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1630 ldd #$0201
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1631 leay <VD.AGBuf,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1632 lbsr L06C7
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1633 bcs L0AEB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1634 pshs a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1635 lbsr Get8KHi
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1636 bcs L0AEC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1637 stb ,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1638 lbsr L06E1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1639 bcs L0AEC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1640 std R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1641 puls b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1642 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1643 std R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1644 L0AEB rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1645 L0AEC puls pc,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1646
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1647 NotReady comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1648 ldb #E$NotRdy
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1649 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1650
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1651 Rt.SLGBf ldb <VD.Rdy,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1652 beq NotReady
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1653 ldd R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1654 cmpd #$0002
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1655 lbhi IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1656 leay <VD.GBuff,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1657 ldb b,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1658 lbeq IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1659 pshs x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1660 stb <VD.Blk,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1661 lda <VD.SBAdd,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1662 anda #$E0
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1663 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1664 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1665 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1666 lsra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1667 ldx <D.SysPrc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1668 leax <P$DATImg,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1669 leax a,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1670 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1671 std ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1672 ldx <D.SysPrc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1673 os9 F$SetTsk
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1674 puls x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1675 ldd R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1676 beq L0B2B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1677 ldb #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1678 L0B2B stb <VD.DFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1679 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1680 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1681 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1682
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1683 * Display Table
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1684 * 1st entry = display code
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1685 * 2nd entry = # of 8K blocks
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1686 DTabl fcb $14 0: 640x192, 2 color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1687 fcb $02 16K
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1688 fcb $15 1: 320x192, 4 color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1689 fcb $02 16K
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1690 fcb $16 2: 160x192, 16 color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1691 fcb $02 16K
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1692 fcb $1D 3: 640x192, 4 color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1693 fcb $04 32K
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1694 fcb $1E 4: 320x192, 16 color
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1695 fcb $04 32K
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1696
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1697 * Allocates and maps a hires screen into process address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1698 Rt.AScrn ldd R$X,x get screen type from caller's X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1699 cmpd #$0004 screen type 0-4
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1700 lbhi IllArg if higher than legal limit, return error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1701 pshs y,x,b,a else save off regs
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1702 ldd #$0303
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1703 leay <VD.HiRes,u pointer to screen descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1704 lbsr L06C7 gets next free screen descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1705 bcs L05AF branch if none found
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1706 sta ,s save screen descriptor on stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1707 ldb $01,s get screen type
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1708 * stb $02,y and store in VD.SType
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1709 stb (VD.SType-VD.HiRes),y and store in VD.SType
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1710 leax >DTabl,pcr point to display table
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1711 lslb multiply index by 2 (word entries)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1712 abx point to display code, #blocks
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1713 ldb $01,x get number of blocks
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1714 * stb $01,y VD.NBlk
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1715 stb (VD.NBlk-VD.HiRes),y VD.NBlk
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1716 lda #$FF start off with zero screens allocated
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1717 BA010 inca count up by one
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1718 ldb (VD.NBlk-VD.HiRes),y get number of blocks
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1719 pshs a needed to protect regA; RG.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1720 os9 F$AlHRAM allocate a screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1721 puls a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1722 bcs DeAll de-allocate ALL allocated blocks on error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1723 pshs b save starting block number of the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1724 andb #$3F keep block BL= block MOD 63
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1725 pshs b
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1726 addb (VD.NBlk-VD.HiRes),y add in the block size of the screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1727 decb in case last block is $3F,$7F,$BF,$FF; RG.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1728 andb #$3F (BL+S) mod 63 < BL? (overlap 512k bank)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1729 cmpb ,s+ is all of it in this bank?
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1730 blo BA010 if not, allocate another screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1731 puls b restore the block number for this screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1732 stb ,y VD.HiRes - save starting block number
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1733 bsr DeMost deallocate all of the other screens
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1734 leas a,s move from within DeMost; RG.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1735 ldb ,y restore the starting block number again
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1736
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1737 lda $01,x number of blocks
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1738 lbsr L06E3
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1739 bcs L05AF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1740 ldx $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1741 std R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1742 ldb ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1743 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1744 std R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1745 L05AF leas $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1746 puls pc,y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1747 L05B3X leas $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1748
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1749 IllArg comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1750 ldb #E$IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1751 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1752
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1753 * De-allocate the screens
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1754 DeAll bsr DeMost de-allocate all of the screens
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1755 bra L05AF restore stack and exit
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1756
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1757 DeMost tsta
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1758 beq DA020 quick exit if zero additional screens
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1759
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1760 ldb (VD.NBlk-VD.HiRes),y get # blocks of screen to de-allocate
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1761 pshs a save count of blocks for later
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1762 pshs d,y,x save rest of regs
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1763 leay 9,s account for d,y,x,a,calling PC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1764 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1765 DA010 ldb ,y+ get starting block number
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1766 tfr d,x in X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1767 ldb 1,s get size of the screen to de-allocate
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1768 pshs a needed to protect regA; RG.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1769 os9 F$DelRAM de-allocate the blocks *** IGNORING ERRORS ***
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1770 puls a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1771 dec ,s count down
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1772 bne DA010
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1773 puls d,y,x restore registers
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1774 puls a and count of extra bytes on the stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1775 * leas a,s removed because it yanks wrong data; RG.
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1776 DA020 rts and exit
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1777
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1778 * Get current screen info for direct writes - added in NitrOS-9
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1779 Rt.ScInf pshs x save caller's regs ptr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1780 ldd R$Y,x get screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1781 bmi L05C8
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1782 bsr L05DE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1783 bcs L05DC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1784 lbsr L06FF
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1785 bcs L05DC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1786 L05C8 ldx ,s get caller's regs ptr from stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1787 ldb R$Y+1,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1788 bmi L05DB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1789 bsr L05DE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1790 bcs L05DC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1791 lbsr L06E3
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1792 bcs L05DC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1793 ldx ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1794 std R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1795 L05DB clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1796 L05DC puls pc,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1797 L05DE beq L05F1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1798 cmpb #$03
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1799 bhi L05F1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1800 bsr GetScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1801 beq L05F1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1802 ldb ,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1803 beq L05F1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1804 lda $01,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1805 andcc #^Carry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1806 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1807 L05F1 bra IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1808
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1809 * Convert screen to a different type
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1810 Rt.PScrn ldd R$X,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1811 cmpd #$0004
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1812 bhi IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1813 pshs b,a save screen type, and a zero
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1814 leax >DTabl,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1815 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1816 incb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1817 lda b,x get number of blocks the screen requires
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1818 sta ,s kill 'A' on the stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1819 ldx PD.RGS,y
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1820 bsr L061B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1821 bcs L05B3X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1822 lda ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1823 cmpa $01,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1824 lbhi L05B3X if new one takes more blocks than old
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1825 lda $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1826 sta $02,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1827 leas $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1828 bra L0633
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1829 L061B ldd R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1830 beq L0633
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1831 cmpd #$0003
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1832 lbgt IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1833 bsr GetScrn point X to 3 byte screen descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1834 lbeq IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1835 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1836 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1837
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1838 * Displays screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1839 Rt.DScrn bsr L061B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1840 bcs L063A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1841 L0633 stb <VD.DGBuf,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1842 inc <VD.DFlag,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1843 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1844 L063A rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1845
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1846 * Entry: B = screen 1-3
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1847 * Exit: X = ptr to screen entry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1848 *GetScrn pshs b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1849 * leax <VD.GBuff,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1850 * lda #$03
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1851 * mul
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1852 * leax b,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1853 * puls pc,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1854 GetScrn leax <VD.GBuff,U point X to screen descriptor table
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1855 abx
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1856 abx
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1857 abx
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1858 tst ,x is this screen valid? (0 = not)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1859 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1860
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1861 * Frees memory of screen allocated by SS.AScrn
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1862 Rt.FScrn ldd R$Y,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1863 lbeq IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1864 cmpd #$03
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1865 lbhi IllArg
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1866 cmpb <VD.DGBuf,u
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1867 lbeq IllArg illegal arg if screen is being displayed
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1868 bsr GetScrn point to buffer
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1869 lbeq IllArg error if screen unallocated
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1870 * Entry: X = pointer to screen table entry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1871 FreeBlks lda $01,x get number of blocks
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1872 ldb ,x get starting block
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1873 beq L066D branch if none
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1874 pshs a else save count
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1875 clra clear A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1876 sta ,x clear block # in entry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1877 tfr d,x put starting block # in X
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1878 puls b get block numbers
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1879 os9 F$DelRAM delete
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1880 L066D rts and return
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1881
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1882 ShowS cmpb #$03 no more than 3 graphics buffers
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1883 bhi L066D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1884 bsr GetScrn point X to appropriate screen descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1885 beq L066D branch if not allocated
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1886 ldb $02,x VD.SType - screen type 0-4
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1887 cmpb #$04
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1888 bhi L066D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1889 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1890 pshs x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1891 leax >DTabl,pcr
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1892 lda b,x get proper display code
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1893 puls x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1894 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1895 std >$FF99 set border color, too
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1896 std >D.VIDRS
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1897 lda >D.HINIT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1898 anda #$7F make coco 3 only mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1899 sta >D.HINIT
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1900 sta >$FF90
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1901 lda >D.VIDMD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1902 ora #$80 graphics mode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1903 anda #$F8 1 line/character row
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1904 sta >D.VIDMD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1905 sta >$FF98
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1906 * lda ,x get block #
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1907 * lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1908 * lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1909 *** start of 2MB patch by RG
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1910 ldb ,x get block # (2Meg patch)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1911 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1912 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1913 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1914 lslb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1915 rola
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1916 sta >$FF9B
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1917 tfr b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1918 *** end of 2MB patch by RG
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1919 clrb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1920 std <D.VOFF1 display it
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1921 std >$FF9D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1922 clr >D.VOFF2
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1923 clr >$FF9C
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1924 lbra SetPals
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1925
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1926 * Get next free screen descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1927 L06C7 clr ,-s clear an area on the stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1928 inc ,s set to 1
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1929 L06CB tst ,y check block #
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1930 beq L06D9 if not used yet
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1931 leay b,y go to next screen descriptor
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1932 inc ,s increment count on stack
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1933 deca decrement A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1934 bne L06CB
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1935 comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1936 ldb #E$BMode
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1937 L06D9 puls pc,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1938
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1939 * Get B 8K blocks from high RAM
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1940 Get8KHi ldb #$01
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1941 L06DDX os9 F$AlHRAM allocate a screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1942 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1943
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1944 L06E1 lda #$01 map screen into memory
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1945 L06E3 pshs u,x,b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1946 bsr L0710
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1947 bcc L06F9
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1948 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1949 ldb $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1950 tfr d,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1951 ldb ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1952 os9 F$MapBlk
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1953 stb $01,s save error code if any
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1954 tfr u,d
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1955 bcs L06FD
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1956 L06F9 leas $02,s destroy D on no error
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1957 puls pc,u,x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1958
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1959 L06FD puls pc,u,x,b,a if error, then restore D
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1960
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1961 L06FF pshs y,x,a deallocate screen
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1962 bsr L0710
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1963 bcs L070E
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1964 ldd #DAT.Free set memory to unused
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1965 L0708 std ,x++
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1966 dec ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1967 bne L0708
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1968 L070E puls pc,y,x,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1969
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1970 L0710 equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1971 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1972 pshs a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1973 lde #$08
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1974 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1975 pshs b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1976 lda #$08 number of blocks to check
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1977 sta $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1978 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1979 ldx <D.Proc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1980 leax <P$DATImg+$10,x to end of CoCo's DAT image map
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1981 clra
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1982 addb ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1983 decb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1984 L071F cmpd ,--x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1985 beq L072A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1986 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1987 dece
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1988 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1989 dec $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1990 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1991 bne L071F
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1992 bra L0743
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1993 L072A equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1994 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1995 dece
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1996 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1997 dec $01,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1998 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
1999 dec ,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2000 beq L0738
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2001 decb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2002 cmpd ,--x
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2003 beq L072A
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2004 bra L0743
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2005 L0738 equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2006 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2007 tfr e,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2008 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2009 lda $01,s get lowest block number found
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2010 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2011 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2012 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2013 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2014 lsla
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2015 lsla multiply by 32 (convert to address)
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2016 clrb clear carry
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2017 IFNE H6309
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2018 puls b,pc
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2019 L0743 puls a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2020 ELSE
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2021 leas $02,s
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2022 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2023 L0743 puls b,a
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2024 ENDC
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2025 comb
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2026 ldb #E$BPAddr bad page address
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2027 rts
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2028
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2029 emod
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2030 eom equ *
1e312b144f4d Major changes:
boisy
parents:
diff changeset
2031 end