annotate level1/modules/co32.asm @ 1582:e19a38f50c3a

More commments added
author boisy
date Fri, 21 May 2004 12:50:04 +0000
parents 79fd895a3123
children 2d73cd04596b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2 * CO32 - Hardware VDG co-driver for CCIO
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
4 * $Id$
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
5 *
1499
6cd590fc076f Fixed comments
boisy
parents: 1287
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
6cd590fc076f Fixed comments
boisy
parents: 1287
diff changeset
7 * Comment
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 * ------------------------------------------------------------------
1499
6cd590fc076f Fixed comments
boisy
parents: 1287
diff changeset
9 * 1 ????/??/??
6cd590fc076f Fixed comments
boisy
parents: 1287
diff changeset
10 * From Tandy OS-9 Level One VR 02.00.00
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
11 *
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
12 * 2003/09/22 Rodney Hamilton
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
13 * recoded dispatch table fcbs, fixed cursor color bug
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 nam CO32
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 ttl Hardware VDG co-driver for CCIO
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 * Disassembled 98/08/23 17:47:40 by Disasm v1.6 (C) 1988 by RML
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21 use defsfile
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
22 use co32defs
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25 tylg set Systm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26 atrv set ReEnt+rev
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 201
diff changeset
27 rev set $00
201
668388823050 Fixed headers to be consistent
boisy
parents: 0
diff changeset
28 edition set 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30 mod eom,name,tylg,atrv,start,size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32 u0000 rmb 0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 size equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34 fcb $07
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
36 name fcs /CO32/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
37 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
39 start equ *
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
40 lbra Init
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
41 lbra Write
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
42 lbra GetStat
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
43 lbra SetStat
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
44 Term pshs y,x
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
45 pshs u save U
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
46 ldd #$0200 32x16 VDG memory size
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
47 ldu <VD.ScrnA,u $1D get pointer to memory
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
48 os9 F$SRtMem return to system
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
49 puls u restore U
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50 ldb <$70,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 andb #$FD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 bra L0086
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
53 * Init
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
54 Init pshs y,x save regs
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 lda #$AF
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
56 sta <VD.CColr,u $2C save default color cursor
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
57 pshs u save static ptr
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
58 ldd #768 allocate 768 bytes for now
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
59 os9 F$SRqMem get it
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
60 tfr u,d put ptr in D
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
61 tfr u,x and X
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
62 bita #$01 odd page?
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
63 beq L0052 branch if not
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
64 leax >256,x else move X up 256 bytes
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
65 bra L0056 and return first 256 bytes
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
66 L0052 leau >512,u else move X up 512 bytes
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
67 L0056 ldd #256 and return last 256 bytes
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
68 os9 F$SRtMem free it!
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
69 puls u restore static ptr
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
70 stx <VD.ScrnA,u $1D save VDG screen memory
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
71 pshs y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
72 leay -$0E,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
73 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 jsr [<$5B,u]
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76 puls y
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
77 stx <VD.CrsrA,u $21 save start cursor position
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
78 leax >512,x point to end of screen
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
79 stx <VD.ScrnE,u $1F save it
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
80 lda #$60 get default character
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
81 sta <VD.CChar,u $23 put character under the cursor
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
82 sta <VD.Chr1,u $2B only referenced here ??
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
83 lbsr ClrScrn clear the screen
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
84 ldb <$70,u
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
85 orb #$02 set to CO32 found (?)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
86 L0086 stb <$70,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
87 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
88 puls pc,y,x
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
89
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
90 * Write
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
91 * Entry: A = char to write
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
92 * Y = path desc ptr
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
93 Write tsta
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94 bmi L00D0
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
95 cmpa #$1F byte $1F?
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
96 bls Dispatch branch if lower or same
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
97 ldb <VD.CFlag,u $71
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 beq L00B0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
99 cmpa #$5E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
100 bne L00A0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
101 lda #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
102 bra L00D0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
103 L00A0 cmpa #$5F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
104 bne L00A8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
105 lda #$1F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
106 bra L00D0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
107 L00A8 cmpa #$60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
108 bne L00C0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
109 lda #$67
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
110 bra L00D0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
111 L00B0 cmpa #$7C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
112 bne L00B8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
113 lda #$21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
114 bra L00D0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
115 L00B8 cmpa #$7E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
116 bne L00C0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
117 lda #$2D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
118 bra L00D0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
119 L00C0 cmpa #$60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
120 bcs L00C8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
121 suba #$60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
122 bra L00D0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
123 L00C8 cmpa #$40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
124 bcs L00CE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
125 suba #$40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
126 L00CE eora #$40
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
127 L00D0 ldx <VD.CrsrA,u $21
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
128 sta ,x+
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
129 stx <VD.CrsrA,u $21
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
130 cmpx <VD.ScrnE,u $1F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
131 bcs L00DF
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
132 bsr SScrl if at end of screen, scroll it
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
133 L00DF bsr ShowCrsr ends with a CLRB/RTS anyhow
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
134
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
135 * no operation entry point
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
136 NoOp clrb
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
137 rts
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
138
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
139 SScrl ldx <VD.ScrnA,u $1D
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
140 leax <32,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
141 L00E9 ldd ,x++
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
142 std <-34,x
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
143 cmpx <VD.ScrnE,u $1F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
144 bcs L00E9
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
145 leax <-32,x
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
146 stx <VD.CrsrA,u $21
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
147 lda #32
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
148 ldb #$60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
149 L00FD stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
150 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
151 bne L00FD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
152 L0102 rts
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
153
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
154 Dispatch cmpa #$1B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
155 bcc L0113
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
156 cmpa #$0E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
157 bhi L0102
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
158 leax <DCodeTbl,pcr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
159 lsla
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
160 ldd a,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161 jmp d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
162 L0113 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
163 ldb #E$Write
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
164 rts
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
165
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
166 * display functions dispatch table
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
167 DCodeTbl fdb NoOp-DCodeTbl $ffca $00:no-op (null)
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
168 fdb CurHome-DCodeTbl $007d $01:HOME cursor
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
169 fdb CurXY-DCodeTbl $00c9 $02:CURSOR XY
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
170 fdb DelLine-DCodeTbl $0107 $03:ERASE LINE
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
171 fdb ErEOLine-DCodeTbl $00f9 $04:CLEAR TO EOL
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
172 fdb CrsrSw-DCodeTbl $0091 $05:CURSOR ON/OFF
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
173 fdb CurRght-DCodeTbl $005e $06:CURSOR RIGHT
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
174 fdb NoOp-DCodeTbl $ffca $07:no-op (bel:handled in CCIO)
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
175 fdb CurLeft-DCodeTbl $0050 $08:CURSOR LEFT
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
176 fdb CurUp-DCodeTbl $0119 $09:CURSOR UP
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
177 fdb CurDown-DCodeTbl $0038 $0A:CURSOR DOWN
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
178 fdb ErEOScrn-DCodeTbl $006c $0B:ERASE TO EOS
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
179 fdb ClrScrn-DCodeTbl $0070 $0C:CLEAR SCREEN
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
180 fdb Retrn-DCodeTbl $001e $0D:RETURN
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
181 fdb DoAlpha-DCodeTbl $012a $0E:DISPLAY ALPHA
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
182
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
183 * $0D - move cursor to start of line (carriage return)
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
184 Retrn bsr HideCrsr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
185 tfr x,d
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
186 andb #$E0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
187 stb <$22,u
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
188 ShowCrsr ldx <VD.CrsrA,u $21 get cursor address
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
189 lda ,x get char at cursor position
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
190 sta <VD.CChar,u $23 save it
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
191 lda <VD.CColr,u $2C get cursor character
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
192 beq L014D branch if none
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
193 L014B sta ,x else turn on cursor
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194 L014D clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
195 rts
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
196
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
197 * $0A - cursor down (line feed)
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
198 CurDown bsr HideCrsr hide cursor
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
199 leax <32,x move X down one line
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
200 cmpx <VD.ScrnE,u $1F at end of screen?
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
201 bcs L0162 branch if not
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
202 leax <-32,x else go back up one line
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
203 pshs x save X
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
204 bsr SScrl and scroll the screen
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
205 puls x restore pointer
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
206 L0162 stx <VD.CrsrA,u $21 save cursor pointer
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
207 bra ShowCrsr show cursor
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
208
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
209 * $08 - cursor left
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
210 CurLeft bsr HideCrsr hide cursor
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
211 cmpx <VD.ScrnA,u $1D compare against start of screen
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
212 bls L0173 ignore it if at the screen start
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
213 leax -$01,x else back up one
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
214 stx <VD.CrsrA,u $21 save updated pointer
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
215 L0173 bra ShowCrsr and show cursor
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
216
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
217 * $06 - cursor right
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
218 CurRght bsr HideCrsr hide cursor
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
219 leax $01,x move to the right
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
220 cmpx <VD.ScrnE,u $1F compare against end of screen
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
221 bcc L0181 if past end, ignore it
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
222 stx <VD.CrsrA,u $21 else save updated pointer
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
223 L0181 bra ShowCrsr and show cursor
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
224
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
225 * $0B - erase to end of screen
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
226 ErEOScrn bsr HideCrsr kill the cusror
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
227 bra L0189 and clear rest of the screen
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
228
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
229 * $0C - clear screen
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
230 ClrScrn bsr CurHome home cursor
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
231 L0189 lda #$60 get default char
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
232 L018B sta ,x+ save at location
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
233 cmpx <VD.ScrnE,u $1F end of screen?
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
234 bcs L018B branch if not
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
235 bra ShowCrsr now show cursor
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
236
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
237 * $01 - home cursor
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
238 CurHome bsr HideCrsr hide cursor
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
239 ldx <VD.ScrnA,u $1D get pointer to screen
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
240 stx <VD.CrsrA,u $21 save as new cursor position
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
241 bra ShowCrsr and show it
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
242
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
243 * Hides the cursor from the screen
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
244 * Exit: X = address of cursor
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
245 HideCrsr ldx <VD.CrsrA,u $21 get address of cursor in X
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
246 lda <VD.CChar,u $23 get value of char under cursor
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
247 sta ,x put char in place of cursor
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
248 clrb must be here, in general, for [...] BRA HideCrsr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
249 rts
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
250
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
251 * $05 XX - set cursor off/on/color per XX-32
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
252 CrsrSw ldb #$01
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
253 leax <L01AF,pcr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
254 bra L01E5
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
255
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
256 L01AF lda <VD.NChar,u $29 get next char
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
257 suba #C$SPAC take out ASCII space
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
258 bne L01BB branch if not zero
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
259 sta <VD.CColr,u $2C else save cursor color zero (no cursor)
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
260 bra HideCrsr and hide cursor
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
261 L01BB cmpa #$0B greater than $0B?
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
262 bge L014D yep, just ignore byte
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
263 cmpa #$01 is it one?
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
264 bgt L01C7 branch if greater
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
265 lda #$AF else get default blue cursor color
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
266 bra L01D7 and save cursor color
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
267 L01C7 cmpa #$02 is it two?
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
268 bgt L01CF branch if larger
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
269 lda #$A0 else get black cursor color
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
270 bra L01D7 and save it
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
271 ** BUG ** BUG ** BUG ** BUG
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
272 L01CF suba #$03 ** BUG FIXED! ** !!! Was SUBB
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
273 lsla shift into upper nibble
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
274 lsla
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
275 lsla
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
276 lsla
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
277 ora #$8F
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
278 L01D7 sta <VD.CColr,u $2C save new cursor
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
279 ldx <VD.CrsrA,u $21 get cursor address
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
280 lbra L014B branch to save cursor in X
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
281
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
282 * $02 XX YY - move cursor to col XX-32, row YY-32
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
283 CurXY ldb #$02 we want to claim next two chars
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
284 leax <DoCurXY,pcr point to processing routine
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
285 L01E5 stx <$26,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
286 stb <$25,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
287 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
288 rts
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
289
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
290 DoCurXY bsr HideCrsr hide cursor
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
291 ldb <VD.NChar,u $29 get ASCII Y-pos
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
292 subb #C$SPAC take out ASCII space
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
293 lda #32 go down
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
294 mul multiply it
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
295 addb <VD.NChr2,u $28 add in X-pos
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
296 adca #$00
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
297 subd #C$SPAC take out another ASCII space
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
298 addd <VD.ScrnA,u $1D add top of screen address
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
299 cmpd <VD.ScrnE,u $1F at end of the screen?
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
300 lbcc L014D exit if off the screen
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
301 std <VD.CrsrA,u $21 otherwise save new cursor address
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
302 lbra ShowCrsr and show cursor
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
303
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
304 * $04 - erase to end of line
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
305 ErEOLine bsr HideCrsr hide cursor
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
306 tfr x,d move current cursor position in D
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
307 andb #$1F number of characters put on this line
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
308 pshs b
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
309 ldb #32
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
310 subb ,s+
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
311 bra L0223 and clear one line
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
312
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
313 * $03 - erase line
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
314 DelLine lbsr Retrn do a CR
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
315 ldb #32 line length
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
316 L0223 lda #$60 get default character
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
317 ldx <VD.CrsrA,u $21 get cursor address
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
318 L0228 sta ,x+ fill screen line with 'space'
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
319 decb decrement
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
320 bne L0228 and branch if not end
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
321 lbra ShowCrsr else show cursor
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
322
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
323 * $09 - cursor up
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
324 CurUp lbsr HideCrsr hide cursor
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
325 leax <-32,x move X up one line
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
326 cmpx <VD.ScrnA,u $1D compare against start of screen
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
327 bcs L023E branch if we went beyond
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
328 stx <VD.CrsrA,u $21 else store updated X
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
329 L023E lbra ShowCrsr and show cursor
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
330
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
331 * $0E - switch screen to alphanumeric mode
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
332 DoAlpha clra
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
333 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
334 jmp [<$5B,u]
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
335
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
336 * GetStat
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
337 GetStat ldx PD.RGS,y
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
338 cmpa #SS.AlfaS $1C
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
339 beq Rt.AlfaS
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
340 cmpa #SS.Cursr $25
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
341 beq Rt.Cursr
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
342
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
343 * SetStat
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
344 SetStat comb
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
345 ldb #E$UnkSvc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
346 rts
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
347
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
348 * SS.AlfaS getstat
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
349 Rt.AlfaS ldd <VD.ScrnA,u $1D memory address of buffer
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
350 std R$X,x
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
351 ldd <VD.CrsrA,u $21
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
352 std R$Y,x
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
353 lda <VD.Caps,u $50 save caps lock status in A and exit
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
354 bra L02BA
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
355
1512
f3557a63b11c Rodney's improvements
boisy
parents: 1499
diff changeset
356 * SS.Cursr getstat
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
357 Rt.Cursr ldd <VD.CrsrA,u $21
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
358 subd <VD.ScrnA,u $1D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
359 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
360 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
361 andb #$1F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
362 addb #$20
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
363 std R$X,x save column position in ASCII
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
364 puls b,a then divide by 32
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
365 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
366 rolb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
367 rolb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
368 rolb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
369 rolb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
370 clra
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
371 andb #$0F only 16 line to a screen
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
372 addb #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
373 std $06,x
1582
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
374 ldb <VD.CFlag,u $71
e19a38f50c3a More commments added
boisy
parents: 1580
diff changeset
375 lda <VD.CChar,u $23
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
376 bmi L02BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
377 cmpa #$60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
378 bcc L02A5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
379 cmpa #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
380 bcc L02A9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
381 tstb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
382 beq L02A3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
383 cmpa #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
384 bne L029B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
385 lda #$5E
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
386 bra L02BA save it and exit
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
387
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
388 L029B cmpa #$1F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
389 bne L02A3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
390 lda #$5F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
391 bra L02BA
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
392 L02A3 ora #$20 turn it into ASCII from vDG codes
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
393 L02A5 eora #$40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
394 bra L02BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
395 L02A9 tstb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
396 bne L02BA
1580
79fd895a3123 Better comments
boisy
parents: 1512
diff changeset
397 cmpa #$21 remap specific codes
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
398 bne L02B4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
399 lda #$7C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
400 bra L02BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
401 L02B4 cmpa #$2D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
402 bne L02BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
403 lda #$7E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
404 L02BA sta $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
405 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
406 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
407
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
408 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
409 eom equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
410 end
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
411