|  | | 160 | 3355+ |  |  | nop |  |  |  |  | ; |  | 
| 160+1 | 3355+ | 1006434 |  | jmp | .1 |  |  |  |  |  | 
| 160+2 | 3356 |  | .1: | ; |  |  | 
| 161 | 3356 |  |  | call |  |  |  |  | ;load formal param | @3356 | 
| 161+1 | 3356 | 7307175001640 |  | lnk | GenInst.lnk | : | jmp | GenInst.ent |  |  | 
| 162 | 3357 |  | ; |  | 
| 163 | 3357 |  | .doit: | ; |  |  | 
| 164 | 3357 | 0031166577777 |  | o00 | dicent | / | lod | -1 | ;get address of proc data |  | 
| 165 | 3358 | 0404031 |  | sto | IdInfo |  |  |  | ;save it for later | @3358 | 
| 166 | 3358+ | 0066253 |  | and | TMMflg |  |  |  | ;=00010000000000 Bit31 |  | 
| 167 | 3359 | 1146440 |  | jz | .doit1 |  |  |  | ;-> |  | 
| 168 | 3359+ | 0602212 |  | lod | B19.28 |  |  |  | ;=00001777000000 <00255/400> |  | 
| 169 | 3360 | 0464031 |  | ans | IdInfo |  |  |  | ; | @3360 | 
| 170 | 3360+ |  | .doit1: | ; |  |  | 
| 171 | 3360+ | 0646233 |  | lis | Link31 |  |  |  | ;arg number (negated) |  | 
| 172 | 3361 | 0564031 |  | o27 | IdInfo |  |  |  | ;index into formals |  | 
| 173 | 3361+ | 0603445 |  | lod | GPs+0 |  |  |  | ;=GP1F 20,0 |  | 
| 174 | 3362 |  |  | call |  |  |  |  | ;store as formal param | @3362 | 
| 174+1 | 3362 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 175 | 3363 | 0606233 |  | lod | Link31 |  |  |  | ;check count |  | 
| 176 | 3363+ | 1026423 |  | jn | .B1 |  |  |  | ;->still some to do |  | 
| 177 | 3364 | 1006312 |  | jmp | .7 |  |  |  | ;finished, go generate call | @3364 | 
| 178 | 3364+ |  |  | pad |  |  |  |  | ; |  | 
| 178+1 | 3364+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 179 | 3365 |  | ; |  | 
| 180 | 3365 |  | .B2: | ; |  |  | 
| 181 | 3365 |  |  | call |  |  |  |  | ; |  | 
| 181+1 | 3365 | 7323731005037 |  | lnk | GenLoad0.lnk | : | jmp | GenLoad0.ent |  |  | 
| 182 | 3366 | 0040000 |  | o02 | 0 |  |  |  | ;=1 | @3366 | 
| 183 | 3366+ | 0562151 |  | o27 | stkp |  |  |  | ;delete one stack entry |  | 
| 184 | 3367 | 0606237 |  | lod | dicpt1 |  |  |  | ; |  | 
| 185 | 3367+ | 0066253 |  | and | TMMflg |  |  |  | ;=00010000000000 (Bit 31) |  | 
| 186 | 3368 | 1046454 |  | jz | .B3 |  |  |  | ;-> | @3368 | 
| 187 | 3368+ | 0606237 |  | lod | dicpt1 |  |  |  | ; |  | 
| 188 | 3369 | 0062215 |  | and | realbit |  |  |  | ;=0300000000000 |  | 
| 189 | 3369+ | 0404306 |  | sto | W2246 |  |  |  | ; |  | 
| 190 | 3370 | 0603450 |  | lod | GPs+3 |  |  |  | ;=GPs+85 (1914) | @3370 | 
| 191 | 3370+ |  |  | nop |  |  |  |  | ; |  | 
| 191+1 | 3370+ | 1006453 |  | jmp | .1 |  |  |  |  |  | 
| 191+2 | 3371 |  | .1: | ; |  |  | 
| 192 | 3371 |  |  | call |  |  |  |  | ; |  | 
| 192+1 | 3371 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 193 | 3372 |  | .B3: | ; |  |  | 
| 194 | 3372 | 0031166600000 |  | o00 | dicent | / | lod | 0 | ; |  | 
| 195 | 3373 | 0126265 |  | sub | checkb |  |  |  | ;='CHECKB' |  | 
| 196 | 3373+ | 1006353 |  | jmp | .B4 |  |  |  | ;-> |  | 
| 197 | 3374 |  | =3307 |  |  | 
| 198 | 3307 |  | ; |  | 
| 199 | 3307 |  | ; (just checked id against checkb) |  | 
| 200 | 3307 |  | .B4: | ; |  |  | 
| 201 | 3307 | 1046357 |  | jz | .chk1 |  |  |  | ;-> checkb |  | 
| 202 | 3307+ | 0121454 |  | sub | K7 |  |  |  | ;=7 |  | 
| 203 | 3308 | 1046357 |  | jz | .chk1 |  |  |  | ;-> checki | @3308 | 
| 204 | 3308+ | 0121451 |  | sub | K9 |  |  |  | ;=9 |  | 
| 205 | 3309 | 1046357 |  | jz | .chk1 |  |  |  | ;-> checkr |  | 
| 206 | 3309+ | 0122207 |  | sub | K1c |  |  |  | ;=1 |  | 
| 207 | 3310 | 1050607 |  | jz | .chk2 |  |  |  | ;-> checks | @3310 | 
| 208 | 3310+ | 1006435 |  | jmp | .doit |  |  |  | ;-> not a check? call |  | 
| 209 | 3311 |  | ; |  | 
| 210 | 3311 |  | .chk1: | ; |  |  | 
| 211 | 3311 | 1600000 |  | kbd | 0 |  |  |  | ; |  | 
| 212 | 3311+ | 0062225 |  | and | Bbit |  |  |  | ;=<000/000> |  | 
| 213 | 3312 | 1046320 |  | jz | .done |  |  |  | ;ignore call | @3312 | 
| 214 | 3312+ | 1006435 |  | jmp | .doit |  |  |  | ;compile it |  | 
| 215 | 3313 |  | ; |  | 
| 216 | 3313 |  | =4487 |  |  | 
| 217 | 4487 |  | .chk2: | ; |  |  | 
| 218 | 4487 | 1600000 |  | kbd | 0 |  |  |  | ; |  | 
| 219 | 4487+ | 0062225 |  | and | Bbit |  |  |  | ;=<000/000> |  | 
| 220 | 4488 | 1150603 |  | jz | .chk3 |  |  |  | ; | @4488 | 
| 221 | 4488+ | 1006435 |  | jmp | .doit |  |  |  | ; |  | 
| 222 | 4489 |  | ; |  | 
| 223 | 4489 |  | =4483+ |  |  | 
| 224 | 4483+ |  | .chk3: | ; |  |  | 
| 225 | 4483+ | 0601525 |  | lod | L853 |  |  |  | ; |  | 
| 226 | 4484 | 0341477 |  | stc | putcode.ent |  |  |  | ; | @4484 | 
| 227 | 4484+ | 0607035 |  | lod | W3613 |  |  |  | ; |  | 
| 228 | 4485 | 0342145 |  | stc | ObjPC |  |  |  | ; |  | 
| 229 | 4485+ | 0607036 |  | lod | W3614 |  |  |  | ; |  | 
| 230 | 4486 | 0341426 |  | stc | W790 |  |  |  | ; | @4486 | 
| 231 | 4486+ | 1006320 |  | jmp | .done |  |  |  | ; |  | 
| 232 | 4487 |  | ; |  | 
| 233 | 4487 |  | ; |  | 
| 234 | 4487 |  | =3374 |  |  | 
| 235 | 3374 |  | ; procedure call should have arguments, check for them |  | 
| 236 | 3374 |  | .args: | ; |  |  | 
| 237 | 3374 | 0600600 |  | lod | token |  |  |  | ;token | @3374 | 
| 238 | 3374+ | 0122204 |  | sub | K47a |  |  |  | ;=47 [(] |  | 
| 239 | 3375 | 1046460 |  | jz | .arg1 |  |  |  | ;-> parameter list |  | 
| 240 | 3375+ | 1006575 |  | jmp | _err41 |  |  |  | ; |  | 
| 241 | 3376 |  | ; |  | 
| 242 | 3376 |  | ; looks OK so far |  | 
| 243 | 3376 |  | .arg1: | ; |  |  | 
| 244 | 3376 | 0606252 |  | lod | Argno1 |  |  |  | ;1*BIT29 | @3376 | 
| 245 | 3376+ | 0406236 |  | sto | argno |  |  |  | ;argno |  | 
| 246 | 3377 |  | .arg2: | ; |  |  | 
| 247 | 3377 | 0606235 |  | lod | dicent |  |  |  | ;address of dic entry |  | 
| 248 | 3377+ | 0426237 |  | stn | dicpt1 |  |  |  | ;store negated |  | 
| 249 | 3378 | 0606236 |  | lod | argno |  |  |  | ;argno*BIT29 | @3378 | 
| 250 | 3378+ |  | .arg3: | ; |  |  | 
| 251 | 3378+ | 0126262 |  | sub | Argno6 |  |  |  | ;=6 * BIT29 |  | 
| 252 | 3379 | 1026465 |  | jn | .arg4 |  |  |  | ;->ok, this word |  | 
| 253 | 3379+ | 1046465 |  | jz | .arg4 |  |  |  | ;->ok, ditto |  | 
| 254 | 3380 | 0446237 |  | inc | dicpt1 |  |  |  | ;decrement address (negated) | @3380 | 
| 255 | 3380+ | 1106462 |  | jmp | .arg3 |  |  |  | ;and try again |  | 
| 256 | 3381 |  | ; |  | 
| 257 | 3381 |  | .arg4: | ; |  |  | 
| 258 | 3381 | 0106262 |  | add | Argno6 |  |  |  | ;=6 * BIT29 add back last one |  | 
| 259 | 3381+ | 0406240 |  | sto | Pinfo |  |  |  | ;save sextet number |  | 
| 260 | 3382 | 3131176577775 |  | lcs | dicpt1 | / | lod | -3 | ;complement address, load params | @3382 | 
| 261 | 3383 | 0206240 |  | exa | Pinfo |  |  |  | ;swap with sextet number |  | 
| 262 | 3383+ | 1246263 |  | mul | W3251 |  |  |  | ;=014000 6*Bit11 |  | 
| 263 | 3384 | 1006471 |  | jmp | .arg5 |  |  |  | ;-->> | @3384 | 
| 264 | 3384+ |  |  | pad |  |  |  |  |  |  | 
| 264+1 | 3384+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 265 | 3385 |  | ; |  | 
| 266 | 3385 |  | .arg5: | ; |  |  | 
| 267 | 3385 | 1031203317772 |  | exa | Pinfo | / | sll | -6 | ;swap with param word, shift to top |  | 
| 268 | 3386 | 0062243 |  | and | MskArgTp |  |  |  | ;=03740000000000 extract type | @3386 | 
| 269 | 3386+ | 0406240 |  | sto | Pinfo |  |  |  | ;and save it |  | 
| 270 | 3387 | 0066251 |  | and | W3241 |  |  |  | ;=03040000000000 |  | 
| 271 | 3387+ | 1146476 |  | jz | .arg6 |  |  |  | ;->simple variable, call by value |  | 
| 272 | 3388 | 1320001 |  | sll | 1 |  |  |  | ;test bit 38 (procbit) | @3388 | 
| 273 | 3388+ | 1026543 |  | jn | .argerr |  |  |  | ;set->procedure argument |  | 
| 274 | 3389 | 1320001 |  | sll | 1 |  |  |  | ;test bit 37 (arrbit) |  | 
| 275 | 3389+ | 1126566 |  | jn | .argarr |  |  |  | ;set->array argument |  | 
| 276 | 3390 | 1106621 |  | jmp | .argnm |  |  |  | ;call by name argument | @3390 | 
| 277 | 3390+ |  | ; |  | 
| 278 | 3390+ |  | ; from 3387+ |  | 
| 279 | 3390+ |  | .arg6: | ; |  |  | 
| 280 | 3390+ | 0606240 |  | lod | Pinfo |  |  |  | ;reload save type info |  | 
| 281 | 3391 | 1220041 |  | srl | 33 |  |  |  | ; >>33 |  | 
| 282 | 3391+ | 0062210 |  | and | K7a |  |  |  | ;=07 |  | 
| 283 | 3392 | 1631177006534 |  | stc | dicpt1 | / | jmp | .argsw | ;switch on type | @3392 | 
| 284 | 3393 |  | ;-------------------------------- |  | 
| 285 | 3393 |  | ; return here after arg has been processed |  | 
| 286 | 3393 |  | ; |  | 
| 287 | 3393 |  | .argdone: | ; |  |  | 
| 288 | 3393 | 0040600 |  | o02 | token |  |  |  | ;token+1 |  | 
| 289 | 3393+ | 0122201 |  | sub | K42 |  |  |  | ;=42 [,]+1 |  | 
| 290 | 3394 | 1046505 |  | jz | .argcomma |  |  |  | ;-> | @3394 | 
| 291 | 3394+ | 0122210 |  | sub | K7a |  |  |  | ;=7 [)]+1 |  | 
| 292 | 3395 | 1046507 |  | jz | .argrpar |  |  |  | ;-> |  | 
| 293 | 3395+ | 1006575 |  | jmp | _err41 |  |  |  | ;error in param list |  | 
| 294 | 3396 |  | ; |  | 
| 295 | 3396 |  | .3396: | ; |  |  | 
| 296 | 3396 |  |  | call |  |  |  |  | ; | @3396 | 
| 296+1 | 3396 | 7306371006514 |  | lnk | SkipPLC.lnk | : | jmp | SkipPLC.ent |  |  | 
| 297 | 3397 |  | ; |  | 
| 298 | 3397 |  | .argcomma: | ; |  |  | 
| 299 | 3397 | 0606252 |  | lod | Argno1 |  |  |  | ; |  | 
| 300 | 3397+ | 0506236 |  | ads | argno |  |  |  |  |  | 
| 301 | 3398 | 1006461 |  | jmp | .arg2 |  |  |  | ; | @3398 | 
| 302 | 3398+ |  |  | pad |  |  |  |  |  |  | 
| 302+1 | 3398+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 303 | 3399 |  | ; |  | 
| 304 | 3399 |  | ; from 3395, ) at end of param list |  | 
| 305 | 3399 |  | ; |  | 
| 306 | 3399 |  | .argrpar: | ; |  |  | 
| 307 | 3399 | 0031166577776 |  | o00 | dicent | / | lod | -2 | ; |  | 
| 308 | 3400 | 0066246 |  | and | W3238 |  |  |  | ;=03776000000000 | @3400 | 
| 309 | 3400+ | 0126236 |  | sub | argno |  |  |  | ;=0002000000000 |  | 
| 310 | 3401 |  |  | jnz |  |  |  |  | ; |  | 
| 310+1 | 3401 | 1046512 |  | jz | .1 |  |  |  |  |  | 
| 310+2 | 3401+ | 1006504 |  | jmp | CallProc.3396 |  |  |  |  |  | 
| 310+3 | 3402 |  | .1: | ; |  |  | 
| 311 | 3402 |  |  | call |  |  |  |  | ; | @3402 | 
| 311+1 | 3402 | 7322411004503 |  | lnk | advance.lnk | : | jmp | advance.ent |  |  | 
| 312 | 3403 | 1106277 |  | jmp | .C1 |  |  |  | ;-->> |  | 
| 313 | 3403+ |  |  | pad |  |  |  |  |  |  | 
| 313+1 | 3403+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 314 | 3404 |  | =3263+ |  |  | 
| 315 | 3263+ |  | ; |  | 
| 316 | 3263+ |  | ; all argument are now compiled and address info is on stack, thunks (where needed) |  | 
| 317 | 3263+ |  | ;  have also been generated. All that remains is to copy the arguments into |  | 
| 318 | 3263+ |  | ;   the formals and invoke the procedure/function |  | 
| 319 | 3263+ |  | ; |  | 
| 320 | 3263+ |  | .C1: | ; |  |  | 
| 321 | 3263+ | 0606247 |  | lod | W3239 |  |  |  | ;=00070000000000 |  | 
| 322 | 3264 | 0031166057777 |  | o00 | dicent | / | and | -1 | ; | @3264 | 
| 323 | 3265 | 0126253 |  | sub | TMMflg |  |  |  | ;=00010000000000 |  | 
| 324 | 3265+ | 1026311 |  | jn | .C4 |  |  |  | ;-> |  | 
| 325 | 3266 | 1146304 |  | jz | .C2 |  |  |  | ; | @3266 | 
| 326 | 3266+ | 0126250 |  | sub | W3240 |  |  |  | ;=00030000000000 |  | 
| 327 | 3267 | 1046307 |  | jz | .C3 |  |  |  | ; |  | 
| 328 | 3267+ | 1026327 |  | jn | .d3 |  |  |  | ; |  | 
| 329 | 3268 | 1006350 |  | jmp | _err09 |  |  |  | ; | @3268 | 
| 330 | 3268+ |  | ; |  | 
| 331 | 3268+ |  | .C2: | ; |  |  | 
| 332 | 3268+ | 0040000 |  | o02 | 0 |  |  |  | ; |  | 
| 333 | 3269 | 2710646600000 |  | o27 | stkp | / | lod | 0 | ; |  | 
| 334 | 3270 | 0404031 |  | sto | IdInfo |  |  |  | ; | @3270 | 
| 335 | 3270+ | 1006361 |  | jmp | .C2a |  |  |  | ; |  | 
| 336 | 3271 |  | =3313 |  |  | 
| 337 | 3313 |  | .C2a: | ; |  |  | 
| 338 | 3313 |  |  | call |  |  |  |  | ; |  | 
| 338+1 | 3313 | 7323761005051 |  | lnk | FreeTemp.lnk | : | jmp | FreeTemp.ent |  |  | 
| 339 | 3314 | 1006312 |  | jmp | .7 |  |  |  | ; | @3314 | 
| 340 | 3314+ |  |  | pad |  |  |  |  |  |  | 
| 340+1 | 3314+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 341 | 3315 |  | ; |  | 
| 342 | 3315 |  | =3271 |  |  | 
| 343 | 3271 |  | .C3: | ; |  |  | 
| 344 | 3271 | 0031166577776 |  | o00 | dicent | / | lod | -2 | ; |  | 
| 345 | 3272 |  |  | call |  |  |  |  | ; | @3272 | 
| 345+1 | 3272 | 7320121006411 |  | lnk | PrepCall.lnk | : | jmp | PrepCall.ent |  |  | 
| 346 | 3273 |  | .C4: | ; |  |  | 
| 347 | 3273 | 1006420 |  | jmp | .B0 |  |  |  | ;-> |  | 
| 348 | 3273+ |  |  | pad |  |  |  |  |  |  | 
| 348+1 | 3273+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 349 | 3274 |  | =3420 |  |  | 
| 350 | 3420 |  | .argsw: | ; |  |  | 
| 351 | 3420 | 4032614000000 |  | jmp | .argerr | : | o00 | 0 | ;+0 no explicit type | @3420 | 
| 352 | 3421 | 4032724000000 |  | jmp | .argboo | : | o00 | 0 | ;+1 boolean |  | 
| 353 | 3422 | 4032700000000 |  | jmp | .argint | : | o00 | 0 | ;+2 integer |  | 
| 354 | 3423 | 4032650000000 |  | jmp | .argrl | : | o00 | 0 | ;+3 real |  | 
| 355 | 3424 | 4433104000000 |  | jmp | .argnm | : | o00 | 0 | ;+4 array | @3424 | 
| 356 | 3425 | 4433104000000 |  | jmp | .argnm | : | o00 | 0 | ;+5 switch |  | 
| 357 | 3426 | 4033060000000 |  | jmp | .argstr | : | o00 | 0 | ;+6 string |  | 
| 358 | 3427 |  |  | ; |  |  | 
| 359 | 3427 |  | .argerr: | ;+7 label |  |  | 
| 360 | 3427 |  | _err44: | ; |  |  | 
| 361 | 3427 | 1661044 |  | lnk | errlnk |  |  |  | ;error 44: non-allowable parameter | @3427 | 
| 362 | 3427+ | 1001070 |  | jmp | Error |  |  |  | ;call error handler |  | 
| 363 | 3428 |  | ; |  | 
| 364 | 3428 |  | .strarg: | ; |  |  | 
| 365 | 3428 |  |  | call |  |  |  |  | ;compile string, leave ptr on stk | @3428 | 
| 365+1 | 3428 | 7331155006764 |  | lnk | CompStrPtr.lnk | : | jmp | CompStrPtr.ent |  |  | 
| 366 | 3429 | 0140000 |  | cla | 0 |  |  |  | ; |  | 
| 367 | 3429+ |  |  | nop |  |  |  |  | ; |  | 
| 367+1 | 3429+ | 1006546 |  | jmp | .1 |  |  |  |  |  | 
| 367+2 | 3430 |  | .1: | ; |  |  | 
| 368 | 3430 |  |  | call |  |  |  |  | ; | @3430 | 
| 368+1 | 3430 | 7323731005012 |  | lnk | push.lnk | : | jmp | push.ent |  |  | 
| 369 | 3431 |  |  | call |  |  |  |  | ;compile code to load string ptr |  | 
| 369+1 | 3431 | 7323761005021 |  | lnk | SaveTemp.lnk | : | jmp | SaveTemp.ent |  |  | 
| 370 | 3432 |  |  | call |  |  |  |  | ; | @3432 | 
| 370+1 | 3432 | 7322411004503 |  | lnk | advance.lnk | : | jmp | advance.ent |  |  | 
| 371 | 3433 | 1006501 |  | jmp | .argdone |  |  |  | ; |  | 
| 372 | 3433+ |  |  | pad |  |  |  |  | ; |  | 
| 372+1 | 3433+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 373 | 3434 |  | ; |  | 
| 374 | 3434 |  | .argrl: | ; |  |  | 
| 375 | 3434 |  |  | call |  |  |  |  | ;compile address expression | @3434 | 
| 375+1 | 3434 | 7326171000000 |  | lnk | GetValue.lnk | : | jmp | GetValue.ent |  |  | 
| 376 | 3435 | 0010646577777 |  | o00 | stkp | / | lod | -1 | ;load address from stack |  | 
| 377 | 3436 | 0062215 |  | and | realbit |  |  |  | ;check type | @3436 | 
| 378 | 3436+ | 0122215 |  | sub | realbit |  |  |  | ;should be real |  | 
| 379 | 3437 | 1046576 |  | jz | .argmatch |  |  |  | ;OK, no problem |  | 
| 380 | 3437+ |  | ; |  | 
| 381 | 3437+ |  | ; handle case when real/int mismatch |  | 
| 382 | 3437+ |  | ; |  | 
| 383 | 3437+ |  | .argri: | ; |  |  | 
| 384 | 3437+ | 0606253 |  | lod | TMMflg |  |  |  | ;=00100000000000  Bit31 |  | 
| 385 | 3438 | 0010646477777 |  | o00 | stkp | / | ads | -1 | ;add to stacked info | @3438 | 
| 386 | 3439 | 1006576 |  | jmp | .argmatch |  |  |  | ; |  | 
| 387 | 3439+ |  |  | pad |  |  |  |  | ; |  | 
| 387+1 | 3439+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 388 | 3440 |  | ; |  | 
| 389 | 3440 |  | .argint: | ; |  |  | 
| 390 | 3440 |  |  | call |  |  |  |  | ;compile expression in store | @3440 | 
| 390+1 | 3440 | 7326171000000 |  | lnk | GetValue.lnk | : | jmp | GetValue.ent |  |  | 
| 391 | 3441 | 0010646577777 |  | o00 | stkp | / | lod | -1 | ; |  | 
| 392 | 3442 | 0062215 |  | and | realbit |  |  |  | ;=0300000000000 | @3442 | 
| 393 | 3442+ | 0122214 |  | sub | intbit |  |  |  | ;=0200000000000 |  | 
| 394 | 3443 | 1046576 |  | jz | .argmatch |  |  |  | ;-> |  | 
| 395 | 3443+ | 1106555 |  | jmp | .argri |  |  |  | ; |  | 
| 396 | 3444 |  | =3445 |  |  | 
| 397 | 3445 |  | .argboo: | ; |  |  | 
| 398 | 3445 |  |  | call |  |  |  |  | ; |  | 
| 398+1 | 3445 | 7326605006214 |  | lnk | L3212.lnk | : | jmp | L3212.ent |  |  | 
| 399 | 3446 | 1006576 |  | jmp | .argmatch |  |  |  | ; | @3446 | 
| 400 | 3446+ |  | ; |  | 
| 401 | 3446+ |  | .argarr: | ; |  |  | 
| 402 | 3446+ | 0543427 |  | cls | idptr |  |  |  | ; |  | 
| 403 | 3447 |  |  | call |  |  |  |  | ; |  | 
| 403+1 | 3447 | 7322411004503 |  | lnk | advance.lnk | : | jmp | advance.ent |  |  | 
| 404 | 3448 | 0603427 |  | lod | idptr |  |  |  | ; | @3448 | 
| 405 | 3448+ | 0062202 |  | and | arrbit |  |  |  | ; |  | 
| 406 | 3449 | 1146612 |  | jz | _err43a |  |  |  | ;expected string or array |  | 
| 407 | 3449+ |  | .strvar: | ; |  |  | 
| 408 | 3449+ | 0603427 |  | lod | idptr |  |  |  | ; |  | 
| 409 | 3450 |  |  | call |  |  |  |  | ; | @3450 | 
| 409+1 | 3450 | 7323731006564 |  | lnk | MaskPush.lnk | : | jmp | MaskPush.ent |  |  | 
| 410 | 3451 |  |  | call |  |  |  |  | ; |  | 
| 410+1 | 3451 | 7322411004503 |  | lnk | advance.lnk | : | jmp | advance.ent |  |  | 
| 411 | 3452 | 1006576 |  | jmp | .argmatch |  |  |  | ; | @3452 | 
| 412 | 3452+ |  |  | pad |  |  |  |  | ; |  | 
| 412+1 | 3452+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 413 | 3453 |  | ; |  | 
| 414 | 3453 |  | _err41: | ; |  |  | 
| 415 | 3453 | 1661044 |  | lnk | errlnk |  |  |  | ;error 41: in procedure call: |  | 
| 416 | 3453+ |  |  | ;a) missing ( for param list, or |  |  | 
| 417 | 3453+ |  |  | ;b) missing , or ) after actual param |  |  | 
| 418 | 3453+ | 1002262 |  | jmp | Error2 |  |  |  | ;call error routine at 1202 |  | 
| 419 | 3454 |  | ; |  | 
| 420 | 3454 |  | .argmatch: | ; |  |  | 
| 421 | 3454 | 0031166577777 |  | o00 | dicent | / | lod | -1 | ; | @3454 | 
| 422 | 3455 | 0062234 |  | and | Bit32 |  |  |  | ;=0020000000000 |  | 
| 423 | 3455+ | 1046501 |  | jz | .argdone |  |  |  | ;-> |  | 
| 424 | 3456 | 0010646577777 |  | o00 | stkp | / | lod | -1 | ; | @3456 | 
| 425 | 3457 | 0406241 |  | sto | W3233 |  |  |  | ; |  | 
| 426 | 3457+ | 0064356 |  | and | TmpFlg |  |  |  | ;=040000 |  | 
| 427 | 3458 |  |  | jnz |  |  |  |  | ; |  | 
| 427+1 | 3458 | 1046603 |  | jz | .1 |  |  |  |  |  | 
| 427+2 | 3458+ | 1006501 |  | jmp | CallProc.argdone |  |  |  |  |  | 
| 427+3 | 3459 |  | .1: | ; |  |  | 
| 428 | 3459 |  |  | call |  |  |  |  | ; |  | 
| 428+1 | 3459 | 7323731005037 |  | lnk | GenLoad0.lnk | : | jmp | GenLoad0.ent |  |  | 
| 429 | 3460 | 0606241 |  | lod | W3233 |  |  |  | ; | @3460 | 
| 430 | 3460+ | 0066253 |  | and | TMMflg |  |  |  | ;=00010000000000 |  | 
| 431 | 3461 | 1046611 |  | jz | .am1 |  |  |  | ; |  | 
| 432 | 3461+ | 0606241 |  | lod | W3233 |  |  |  | ; |  | 
| 433 | 3462 | 0062215 |  | and | realbit |  |  |  | ;=00300000000000 | @3462 | 
| 434 | 3462+ | 0404306 |  | sto | W2246 |  |  |  | ; |  | 
| 435 | 3463 | 0603450 |  | lod | GPs+3 |  |  |  | ;=GPs+85 GP3 1 |  | 
| 436 | 3463+ |  |  | pad |  |  |  |  | ; |  | 
| 436+1 | 3463+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 437 | 3464 |  |  | call |  |  |  |  | ; | @3464 | 
| 437+1 | 3464 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 438 | 3465 |  | .am1: | ; |  |  | 
| 439 | 3465 |  |  | call |  |  |  |  | ; |  | 
| 439+1 | 3465 | 7323761005021 |  | lnk | SaveTemp.lnk | : | jmp | SaveTemp.ent |  |  | 
| 440 | 3466 | 1006501 |  | jmp | .argdone |  |  |  | ; | @3466 | 
| 441 | 3466+ |  | ; |  | 
| 442 | 3466+ |  | _err43a: | ; |  |  | 
| 443 | 3466+ | 0602231 |  | lod | K11 |  |  |  | ; |  | 
| 444 | 3467 | 1661044 | _err43: | lnk | errlnk |  |  |  | ;error 43: expected array or strin param |  | 
| 445 | 3467+ | 1001070 |  | jmp | Error |  |  |  | ;call error routine |  | 
| 446 | 3468 |  | ; |  | 
| 447 | 3468 |  | .argstr: | ; |  |  | 
| 448 | 3468 |  |  | call |  |  |  |  | ; |  | 
| 448+1 | 3468 | 7322411004503 |  | lnk | advance.lnk | : | jmp | advance.ent |  |  | 
| 449 | 3469 | 0600600 |  | lod | token |  |  |  | ; |  | 
| 450 | 3469+ | 0126256 |  | sub | K49 |  |  |  | ;=49 (literal string start) |  | 
| 451 | 3470 | 1046544 |  | jz | .strarg |  |  |  | ;compile string | @3470 | 
| 452 | 3470+ | 0603427 |  | lod | idptr |  |  |  | ; |  | 
| 453 | 3471 | 0062221 |  | and | typbits |  |  |  | ;=03700000000000 |  | 
| 454 | 3471+ | 0126264 |  | sub | TStr |  |  |  | ;=00600000000000  string |  | 
| 455 | 3472 | 1146571 |  | jz | .strvar |  |  |  | ;string variable | @3472 | 
| 456 | 3472+ | 1106612 |  | jmp | _err43a |  |  |  | ;expected string or array |  | 
| 457 | 3473 |  |  | pad |  |  |  |  | ; |  | 
| 457+1 | 3473 | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 458 | 3473+ |  | ; |  | 
| 459 | 3473+ |  | ; array or switch parameter |  | 
| 460 | 3473+ |  | .argnm: | ; |  |  | 
| 461 | 3473+ | 0603471 |  | lod | GPs+20 |  |  |  | ;= GP9F 00 plant jump around |  | 
| 462 | 3474 |  |  | call |  |  |  |  | ; | @3474 | 
| 462+1 | 3474 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 463 | 3475 |  |  | call |  |  |  |  | ;align to fullword |  | 
| 463+1 | 3475 | 7307255001654 |  | lnk | putNop.lnk | : | jmp | putNop.ent |  |  | 
| 464 | 3476 |  |  | calln | , |  |  |  | ;call push(ObjPC) | @3476 | 
| 464+1 | 3476 | 7323731106720 |  | lnk | push.lnk | : | jmp | CallProc.PushPC |  |  | 
| 465 | 3477 |  |  | call |  |  |  |  | ;compile variable address |  | 
| 465+1 | 3477 | 7323731005015 |  | lnk | GetAddrExprn.lnk | : | jmp | GetAddrExprn.ent |  |  | 
| 466 | 3478 |  |  | calln | , |  |  |  | ;call push(Acc+Bit33) | @3478 | 
| 466+1 | 3478 | 7323731106731 |  | lnk | push.lnk | : | jmp | CallProc.Push33 |  |  | 
| 467 | 3479 | 0606240 |  | lod | Pinfo |  |  |  | ; |  | 
| 468 | 3479+ | 0064324 |  | and | T_Mask |  |  |  | ;=00700000000000 |  | 
| 469 | 3480 | 0126257 |  | sub | Bit36 |  |  |  | ;=00400000000000 Array Type | @3480 | 
| 470 | 3480+ |  |  | jnn |  |  |  |  | ;array,switch,string,label-> |  | 
| 470+1 | 3480+ | 1126631 |  | jn | .1 |  |  |  |  |  | 
| 470+2 | 3481 | 1006733 |  | jmp | CallProc.G3 |  |  |  |  |  | 
| 470+3 | 3481+ |  | .1: | ; |  |  | 
| 471 | 3481+ | 0543427 |  | cls | idptr |  |  |  | ; | @3481+ | 
| 472 | 3482 |  |  | call |  |  |  |  | ; | @3482 | 
| 472+1 | 3482 | 7322411004503 |  | lnk | advance.lnk | : | jmp | advance.ent |  |  | 
| 473 | 3483 | 0603427 |  | lod | idptr |  |  |  | ; |  | 
| 474 | 3483+ | 1010560 |  | jmp | .argnm1 |  |  |  | ;-->> |  | 
| 475 | 3484 |  | =4464 |  |  | 
| 476 | 4464 |  | .argnm1: | ; |  |  | 
| 477 | 4464 | 1026634 |  | jn | .argnm2 |  |  |  | ; | @4464 | 
| 478 | 4464+ | 1006636 |  | jmp | .argnm3 |  |  |  | ; |  | 
| 479 | 4465 |  | =3484 |  |  | 
| 480 | 3484 |  | .argnm2: | ; |  |  | 
| 481 | 3484 | 0066260 |  | and | W3248 |  |  |  | ;=03430000000000 | @3484 | 
| 482 | 3484+ | 1046637 |  | jz | .argnm4 |  |  |  | ;-> |  | 
| 483 | 3485 | 0122202 |  | sub | arrbit |  |  |  | ; |  | 
| 484 | 3485+ | 1146700 |  | jz | .argnm17 |  |  |  | ; |  | 
| 485 | 3486 |  | .argnm3: | ; |  |  | 
| 486 | 3486 | 0602205 |  | lod | K2a |  |  |  | ;=2 | @3486 | 
| 487 | 3486+ | 1006647 |  | jmp | .argnm8 |  |  |  | ; |  | 
| 488 | 3487 |  | ; |  | 
| 489 | 3487 |  | .argnm4: | ; |  |  | 
| 490 | 3487 | 0603427 |  | lod | idptr |  |  |  | ; |  | 
| 491 | 3487+ | 0062215 |  | and | realbit |  |  |  | ;=00300000000000 |  | 
| 492 | 3488 | 0102236 |  | add | Bit33 |  |  |  | ;=00040000000000 indicate cbn | @3488 | 
| 493 | 3488+ | 0126240 |  | sub | Pinfo |  |  |  | ; |  | 
| 494 | 3489 |  |  | jnz |  |  |  |  | ;mismatch |  | 
| 494+1 | 3489 | 1046642 |  | jz | .1 |  |  |  |  |  | 
| 494+2 | 3489+ | 1006636 |  | jmp | CallProc.argnm3 |  |  |  |  |  | 
| 494+3 | 3490 |  | .1: | ; |  |  | 
| 495 | 3490 |  |  | call |  |  |  |  | ; | @3490 | 
| 495+1 | 3490 | 7322411004503 |  | lnk | advance.lnk | : | jmp | advance.ent |  |  | 
| 496 | 3491 | 0040600 |  | o02 | token |  |  |  | ;token+1 |  | 
| 497 | 3491+ | 0122201 |  | sub | K42 |  |  |  | ;=42->[,]+1 |  | 
| 498 | 3492 | 1146725 |  | jz | .comma |  |  |  | ;comma, param complete | @3492 | 
| 499 | 3492+ | 0122210 |  | sub | K7a |  |  |  | ;=49->[)]+1 |  | 
| 500 | 3493 | 1146725 |  | jz | .comma |  |  |  | ;may be comma or close |  | 
| 501 | 3493+ | 0603427 |  | lod | idptr |  |  |  | ; |  | 
| 502 | 3494 | 0404303 |  | sto | W2243 |  |  |  | ; | @3494 | 
| 503 | 3494+ |  | .argnm5: | ; |  |  | 
| 504 | 3494+ | 1010756 |  | jmp | .argnm6 |  |  |  | ;-->> |  | 
| 505 | 3495 |  | =4590 |  |  | 
| 506 | 4590 |  | .argnm6: | ; |  |  | 
| 507 | 4590 | 0404031 |  | sto | IdInfo |  |  |  | ; | @4590 | 
| 508 | 4590+ | 0064367 |  | and | Bit33a |  |  |  | ;=0040000000000 |  | 
| 509 | 4591 | 1050765 |  | jz | .argnm7 |  |  |  | ; |  | 
| 510 | 4591+ | 0603514 |  | lod | GPs+39 |  |  |  | ; |  | 
| 511 | 4592 |  |  | call |  |  |  |  | ; | @4592 | 
| 511+1 | 4592 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 512 | 4593 | 0603515 |  | lod | GPs+40 |  |  |  | ; |  | 
| 513 | 4593+ |  |  | nop |  |  |  |  | ; |  | 
| 513+1 | 4593+ | 1010762 |  | jmp | .1 |  |  |  |  |  | 
| 513+2 | 4594 |  | .1: | ; |  |  | 
| 514 | 4594 |  |  | call |  |  |  |  | ; | @4594 | 
| 514+1 | 4594 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 515 | 4595 | 0604315 |  | lod | procbit1 |  |  |  | ; |  | 
| 516 | 4595+ | 0464303 |  | ans | W2243 |  |  |  | ; |  | 
| 517 | 4596 | 0604347 |  | lod | K4a |  |  |  | ;=4 | @4596 | 
| 518 | 4596+ | 1006647 |  | jmp | .argnm8 |  |  |  | ; |  | 
| 519 | 4597 |  | ; |  | 
| 520 | 4597 |  | .argnm7: | ; |  |  | 
| 521 | 4597 | 0604341 |  | lod | K3a |  |  |  | ; | @4597 | 
| 522 | 4597+ | 1006647 |  | jmp | .argnm8 |  |  |  | ;-->> |  | 
| 523 | 4598 |  | =3495 |  |  | 
| 524 | 3495 |  | ; |  | 
| 525 | 3495 |  | .argnm8: | ; |  |  | 
| 526 | 3495 | 0404300 |  | sto | W2240 |  |  |  | ; |  | 
| 527 | 3495+ | 0606240 |  | lod | Pinfo |  |  |  | ; |  | 
| 528 | 3496 | 0062215 |  | and | realbit |  |  |  | ; | @3496 | 
| 529 | 3496+ | 0122214 |  | sub | intbit |  |  |  | ; |  | 
| 530 | 3497 | 1046673 |  | jz | .argnm15 |  |  |  | ; |  | 
| 531 | 3497+ | 1026677 |  | jn | .argnm16 |  |  |  | ; |  | 
| 532 | 3498 | 1006653 |  | jmp | .argnm9 |  |  |  | ;-->> | @3498 | 
| 533 | 3498+ |  |  | pad |  |  |  |  | ; |  | 
| 533+1 | 3498+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 534 | 3499 |  | ; |  | 
| 535 | 3499 |  | .argnm9: | ; |  |  | 
| 536 | 3499 |  |  | call |  |  |  |  | ; |  | 
| 536+1 | 3499 | 7323131004627 |  | lnk | expression.lnk | : | jmp | expression.ent |  |  | 
| 537 | 3500 | 0010646577777 |  | o00 | stkp | / | lod | -1 | ; | @3500 | 
| 538 | 3501 | 0404306 |  | sto | W2246 |  |  |  | ; |  | 
| 539 | 3501+ | 0122215 |  | sub | realbit |  |  |  | ; |  | 
| 540 | 3502 | 1046660 |  | jz | .argnm11 |  |  |  | ; | @3502 | 
| 541 | 3502+ |  | .argnm10: | ; |  |  | 
| 542 | 3502+ | 0603450 |  | lod | GPs+3 |  |  |  | ;=GPs+85 -> GP3 1,GP0F 65,4096 |  | 
| 543 | 3503 |  |  | call |  |  |  |  | ; |  | 
| 543+1 | 3503 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 544 | 3504 |  | .argnm11: | ; |  |  | 
| 545 | 3504 | 0040000 |  | o02 | 0 |  |  |  | ; | @3504 | 
| 546 | 3504+ | 0562151 |  | o27 | stkp |  |  |  | ; |  | 
| 547 | 3505 | 0606261 |  | lod | W3249 |  |  |  | ;=<00 4 / 00 13> |  | 
| 548 | 3505+ | 0344031 |  | stc | IdInfo |  |  |  | ; |  | 
| 549 | 3506 |  |  | call |  |  |  |  | ; | @3506 | 
| 549+1 | 3506 | 7320121004032 |  | lnk | gencode1.lnk | : | jmp | gencode1.ent |  |  | 
| 550 | 3507 | 0606261 |  | lod | W3249 |  |  |  | ;=<00 4 / 00 13> |  | 
| 551 | 3507+ | 1006665 |  | jmp | .argnm13 |  |  |  | ; |  | 
| 552 | 3508 |  | ; |  | 
| 553 | 3508 |  | .argnm12: | ; |  |  | 
| 554 | 3508 |  |  | pad |  |  |  |  | ; | @3508 | 
| 554+1 | 3508 | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 555 | 3508+ | 0603427 |  | lod | idptr |  |  |  | ;get address of variable |  | 
| 556 | 3509 |  | .argnm13: | ; |  |  | 
| 557 | 3509 |  |  | call |  |  |  |  | ;gen code to load the variables address |  | 
| 557+1 | 3509 | 7307175006413 |  | lnk | LdVarAddr.lnk | : | jmp | LdVarAddr.ent |  |  | 
| 558 | 3510 |  | .argnm14: | ; |  |  | 
| 559 | 3510 | 0602161 |  | lod | wsptr |  |  |  | ; | @3510 | 
| 560 | 3510+ | 0122207 |  | sub | K1c |  |  |  | ;=1 |  | 
| 561 | 3511 |  |  | call |  |  |  |  | ; |  | 
| 561+1 | 3511 | 7320121106723 |  | lnk | ExitThunk.lnk | : | jmp | ExitThunk.ent |  |  | 
| 562 | 3512 | 0603474 |  | lod | GPs+23 |  |  |  | ;=GP12F 00 patch jump around | @3512 | 
| 563 | 3512+ |  |  | nop |  |  |  |  | ; .. |  | 
| 563+1 | 3512+ | 1006671 |  | jmp | .1 |  |  |  |  |  | 
| 563+2 | 3513 |  | .1: | ; |  |  | 
| 564 | 3513 |  |  | call |  |  |  |  | ;     thunk. |  | 
| 564+1 | 3513 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 565 | 3514 | 1006501 |  | jmp | .argdone |  |  |  | ;finished | @3514 | 
| 566 | 3514+ |  |  | pad |  |  |  |  |  |  | 
| 566+1 | 3514+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 567 | 3515 |  | ; |  | 
| 568 | 3515 |  | .argnm15: | ; |  |  | 
| 569 | 3515 |  |  | call |  |  |  |  | ; |  | 
| 569+1 | 3515 | 7323131004627 |  | lnk | expression.lnk | : | jmp | expression.ent |  |  | 
| 570 | 3516 | 0010646577777 |  | o00 | stkp | / | lod | -1 | ; | @3516 | 
| 571 | 3517 | 0404306 |  | sto | W2246 |  |  |  | ; |  | 
| 572 | 3517+ | 0122214 |  | sub | intbit |  |  |  | ; |  | 
| 573 | 3518 | 1046660 |  | jz | .argnm11 |  |  |  | ; | @3518 | 
| 574 | 3518+ | 1106656 |  | jmp | .argnm10 |  |  |  | ; |  | 
| 575 | 3519 |  | ; |  | 
| 576 | 3519 |  | .argnm16: | ; |  |  | 
| 577 | 3519 |  |  | call |  |  |  |  | ; |  | 
| 577+1 | 3519 | 7326605005553 |  | lnk | compbool.lnk | : | jmp | compbool.ent |  |  | 
| 578 | 3520 | 1006660 |  | jmp | .argnm11 |  |  |  | ; | @3520 | 
| 579 | 3520+ |  | ; |  | 
| 580 | 3520+ |  | .argnm17: | ; |  |  | 
| 581 | 3520+ | 0603427 |  | lod | idptr |  |  |  | ; |  | 
| 582 | 3521 | 0064324 |  | and | T_Mask |  |  |  | ;=00700000000000 |  | 
| 583 | 3521+ | 0102236 |  | add | Bit33 |  |  |  | ; |  | 
| 584 | 3522 | 0126240 |  | sub | Pinfo |  |  |  | ; | @3522 | 
| 585 | 3522+ |  |  | jnz |  |  |  |  | ; |  | 
| 585+1 | 3522+ | 1146703 |  | jz | .1 |  |  |  |  |  | 
| 585+2 | 3523 | 1006636 |  | jmp | CallProc.argnm3 |  |  |  |  |  | 
| 585+3 | 3523+ |  | .1: | ; |  |  | 
| 586 | 3523+ | 0606240 |  | lod | Pinfo |  |  |  | ; |  | 
| 587 | 3524 |  |  | call |  |  |  |  | ; | @3524 | 
| 587+1 | 3524 | 7323731005012 |  | lnk | push.lnk | : | jmp | push.ent |  |  | 
| 588 | 3525 |  |  | call |  |  |  |  | ;call 2649 |  | 
| 588+1 | 3525 | 7324375005131 |  | lnk | Subscript.lnk | : | jmp | Subscript.ent |  |  | 
| 589 | 3526 | 0040600 |  | o02 | token |  |  |  | ; | @3526 | 
| 590 | 3526+ | 0122201 |  | sub | K42 |  |  |  | ;=42 |  | 
| 591 | 3527 | 1046711 |  | jz | .argnm18 |  |  |  | ; |  | 
| 592 | 3527+ | 0122210 |  | sub | K7a |  |  |  | ; |  | 
| 593 | 3528 |  |  | jnz |  |  |  |  | ; |  | 
| 593+1 | 3528 | 1046711 |  | jz | .1 |  |  |  |  |  | 
| 593+2 | 3528+ | 1006713 |  | jmp | CallProc.argnm19 |  |  |  |  |  | 
| 593+3 | 3529 |  | .1: | ; |  |  | 
| 594 | 3529 |  | .argnm18: | ; |  |  | 
| 595 | 3529 | 0040000 |  | o02 | 0 |  |  |  | ; |  | 
| 596 | 3529+ | 0562151 |  | o27 | stkp |  |  |  | ; |  | 
| 597 | 3530 | 1006666 |  | jmp | .argnm14 |  |  |  | ; | @3530 | 
| 598 | 3530+ |  |  | pad |  |  |  |  | ; |  | 
| 598+1 | 3530+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 599 | 3531 |  | ; |  | 
| 600 | 3531 |  | .argnm19: | ; |  |  | 
| 601 | 3531 |  |  | call |  |  |  |  | ; |  | 
| 601+1 | 3531 | 7323761005021 |  | lnk | SaveTemp.lnk | : | jmp | SaveTemp.ent |  |  | 
| 602 | 3532 | 0040000 |  | o02 | 0 |  |  |  | ; | @3532 | 
| 603 | 3532+ |  |  | nop |  |  |  |  | ; |  | 
| 603+1 | 3532+ | 1006715 |  | jmp | .1 |  |  |  |  |  | 
| 603+2 | 3533 |  | .1: | ; |  |  | 
| 604 | 3533 | 2710646600000 |  | o27 | stkp | / | lod | 0 | ; |  | 
| 605 | 3534 | 0102224 |  | add | Bit19 |  |  |  | ;=00000001000000 | @3534 | 
| 606 | 3534+ | 0404303 |  | sto | W2243 |  |  |  | ; |  | 
| 607 | 3535 | 0064324 |  | and | T_Mask |  |  |  | ;=00700000000000 |  | 
| 608 | 3535+ | 0406240 |  | sto | Pinfo |  |  |  | ; |  | 
| 609 | 3536 | 1106646 |  | jmp | .argnm5 |  |  |  | ; | @3536 | 
| 610 | 3536+ |  | ; |  | 
| 611 | 3536+ |  | .PushPC: | ; |  |  | 
| 612 | 3536+ | 0602145 |  | lod | ObjPC |  |  |  | ; |  | 
| 613 | 3537 | 1005012 |  | jmp | push.ent |  |  |  | ; |  | 
| 614 | 3537+ |  | ; |  | 
| 615 | 3537+ |  |  | pad |  |  |  |  | ; |  | 
| 615+1 | 3537+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 616 | 3538 |  | ; |  | 
| 617 | 3538 |  | .G1: | ; |  |  | 
| 618 | 3538 |  |  | call |  |  |  |  | ;get label or exprn | @3538 | 
| 618+1 | 3538 | 7334161007042 |  | lnk | DesigExprn.lnk | : | jmp | DesigExprn.ent |  |  | 
| 619 | 3539 | 1006666 |  | jmp | .argnm14 |  |  |  | ; |  | 
| 620 | 3539+ |  | =3541+ |  |  | 
| 621 | 3541+ |  | .comma: | ; |  |  | 
| 622 | 3541+ | 0603427 |  | lod | idptr |  |  |  | ; |  | 
| 623 | 3542 | 0404031 |  | sto | IdInfo |  |  |  | ; | @3542 | 
| 624 | 3542+ | 0062236 |  | and | Bit33 |  |  |  | ; |  | 
| 625 | 3543 | 1046664 |  | jz | .argnm12 |  |  |  | ; |  | 
| 626 | 3543+ | 0603514 |  | lod | GPs+39 |  |  |  | ;=GP1M 00, GP0 73,0, GP1F 40 |  | 
| 627 | 3544 |  |  | call |  |  |  |  | ; | @3544 | 
| 627+1 | 3544 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 628 | 3545 | 1006666 |  | jmp | .argnm14 |  |  |  | ; |  | 
| 629 | 3545+ |  | ; |  | 
| 630 | 3545+ |  | =3547 |  |  | 
| 631 | 3547 |  | .G3: | ; |  |  | 
| 632 | 3547 | 0031166577777 |  | o00 | dicent | / | lod | -1 | ; |  | 
| 633 | 3548 | 0404031 |  | sto | IdInfo |  |  |  | ; | @3548 | 
| 634 | 3548+ | 0062236 |  | and | Bit33 |  |  |  | ; |  | 
| 635 | 3549 | 1146741 |  | jz | .G4 |  |  |  | ;argument a procedure call-> |  | 
| 636 | 3549+ |  |  | nop |  |  |  |  | ; |  | 
| 636+1 | 3549+ | 1006736 |  | jmp | .1 |  |  |  |  |  | 
| 636+2 | 3550 |  | .1: | ; |  |  | 
| 637 | 3550 |  |  | call |  |  |  |  | ; | @3550 | 
| 637+1 | 3550 | 7307255001654 |  | lnk | putNop.lnk | : | jmp | putNop.ent |  |  | 
| 638 | 3551 | 0603563 |  | lod | GPs+78 |  |  |  | ;=GP1 73, GP2F 6,40 unwind stack |  | 
| 639 | 3551+ |  |  | pad |  |  |  |  | ; to change level to that of |  | 
| 639+1 | 3551+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 640 | 3552 |  |  | call |  |  |  |  | ;  calling procedure | @3552 | 
| 640+1 | 3552 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 641 | 3553 | 1106746 |  | jmp | .G5 |  |  |  | ;-> |  | 
| 642 | 3553+ |  | ; |  | 
| 643 | 3553+ |  | .G4: | ; |  |  | 
| 644 | 3553+ | 0602234 |  | lod | Bit32 |  |  |  | ;=00020000000000 |  | 
| 645 | 3554 | 0031166057777 |  | o00 | dicent | / | and | -1 | ; | @3554 | 
| 646 | 3555 | 1146746 |  | jz | .G5 |  |  |  | ; |  | 
| 647 | 3555+ |  |  | pad |  |  |  |  | ; |  | 
| 647+1 | 3555+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 648 | 3556 |  |  | call |  |  |  |  | ; | @3556 | 
| 648+1 | 3556 | 7307175006363 |  | lnk | GenCall.lnk | : | jmp | GenCall.ent |  |  | 
| 649 | 3557 |  |  | call |  |  |  |  | ; |  | 
| 649+1 | 3557 | 7320121006347 |  | lnk | L3303.lnk | : | jmp | L3303.ent |  |  | 
| 650 | 3558 |  |  | nop |  |  |  |  | ; | @3558 | 
| 650+1 | 3558 | 1106746 |  | jmp | .1 |  |  |  |  |  | 
| 650+2 | 3558+ |  | .1: | ; |  |  | 
| 651 | 3558+ |  | .G5: | ; |  |  | 
| 652 | 3558+ | 0604302 |  | lod | W2242 |  |  |  | ; |  | 
| 653 | 3559 | 1046722 |  | jz | .G1 |  |  |  | ;-> |  | 
| 654 | 3559+ | 0122207 |  | sub | K1c |  |  |  | ;=1 |  | 
| 655 | 3560 | 1146751 |  | jz | .G6 |  |  |  | ; | @3560 | 
| 656 | 3560+ | 0603566 |  | lod | GPs+81 |  |  |  | ;=GP2 53,30, GP7F 10,00 |  | 
| 657 | 3561 | 1006752 |  | jmp | .G7 |  |  |  | ; |  | 
| 658 | 3561+ |  | ; |  | 
| 659 | 3561+ |  | .G6: | ; |  |  | 
| 660 | 3561+ | 0603527 |  | lod | GPs+50 |  |  |  | ;=GP2 26,30, GP7F 10,00 | @3561+ | 
| 661 | 3562 |  | .G7: | ; |  |  | 
| 662 | 3562 |  |  | call |  |  |  |  | ;generate unsave code | @3562 | 
| 662+1 | 3562 | 7320121004033 |  | lnk | gencode.lnk | : | jmp | gencode.ent |  |  | 
| 663 | 3563 | 1006722 |  | jmp | .G1 |  |  |  | ; |  | 
| 664 | 3563+ |  |  | pad |  |  |  |  | ; |  | 
| 664+1 | 3563+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 665 | 3564 |  | ;------------------------------------------------------------------- |  | 
| 666 | 3564 |  | ; interface to gencode |  | 
| 667 | 3564 |  | ;  generate code to return from Thunk |  | 
| 668 | 3564 |  | ; |  | 
| 669 | 3564 |  | =3539+ |  |  | 
| 670 | 3539+ |  | ExitThunk.ent: | ; |  |  | 
| 671 | 3539+ | 0404031 |  | sto | IdInfo |  |  |  | ; |  | 
| 672 | 3540 | 0402161 |  | sto | wsptr |  |  |  | ; | @3540 | 
| 673 | 3540+ | 0603516 |  | lod | GPs+41 |  |  |  | ;=GP1M 00,GP0F 44,1 |  | 
| 674 | 3541 | 1004033 |  | jmp | gencode.ent |  |  |  | ; |  | 
| 675 | 3541+ |  | ;-------------------------------------------------------------------- |  | 
| 676 | 3541+ |  | =3545+ |  |  | 
| 677 | 3545+ |  | ; interface to push |  | 
| 678 | 3545+ |  | ; |  | 
| 679 | 3545+ |  | .Push33: | ; |  |  | 
| 680 | 3545+ | 0102236 |  | add | Bit33 |  |  |  | ; |  | 
| 681 | 3546 | 1005012 |  | jmp | push.ent |  |  |  | ; | @3546 | 
| 682 | 3546+ |  |  | pad |  |  |  |  | ; |  | 
| 682+1 | 3546+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 683 | 3547 |  | ;-------------------------------------------------------------------- |  | 
| 684 | 3547 |  | =3444 |  |  | 
| 685 | 3444 |  | ; interface to push, mask value first |  | 
| 686 | 3444 |  | ; |  | 
| 687 | 3444 |  | MaskPush.ent: | ; |  |  | 
| 688 | 3444 | 0062244 |  | and | M1188 |  |  |  | ;=0001777017777 | @3444 | 
| 689 | 3444+ | 1005012 |  | jmp | push.ent |  |  |  | ; |  | 
| 690 | 3445 |  | ;-------------------------------------------------------------------- |  | 
| 691 | 3445 |  | =3419 |  |  | 
| 692 | 3419 |  | ;interface to getchar |  | 
| 693 | 3419 |  | getcharb.ent: | ; |  |  | 
| 694 | 3419 | 0600574 |  | lod | currchar |  |  |  | ; | @3419 | 
| 695 | 3419+ | 1000605 |  | jmp | getchara.ent |  |  |  | ; |  | 
| 696 | 3420 |  | ;-------------------------------------------------------------------- |  | 
| 697 | 3420 |  | =3404 |  |  | 
| 698 | 3404 |  | ; |  | 
| 699 | 3404 |  | ;interface to getchar - param list delimiter skipping |  | 
| 700 | 3404 |  | ; |  | 
| 701 | 3404 |  | SkipPLC.ent: | ; |  |  | 
| 702 | 3404 |  |  | call |  |  |  |  | ; | @3404 | 
| 702+1 | 3404 | 7303015006533 |  | lnk | getcharb.lnk | : | jmp | getcharb.ent |  |  | 
| 703 | 3405 | 4032535006520 |  | jmp | .skipa | : | jmp | .skipp | ; |  | 
| 704 | 3406 | 4032511006522 |  | jmp | _err42 | : | jmp | _err42 | ; | @3406 | 
| 705 | 3407 | 4032511006527 |  | jmp | _err42 | : | jmp | .skipa | ; |  | 
| 706 | 3408 |  | ; |  | 
| 707 | 3408 |  | .skipp: | ; |  |  | 
| 708 | 3408 | 0740574 |  | lzs | currchar |  |  |  | ;get current character |  | 
| 709 | 3408+ | 0100575 |  | add | ipshift |  |  |  | ;add shift |  | 
| 710 | 3409 | 0121444 |  | sub | K12 |  |  |  | ;=12 [:] |  | 
| 711 | 3409+ | 1046523 |  | jz | .skipq |  |  |  | ;OK, colon is allowed |  | 
| 712 | 3410 |  | _err42: | ; |  |  | 
| 713 | 3410 | 1661044 |  | lnk | errlnk |  |  |  | ;error 42: error in param delim | @3410 | 
| 714 | 3410+ | 1001070 |  | jmp | Error |  |  |  | ;error handler |  | 
| 715 | 3411 |  | ; |  | 
| 716 | 3411 |  | .skipq: | ; |  |  | 
| 717 | 3411 |  |  | call |  |  |  |  | ;get next char, should be '(' |  | 
| 717+1 | 3411 | 7305105001222 |  | lnk | gettoken.lnk | : | jmp | gettoken.ent |  |  | 
| 718 | 3412 | 0600600 |  | lod | token |  |  |  | ; | @3412 | 
| 719 | 3412+ | 0122204 |  | sub | K47a |  |  |  | ;=47, [(] |  | 
| 720 | 3413 | 0006373040001 |  | o00 | putcode.lnk | / | jz | 1 | ;return +1 |  | 
| 721 | 3414 | 1006522 |  | jmp | _err42 |  |  |  | ; | @3414 | 
| 722 | 3414+ |  |  | pad |  |  |  |  |  |  | 
| 722+1 | 3414+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 723 | 3415 |  | ; |  | 
| 724 | 3415 |  | ; note: jmp getchar.ent would be just as effective and save 4 words! |  | 
| 725 | 3415 |  | .skipa: | ; |  |  | 
| 726 | 3415 |  |  | call |  |  |  |  | ;letter, skip | @3415 | 
| 726+1 | 3415 | 7303015000604 |  | lnk | getchar.lnk | : | jmp | getchar.ent |  |  | 
| 727 | 3416 | 4032535006520 |  | jmp | .skipa | : | jmp | .skipp | ; | @3416 | 
| 728 | 3417 | 4032511006522 |  | jmp | _err42 | : | jmp | _err42 | ; |  | 
| 729 | 3418 | 4032511006527 |  | jmp | _err42 | : | jmp | .skipa | ; | @3418 | 
| 730 | 3419 |  | ;-------------------------------------------------------------------- |  | 
| 731 | 3419 |  | =3337 |  |  | 
| 732 | 3337 |  | ;interface to gencode |  | 
| 733 | 3337 |  | ; |  | 
| 734 | 3337 |  | PrepCall.ent: | ; |  |  | 
| 735 | 3337 |  |  | call |  |  |  |  | ;load proc info address |  | 
| 735+1 | 3337 | 7307175006413 |  | lnk | LdVarAddr.lnk | : | jmp | LdVarAddr.ent |  |  | 
| 736 | 3338 | 0603532 |  | lod | GPs+53 |  |  |  | ;=GP7F 7,00 call Setup | @3338 | 
| 737 | 3338+ | 1004033 |  | jmp | gencode.ent |  |  |  | ; generate call to prepare proc |  | 
| 738 | 3339 |  | ;-------------------------------------------------------------------- |  | 
| 739 | 3339 |  | =3339 |  |  | 
| 740 | 3339 |  | ; |  | 
| 741 | 3339 |  | LdVarAddr.ent: | ; |  |  | 
| 742 | 3339 | 0401422 |  | sto | GenAdr |  |  |  | ;store value for below | @3339 | 
| 743 | 3339+ | 0602200 |  | lod | K8a |  |  |  | ;=8 |  | 
| 744 | 3340 |  |  | call |  |  |  |  | ; | @3340 | 
| 744+1 | 3340 | 7306371001526 |  | lnk | putOpcd.lnk | : | jmp | putOpcd.ent |  |  | 
| 745 | 3341 | 0602226 |  | lod | K6 |  |  |  | ;=6 generate address, in GenAdr |  | 
| 746 | 3341+ |  |  | nop |  |  |  |  | ; |  | 
| 746+1 | 3341+ | 1006416 |  | jmp | .1 |  |  |  |  |  | 
| 746+2 | 3342 |  | .1: | ; |  |  | 
| 747 | 3342 |  |  | call |  |  |  |  | ; | @3342 | 
| 747+1 | 3342 | 7307445001712 |  | lnk | PutInst.lnk | : | jmp | PutInst.ent |  |  | 
| 748 | 3343 | 0606255 |  | lod | W3245 |  |  |  | ;=<00 0 : 30 4> inst ref, op=30 |  | 
| 749 | 3343+ | 1001640 |  | jmp | GenInst.ent |  |  |  | ; |  | 
| 750 | 3344 |  | ;-------------------------------------------------------------------- |  | 
| 751 | 3344 |  | ; |  | 
| 752 | 3344 |  | =3315 |  |  | 
| 753 | 3315 |  | ; compile code for invoke procedure (73 xx:40 yy) |  | 
| 754 | 3315 |  | ; |  | 
| 755 | 3315 |  | GenCall.ent: | ; |  |  | 
| 756 | 3315 | 0031166577777 |  | o00 | dicent | / | lod | -1 | ; | @3315 | 
| 757 | 3316 | 0062244 |  | and | M1188 |  |  |  | ; | @3316 | 
| 758 | 3316+ | 0406233 |  | sto | Link31 |  |  |  | ; |  | 
| 759 | 3317 | 0162165 |  | bus | Link15b |  |  |  | ; |  | 
| 760 | 3317+ | 0102225 |  | add | Bbit |  |  |  | ;=<000/000> |  | 
| 761 | 3318 |  |  | call |  |  |  |  | ; | @3318 | 
| 761+1 | 3318 | 7307445001761 |  | lnk | NopRef.lnk | : | jmp | NopRef.ent |  |  | 
| 762 | 3319 | 0606233 |  | lod | Link31 |  |  |  | ; |  | 
| 763 | 3319+ |  |  | nop |  |  |  |  | ; |  | 
| 763+1 | 3319+ | 1006370 |  | jmp | .1 |  |  |  |  |  | 
| 763+2 | 3320 |  | .1: | ; |  |  | 
| 764 | 3320 |  |  | call |  |  |  |  | ; | @3320 | 
| 764+1 | 3320 | 7307445001761 |  | lnk | NopRef.lnk | : | jmp | NopRef.ent |  |  | 
| 765 | 3321 | 0606255 |  | lod | W3245 |  |  |  | ; |  | 
| 766 | 3321+ | 1001640 |  | jmp | GenInst.ent |  |  |  | ; |  | 
| 767 | 3322 |  | ;-------------------------------------------------------------------- |  | 
| 768 | 3322 |  | =3301+ |  |  | 
| 769 | 3301+ |  | ; interfaces to gencode |  | 
| 770 | 3301+ |  | ; |  | 
| 771 | 3301+ |  | L3301P.ent: | ; |  |  | 
| 772 | 3301+ | 0606261 |  | lod | W3249 |  |  |  | ;=<00 4 / 00 13> |  | 
| 773 | 3302 | 0344031 |  | stc | IdInfo |  |  |  | ;store, set acc=0 | @3302 | 
| 774 | 3302+ | 1004032 |  | jmp | gencode1.ent |  |  |  | ;generate store |  | 
| 775 | 3303 |  | ;-------------------------------------------------------------------- |  | 
| 776 | 3303 |  | L3303.ent: | ; |  |  | 
| 777 | 3303 | 0603537 |  | lod | GPs+58 |  |  |  | ;=<40 10 : 00 7> GP7F 10,00 | @3303 | 
| 778 | 3303+ | 1004033 |  | jmp | gencode.ent |  |  |  | ; |  | 
| 779 | 3304 |  | ;-------------------------------------------------------------------- |  |