annotate 3rdparty/utils/winfo/winfo.asm @ 3150:37737e5ec640

Add coco3fpga RAM disk and RTC driver Added clock2_coco3fpga.as to level1/modules. Added ramd_coco3fpga.asm & r0_ramd_coco3fpga.asm to level2/modules. Build them on level2/coco3. Added definitions to "coco3/modules/makefile" to build 'ramd_coco3fpga.dr", "r0_ramd_cocofga.dd" & "clock2_coco3fpga".
author Bill Pierce <merlinious999@gmail.com>
date Mon, 06 Feb 2017 22:25:15 +0100
parents 61fb37b19edd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
1 nam WInfo
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
2 ttl OS9 Level II sub to get window information - Ron Lammardo
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
3
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
4 *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
5 * 11/22/87 - Edition #1 - for OS9 Level II V02.00.01
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
6 * 12/22/95 - Edition #2 - for ALL versions of OS-9 by Alan DeKok
2322
61fb37b19edd Edition #3 - for vtio instead of cc3io Willard Goosey
aaronwolfe
parents: 2127
diff changeset
7 * 01/20/2010 - Edition #3 - for vtio instead of cc3io Willard Goosey
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
8 *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
9
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
10 ifp1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
11 use defsfile
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
12 endc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
13
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
14 typelang set sbrtn+objct
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
15 attrev set reent+revision
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
16 revision set 1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
17
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
18 mod Eom,Mname,Typelang,Attrev,Start,Datend
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
19
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
20 mname fcs /WInfo/
2322
61fb37b19edd Edition #3 - for vtio instead of cc3io Willard Goosey
aaronwolfe
parents: 2127
diff changeset
21 edition fcb 3 edition
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
22
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
23 org 0
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
24 use winfodefs
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
25
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
26 org 0
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
27 stackadr rmb 2 stack address for return
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
28 de rmb 1 device table entry #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
29 sctype rmb 1 screen type
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
30 offset rmb 2 screen start offset in block
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
31 datimg rmb 2 address of sys DAT image in sysprc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
32 datadr rmb 2 address of sys DAT in system
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
33 entry rmb 2 address of currently proccessed window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
34 wnum rmb 1 window entry number
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
35 scrblock rmb 1 block # containing screen mem
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
36 blockcnt rmb 1 # of blocks in screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
37 wstart rmb 2 x,y coordinates of window start on screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
38 wsize rmb 2 x,y size of window
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
39 cwstart rmb 2 x,y coordinates of current working area
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
40 cwsize rmb 2 x,y size of current working area
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
41 paramadr rmb 2 address of window name to dump
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
42 paramln. rmb 1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
43 paramln rmb 1 size of window name to dump
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
44 vdgadr rmb 2 address of vdg screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
45 vdgflag rmb 1 vdg screen flag (1=yes)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
46 scrnaddr rmb 2 address of screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
47 d$devtbl rmb 2 address of device table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
48 mdname rmb 2 adress of module name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
49 drvnam rmb 2 address of device driver name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
50 buffaddr rmb 2 address of return packet
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
51 buffln. rmb 1 dummy byte
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
52 buffln rmb 1 length of return packet..must be > WI$size
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
53 weaddr rmb 2 logical address of window entry insys map (debugging only)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
54 devmaddr rmb 2 device static storage entry in sys map (debugging only)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
55 fgc rmb 1 foreground color
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
56 bgc rmb 1 background color
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
57 bdc rmb 1 border color
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
58 curx rmb 1 x coordinate of cursor
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
59 cury rmb 1 y coordinate of cursor
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
60 bpr rmb 2 bytes per row
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
61 stymark rmb 1 screen type marker byte
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
62 paltaddr rmb 2 address of palette registers
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
63 msb rmb 1 working field - msb for 2 digit mults
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
64 lsb rmb 1 working field - lsb for 2 digit mults
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
65 lset rmb 1 logic set #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
66 psetgb rmb 2 pset group/buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
67 fontgb rmb 2 font group/buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
68 gcurgb rmb 2 gfx cursor group/buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
69 minidat rmb 2 temp dat for cpymem
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
70 bfngrp rmb 2 buffer #/group return
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
71 drawcrsr rmb 4 draw cursor position - xxyy
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
72 sysdat rmb 16 system DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
73 devname rmb 5 device descriptor name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
74 devtable rmb 9 device table entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
75 devmem equ . device memory copy
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
76 sc rmb 32 screen table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
77 we rmb 64 window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
78 rmb 32 filler so we got 128 bytes for dev memory
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
79 datend equ .
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
80
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
81 E$Param equ $38 bad Parameter error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
82
1936
eee8478186d9 VTIO now referenced
boisy
parents: 396
diff changeset
83 vtio fcs /VTIO/ used to compare device driver name
2127
dcc37d3aae3d Updated makefile chain
boisy
parents: 1936
diff changeset
84 vtiolen equ *-vtio
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
85
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
86 tmpdat fcb 0,0 mini-dat image for block 0 data fetches
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
87
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
88 blnkpalt fcb $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
89 fcb $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
90
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
91 stytable fcb $01,$03,$03,$0f
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
92 blktable fcb 1,1,0,0,2,2,4,4
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
93
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
94 errmsg1 equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
95 fcc /Requested device not in device table/
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
96 errm1ln equ *-errmsg1
1936
eee8478186d9 VTIO now referenced
boisy
parents: 396
diff changeset
97 errmsg2 fcc /Requested device is not VTIO/
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
98 errm2ln equ *-errmsg2
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
99 errmsg3 fcc /Can not access window until written to/
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
100 errm3ln equ *-errmsg3
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
101
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
102 start equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
103 pshs u,dp save registers
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
104 tfr s,d put in 'd' for computations
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
105 clrb clear lsb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
106 suba #1 bump down page to make sure we don't conflict
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
107 tfr a,dp now set direct page
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
108 tfr d,u and set u register
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
109 sts <stackadr save address of stack
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
110 leax stackadr+2,u start adrress of bytes to init
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
111 ldb #devtable end addr..# of bytes to clear
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
112 lda #$ff fill character
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
113 lbsr zapblock init the characters
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
114
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
115 * get passed parameters
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
116
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
117 ldx 5,s # of parameters
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
118 cmpx #2 do we have two params?
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
119 lbne badparms no...error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
120 ldx 7,s 1st param addr (window name addr)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
121 stx <paramadr save the window name addr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
122 os9 F$PrsNam get end of name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
123 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
124 clra clear msb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
125 std <paramln. save window name length
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
126 ldx 11,s 2nd param addr (buffer addr)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
127 stx <buffaddr save the buffer address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
128 ldx 13,s 2nd param length
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
129 stx <buffln. save the buffer length address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
130 cmpx #WI$Size check if buffer big enough
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
131 lblo smllbuff no..send buffer to small status
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
132
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
133 * clear return buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
134
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
135 ldx <buffaddr address of return buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
136 ldb #WI$ermsg end address to init
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
137 lda #$ff fill char
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
138 lbsr zapblock zap the block
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
139 ldb #40 # of bytes to init
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
140 lda #$20 space fill
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
141 lbsr zapblock zap the message
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
142
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
143 * get system process descriptor for sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
144
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
145 leax tmpdat,pcr addr of sys mini-dat
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
146 tfr x,d put it in d
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
147 ldx #$004C Addr of dat image in system direct page
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
148 ldy #2 2 bytes to get
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
149 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
150 leau datadr,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
151 os9 F$CpyMem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
152 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
153 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
154 leax tmpdat,pcr addr of sys mini-data
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
155 tfr x,d put it in d
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
156 ldx datadr,u physical addr of sys DAT in sys addr map
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
157 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
158 leay sysdat,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
159 sty <datimg save it for later
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
160 tfr y,u put in u for call
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
161 ldy #16+16+1 16 bytes to get in image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
162 os9 F$CpyMem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
163 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
164 lbcs exit and exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
165
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
166 ldx <datimg get ptr to system DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
167 lda 16+16,x grab Level III SCF map info
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
168 beq not.l3
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
169 sta 3,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
170 inca
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
171 sta 5,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
172
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
173 * get offset in system map to device tables
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
174 not.l3 ldy #2 2 bytes to get
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
175 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
176 ldx #D.DevTbl addr of device table addr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
177 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
178 leau d$devtbl,u addr of reciever
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
179 os9 F$Cpymem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
180 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
181 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
182 clr <de clear device table entry #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
183 ldx d$devtbl,u addr of device table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
184 leax -$0D,x back off one entry for increment in loop
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
185 stx d$devtbl,u and save it again
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
186 leax devtable,u get the addr of our copy of devtable
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
187 stx <entry save the entry addr for later
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
188
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
189 * just do an I$Attach instead of rooting through the device table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
190
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
191 lda #READ. read-only permissions
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
192 ldx <paramadr point to window name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
193 pshs u save for later
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
194 OS9 I$Attach get U=address of device table entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
195 puls x kill end of device name pointer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
196 lbcs error1 exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
197
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
198 OS9 I$Detach so link count is correct
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
199 exg x,u now U=memory, and X=ptr to device table entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
200
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
201 leay devtable,u addr of reciever
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
202 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
203 tfr y,u put reciever addr in u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
204 ldy #9 copy table entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
205 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
206 os9 F$Cpymem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
207 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
208 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
209 leax devtable,u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
210 lda V$USRS,x test for entry in use
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
211 lbeq error3 if not in use...give out error saying so
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
212
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
213 * Alan DeKok's mod: lots of code removed here
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
214
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
215 * get driver name offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
216
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
217 ldx <entry get device entry address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
218 ldx V$DRIV,x get driver module start addr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
219 leax M$Name,x get addr of module name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
220 ldy #2 get 2 bytes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
221 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
222 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
223 leau mdname,u addr of reciever
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
224 os9 F$CpyMem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
225 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
226 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
227
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
228 * now get actual driver name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
229
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
230 ldx <entry addr of deice entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
231 ldd V$DRIV,x driver module start addr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
232 addd mdname,u + module offset to driver name
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
233 tfr d,x put it in x so we can grab it
2127
dcc37d3aae3d Updated makefile chain
boisy
parents: 1936
diff changeset
234 ldy #vtiolen length of name
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
235 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
236 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
237 leau devname,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
238 os9 F$CpyMem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
239 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
240 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
241
1936
eee8478186d9 VTIO now referenced
boisy
parents: 396
diff changeset
242 * we got the requested device...now see if its vtio
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
243
2322
61fb37b19edd Edition #3 - for vtio instead of cc3io Willard Goosey
aaronwolfe
parents: 2127
diff changeset
244 ldb #vtiolen N bytes to compare
1936
eee8478186d9 VTIO now referenced
boisy
parents: 396
diff changeset
245 leax vtio,pcr get addr of 'VTIO'
396
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
246 leay devname,u get addr of the driver nam
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
247 os9 F$CmpNam see if they're the same
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
248 lbcs error2 if not-skip to next entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
249
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
250 * get the device static storage
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
251
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
252 ldx <entry addr of device entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
253 ldd V$STAT,x addr of static storage
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
254 tfr d,x put in x so we can get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
255 stx <devmaddr save device mem addr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
256 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
257 ldy #$80 bytes to get
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
258 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
259 leau devmem,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
260 os9 F$CpyMem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
261 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
262 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
263
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
264 * get the window entry number
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
265
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
266 leax devmem,u addr of device mem
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
267 lda $35,x offset to window entry #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
268 sta wnum,u save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
269
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
270 * check if its a vdg screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
271
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
272 clr <vdgflag else clear the flag
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
273 leax devmem,u addr of device memory
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
274 lda 6,x offset to window type
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
275 anda #$80 check the high bit
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
276 lbeq vdgscrn if not set,its a vdg screen so jump
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
277
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
278 * get actual window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
279
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
280 lda wnum,u window entry #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
281 ldb #64 window entry size
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
282 mul find offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
283 addd #$1280 add it to start of window entrys
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
284 std <weaddr save window entry address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
285 tfr d,x put in x so we can get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
286 ldy #64 64 bytes to get in window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
287 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
288 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
289 leau we,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
290 os9 F$CpyMem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
291 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
292 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
293
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
294
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
295 * check if window ok
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
296
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
297 lda we,u check msb of screen table address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
298 cmpa #$ff is it valid ???
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
299 lbeq error3 send error message
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
300
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
301 * get screen table entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
302
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
303 ldx we,u address of screen table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
304 ldy #32 32 bytes in screen table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
305 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
306 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
307 leau sc,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
308 os9 F$CpyMem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
309 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
310 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
311 leax sc,u address of screen table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
312 ldb 5,x border prn
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
313 stb <bdc save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
314 ldb ,x screen type
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
315 stb <stymark
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
316
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
317 * remove bias to get actual screen type
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
318
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
319 cmpb #$80
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
320 bls lowtype
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
321 ldb #4 4 = 16 colors possible
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
322 stb <stymark make that the screen type marker
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
323 ldb #$87
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
324 subb ,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
325 bra getblock
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
326 lowtype equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
327 addb #4
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
328 getblock equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
329 stb <sctype save the screen type
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
330 decb decrement for indexing
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
331 leax blktable,pcr address of block count table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
332 lda b,x get block count (via indexing table)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
333 sta <blockcnt save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
334 leax sc,u address of screen table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
335 lda 1,x get first block used
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
336 sta <scrblock save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
337 leax 16,x address of palettes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
338 stx <paltaddr save it for later
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
339 leax we,u addr of window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
340
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
341 * get screen start in block
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
342
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
343 leax $34,x screen start
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
344 lda ,x+ get msb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
345 suba #$80 ?????
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
346 ldb ,x+ get lsb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
347 std <offset save screen offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
348 ldy ,x++ get screen start coordinates
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
349 sty <wstart save them
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
350 ldd ,x++ get screen size (x,y)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
351 std <wsize save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
352 leax we,u get start of window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
353 leax 5,x addr of cwarea start
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
354 ldy ,x++ working area start coordinates
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
355 sty <cwstart save them
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
356 ldd ,x++ working area size coordinates
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
357 std <cwsize save them
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
358 cmpd <wsize see if its same as total window size
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
359 beq getbpr if it is,skip next section
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
360
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
361 * adjust block offset to take change working area into account
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
362
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
363 clr <msb clear temp area
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
364 lda <cwstart x offset of area
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
365 lsla multiply by 2 for attribute bytes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
366 sta <lsb save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
367 lda <cwstart+1 y offset of area
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
368 lsla multiply by 2 for attribute bytes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
369 ldb <wsize x-size of window
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
370 mul mulitply
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
371 addd <msb add x offset of area
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
372 addd <offset add original block offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
373 std <offset save new block offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
374
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
375 * get # of bytes per row and cursor coordinates
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
376
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
377 getbpr equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
378 ldx #$1075 address of gfx table start pointer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
379 ldy #2 # of bytes to get
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
380 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
381 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
382 leau msb,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
383 os9 F$Cpymem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
384 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
385 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
386 lda <wnum get window entry number
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
387 ldb #$12 size of gfx table entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
388 mul get the offset to start of our gfx window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
389 addd #1 add 1 for draw cursor start
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
390 ldx <msb load addr of table start
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
391 leax d,x and add offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
392 ldy #4 get 4 bytes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
393 ldd <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
394 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
395 leau drawcrsr,u addr of receiver
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
396 os9 F$Cpymem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
397 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
398 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
399
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
400 clr <curx clear fields
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
401 clr <cury
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
402 leax we,u address of window entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
403 ldd $14,x butes per row
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
404 std <bpr save bytes per row
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
405
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
406 * get foreground/background prn's
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
407
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
408 leay stytable,pcr addr of screen type mask table
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
409 ldb <stymark get sty marker byte
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
410 decb decrement for indexing
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
411 leay b,y addr of mask (via indexing)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
412 ldd $16,x get fore/back palette #'s
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
413 anda ,y strip of bias againt mask
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
414 andb ,y
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
415 sta <fgc save foreground prn
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
416 stb <bgc save background prn
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
417
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
418 lda $1A,x logic set #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
419 sta <lset save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
420 lda $1B,x block # of font
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
421 ldy $1C,x block offset of font
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
422 lbsr fetchit get group/buffer of font
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
423 std <fontgb save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
424 lda $1E,x block # of pset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
425 ldy $1F,x block offset of pset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
426 leay -$20,y back off to get header start of pset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
427 lbsr fetchit get group/buffer of pset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
428 std <psetgb save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
429 lda $28,x block # of gfx cursor
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
430 ldy $29,x block offset of gfx cursor
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
431 lbsr fetchit get group/buffer of gfx cursor
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
432 std <gcurgb save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
433
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
434 ldd $0B,x cursor logical address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
435 subd 3,x subtract screen logical start
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
436 lbra getcrps get x,y cursor coords
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
437
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
438 * get block number and offset in block for VDG type screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
439
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
440 vdgscrn equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
441 leax blnkpalt,pcr address of $ff's for vdg palettes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
442 stx <paltaddr save the addr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
443 lda #$ff fill char
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
444 sta <fgc no palettes for vdg screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
445 sta <bgc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
446 sta <bdc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
447 lda #1 vdgflag=1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
448 sta <vdgflag
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
449 sta <blockcnt 1 block in screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
450 clra
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
451 clrb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
452 std <wstart window starts at 0,0
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
453 std <cwstart
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
454 clr <sctype screentype = 0
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
455 leax devmem,u address of device memory
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
456 ldd $38,x logical screen start addr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
457 std vdgadr,u msb of vdg address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
458 lsra divide by 16
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
459 lsra
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
460 lsra
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
461 lsra
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
462 lsra divide by 2
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
463 inca add 1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
464 lsla multiply by 2
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
465 deca subtract 1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
466 ldx <datimg addr of sys DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
467 ldb a,x add on block # in map and get the physical block
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
468 stb <scrblock save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
469 ldd vdgadr,u get the physical screen address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
470 anda #%00011111 strip off block # bias
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
471 std <offset save offset within block
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
472 ldd #$2010 32 * 16 screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
473 std <cwsize save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
474 std <wsize save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
475 clr <curx clear cursor offset counters
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
476 clr <cury
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
477 ldd #$0020 32 bytes/row
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
478 std <bpr save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
479 leax devmem,u address of device memory
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
480 ldd $3C,x cursor address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
481 subd $38,x screen address
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
482
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
483 getcrps equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
484 cmpd <bpr are we done getting row?
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
485 blo gotycur yes..skip this
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
486 subd <bpr subtract bytes/row
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
487 inc <cury increment row #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
488 bra getcrps and check for more
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
489
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
490 gotycur equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
491 stb <curx save y cursor pos
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
492 tst <vdgflag is it vdg screen??
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
493 bne savexcur yes..more processing
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
494 lda <sctype get screen type to determine divisor
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
495 cmpa #5 is it type 5 screen???
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
496 beq gotxcur go save x cursor position
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
497 lsrb divide by two to get actual offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
498 cmpa #8 is it type 7 screen???
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
499 bne gotxcur go save x cursor position
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
500 lsrb divide by two again
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
501
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
502 gotxcur equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
503 stb <curx save y cursor pos
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
504 lbra retbuffr go return buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
505
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
506 savexcur equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
507 leax devmem,u address of device mem
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
508 lda $37,x screen # on display
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
509 bne chkmedrs if not 0 then its medium or hi res
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
510 tst $45,x test med-res flag
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
511 lbeq retbuffr its not hi-res gfx
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
512
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
513 chkmedrs equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
514 ldb #3 3 bytes per screen table entry
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
515 mul get screen table offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
516 leax $4A,x start of screen tables
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
517 leax b,x offset for screen #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
518 inc <vdgflag =2 for med-res gfx
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
519 clr <offset screen starts at begin of block
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
520 clr <offset+1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
521 lda ,x+ get start block
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
522 sta <scrblock save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
523 lda ,x+ get block count
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
524 lbne vdghires if there its a hi-res
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
525 ldx #$0180 BPR for med-res vdg screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
526 stx <bpr save it for later
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
527 lda #%00010000 default mode of 1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
528 leax devmem,u get start of device mem again
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
529 tst $3f,x screen mode
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
530 bpl vdgtyp1 if its is..go save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
531 clra make the mode=0
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
532
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
533 vdgtyp1 equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
534 ora $66,x foreground color
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
535 sta <sctype thats our screen type
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
536 lbra retbuffr go return buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
537
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
538 * hi res vdg screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
539
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
540 vdghires equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
541 sta <blockcnt save the block count
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
542 lda ,x get the screen type
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
543 sta <sctype save it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
544 ldy #$2818 sizex/sizey for screen type 0,1,2
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
545 ldx #$0280 BPR for screen type 0,1,2
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
546 cmpa #2 is screen type <= 2
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
547 bls vdgbpr if yes..go save BPR
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
548 ldy #$5018 BPR for screen types 3,4
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
549 ldx #$0500 BPR for screen types 3,4
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
550
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
551 vdgbpr equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
552 sty <wsize save the size
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
553 sty <cwsize same for current working size
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
554 stx <bpr save the bytes per row
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
555 leax devmem,u get address of device mem again
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
556 leax $6B,x address of palettes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
557 stx <paltaddr save it for later
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
558 inc <vdgflag =3 (hi res vdg)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
559 lbra retbuffr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
560
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
561 * dump the screen
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
562
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
563 retbuffr equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
564 ldx <buffaddr address of return buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
565 clra
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
566 sta WI$stat,x status is ok (=0)
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
567 lda <vdgflag
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
568 sta WI$vdg,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
569 lda <sctype
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
570 sta WI$sty,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
571 lda <scrblock
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
572 sta WI$block,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
573 lda <blockcnt
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
574 sta WI$blcnt,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
575 ldd <offset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
576 std WI$offst,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
577 lda <wstart
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
578 sta WI$cpx,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
579 lda <wstart+1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
580 sta WI$cpy,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
581 lda <wsize
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
582 sta WI$szx,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
583 lda <wsize+1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
584 sta WI$szy,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
585 lda <cwstart
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
586 sta WI$cwcpx,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
587 lda <cwstart+1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
588 sta WI$cwcpy,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
589 lda <cwsize
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
590 sta WI$cwszx,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
591 lda <cwsize+1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
592 sta WI$cwszy,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
593 lda <curx
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
594 sta WI$curx,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
595 lda <cury
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
596 sta WI$cury,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
597 ldd <bpr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
598 std WI$bpr,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
599 leay we,u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
600 lda $19,y
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
601 sta WI$cbsw,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
602 lda <bdc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
603 sta WI$bdprn,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
604 lda <fgc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
605 sta WI$fgprn,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
606 lda <bgc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
607 sta WI$bgprn,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
608 lda <lset
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
609 sta WI$Lset,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
610 ldd <fontgb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
611 sta WI$FntGr,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
612 stb WI$FntBf,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
613 ldd <psetgb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
614 sta WI$PstGr,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
615 stb WI$PstBf,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
616 ldd <gcurgb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
617 sta WI$GcrGr,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
618 stb WI$GcrBf,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
619 ldd <drawcrsr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
620 std WI$DrCrx,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
621 ldd <drawcrsr+2
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
622 std WI$DrCry,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
623 lda edition,pcr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
624 sta WI$Edtn,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
625 ldd <weaddr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
626 std WI$weadr,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
627 ldd <devmaddr
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
628 std WI$devm,x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
629 leay WI$pregs,x addr of where to move palettes to
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
630 ldx <paltaddr addr of palettes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
631 ldd #16 16 bytes to move
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
632 lbsr u$movexy move it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
633 bra clrexit done so return from sub
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
634
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
635 badparms equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
636 ldb #E$Param bad parameter error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
637 bra exit go return it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
638
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
639 clrexit clrb no error..clear b reg
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
640 exit equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
641 lds <stackadr restore stack
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
642 puls u,dp restore u and dp registers
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
643 clra clear carry bit
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
644 tstb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
645 beq return
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
646 coma set carry bit
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
647 return equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
648 rts
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
649
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
650 zapblock equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
651 sta ,x+
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
652 decb
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
653 bne zapblock
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
654 rts
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
655
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
656 * fetch 2 bytes from block [a] at offset [y]+3
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
657
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
658
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
659
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
660 fetchit equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
661 clr <minidat
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
662 sta <minidat+1
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
663 bne fetchok jump if valid block #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
664 clra else clear group #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
665 clrb clear buffer #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
666 rts
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
667
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
668 fetchok equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
669 pshs x save x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
670 leax 3,y poistion to group #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
671 tfr x,d put in d for arithmetic
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
672 anda #%00011111 strip off hig order bytes
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
673 tfr d,x and put back in x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
674 leay minidat,u adr of temp DAT image
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
675 tfr y,d put in d for os9 call
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
676 ldy #2 bytes to get
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
677 pshs u save u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
678 leau bfngrp,u addr of receving field
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
679 os9 F$Cpymem get it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
680 puls u restore u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
681 lbcs exit exit on error
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
682 ldd <bfngrp put it in d for return
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
683 puls x restore x
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
684 rts
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
685
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
686 * move [d] bytes from [x] to [y]
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
687
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
688 u$movexy pshs u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
689 tfr d,u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
690 movexy10 lda ,x+
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
691 sta ,y+
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
692 leau -1,u
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
693 cmpu #0
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
694 bne movexy10
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
695 puls u,pc
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
696
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
697 error1 equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
698 ldb #1 error number
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
699 pshs b save error #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
700 leax errmsg1,pcr address of error msg
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
701 ldd #errm1ln length of error message
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
702 bra moverr go move it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
703
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
704 error2 equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
705 ldb #2 error number
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
706 pshs b save error #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
707 leax errmsg2,pcr address of error msg
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
708 ldd #errm2ln length of error message
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
709 bra moverr go move it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
710
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
711 error3 equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
712 ldb #3 error number
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
713 pshs b save error #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
714 leax errmsg3,pcr address of error msg
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
715 ldd #errm3ln length of error message
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
716 bra moverr go move it
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
717
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
718 moverr equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
719 ldy <buffaddr address of return buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
720 leay WI$ErMsg,y address of error message
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
721 lbsr u$movexy
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
722 puls b
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
723
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
724 storstat equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
725 ldy <buffaddr address of return buffer
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
726 stb WI$Stat,y save the status byte
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
727 lbra clrexit done
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
728
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
729
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
730 smllbuff equ *
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
731 ldb #$ff buffer too small status #
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
732 bra storstat go store status # and exit
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
733
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
734
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
735 emod
00b1c751fad7 Added WInfo
boisy
parents:
diff changeset
736 eom equ *
2322
61fb37b19edd Edition #3 - for vtio instead of cc3io Willard Goosey
aaronwolfe
parents: 2127
diff changeset
737