annotate level2/modules/kernel/ffind64.asm @ 2118:7fca19b7c923

ChangeLog udpated FSRqMem optimization added
author boisy
date Fri, 24 Aug 2007 03:30:33 +0000
parents 1da8ab9ba433
children 039ddb7c8ad7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
1 **************************************************
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
2 * System Call: F$Find64
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
3 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
4 * Function: Find a 64 byte memory block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
5 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
6 * Input: X = Address of page table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
7 * A = Block number
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
8 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
9 * Output: Y = Address of block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
10 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
11 * Error: CC = C bit set; B = error code
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
12 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
13 FFind64 ldx R$X,u Get block tbl ptr
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
14 lda R$A,u get path block #
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
15 * Find a empty path block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
16 beq L0A70 None, return error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
17 clrb calculate address
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
18 IFNE H6309
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
19 lsrd (Divide by 4)
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
20 lsrd
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
21 ELSE
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
22 lsra
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
23 rorb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
24 lsra
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
25 rorb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
26 ENDC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
27 lda a,x is that block allocated?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
28 tfr d,x Move addr to X
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
29 beq L0A70 no, return error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
30 tst ,x this the page table?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
31 bne L0A71 no, we can use this one
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
32 L0A70 coma set carry & return
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
33 rts
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
34 L0A71 stx R$Y,u save address of block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
35 rts return
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
36
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
37
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
38 **************************************************
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
39 * System Call: F$All64
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
40 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
41 * Function: Allocate a 64 byte memory block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
42 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
43 * Input: X = Address of page table (0 if page table hasn't been allocated)
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
44 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
45 * Output: A = Block number
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
46 * X = Address of page table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
47 * Y = Address of block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
48 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
49 * Error: CC = C bit set; B = error code
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
50 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
51 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
52 FAll64 ldx R$X,u get base address of page table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
53 bne L0A7F it's been allocated, skip ahead
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
54 bsr L0A89 allocate the page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
55 bcs L0A88 error allocating, return
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
56 stx ,x save base address in page table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
57 stx R$X,u save base address to caller's X
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
58 L0A7F bsr L0A9F find a empty spot in path table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
59 bcs L0A88 couldn't find one, return error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
60 sta R$A,u save block #
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
61 sty R$Y,u save address of block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
62 L0A88 rts return
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
63
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
64 * Allocate a new base page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
65 * Exit: X=Ptr to newly allocated 256 byte page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
66 L0A89 pshs u preserve register stack pointer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
67 IFNE H6309
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
68 ldq #$01000100 get block size (1 for SRqMem & 1 for TFM)
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
69 ELSE
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
70 ldd #$0100
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
71 ENDC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
72 os9 F$SRqMem request mem for it
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
73 leax ,u point to it
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
74 ldu ,s restore register stack pointer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
75 stx ,s save pointer to new page on stack
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
76 bcs L0A9E error on allocate, return
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
77 * Clear freshly allocated page to 0's
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
78 IFNE H6309
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
79 leay TFMNull,pc point to NULL byte
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
80 tfm y,x+
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
81 ELSE
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
82 clrb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
83 AllLoop clr ,x+
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
84 decb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
85 bne AllLoop
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
86 ENDC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
87 L0A9E puls x,pc
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
88
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
89 IFNE H6309
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
90 TFMNull fcb 0 used to clear memory
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
91 ENDC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
92
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
93 * Search page table for a free 64 byte block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
94 * Entry: X=Ptr to base page (the one with the 64 entry page index)
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
95 L0A9F pshs x,u preserve base page & register stack ptrs
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
96 clra Index entry #=0
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
97 * Main search loop
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
98 L0AA2 pshs a Save which index entry we are checking
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
99 clrb Set position within page we are checking to 0
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
100 lda a,x Is the current index entry used?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
101 beq L0AB4 no, skip ahead
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
102 tfr d,y Yes, Move ptr to 256 byte block to Y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
103 clra Clear offset for 64 byte blocks to 0
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
104 L0AAC tst d,y Is this 64 byte block allocated?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
105 beq L0AB6 No, skip ahead
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
106 addb #$40 Yes, point to next 64 byte block in page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
107 bcc L0AAC If not done checking entire page, keep going
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
108
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
109 * Index entry has a totally unused 256 byte page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
110 L0AB4 orcc #Carry Set flag (didn't find one)
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
111 L0AB6 leay d,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
112 puls a Get which index entry we were checking
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
113 bcc L0AE1 If we found a blank entry, go allocate it
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
114 inca Didn't, move to next index entry
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
115 cmpa #64 Done entire index?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
116 blo L0AA2 no, keep looking
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
117
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
118 clra Yes, clear out to first entry
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
119 L0AC2 tst a,x Is this one used?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
120 beq L0AD0 No, skip ahead
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
121 inca Increment index entry #
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
122 cmpa #64 Done entire index?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
123 blo L0AC2 No, continue looking
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
124
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
125 comb Done all of them, exit with Path table full error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
126 ldb #E$PthFul
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
127 puls x,u,pc
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
128 * Found empty page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
129 L0AD0 pshs x,a Preserve index ptr & index entry #
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
130 bsr L0A89 Allocate & clear out new 256 byte page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
131 bcs L0AF0 If error,exit
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
132 leay ,x Point Y to start of new page
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
133 tfr x,d Also copy to D
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
134 tfr a,b Page # into B
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
135 puls x,a Get back index ptr & index entry #
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
136 stb a,x Save page # in proper index entry
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
137 clrb D=index entry #*256
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
138
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
139 * D = Block Address
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
140 L0AE1 equ *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
141 IFNE H6309
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
142 lsld ???Calculate 256 byte page #?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
143 lsld
1239
90bad6d8388c Major changes to bring kernel closer to L2 port
boisy
parents: 1145
diff changeset
144 tfr y,u U=Ptr to start of new page
90bad6d8388c Major changes to bring kernel closer to L2 port
boisy
parents: 1145
diff changeset
145 ldw #$3f Clear out the 64 byte block we are using
90bad6d8388c Major changes to bring kernel closer to L2 port
boisy
parents: 1145
diff changeset
146 leax TFMNull,pc
90bad6d8388c Major changes to bring kernel closer to L2 port
boisy
parents: 1145
diff changeset
147 tfm x,u+
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
148 ELSE
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
149 aslb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
150 rola
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
151 aslb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
152 rola
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
153 ldb #$3f
1239
90bad6d8388c Major changes to bring kernel closer to L2 port
boisy
parents: 1145
diff changeset
154 ClrIt clr b,y
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
155 decb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
156 bne ClrIt
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
157 ENDC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
158 sta ,y Save 256 byte page # as 1st byte of block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
159 puls x,u,pc
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
160
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
161 L0AF0 leas 3,s
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
162 puls x,u,pc
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
163
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
164
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
165 **************************************************
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
166 * System Call: F$Ret64
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
167 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
168 * Function: Deallocate a 64 byte memory block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
169 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
170 * Input: X = Address of page table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
171 * A = Block number
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
172 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
173 * Output: None
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
174 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
175 * Error: CC = C bit set; B = error code
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
176 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
177 FRet64 lda R$A,u
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
178 ldx R$X,u
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
179 pshs u,y,x,d
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
180 clrb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
181 tsta
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
182 beq L0B22
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
183 IFNE H6309
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
184 lsrd (Divide by 4)
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
185 lsrd
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
186 ELSE
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
187 lsra
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
188 rorb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
189 lsra
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
190 rorb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
191 ENDC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
192 pshs a
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
193 lda a,x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
194 beq L0B20
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
195 tfr d,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
196 clr ,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
197 clrb
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
198 tfr d,u
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
199 clra
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
200 L0B10 tst d,u
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
201 bne L0B20
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
202 addb #$40
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
203 bne L0B10
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
204 inca
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
205 os9 F$SRtMem
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
206 lda ,s
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
207 clr a,x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
208 L0B20 clr ,s+
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
209 L0B22 puls pc,u,y,x,d