annotate 3rdparty/packages/cc/sources/cstart.a @ 1558:4a4ff4d844ef

ccdisk.asm: this is "newdisk" found on google, replaces old ccdisk which had severe reliability problems. rbfdefs: since "newdisk" uses the same step codes as cc3disk, rbfdefs was modified to reflect this. sysgo.asm: Date changed to May 14, 2004 to reflect updated 03.02.01 release. ChangeLogs: reflect updated version info.
author boisy
date Thu, 13 May 2004 14:19:49 +0000
parents 0198655f2552
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
867
0198655f2552 Added sources
boisy
parents:
diff changeset
1 ifp1
0198655f2552 Added sources
boisy
parents:
diff changeset
2 use ..../defs/os9defs.a
0198655f2552 Added sources
boisy
parents:
diff changeset
3 endc
0198655f2552 Added sources
boisy
parents:
diff changeset
4
0198655f2552 Added sources
boisy
parents:
diff changeset
5 pushzero macro
0198655f2552 Added sources
boisy
parents:
diff changeset
6 clr ,-s clear a byte on stack
0198655f2552 Added sources
boisy
parents:
diff changeset
7 endm
0198655f2552 Added sources
boisy
parents:
diff changeset
8
0198655f2552 Added sources
boisy
parents:
diff changeset
9 nfiles equ 2 stdin and stdout at least
0198655f2552 Added sources
boisy
parents:
diff changeset
10 Typ equ 1
0198655f2552 Added sources
boisy
parents:
diff changeset
11 Edit equ 1
0198655f2552 Added sources
boisy
parents:
diff changeset
12 Stk equ nfiles*256+128+256 stdin,stdout,stderr and fudge
0198655f2552 Added sources
boisy
parents:
diff changeset
13 psect cstart_a,$11,$81,Edit,Stk,_cstart
0198655f2552 Added sources
boisy
parents:
diff changeset
14
0198655f2552 Added sources
boisy
parents:
diff changeset
15 cr equ $0d
0198655f2552 Added sources
boisy
parents:
diff changeset
16 sp equ $20
0198655f2552 Added sources
boisy
parents:
diff changeset
17 comma equ ',
0198655f2552 Added sources
boisy
parents:
diff changeset
18 dquote equ '"
0198655f2552 Added sources
boisy
parents:
diff changeset
19 squote equ ''
0198655f2552 Added sources
boisy
parents:
diff changeset
20
0198655f2552 Added sources
boisy
parents:
diff changeset
21 MAXARGS equ 30 allow for 30 arguments
0198655f2552 Added sources
boisy
parents:
diff changeset
22
0198655f2552 Added sources
boisy
parents:
diff changeset
23 *
0198655f2552 Added sources
boisy
parents:
diff changeset
24 * rob the first dp byte so nothing gets assigned
0198655f2552 Added sources
boisy
parents:
diff changeset
25 * here. No valid pointer can point to byte zero.
0198655f2552 Added sources
boisy
parents:
diff changeset
26 *
0198655f2552 Added sources
boisy
parents:
diff changeset
27 vsect dp
0198655f2552 Added sources
boisy
parents:
diff changeset
28 __$$ fcb 0
0198655f2552 Added sources
boisy
parents:
diff changeset
29 endsect
0198655f2552 Added sources
boisy
parents:
diff changeset
30
0198655f2552 Added sources
boisy
parents:
diff changeset
31 vsect
0198655f2552 Added sources
boisy
parents:
diff changeset
32 argv rmb 2*MAXARGS pointers to args
0198655f2552 Added sources
boisy
parents:
diff changeset
33 argc rmb 2 argument counter
0198655f2552 Added sources
boisy
parents:
diff changeset
34 _sttop rmb 2 stack top
0198655f2552 Added sources
boisy
parents:
diff changeset
35 endsect
0198655f2552 Added sources
boisy
parents:
diff changeset
36
0198655f2552 Added sources
boisy
parents:
diff changeset
37 * the following are globally known
0198655f2552 Added sources
boisy
parents:
diff changeset
38 vsect
0198655f2552 Added sources
boisy
parents:
diff changeset
39 memend: rmb 2
0198655f2552 Added sources
boisy
parents:
diff changeset
40 _flacc: rmb 8 floating point & longs accumulator
0198655f2552 Added sources
boisy
parents:
diff changeset
41 _mtop: rmb 2 current non-stack memory top
0198655f2552 Added sources
boisy
parents:
diff changeset
42 _stbot: rmb 2 current stack bottom limit
0198655f2552 Added sources
boisy
parents:
diff changeset
43 errno: rmb 2 global error holder
0198655f2552 Added sources
boisy
parents:
diff changeset
44 endsect
0198655f2552 Added sources
boisy
parents:
diff changeset
45
0198655f2552 Added sources
boisy
parents:
diff changeset
46 *
0198655f2552 Added sources
boisy
parents:
diff changeset
47 * move bytes (Y=From addr, U=To addr, X=Count)
0198655f2552 Added sources
boisy
parents:
diff changeset
48 *
0198655f2552 Added sources
boisy
parents:
diff changeset
49 movbytes
0198655f2552 Added sources
boisy
parents:
diff changeset
50 lda ,y+ get a byte
0198655f2552 Added sources
boisy
parents:
diff changeset
51 sta ,u+ put a byte
0198655f2552 Added sources
boisy
parents:
diff changeset
52 leax -1,x dec the count
0198655f2552 Added sources
boisy
parents:
diff changeset
53 bne movbytes and round again
0198655f2552 Added sources
boisy
parents:
diff changeset
54 rts
0198655f2552 Added sources
boisy
parents:
diff changeset
55
0198655f2552 Added sources
boisy
parents:
diff changeset
56 _cstart:
0198655f2552 Added sources
boisy
parents:
diff changeset
57 pshs y save the top of mem
0198655f2552 Added sources
boisy
parents:
diff changeset
58 pshs u save the data beginning address
0198655f2552 Added sources
boisy
parents:
diff changeset
59
0198655f2552 Added sources
boisy
parents:
diff changeset
60 clra setup to clear
0198655f2552 Added sources
boisy
parents:
diff changeset
61 clrb 256 bytes
0198655f2552 Added sources
boisy
parents:
diff changeset
62 csta05 sta ,u+ clear dp bytes
0198655f2552 Added sources
boisy
parents:
diff changeset
63 decb
0198655f2552 Added sources
boisy
parents:
diff changeset
64 bne csta05
0198655f2552 Added sources
boisy
parents:
diff changeset
65
0198655f2552 Added sources
boisy
parents:
diff changeset
66 csta10 ldx 0,s get the beginning of data address
0198655f2552 Added sources
boisy
parents:
diff changeset
67 leau 0,x (tfr x,u)
0198655f2552 Added sources
boisy
parents:
diff changeset
68 leax end,x get the end of bss address
0198655f2552 Added sources
boisy
parents:
diff changeset
69 pshs x save it
0198655f2552 Added sources
boisy
parents:
diff changeset
70 leay etext,pcr point to dp-data count word
0198655f2552 Added sources
boisy
parents:
diff changeset
71
0198655f2552 Added sources
boisy
parents:
diff changeset
72 ldx ,y++ get count of dp-data to be moved
0198655f2552 Added sources
boisy
parents:
diff changeset
73 beq csta15 bra if none
0198655f2552 Added sources
boisy
parents:
diff changeset
74 bsr movbytes move dp data into position
0198655f2552 Added sources
boisy
parents:
diff changeset
75
0198655f2552 Added sources
boisy
parents:
diff changeset
76 ldu 2,s get beginning address again
0198655f2552 Added sources
boisy
parents:
diff changeset
77 csta15 leau dpsiz,u point to where non-dp should start
0198655f2552 Added sources
boisy
parents:
diff changeset
78 ldx ,y++ get count of non-dp data to be moved
0198655f2552 Added sources
boisy
parents:
diff changeset
79 beq clrbss
0198655f2552 Added sources
boisy
parents:
diff changeset
80 bsr movbytes move non-dp data into position
0198655f2552 Added sources
boisy
parents:
diff changeset
81
0198655f2552 Added sources
boisy
parents:
diff changeset
82 * clear the bss area - starts where
0198655f2552 Added sources
boisy
parents:
diff changeset
83 * the transferred data finished
0198655f2552 Added sources
boisy
parents:
diff changeset
84 clra
0198655f2552 Added sources
boisy
parents:
diff changeset
85 clrbss cmpu 0,s reached the end?
0198655f2552 Added sources
boisy
parents:
diff changeset
86 beq reldt bra if so
0198655f2552 Added sources
boisy
parents:
diff changeset
87 sta ,u+ clear it
0198655f2552 Added sources
boisy
parents:
diff changeset
88 bra clrbss
0198655f2552 Added sources
boisy
parents:
diff changeset
89
0198655f2552 Added sources
boisy
parents:
diff changeset
90 * now relocate the data-text references
0198655f2552 Added sources
boisy
parents:
diff changeset
91 reldt ldu 2,s restore to data bottom
0198655f2552 Added sources
boisy
parents:
diff changeset
92 ldd ,y++ get dat-text ref. count
0198655f2552 Added sources
boisy
parents:
diff changeset
93 beq reldd
0198655f2552 Added sources
boisy
parents:
diff changeset
94 leax btext,pcr point to text
0198655f2552 Added sources
boisy
parents:
diff changeset
95 lbsr patch patch them
0198655f2552 Added sources
boisy
parents:
diff changeset
96
0198655f2552 Added sources
boisy
parents:
diff changeset
97 * and the data-data refs.
0198655f2552 Added sources
boisy
parents:
diff changeset
98 reldd ldd ,y++ get the count of data refs.
0198655f2552 Added sources
boisy
parents:
diff changeset
99 beq restack bra if none
0198655f2552 Added sources
boisy
parents:
diff changeset
100 leax 0,u u was already pointing there
0198655f2552 Added sources
boisy
parents:
diff changeset
101 lbsr patch
0198655f2552 Added sources
boisy
parents:
diff changeset
102
0198655f2552 Added sources
boisy
parents:
diff changeset
103 restack leas 4,s reset stack
0198655f2552 Added sources
boisy
parents:
diff changeset
104 puls x restore 'memend'
0198655f2552 Added sources
boisy
parents:
diff changeset
105 stx memend,u
0198655f2552 Added sources
boisy
parents:
diff changeset
106
0198655f2552 Added sources
boisy
parents:
diff changeset
107 * process the params
0198655f2552 Added sources
boisy
parents:
diff changeset
108 * the stack pointer is back where it started so is
0198655f2552 Added sources
boisy
parents:
diff changeset
109 * pointing at the params
0198655f2552 Added sources
boisy
parents:
diff changeset
110 *
0198655f2552 Added sources
boisy
parents:
diff changeset
111 * the objective is to insert null chars at the end of each argument
0198655f2552 Added sources
boisy
parents:
diff changeset
112 * and fill in the argv vector with pointers to them
0198655f2552 Added sources
boisy
parents:
diff changeset
113
0198655f2552 Added sources
boisy
parents:
diff changeset
114 * first store the program name address
0198655f2552 Added sources
boisy
parents:
diff changeset
115 * (an extra name inserted here for just this purpose
0198655f2552 Added sources
boisy
parents:
diff changeset
116 * - undocumented as yet)
0198655f2552 Added sources
boisy
parents:
diff changeset
117 sty argv,u
0198655f2552 Added sources
boisy
parents:
diff changeset
118
0198655f2552 Added sources
boisy
parents:
diff changeset
119 ldd #1 at least one arg
0198655f2552 Added sources
boisy
parents:
diff changeset
120 std argc,u
0198655f2552 Added sources
boisy
parents:
diff changeset
121 leay argv+2,u point y at second slot
0198655f2552 Added sources
boisy
parents:
diff changeset
122 leax 0,s point x at params
0198655f2552 Added sources
boisy
parents:
diff changeset
123 lda ,x+ initialize
0198655f2552 Added sources
boisy
parents:
diff changeset
124
0198655f2552 Added sources
boisy
parents:
diff changeset
125 aloop ldb argc+1,u
0198655f2552 Added sources
boisy
parents:
diff changeset
126 cmpb #MAXARGS-1 about to overflow?
0198655f2552 Added sources
boisy
parents:
diff changeset
127 beq final
0198655f2552 Added sources
boisy
parents:
diff changeset
128 aloop10 cmpa #cr is it EOL?
0198655f2552 Added sources
boisy
parents:
diff changeset
129 beq final yes - reached the end of the list
0198655f2552 Added sources
boisy
parents:
diff changeset
130
0198655f2552 Added sources
boisy
parents:
diff changeset
131 cmpa #sp is it a space?
0198655f2552 Added sources
boisy
parents:
diff changeset
132 beq aloop20 yes - try another
0198655f2552 Added sources
boisy
parents:
diff changeset
133 cmpa #comma is it a comma?
0198655f2552 Added sources
boisy
parents:
diff changeset
134 bne aloop30 no - a word has started
0198655f2552 Added sources
boisy
parents:
diff changeset
135 aloop20 lda ,x+ yes - bump
0198655f2552 Added sources
boisy
parents:
diff changeset
136 bra aloop10 and round again
0198655f2552 Added sources
boisy
parents:
diff changeset
137
0198655f2552 Added sources
boisy
parents:
diff changeset
138 aloop30 cmpa #dquote quoted string?
0198655f2552 Added sources
boisy
parents:
diff changeset
139 beq aloop40 yes
0198655f2552 Added sources
boisy
parents:
diff changeset
140 cmpa #squote the other one?
0198655f2552 Added sources
boisy
parents:
diff changeset
141 bne aloop60 no - ordinary
0198655f2552 Added sources
boisy
parents:
diff changeset
142
0198655f2552 Added sources
boisy
parents:
diff changeset
143 aloop40 stx ,y++ save address in vector
0198655f2552 Added sources
boisy
parents:
diff changeset
144 inc argc+1,u bump the arg count
0198655f2552 Added sources
boisy
parents:
diff changeset
145 pshs a save delimiter
0198655f2552 Added sources
boisy
parents:
diff changeset
146
0198655f2552 Added sources
boisy
parents:
diff changeset
147 qloop lda ,x+ get another
0198655f2552 Added sources
boisy
parents:
diff changeset
148 cmpa #cr eol?
0198655f2552 Added sources
boisy
parents:
diff changeset
149 beq aloop50
0198655f2552 Added sources
boisy
parents:
diff changeset
150 cmpa 0,s delimiter?
0198655f2552 Added sources
boisy
parents:
diff changeset
151 bne qloop
0198655f2552 Added sources
boisy
parents:
diff changeset
152
0198655f2552 Added sources
boisy
parents:
diff changeset
153 aloop50 puls b clean stack
0198655f2552 Added sources
boisy
parents:
diff changeset
154 clr -1,x
0198655f2552 Added sources
boisy
parents:
diff changeset
155 cmpa #cr
0198655f2552 Added sources
boisy
parents:
diff changeset
156 beq final
0198655f2552 Added sources
boisy
parents:
diff changeset
157 lda ,x+
0198655f2552 Added sources
boisy
parents:
diff changeset
158 bra aloop
0198655f2552 Added sources
boisy
parents:
diff changeset
159
0198655f2552 Added sources
boisy
parents:
diff changeset
160 aloop60 leax -1,x point at first char
0198655f2552 Added sources
boisy
parents:
diff changeset
161 stx ,y++ put address in vector
0198655f2552 Added sources
boisy
parents:
diff changeset
162 leax 1,x bump it back
0198655f2552 Added sources
boisy
parents:
diff changeset
163 inc argc+1,u bump the arg count
0198655f2552 Added sources
boisy
parents:
diff changeset
164
0198655f2552 Added sources
boisy
parents:
diff changeset
165 * at least one non-space char has been seen
0198655f2552 Added sources
boisy
parents:
diff changeset
166 aloop70 cmpa #cr have
0198655f2552 Added sources
boisy
parents:
diff changeset
167 beq loopend we
0198655f2552 Added sources
boisy
parents:
diff changeset
168 cmpa #sp reached
0198655f2552 Added sources
boisy
parents:
diff changeset
169 beq loopend the end?
0198655f2552 Added sources
boisy
parents:
diff changeset
170 cmpa #comma comma?
0198655f2552 Added sources
boisy
parents:
diff changeset
171 beq loopend
0198655f2552 Added sources
boisy
parents:
diff changeset
172 lda ,x+ no - look further
0198655f2552 Added sources
boisy
parents:
diff changeset
173 bra aloop70
0198655f2552 Added sources
boisy
parents:
diff changeset
174
0198655f2552 Added sources
boisy
parents:
diff changeset
175 loopend clr -1,x yes - put in the null byte
0198655f2552 Added sources
boisy
parents:
diff changeset
176 bra aloop and look for the next word
0198655f2552 Added sources
boisy
parents:
diff changeset
177
0198655f2552 Added sources
boisy
parents:
diff changeset
178 * now put the pointers on the stack
0198655f2552 Added sources
boisy
parents:
diff changeset
179 final leax argv,u get the address of the arg vector
0198655f2552 Added sources
boisy
parents:
diff changeset
180 pshs x goes on the stack first
0198655f2552 Added sources
boisy
parents:
diff changeset
181 ldd argc,u get the arg count
0198655f2552 Added sources
boisy
parents:
diff changeset
182 pshs d stack it
0198655f2552 Added sources
boisy
parents:
diff changeset
183 leay 0,u C progs. assume data & bss offset from y
0198655f2552 Added sources
boisy
parents:
diff changeset
184
0198655f2552 Added sources
boisy
parents:
diff changeset
185 bsr _fixtop set various variables
0198655f2552 Added sources
boisy
parents:
diff changeset
186
0198655f2552 Added sources
boisy
parents:
diff changeset
187 lbsr main call the program
0198655f2552 Added sources
boisy
parents:
diff changeset
188
0198655f2552 Added sources
boisy
parents:
diff changeset
189 pushzero put a zero
0198655f2552 Added sources
boisy
parents:
diff changeset
190 pushzero on the stack
0198655f2552 Added sources
boisy
parents:
diff changeset
191 lbsr exit and a dummy 'return address'
0198655f2552 Added sources
boisy
parents:
diff changeset
192
0198655f2552 Added sources
boisy
parents:
diff changeset
193 * no return here
0198655f2552 Added sources
boisy
parents:
diff changeset
194 _fixtop leax end,y get the initial memory end address
0198655f2552 Added sources
boisy
parents:
diff changeset
195 stx _mtop,y it's the current memory top
0198655f2552 Added sources
boisy
parents:
diff changeset
196 sts _sttop,y this is really two bytes short!
0198655f2552 Added sources
boisy
parents:
diff changeset
197 sts _stbot,y
0198655f2552 Added sources
boisy
parents:
diff changeset
198 ldd #-126 give ourselves some breathing space
0198655f2552 Added sources
boisy
parents:
diff changeset
199
0198655f2552 Added sources
boisy
parents:
diff changeset
200 * on entry here, d holds the negative of a stack reservation request
0198655f2552 Added sources
boisy
parents:
diff changeset
201 _stkchec:
0198655f2552 Added sources
boisy
parents:
diff changeset
202 _stkcheck:
0198655f2552 Added sources
boisy
parents:
diff changeset
203 leax d,s calculate the requested size
0198655f2552 Added sources
boisy
parents:
diff changeset
204 cmpx _stbot,y is it lower than already reserved?
0198655f2552 Added sources
boisy
parents:
diff changeset
205 bhs stk10 no - return
0198655f2552 Added sources
boisy
parents:
diff changeset
206 cmpx _mtop,y yes - is it lower than possible?
0198655f2552 Added sources
boisy
parents:
diff changeset
207 blo fsterr yes - can't cope
0198655f2552 Added sources
boisy
parents:
diff changeset
208 stx _stbot,y no - reserve it
0198655f2552 Added sources
boisy
parents:
diff changeset
209 stk10 rts and return
0198655f2552 Added sources
boisy
parents:
diff changeset
210
0198655f2552 Added sources
boisy
parents:
diff changeset
211 fixserr fcc /**** STACK OVERFLOW ****/
0198655f2552 Added sources
boisy
parents:
diff changeset
212 fcb 13
0198655f2552 Added sources
boisy
parents:
diff changeset
213
0198655f2552 Added sources
boisy
parents:
diff changeset
214 fsterr leax <fixserr,pcr address of error string
0198655f2552 Added sources
boisy
parents:
diff changeset
215 ldb #E$MEMFUL MEMORY FULL error number
0198655f2552 Added sources
boisy
parents:
diff changeset
216
0198655f2552 Added sources
boisy
parents:
diff changeset
217 erexit pshs b stack the error number
0198655f2552 Added sources
boisy
parents:
diff changeset
218 lda #2 standard error output
0198655f2552 Added sources
boisy
parents:
diff changeset
219 ldy #100 more than necessary
0198655f2552 Added sources
boisy
parents:
diff changeset
220 os9 I$WRITLN write it
0198655f2552 Added sources
boisy
parents:
diff changeset
221 pushzero clear MSB of status
0198655f2552 Added sources
boisy
parents:
diff changeset
222 lbsr _exit and out
0198655f2552 Added sources
boisy
parents:
diff changeset
223 * no return here
0198655f2552 Added sources
boisy
parents:
diff changeset
224
0198655f2552 Added sources
boisy
parents:
diff changeset
225 * stacksize()
0198655f2552 Added sources
boisy
parents:
diff changeset
226 * returns the extent of stack requested
0198655f2552 Added sources
boisy
parents:
diff changeset
227 * can be used by programmer for guidance
0198655f2552 Added sources
boisy
parents:
diff changeset
228 * in sizing memory at compile time
0198655f2552 Added sources
boisy
parents:
diff changeset
229 stacksiz:
0198655f2552 Added sources
boisy
parents:
diff changeset
230 ldd _sttop,y top of stack on entry
0198655f2552 Added sources
boisy
parents:
diff changeset
231 subd _stbot,y subtract current reserved limit
0198655f2552 Added sources
boisy
parents:
diff changeset
232 rts
0198655f2552 Added sources
boisy
parents:
diff changeset
233
0198655f2552 Added sources
boisy
parents:
diff changeset
234 * freemem()
0198655f2552 Added sources
boisy
parents:
diff changeset
235 * returns the current size of the free memory area
0198655f2552 Added sources
boisy
parents:
diff changeset
236 freemem:
0198655f2552 Added sources
boisy
parents:
diff changeset
237 ldd _stbot,y
0198655f2552 Added sources
boisy
parents:
diff changeset
238 subd _mtop,y
0198655f2552 Added sources
boisy
parents:
diff changeset
239 rts
0198655f2552 Added sources
boisy
parents:
diff changeset
240
0198655f2552 Added sources
boisy
parents:
diff changeset
241 * patch - adjust initialised data which refer to memory locations.
0198655f2552 Added sources
boisy
parents:
diff changeset
242 * entry:
0198655f2552 Added sources
boisy
parents:
diff changeset
243 * y -> list of offsets in the data area to be patched
0198655f2552 Added sources
boisy
parents:
diff changeset
244 * u -> base of data
0198655f2552 Added sources
boisy
parents:
diff changeset
245 * x -> base of either text or data area as appropriate
0198655f2552 Added sources
boisy
parents:
diff changeset
246 * d = count of offsets in the list
0198655f2552 Added sources
boisy
parents:
diff changeset
247 *
0198655f2552 Added sources
boisy
parents:
diff changeset
248 * exit:
0198655f2552 Added sources
boisy
parents:
diff changeset
249 * u - unchanged
0198655f2552 Added sources
boisy
parents:
diff changeset
250 * y - past the last entry in the list
0198655f2552 Added sources
boisy
parents:
diff changeset
251 * x and d mangled
0198655f2552 Added sources
boisy
parents:
diff changeset
252
0198655f2552 Added sources
boisy
parents:
diff changeset
253 patch pshs x save the base
0198655f2552 Added sources
boisy
parents:
diff changeset
254 leax d,y half way up the list
0198655f2552 Added sources
boisy
parents:
diff changeset
255 leax d,x top of list
0198655f2552 Added sources
boisy
parents:
diff changeset
256 pshs x save it as place to stop
0198655f2552 Added sources
boisy
parents:
diff changeset
257
0198655f2552 Added sources
boisy
parents:
diff changeset
258 * we do not come to this routine with
0198655f2552 Added sources
boisy
parents:
diff changeset
259 * a zero count (check!) so a test at the loop top
0198655f2552 Added sources
boisy
parents:
diff changeset
260 * is unnecessary
0198655f2552 Added sources
boisy
parents:
diff changeset
261 patch10 ldd ,y++ get the offset
0198655f2552 Added sources
boisy
parents:
diff changeset
262 leax d,u point to location
0198655f2552 Added sources
boisy
parents:
diff changeset
263 ldd 0,x get the relative reference
0198655f2552 Added sources
boisy
parents:
diff changeset
264 addd 2,s add in the base
0198655f2552 Added sources
boisy
parents:
diff changeset
265 std 0,x store the absolute reference
0198655f2552 Added sources
boisy
parents:
diff changeset
266 cmpy 0,s reached the top?
0198655f2552 Added sources
boisy
parents:
diff changeset
267 bne patch10 no - round again
0198655f2552 Added sources
boisy
parents:
diff changeset
268
0198655f2552 Added sources
boisy
parents:
diff changeset
269 leas 4,s reset the stack
0198655f2552 Added sources
boisy
parents:
diff changeset
270 rts and return
0198655f2552 Added sources
boisy
parents:
diff changeset
271
0198655f2552 Added sources
boisy
parents:
diff changeset
272 endsect