include "hdr1.html"; ?>
| Line | Address | Object Code | Label | F1 | N1 | B | F2 | N2 | Comments | Check |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | ; tape1.d/gencode.t2 | ||||||||
| 2 | 0 | ;------------------- | ||||||||
| 3 | 0 | ; | ||||||||
| 4 | 0 | ; processing of gen-patterns | ||||||||
| 5 | 0 | ; type processing | ||||||||
| 6 | 0 | ; 0 modify to type 6, then call geninst | ||||||||
| 7 | 0 | ; 1 call GenSubr with word | ||||||||
| 8 | 0 | ; 2 get address from N1 part of word, adding 004/000, | ||||||||
| 9 | 0 | ; modify type to 6, then call geninst | ||||||||
| 10 | 0 | ; 3 skip if current type (W2246) matches F1 second digit, | ||||||||
| 11 | 0 | ; number of items skipped=N1 | ||||||||
| 12 | 0 | ; 4 as for type 3, but type is determined by id rather than acc | ||||||||
| 13 | 0 | ; 5 ensure both operands are FP, do swap in 4 if needed, | ||||||||
| 14 | 0 | ; following two words specify fwd and rev instn. | ||||||||
| 15 | 0 | ; 6 extract GP.n where n is N1 part of word and call gencode1 | ||||||||
| 16 | 0 | ; recursively. | ||||||||
| 17 | 0 | ; 7 generate call to run-time support, offset=N1, F2 gets | ||||||||
| 18 | 0 | ; '40' added to form jump instn | ||||||||
| 19 | 0 | ; 8 GenAdr=GenPtr+1, call GenInst with F2 part of word+type 6 | ||||||||
| 20 | 0 | ; 9 modify type to 1, then call GenInst (short branch?) | ||||||||
| 21 | 0 | ; 10 modify type to 2, then call GenInst | ||||||||
| 22 | 0 | ; 11 modify type to 3, then call GenInst | ||||||||
| 23 | 0 | ; 12 call putcode6 (patch branch destination) | ||||||||
| 24 | 0 | ; 13 call GenSubr with current type (W2246) | ||||||||
| 25 | 0 | ; | ||||||||
| 26 | 0 | =2069 | ||||||||
| 27 | 2069 | 0000000004027 | GenPtr: | +GenDmy | ; | @2069 | ||||
| 28 | 2070 | 4000031000002 | GenWord: | +04000031000002 | ; 40 6 : 40 2 | @2070 | ||||
| 29 | 2071 | 4000031000002 | GenDmy: | +04000031000002 | ; 40 6 : 40 2 | @2071 | ||||
| 30 | 2072 | =2073 | ||||||||
| 31 | 2073 | 0000000000000 | IdInfo: | +0 | ; | @2073 | ||||
| 32 | 2074 | ;-------------------------------------------------------------------- | ||||||||
| 33 | 2074 | ; gencode1: special entry Acc contains index into list of gen patterns | ||||||||
| 34 | 2074 | ; load up selected one and fall through into gencode. | ||||||||
| 35 | 2074 | ; | ||||||||
| 36 | 2074 | gencode1.ent: | ; | |||||||
| 37 | 2074 | 2000022603445 | sto | 4 | / | lod | GPs | ;load specified pattern | @2074 | |
| 38 | 2075 | ; | ||||||||
| 39 | 2075 | ; generate code | ||||||||
| 40 | 2075 | ; parameter may have two forms: | ||||||||
| 41 | 2075 | ; positive values are pointers to values, | ||||||||
| 42 | 2075 | ; negative values are direct | ||||||||
| 43 | 2075 | ; | ||||||||
| 44 | 2075 | gencode:: | ; | |||||||
| 45 | 2075 | .ent: | ; | |||||||
| 46 | 2075 | 1024043 | jn | .single | ;negative value, set up dummy list and re-enter | |||||
| 47 | 2075+ | nop | ; | |||||||
| 47+1 | 2075+ | 1004034 | jmp | .1 | ||||||
| 47+2 | 2076 | .1: | ; | |||||||
| 48 | 2076 | ; acc contains pointer to list of words | ||||||||
| 49 | 2076 | .1: | ; | |||||||
| 50 | 2076 | 2020126600000 | sto | GenPtr | / | lod | 0 | ;get info from table | @2076 | |
| 51 | 2077 | 1004041 | jmp | .4 | ; | |||||
| 52 | 2077+ | pad | ; | |||||||
| 52+1 | 2077+ | 0000000 | 00 | 0 | ||||||
| 53 | 2078 | ; | ||||||||
| 54 | 2078 | ; return here for next item in arg list | ||||||||
| 55 | 2078 | .gennxt: | ; | |||||||
| 56 | 2078 | 0020126600000 | o00 | GenPtr | / | lod | 0 | ;re-load previous item | @2078 | |
| 57 | 2079 | .2: | ; | |||||||
| 58 | 2079 | 0020123020001 | o00 | .lnk | / | jn | 1 | ;return if <, end of list | ||
| 59 | 2080 | ; | ||||||||
| 60 | 2080 | .3: | ; | |||||||
| 61 | 2080 | 2220126600000 | inc | GenPtr | / | lod | 0 | ;bump ptr and fetch next item | @2080 | |
| 62 | 2081 | ; next item now in acc | ||||||||
| 63 | 2081 | .4: | ; | |||||||
| 64 | 2081 | 0404026 | sto | GenWord | ;save item | |||||
| 65 | 2081+ | 0061450 | and | N2bits | ;=017777 | |||||
| 66 | 2082 | 2000023004132 | sto | 4 | / | jmp | .SW | ;switch | @2082 | |
| 67 | 2083 | =2138 | ||||||||
| 68 | 2138 | ; | ||||||||
| 69 | 2138 | ; switch called from 2082, moved from further down | ||||||||
| 70 | 2138 | .SW: | ; | |||||||
| 71 | 2138 | 3020131104044 | lod | GenWord | : | jmp | .gen0 | ;+0 | ||
| 72 | 2139 | 3020145004052 | lod | IdInfo | : | jmp | .gen1 | ;+1 | ||
| 73 | 2140 | 3020131104046 | lod | GenWord | : | jmp | .gen2 | ;+2 | @2140 | |
| 74 | 2141 | 3020131104062 | lod | GenWord | : | jmp | .gen3 | ;+3 | ||
| 75 | 2142 | 3020131104067 | lod | GenWord | : | jmp | .gen4 | ;+4 | ||
| 76 | 2143 | 3021431004160 | lod | W2246 | : | jmp | .gen5 | ;+5 | ||
| 77 | 2144 | 3020125004100 | lod | GenPtr | : | jmp | .gen6 | ;+6 | @2144 | |
| 78 | 2145 | 3020131004150 | lod | GenWord | : | jmp | .gen7 | ;+7 | ||
| 79 | 2146 | 0220125004073 | o02 | GenPtr | : | jmp | .gen8 | ;+8 | ||
| 80 | 2147 | 3020131004202 | lod | GenWord | : | jmp | .gen9 | ;+9 | ||
| 81 | 2148 | 3020131004202 | lod | GenWord | : | jmp | .gen9 | ;+10 | @2148 | |
| 82 | 2149 | 3020131004202 | lod | GenWord | : | jmp | .gen9 | ;+11 | ||
| 83 | 2150 | 4021014000000 | jmp | .gen12 | : | o00 | 0 | ;+12 | ||
| 84 | 2151 | 0211145004061 | o02 | K11 | : | jmp | .gen13 | ;+13 load 12, jump | ||
| 85 | 2152 | =2083 | ||||||||
| 86 | 2083 | ; | ||||||||
| 87 | 2083 | ; negative values come here | ||||||||
| 88 | 2083 | ; set up dummy arg list, then branch back to treat as list | ||||||||
| 89 | 2083 | ; | ||||||||
| 90 | 2083 | .single: | ; | |||||||
| 91 | 2083 | 0404027 | sto | GenDmy | ; save argument | |||||
| 92 | 2083+ | 0604116 | lod | GenDmyP | ;=GenDmy, address of argument | |||||
| 93 | 2084 | 1004034 | jmp | .1 | ;->join main code | @2084 | ||||
| 94 | 2084+ | ;-------------------------------------------------------------------- | ||||||||
| 95 | 2084+ | ; type 0 entries, GenWord in Acc | ||||||||
| 96 | 2084+ | ; | ||||||||
| 97 | 2084+ | .gen0: | ; | |||||||
| 98 | 2084+ | 0101443 | add | K5a | ;=5 convert to type 6 | |||||
| 99 | 2085 | .gen0a: | ; | |||||||
| 100 | 2085 | call | ;and output instruction | |||||||
| 100+1 | 2085 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
| 101 | 2086 | 1004036 | jmp | .gennxt | ;->back for more | @2086 | ||||
| 102 | 2086+ | ;-------------------------------------------------------------------- | ||||||||
| 103 | 2086+ | ; type 2 entries, get address exprn from N1 part of Acc (GenWord) | ||||||||
| 104 | 2086+ | ; convert to type 6 and output instruction | ||||||||
| 105 | 2086+ | ; | ||||||||
| 106 | 2086+ | .gen2: | ; | |||||||
| 107 | 2086+ | 1220024 | srl | 20 | ; >> 20 | |||||
| 108 | 2087 | 0061450 | and | N2bits | ;=017777 | |||||
| 109 | 2087+ | 0104117 | add | W2127 | ;=0022000000 | |||||
| 110 | 2088 | 0401422 | sto | GenAdr | ; | @2088 | ||||
| 111 | 2088+ | 0044026 | o02 | GenWord | ;item+1 | |||||
| 112 | 2089 | 0101452 | add | K3 | ;=+3 convert to type 6 | |||||
| 113 | 2089+ | 1004045 | jmp | .gen0a | ;->and generate instruction | |||||
| 114 | 2090 | ; | ||||||||
| 115 | 2090 | ; type 1 entries, call subroutine to do output | ||||||||
| 116 | 2090 | ; | ||||||||
| 117 | 2090 | .gen1: | ; | |||||||
| 118 | 2090 | call | ;output item to ocode | @2090 | ||||||
| 118+1 | 2090 | 7320141004054 | lnk | GenSubr.lnk | : | jmp | GenSubr.ent | |||
| 119 | 2091 | 1004036 | jmp | .gennxt | ; back for more | |||||
| 120 | 2091+ | pad | ; | |||||||
| 120+1 | 2091+ | 0000000 | 00 | 0 | ||||||
| 121 | 2092 | =2097 | ||||||||
| 122 | 2097 | ; | ||||||||
| 123 | 2097 | ; type 13 entry, Acc=12 | ||||||||
| 124 | 2097 | ; | ||||||||
| 125 | 2097 | 0564026 | .gen13: | o27 | GenWord | ;convert to type 1 item | ||||
| 126 | 2097+ | 0604306 | lod | W2246 | ; | |||||
| 127 | 2098 | 1004052 | jmp | .gen1 | ;join type 1 code | @2098 | ||||
| 128 | 2098+ | ; | ||||||||
| 129 | 2098+ | ; type 3 entries, skip if current type matches, type from F1 second digit | ||||||||
| 130 | 2098+ | ; number of items skipped = N1, GenWord in Acc. | ||||||||
| 131 | 2098+ | ; | ||||||||
| 132 | 2098+ | 0064121 | .gen3: | and | W2129 | ;=0300000000000 | @2098+ | |||
| 133 | 2099 | 0124306 | sub | W2246 | ;current type match? | |||||
| 134 | 2099+ | jnz | ;no, on to next item | |||||||
| 134+1 | 2099+ | 1144064 | jz | .1 | ||||||
| 134+2 | 2100 | 1004040 | jmp | gencode.3 | ||||||
| 134+3 | 2100+ | .1: | ; | |||||||
| 135 | 2100+ | .gen3a: | ; | |||||||
| 136 | 2100+ | 0604026 | lod | GenWord | ;reload current word | |||||
| 137 | 2101 | 1024037 | jn | .2 | ;finished if negative (only happens with type 4) | |||||
| 138 | 2101+ | 1220024 | srl | 20 | ; >> 20 get number of entries... | |||||
| 139 | 2102 | 0061450 | and | N2bits | ;=017777 ...to be skipped | @2102 | ||||
| 140 | 2102+ | 0504025 | ads | GenPtr | ;add to pointer | |||||
| 141 | 2103 | 1004040 | jmp | .3 | ;and continue with next item | |||||
| 142 | 2103+ | ; | ||||||||
| 143 | 2103+ | ; type 4 entries, skip if id type matches, as for type 3, but type | ||||||||
| 144 | 2103+ | ; is that associated with id, rather than Acc | ||||||||
| 145 | 2103+ | ; | ||||||||
| 146 | 2103+ | 0064121 | .gen4: | and | W2129 | ;=00300000000000 | ||||
| 147 | 2104 | 0400004 | sto | 4 | ;save type bits | @2104 | ||||
| 148 | 2104+ | 0064031 | and | IdInfo | ;mask with current setting | |||||
| 149 | 2105 | 0120004 | sub | 4 | ;compare | |||||
| 150 | 2105+ | 1144064 | jz | .gen3a | ;match, perform skip | |||||
| 151 | 2106 | 1004040 | jmp | .3 | ;otherwise do next item | @2106 | ||||
| 152 | 2106+ | pad | ; | |||||||
| 152+1 | 2106+ | 0000000 | 00 | 0 | ||||||
| 153 | 2107 | ; | ||||||||
| 154 | 2107 | ; type 8 entries | ||||||||
| 155 | 2107 | ; acc = GenPtr+1 | ||||||||
| 156 | 2107 | ; | ||||||||
| 157 | 2107 | 0401422 | .gen8: | sto | GenAdr | ; | @2107 | |||
| 158 | 2107+ | 0604026 | lod | GenWord | ; item | |||||
| 159 | 2108 | 0061465 | and | F2mask | ;=<:77 0> | |||||
| 160 | 2108+ | 0104122 | add | K6a | ;=6 make type 6 entry | |||||
| 161 | 2109 | call | ;and generate it | @2109 | ||||||
| 161+1 | 2109 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
| 162 | 2110 | 2220126577777 | inc | GenPtr | / | lod | -1 | ; | ||
| 163 | 2111 | 1024037 | jn | .2 | ;finished, check end of list | @2111 | ||||
| 164 | 2111+ | 1004040 | jmp | .3 | ; | |||||
| 165 | 2112 | ; | ||||||||
| 166 | 2112 | ; type 6 entries | ||||||||
| 167 | 2112 | ; enter with GenPtr (pointer to generate list) in Acc | ||||||||
| 168 | 2112 | ; extract pattern number from word and recursively call generate1 | ||||||||
| 169 | 2112 | ; | ||||||||
| 170 | 2112 | .gen6: | call | ;save generate list pointer | @2112 | |||||
| 170+1 | 2112 | 7323731005012 | lnk | push.lnk | : | jmp | push.ent | |||
| 171 | 2113 | 0604024 | lod | gencode.lnk | ; | |||||
| 172 | 2113+ | nop | ; | |||||||
| 172+1 | 2113+ | 1004102 | jmp | .1 | ||||||
| 172+2 | 2114 | .1: | ; | |||||||
| 173 | 2114 | call | ;and return address | @2114 | ||||||
| 173+1 | 2114 | 7323731005012 | lnk | push.lnk | : | jmp | push.ent | |||
| 174 | 2115 | 0604026 | lod | GenWord | ; item | |||||
| 175 | 2115+ | 1220024 | srl | 20 | ; | |||||
| 176 | 2116 | 0061450 | and | N2bits | ;extract item number | @2116 | ||||
| 177 | 2116+ | nop | ; | |||||||
| 177+1 | 2116+ | 1004105 | jmp | .1 | ||||||
| 177+2 | 2117 | .1: | ; | |||||||
| 178 | 2117 | call | ;generate it | |||||||
| 178+1 | 2117 | 7320121004032 | lnk | gencode1.lnk | : | jmp | gencode1.ent | |||
| 179 | 2118 | 0010646577777 | o00 | stkp | / | lod | -1 | ;restore link | @2118 | |
| 180 | 2119 | 0404024 | sto | gencode.lnk | ; | |||||
| 181 | 2119+ | 0041461 | o02 | K1 | ;=1+1=>2 | |||||
| 182 | 2120 | 2710646600000 | o27 | stkp | / | lod | 0 | ;undo stack | @2120 | |
| 183 | 2121 | 0404025 | sto | GenPtr | ;restore generate pointer | |||||
| 184 | 2121+ | 1004036 | jmp | .gennxt | ;and resume | |||||
| 185 | 2122 | ; | ||||||||
| 186 | 2122 | =2152 | ||||||||
| 187 | 2152 | ; | ||||||||
| 188 | 2152 | ; type 7 entries | ||||||||
| 189 | 2152 | ; generate call to run-time support | ||||||||
| 190 | 2152 | ; | ||||||||
| 191 | 2152 | 1220024 | .gen7: | srl | 20 | ; >> 20 | @2152 | |||
| 192 | 2152+ | 0061450 | and | N2bits | ;=017777 shift instruction down | |||||
| 193 | 2153 | 0404030 | sto | Link19 | ;save instruction | |||||
| 194 | 2153+ | 0044117 | o02 | W2127 | ;=<00 4/00 0> | |||||
| 195 | 2154 | 0401422 | sto | GenAdr | ;address info for linkage | @2154 | ||||
| 196 | 2154+ | 0604123 | lod | W2131 | ;=<:73 6> | |||||
| 197 | 2155 | call | ;output linkage to RTS | |||||||
| 197+1 | 2155 | 7307175001665 | lnk | GenSkpInst.lnk | : | jmp | GenSkpInst.ent | |||
| 198 | 2156 | 0604030 | lod | Link19 | ;load supplied instruction | @2156 | ||||
| 199 | 2156+ | 0104117 | add | W2127 | ;=0000022000000 add RTS markers | |||||
| 200 | 2157 | 0401422 | sto | GenAdr | ;store for PutInst | |||||
| 201 | 2157+ | 0604026 | lod | GenWord | ;load original param word | |||||
| 202 | 2158 | 0064124 | and | W2132 | ;=00000000160000 | @2158 | ||||
| 203 | 2158+ | 0104120 | add | W2128 | ;=00000001000000 | |||||
| 204 | 2159 | 0104122 | add | K6a | ;=6 type 6 flag for PutInst | |||||
| 205 | 2159+ | 1004045 | jmp | .gen0a | ;-> | |||||
| 206 | 2160 | ; | ||||||||
| 207 | 2160 | ; type 5 entries, make sure both operands are float, do swap in loc 4 | ||||||||
| 208 | 2160 | ; if neccesary, then generate appropriate version. Entry always | ||||||||
| 209 | 2160 | ; followed by forward and reverse instructions (may be same thing). | ||||||||
| 210 | 2160 | ; | ||||||||
| 211 | 2160 | 0124121 | .gen5: | sub | W2129 | ;=00300000000000 (mask type) | @2160 | |||
| 212 | 2160+ | 1044163 | jz | .gen5a | ; | |||||
| 213 | 2161 | 0604125 | lod | W2133 | ;=<00 4096 : 65 5> | |||||
| 214 | 2161+ | nop | ; | |||||||
| 214+1 | 2161+ | 1004162 | jmp | .1 | ||||||
| 214+2 | 2162 | .1: | ; | |||||||
| 215 | 2162 | call | ;convert to float | @2162 | ||||||
| 215+1 | 2162 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
| 216 | 2163 | .gen5a: | ; | |||||||
| 217 | 2163 | 0604031 | lod | IdInfo | ; | |||||
| 218 | 2163+ | 0064121 | and | W2129 | ;=00300000000000 (mask type) | |||||
| 219 | 2164 | 0124121 | sub | W2129 | ;=00300000000000 real ? | @2164 | ||||
| 220 | 2164+ | 1044200 | jz | .gen5b | ;yes, -> | |||||
| 221 | 2165 | 0604126 | lod | W2134 | ;=<00 4/00 1> (use location 4) | |||||
| 222 | 2165+ | 0401422 | sto | GenAdr | ;store address info | |||||
| 223 | 2166 | 0604127 | lod | W2135 | ;<00 0:20 0> | @2166 | ||||
| 224 | 2166+ | 0104122 | add | K6a | ;=6 | |||||
| 225 | 2167 | call | ;code to store value | |||||||
| 225+1 | 2167 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
| 226 | 2168 | 0044130 | o02 | W2136 | ;=<00 0:30 0>=><00 0:30 1> | @2168 | ||||
| 227 | 2168+ | 0404026 | sto | GenWord | ;store item | |||||
| 228 | 2169 | nop | ; | |||||||
| 228+1 | 2169 | 1104171 | jmp | .1 | ||||||
| 228+2 | 2169+ | .1: | ; | |||||||
| 229 | 2169+ | 0604031 | lod | IdInfo | ; | |||||
| 230 | 2170 | call | ;generate load | @2170 | ||||||
| 230+1 | 2170 | 7320141004054 | lnk | GenSubr.lnk | : | jmp | GenSubr.ent | |||
| 231 | 2171 | 0604125 | lod | W2133 | ;<00 4096 : 65 5> | |||||
| 232 | 2171+ | nop | ; | |||||||
| 232+1 | 2171+ | 1004174 | jmp | .1 | ||||||
| 232+2 | 2172 | .1: | ; | |||||||
| 233 | 2172 | call | ;generate float | @2172 | ||||||
| 233+1 | 2172 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
| 234 | 2173 | 0604126 | lod | W2134 | ;=<00 4/00 1> | |||||
| 235 | 2173+ | 0404031 | sto | IdInfo | ;set address | |||||
| 236 | 2174 | 0020126600002 | o00 | GenPtr | / | lod | 2 | ;back to do reverse op | @2174 | |
| 237 | 2175 | 1004041 | jmp | .4 | ; | |||||
| 238 | 2175+ | nop | ; | |||||||
| 238+1 | 2175+ | 1004200 | jmp | .1 | ||||||
| 238+2 | 2176 | .1: | ; | |||||||
| 239 | 2176 | .gen5b: | ; | |||||||
| 240 | 2176 | 0020126600001 | o00 | GenPtr | / | lod | 1 | ;back to do forward op | @2176 | |
| 241 | 2177 | 1004041 | jmp | .4 | ; | |||||
| 242 | 2177+ | pad | ; | |||||||
| 242+1 | 2177+ | 0000000 | 00 | 0 | ||||||
| 243 | 2178 | ; | ||||||||
| 244 | 2178 | ; types 9, 10, 11 | ||||||||
| 245 | 2178 | ; convert to 1, 2, 3 and re-process | ||||||||
| 246 | 2178 | ; | ||||||||
| 247 | 2178 | .gen9: | ; | |||||||
| 248 | 2178 | 0124131 | sub | W2137 | ;=8 treat as 1, 2, 3 | @2178 | ||||
| 249 | 2178+ | 1004045 | jmp | .gen0a | ; | |||||
| 250 | 2179 | ; | ||||||||
| 251 | 2179 | ; type 12 | ||||||||
| 252 | 2179 | .gen12: | ; | |||||||
| 253 | 2179 | call | ; | @2179 | ||||||
| 253+1 | 2179 | 7306371101531 | lnk | putcode6.lnk | : | jmp | putcode6.ent | |||
| 254 | 2180 | 1004036 | jmp | .gennxt | ; | @2180 | ||||
| 255 | 2180+ | pad | ; | |||||||
| 255+1 | 2180+ | 0000000 | 00 | 0 | ||||||
| 256 | 2181 | ; | ||||||||
| 257 | 2181 | =2126 | ||||||||
| 258 | 2126 | 0000000004027 | GenDmyP: | +GenDmy | ; | @2126 | ||||
| 259 | 2127 | 0000022000000 | W2127: | +00000022000000 | ;=<00 4/00 0> | @2127 | ||||
| 260 | 2128 | 0000001000000 | W2128: | +00000001000000 | ; 00 0 : 40 0 | @2128 | ||||
| 261 | 2129 | 0300000000000 | W2129: | +00300000000000 | ; 03 0 : 00 0 | @2129 | ||||
| 262 | 2130 | 0000000000006 | K6a: | +6 | ; | @2130 | ||||
| 263 | 2131 | 0000001660006 | W2131: | +00000001660006 | ; 00 0 : 73 6 | @2131 | ||||
| 264 | 2132 | 0000000160000 | W2132: | +00000000160000 | ; | @2132 | ||||
| 265 | 2133 | 0040001520005 | W2133: | +00040001520005 | ;<00 4096 : 65 5> | @2133 | ||||
| 266 | 2134 | 0000022000001 | W2134: | +00000022000001 | ;<00 4/00 1> | @2134 | ||||
| 267 | 2135 | 0000000400000 | W2135: | +00000000400000 | ;<00 0:20 0> | @2135 | ||||
| 268 | 2136 | 0000000600000 | W2136: | +00000000600000 | ;<00 0:30 0> | @2136 | ||||
| 269 | 2137 | 0000000000010 | W2137: | +8 | ; | @2137 | ||||
| 270 | 2138 | ;-------------------------------------------------------------------- | ||||||||
| 271 | 2138 | =2092 | ||||||||
| 272 | 2092 | ; | ||||||||
| 273 | 2092 | GenSubr:: | ; | |||||||
| 274 | 2092 | .ent: | ; | |||||||
| 275 | 2092 | 0401422 | sto | GenAdr | ;save it | @2092 | ||||
| 276 | 2092+ | 0061462 | and | B1920 | ;=40 0> mask out bits | |||||
| 277 | 2093 | 0121462 | sub | B1920 | ;=40 0> are both set? | |||||
| 278 | 2093+ | 1044112 | jz | .2 | ; yes, -> | |||||
| 279 | 2094 | 0601443 | lod | K5a | ;=5 convert word to type 6 | @2094 | ||||
| 280 | 2094+ | .1: | ; | |||||||
| 281 | 2094+ | 0104026 | add | GenWord | ;+item | |||||
| 282 | 2095 | call | ; | |||||||
| 282+1 | 2095 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
| 283 | 2096 | ret | ; | @2096 | ||||||
| 283+1 | 2096 | 0020143000001 | o00 | GenSubr.lnk | / | jmp | 1 | |||
| 284 | 2097 | =2122 | ||||||||
| 285 | 2122 | 0604120 | .2: | lod | W2128 | ;=<00 0:40 0> (jmp) | @2122 | |||
| 286 | 2122+ | 0561422 | o27 | GenAdr | ;remove bit from word | |||||
| 287 | 2123 | 0041443 | o02 | K5a | ;=5+1->6 make type 6 | |||||
| 288 | 2123+ | 0101456 | add | B20 | ;=<000/000> add in B-bit | |||||
| 289 | 2124 | call | ;and output instruction | @2124 | ||||||
| 289+1 | 2124 | 7307175001640 | lnk | GenInst.lnk | : | jmp | GenInst.ent | |||
| 290 | 2125 | 0602211 | lod | K4 | ;=4 convert word to type 5 | |||||
| 291 | 2125+ | 1104056 | jmp | .1 | ;back to main stream of code | |||||
| 292 | 2126 | ;-------------------------------------------------------------------- | ||||||||