Pristine Ack-5.5
[Ack-5.5.git] / mach / pdp / libem / libem_s.a
1 eÿRT.s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0;\ 2.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
2 .define PRr2,PR2r2,PR4r2,PR6r2
3 .define PRr2r4,PR2r2r4,PR4r2r4,PR6r2r4
4 .define RT,RTr2,RTr2r4
5 ! $Id: RT.s,v 2.5 1994/06/24 13:14:44 ceriel Exp $
6
7 PR6r2:  mov $6,r0;br PRr2
8 PR4r2:  mov $4,r0;br PRr2
9 PR2r2:  mov $2,r0
10 PRr2:   mov r5,r1
11         mov sp,r5
12         sub r0,sp
13         mov r2,-(sp)
14         mov r1,pc
15
16 PR2r2r4:mov $2,r0;br PRr2r4
17 PR4r2r4:mov $4,r0;br PRr2r4
18 PR6r2r4:mov $6,r0
19 PRr2r4: mov r5,r1
20         mov sp,r5
21         sub r0,sp
22         mov r2,-(sp)
23         mov r4,-(sp)
24         mov r1,pc
25
26 RTr2r4:
27         mov (sp)+,r4
28 RTr2:
29         mov (sp)+,r2
30 RT:
31         mov r5,sp
32         mov (sp)+,r5
33         rts pc
34 \0adf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\r\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
35 .sect .text
36 .define adf~
37 .extern setfloat~
38 ! $Id: adf.s,v 2.4 1994/06/24 13:14:50 ceriel Exp $
39
40 !size in r0
41 adf~:
42         mov     (sp)+,r1
43         jsr     pc,setfloat~
44         movf    (sp)+,r0
45         addf    (sp)+,r0
46         movf    r0,-(sp)
47         setd
48         jmp     (r1)
49 2adi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0J\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
50 .sect .text
51 .define adi~
52 .extern unknown~
53 ! $Id: adi.s,v 2.3 1994/06/24 13:14:53 ceriel Exp $
54
55 !size in r0
56 adi~:
57         mov     (sp)+,r1
58         cmp     r0,$04
59         bgt     1f
60         cmp     r0,$02
61         bgt     2f
62         add     (sp)+,(sp)
63         jmp     (r1)
64 2:      add     (sp)+,02(sp)
65         add     (sp)+,02(sp)
66         adc     (sp)
67         jmp     (r1)
68 1:
69         jmp     unknown~
70 and.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ý\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
71 .sect .text
72 .define and~
73 ! $Id: and.s,v 2.4 1994/06/24 13:14:56 ceriel Exp $
74
75 ! size in r0
76 and~:
77         mov     (sp)+,r3
78         mov     sp,r1
79         add     r0,r1
80         asr     r0
81 1:      com     (sp)
82         bic     (sp)+,(r1)+
83         sob     r0,1b
84         jmp     (r3)
85 )cff.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\19\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
86 .sect .text
87 .define cff~
88 .extern setfloat~
89 ! $Id: cff.s,v 2.4 1994/06/24 13:14:59 ceriel Exp $
90
91 cff~:
92         mov     (sp)+,r1
93         mov     (sp)+,r0
94         cmp     (sp)+,r0
95         beq     1f
96         jsr     pc,setfloat~
97         movof   (sp)+,r0
98         movf    r0,-(sp)
99         setd
100 1:      jmp     (r1)
101 scfi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0,\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
102 .sect .text
103 .define cfi~
104 .extern setfloat~,setint~
105 ! $Id: cfi.s,v 2.4 1994/06/24 13:15:02 ceriel Exp $
106
107 cfi~:
108         mov     (sp)+,r1
109         mov     (sp)+,r0
110         jsr     pc,setint~
111         mov     (sp)+,r0
112         jsr     pc,setfloat~
113         movf    (sp)+,r0
114         movfi   r0,-(sp)
115         setd;seti
116         jmp     (r1)
117 cif.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0§\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
118 .sect .text
119 .define cif~,cuf~
120 .extern setint~,setfloat~
121 ! $Id: cif.s,v 2.4 1994/06/24 13:15:05 ceriel Exp $
122
123 cif~:
124         mov     (sp)+,r1
125         mov     (sp)+,r0
126         jsr     pc,setfloat~
127         mov     (sp)+,r0
128 1:      jsr     pc,setint~
129         movif   (sp)+,r0
130         movf    r0,-(sp)
131         setd;seti
132         jmp     (r1)
133 cuf~:
134         mov     (sp)+,r1
135         mov     (sp)+,r0
136         jsr     pc,setfloat~
137         mov     (sp)+,r0
138         cmp     r0,$02
139         bne     1b
140         clr     -(sp)
141         mov     $04,r0
142         br      1b
143  cii.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\8a\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
144 .sect .text
145 .define cii~
146 ! $Id: cii.s,v 2.4 1994/06/24 13:15:09 ceriel Exp $
147
148 !convert int to int
149 ! 1 byte -> ? : sign extension
150 cii~:
151         mov     (sp)+,r3
152         mov     (sp)+,r0
153         sub     (sp)+,r0
154         ble     1f
155         asr     r0
156         bcc     2f
157         movb    (sp),r1
158         mov     r1,(sp)
159 2:      tst     r0
160         beq     3f
161         tst     (sp)
162 4:      sxt     -(sp)
163         sob     r0,4b
164 1:      sub     r0,sp   ! if out of sob loop r0==0
165 3:      jmp     (r3)
166 ciu.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\16\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
167 .sect .text
168 .define cuu~
169 ! $Id: ciu.s,v 2.4 1994/06/24 13:15:13 ceriel Exp $
170
171 cuu~:
172         mov     (sp)+,r1
173         mov     (sp)+,r0
174         sub     (sp)+,r0
175         ble     1f
176         asr     r0
177 2:      clr     -(sp)
178         sob     r0,2b
179 1:      sub     r0,sp   ! if out of sob loop r0==0
180         jmp     (r1)
181 cmf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0:\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
182 .sect .text
183 .define cmf~
184 .extern setfloat~
185 ! $Id: cmf.s,v 2.4 1994/06/24 13:15:16 ceriel Exp $
186
187 cmf~:
188         jsr     pc,setfloat~
189         mov     (sp)+,r1
190         movf    (sp)+,r0
191         movf    (sp)+,r1
192         clr     r0
193         cmpf    r0,r1
194         setd
195         cfcc
196         beq     1f
197         blt     2f
198         dec     r0
199         jmp     (r1)
200 2:      inc     r0
201 1:      jmp     (r1)
202 cmi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\07\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
203 .sect .text
204 .define cmi~
205 .extern cmi4~,unknown~
206 ! $Id: cmi.s,v 2.3 1994/06/24 13:15:20 ceriel Exp $
207
208 ! Size in r0
209 cmi~:
210         cmp     r0,$02
211         bne     1f
212         mov     (sp)+,r1
213         mov     (sp)+,r0
214         sub     (sp)+,r0
215         neg     r0
216         jmp     (r1)
217 1:      cmp     r0,$04
218         bne     2f
219         jmp     cmi4~
220 2:      jmp     unknown~
221 1cmi4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0#\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
222 .sect .text
223 .define cmi4~
224 ! $Id: cmi4.s,v 2.4 1994/06/24 13:15:23 ceriel Exp $
225
226 cmi4~:
227         mov     (sp)+,r1
228         clr     r0
229         cmp     (sp),4(sp)
230         bgt     1f
231         blt     2f
232         cmp     2(sp),6(sp)
233         bhi     1f
234         beq     3f
235 2:
236         inc     r0
237         br      3f
238 1:
239         dec     r0
240 3:
241         add     $010,sp
242         jmp     (r1)
243 icms.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0&\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
244 .sect .text
245 .define cms~
246 .extern save~,retu~
247 ! $Id: cms.s,v 2.3 1994/06/24 13:15:26 ceriel Exp $
248
249 cms~:
250         jsr     pc,save~
251         mov     r0,r2
252         add     sp,r2
253         mov     r2,r4
254         add     r0,r4
255         asr     r0
256 2:      cmp     (sp)+,(r2)+
257         bne     1f
258         sob     r0,2b
259 1:      mov     r4,sp
260         jmp     retu~
261 cmu.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0L\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
262 .sect .text
263 .define cmu~
264 .extern unknown~,cmu4~
265 ! $Id: cmu.s,v 2.3 1994/06/24 13:15:29 ceriel Exp $
266
267 cmu~:
268         cmp     r0,$02
269         bne     3f
270         mov     (sp)+,r1
271         clr     r0
272         cmp     (sp)+,(sp)+
273         beq     2f
274         bhi     1f
275         inc     r0
276         br      2f
277 1:
278         dec     r0
279 2:
280         jmp     (r1)
281 3:      cmp     r0,$04
282         bne     2f
283         jmp     cmu4~
284 2:      jmp     unknown~
285 cmu4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0"\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
286 .sect .text
287 .define cmu4~
288 ! $Id: cmu4.s,v 2.4 1994/06/24 13:15:32 ceriel Exp $
289 cmu4~:
290         mov     (sp)+,r1
291         clr     r0
292         cmp     (sp),4(sp)
293         bhi     1f
294         blo     2f
295         cmp     2(sp),6(sp)
296         bhi     1f
297         beq     3f
298 2:
299         inc     r0
300         br      3f
301 1:
302         dec     r0
303 3:
304         add     $010,sp
305         jmp     (r1)
306 csa.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0M\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
307 .sect .text
308 .define csa~
309 .extern fat~
310 ! $Id: csa.s,v 2.3 1994/06/24 13:15:35 ceriel Exp $
311
312 ECASE   = 024
313
314 csa~:
315         sub     02(r0),r1
316         blt     1f
317         cmp     04(r0),r1
318         blo     1f
319         asl     r1
320         add     r1,r0
321         mov     06(r0),r1
322         beq     2f
323         jmp     (r1)
324 1:      mov     (r0),r0
325         beq     2f
326         jmp     (r0)
327 2:      mov     $ECASE,-(sp)
328         jmp     fat~
329 ocsb.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0d\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
330 .sect .text
331 .define csb~
332 .extern fat~
333 ! $Id: csb.s,v 2.4 1994/06/24 13:15:38 ceriel Exp $
334
335 ECASE   = 024
336
337 csb~:
338         mov     (r0)+,-(sp)
339         mov     (r0)+,r3
340         beq     1f
341 3:      cmp     (r0)+,r1
342         beq     2f
343         tst     (r0)+
344         sob     r3,3b
345 1:      mov     (sp)+,r1
346         br      4f
347 2:      tst     (sp)+
348         mov     (r0),r1
349 4:      beq     5f
350         jmp     (r1)
351 5:      mov     $ECASE,-(sp)
352         jmp     fat~
353 dup.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0æ\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
354 .sect .text
355 .define dup~
356 ! $Id: dup.s,v 2.4 1994/06/24 13:15:41 ceriel Exp $
357
358 dup~:
359         mov     (sp)+,r3
360         mov     sp,r1
361         add     r0,r1
362         asr     r0
363 1:      mov     -(r1),-(sp)
364         sob     r0,1b
365         jmp     (r3)
366 dvf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\r\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
367 .sect .text
368 .define dvf~
369 .extern setfloat~
370 ! $Id: dvf.s,v 2.4 1994/06/24 13:15:45 ceriel Exp $
371
372 dvf~:
373         mov     (sp)+,r1
374         jsr     pc,setfloat~
375         movf    (sp)+,r0
376         movf    (sp)+,r1
377         divf    r0,r1
378         movf    r1,-(sp)
379         setd
380         jmp     (r1)
381 ,dvi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0T\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
382 .sect .text
383 .define dvi~
384 .extern unknown~,dvi4~
385 ! $Id: dvi.s,v 2.4 1994/06/24 13:15:48 ceriel Exp $
386
387 dvi~:
388         mov     (sp)+,r3
389         cmp     r0,$04
390         bgt     1f
391         beq     2f
392         mov     02(sp),r1
393         sxt     r0
394         div     (sp)+,r0
395         mov     r0,(sp)
396         br      3f
397 2:      jsr     pc,dvi4~
398         mov     r1,-(sp)
399         mov     r0,-(sp)
400 3:      jmp     (r3)
401 1:      jmp     unknown~
402 dvi4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0¼\ 3.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
403 .sect .text
404 .define dvi4~
405 .extern save~,retu~
406 ! $Id: dvi4.s,v 2.4 1994/06/24 13:15:51 ceriel Exp $
407
408 dvi4~:
409         jsr     pc,save~
410         mov     02(sp),r3
411         sxt     r4
412         bpl     1f
413         neg     r3
414 1:      cmp     r4,(sp)
415         bne     hardldiv
416         mov     06(sp),r2
417         mov     04(sp),r1
418         bge     2f
419         neg     r1
420         neg     r2
421         sbc     r1
422         com     r4
423 2:      mov     r4,-(sp)
424         clr     r0
425         div     r3,r0
426         mov     r0,-(sp)
427         mov     r1,r0
428         mov     r1,r4
429         mov     r2,r1
430         div     r3,r0
431         bvc     3f
432         mov     r2,r1
433         mov     r4,r0
434         sub     r3,r0
435         div     r3,r0
436         tst     r1
437         sxt     r1
438         add     r1,r0
439 3:      mov     r0,r1
440         mov     (sp)+,r0
441         br      4f
442 hardldiv:
443         clr     -(sp)
444         mov     010(sp),r2
445         mov     06(sp),r1
446         bpl     5f
447         com     (sp)
448         neg     r1
449         neg     r2
450         sbc     r1
451 5:      clr     r0
452         mov     02(sp),r3
453         bge     6f
454         neg     r3
455         neg     04(sp)
456         sbc     r3
457         com     (sp)
458 6:      mov     $16,r4
459 9:      clc
460         rol     r2
461         rol     r1
462         rol     r0
463         cmp     r3,r0
464         bhi     7f
465         bcs     8f
466         cmp     04(sp),r1
467         blos    8f
468 7:      sob     r4,9b
469         br      1f
470 8:      sub     04(sp),r1
471         sbc     r0
472         sub     r3,r0
473         inc     r2
474         sob     r4,9b
475 1:
476         mov     r2,r1
477         clr     r0
478 4:      tst     (sp)+
479         beq     1f
480         neg     r0
481         neg     r1
482         sbc     r0
483 1:      add     $010,sp
484         jmp     retu~
485 dvu.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0D\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
486 .sect .text
487 .define dvu~
488 .extern unknown~,dvu4~,dvu2~
489 ! $Id: dvu.s,v 2.4 1994/06/24 13:15:54 ceriel Exp $
490
491 dvu~:
492         mov     (sp)+,r3
493         cmp     r0,$04
494         bgt     1f
495         beq     2f
496         jsr     pc,dvu2~
497         mov     r0,-(sp)
498         br      3f
499 2:      jsr     pc,dvu4~
500         mov     r1,-(sp)
501         mov     r0,-(sp)
502 3:      jmp     (r3)
503 1:      jmp     unknown~
504 dvu2.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\1c\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
505 .sect .text
506 .define dvu2~
507 ! $Id: dvu2.s,v 2.3 1994/06/24 13:15:57 ceriel Exp $
508 dvu2~:
509         clr     r0
510         mov     04(sp),r1
511         tst     02(sp)
512         blt     1f
513         div     02(sp),r0
514 2:      mov     (sp)+,r1
515         add     $04,sp
516         jmp     (r1)
517 1:      cmp     02(sp),r1
518         bhi     2b
519         inc     r0
520         br      2b
521 dvu4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ e\ 3.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
522 .sect .text
523 .define dvu4~
524 .extern save~,retu~
525 ! $Id: dvu4.s,v 2.4 1994/06/24 13:16:00 ceriel Exp $
526
527 dvu4~:
528         jsr     pc,save~
529         clr     r0
530         tst     (sp)
531         bne     harddvu4
532         tst     02(sp)
533         blt     harddvu4
534         mov     06(sp),r2
535         mov     04(sp),r1
536         mov     02(sp),r3
537         div     r3,r0
538         mov     r0,-(sp)
539         mov     r1,r0
540         mov     r1,r4
541         mov     r2,r1
542         div     r3,r0
543         bvc     1f
544         mov     r2,r1
545         mov     r4,r0
546         sub     r3,r0
547         div     r3,r0
548         tst     r1
549         sxt     r1
550         add     r1,r0
551 1:      mov     r0,r1
552         mov     (sp)+,r0
553         br      2f
554 harddvu4:
555         mov     06(sp),r2
556         mov     04(sp),r1
557         mov     (sp),r3
558         mov     $17,r4
559         br      3f
560 6:      rol     r2
561         rol     r1
562         rol     r0
563 3:      cmp     r3,r0
564         bhi     4f
565         blo     5f
566         cmp     02(sp),r1
567         blos    5f
568 4:      clc
569         sob     r4,6b
570         br      7f
571 5:      sub     02(sp),r1
572         sbc     r0
573         sub     r3,r0
574         sec
575         sob     r4,6b
576 7:      rol     r2
577         bcc     8f
578         mov     $01,r0
579         br      9f
580 8:      clr     r0
581 9:      mov     r2,r1
582 2:      add     $010,sp
583         jmp     retu~
584 eret.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Ä\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
585 .define eret
586 ! $Id: eret.s,v 2.3 1994/06/24 13:16:03 ceriel Exp $
587
588 eret:
589         mov r5,sp
590         mov (sp)+,r5
591         mov (sp)+,r4
592         mov (sp)+,r2
593         rts pc
594 exg.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0'\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
595 .define exg~
596 ! $Id: exg.s,v 2.3 1994/06/24 13:16:06 ceriel Exp $
597
598 exg~:   jsr pc,save~
599         mov sp,r4
600         sub r0,sp
601         mov sp,r3
602         mov r0,r1
603 1:
604         mov (r4)+,(r3)+
605         sob r0,1b
606         asr r1
607         mov sp,r4
608 1:
609         mov (r4)+,(r3)+
610         sob r1,1b
611         mov r4,sp
612         jmp retu~
613
614 0fef.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 3\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
615 .define fef~
616 .extern setfloat~
617 ! $Id: fef.s,v 2.4 1994/06/24 13:16:10 ceriel Exp $
618
619 fef~:
620         mov     (sp)+,r1
621         jsr     pc,setfloat~
622         movf    (sp),r0
623         movei   r0,-(sp)
624         movie   $0,r0
625         movf    r0,02(sp)
626         setd
627         jmp     (r1)
628 +fif.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 4\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
629 .define fif~
630 .extern setfloat~
631 ! $Id: fif.s,v 2.4 1994/06/24 13:16:14 ceriel Exp $
632
633 fif~:
634         mov     (sp)+,r1
635         jsr     pc,setfloat~
636         movf    (sp)+,r0
637         modf    (sp)+,r0
638         movf    r0,-(sp)
639         movf    r1,-(sp)
640         setd
641         jmp     (r1)
642 gto.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0V\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
643 .sect .text
644 .define gto~
645 ! $Id: gto.s,v 2.4 1994/06/24 13:16:19 ceriel Exp $
646
647 gto~:
648         mov     (sp)+,r4
649         mov     4(r4),r5
650         mov     2(r4),sp
651         mov      (r4),pc
652 !
653 !       mov     (sp)+,r3
654 !1:     cmp     4(r3),r5
655 !       jeq     2f
656 !       mov     2(r5),r4
657 !       mov     4(r5),r2
658 !       mov     (r5),r5
659 !       br      1b
660 !2:     mov     2(r3),sp
661 !       jmp     *(r3)
662 iaar.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0J\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
663 .sect .text
664 .define iaar~
665 .extern aar~,trp~
666 ! $Id: iaar.s,v 2.3 1994/06/24 13:16:23 ceriel Exp $
667
668 EILLINS = 022
669
670 iaar~:
671         mov     (sp)+,r0
672         cmp     (sp)+,$02
673         bne     1f
674         mov     02(sp),r1
675         mov     r0,02(sp)
676         mov     (sp)+,r0
677         jmp     aar~
678 1:      mov     $EILLINS,-(sp)
679         jsr     pc,trp~
680         add     $06,sp
681         jmp     (r0)
682 aar.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\r\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
683 .sect .text
684 .define aar~
685 ! $Id: aar.s,v 2.4 1994/06/24 13:14:47 ceriel Exp $
686
687 !r0 : descriptor address
688 !r1 : element number
689 !base address is on stack
690 aar~:
691         sub     (r0),r1
692         mul     04(r0),r1
693         add     r1,02(sp)
694         rts     pc
695 ailar.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0J\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
696 .sect .text
697 .define ilar~
698 .extern lar~,trp~
699 ! $Id: ilar.s,v 2.3 1994/06/24 13:16:28 ceriel Exp $
700
701 EILLINS = 022
702
703 ilar~:
704         mov     (sp)+,r0
705         cmp     (sp)+,$02
706         bne     1f
707         mov     02(sp),r1
708         mov     r0,02(sp)
709         mov     (sp)+,r0
710         jmp     lar~
711 1:      mov     $EILLINS,-(sp)
712         jsr     pc,trp~
713         add     $06,sp
714         jmp     (r0)
715 inn.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0x\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
716 .sect .text
717 .define inn~
718 ! $Id: inn.s,v 2.4 1994/06/24 13:16:32 ceriel Exp $
719
720 inn~:
721         mov     r0,-(sp)
722         clr     r0
723         div     $010,r0
724         cmp     r0,(sp)
725         bcc     1f
726         add     sp,r0
727         bitb    bits(r1),4(r0)
728         beq     1f
729         mov     $01,r0
730         br      2f
731 1:      clr     r0
732 2:      mov     02(sp),r1
733         add     (sp)+,sp
734         tst     (sp)+
735         jmp     (r1)
736 .sect .data
737 bits:   .data1  1,2,4,010,020,040,0100,0200
738 isar.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0J\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
739 .sect .text
740 .define isar~
741 .extern sar~,trp~
742 ! $Id: isar.s,v 2.3 1994/06/24 13:16:36 ceriel Exp $
743
744 EILLINS = 022
745
746 isar~:
747         mov     (sp)+,r0
748         cmp     (sp)+,$02
749         bne     1f
750         mov     02(sp),r1
751         mov     r0,02(sp)
752         mov     (sp)+,r0
753         jmp     sar~
754 1:      mov     $EILLINS,-(sp)
755         jsr     pc,trp~
756         add     $06,sp
757         jmp     (r0)
758 lar.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0I\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
759 .sect .text
760 .define lar~
761 ! $Id: lar.s,v 2.4 1994/06/24 13:16:39 ceriel Exp $
762
763 lar~:
764         mov     (sp)+,r3
765         sub     (r0),r1
766         mov     04(r0),r0
767         mul     r0,r1
768         add     (sp)+,r1
769         add     r0,r1
770         asr     r0
771         beq     1f
772 2:      mov     -(r1),-(sp)
773         sob     r0,2b
774         jmp     (r3)
775 1:      clr     r0
776         bisb    -(r1),r0
777         mov     r0,-(sp)
778         jmp     (r3)
779
780 los2.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\19\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
781 .sect .text
782 .define los2~
783 ! $Id: los2.s,v 2.4 1994/06/24 13:16:43 ceriel Exp $
784
785 los2~:
786         mov     (sp)+,r3
787         cmp     r0,$01
788         bne     1f
789         clr     -(sp)
790         bisb    (r1),(sp)
791         jmp     (r3)
792 1:      add     r0,r1
793         asr     r0
794 2:      mov     -(r1),-(sp)
795         sob     r0,2b
796         jmp     (r3)
797 :mlf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 1\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
798 .sect .text
799 .define mlf~
800 .extern setfloat~
801 ! $Id: mlf.s,v 2.4 1994/06/24 13:16:46 ceriel Exp $
802
803 mlf~:
804         mov     (sp)+,r1
805         jsr     pc,setfloat~
806         movf    (sp)+,r0
807         mulf    (sp)+,r0
808         movf    r0,-(sp)
809         setd
810         jmp     (r1)
811 pmli.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0[\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
812 .sect .text
813 .define mli~
814 .extern unknown~,mli4~
815 ! $Id: mli.s,v 2.4 1994/06/24 13:16:49 ceriel Exp $
816
817 mli~:
818         cmp     r0,$04
819         bgt     1f
820         beq     2f
821         mov     (sp)+,r0
822         mov     (sp)+,r1
823         mul     (sp)+,r1
824         mov     r1,-(sp)
825         jmp     (r0)
826 2:      mov     (sp)+,r3
827         jsr     pc,mli4~
828         mov     r1,-(sp)
829         mov     r0,-(sp)
830         jmp     (r3)
831 1:      jmp     unknown~
832         mli4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0P\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
833 .sect .text
834 .define mli4~
835 .extern save~,retu~
836 ! $Id: mli4.s,v 2.3 1994/06/24 13:16:54 ceriel Exp $
837
838 mli4~:
839         jsr     pc,save~
840         mov     02(sp),r2
841         sxt     r1
842         sub     (sp),r1
843         mov     06(sp),r0
844         sxt     r3
845         sub     04(sp),r3
846         mul     r0,r1
847         mul     r2,r3
848         add     r1,r3
849         mul     r2,r0
850         sub     r3,r0
851         add     $010,sp
852         jmp     retu~
853 mlu.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0[\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
854 .sect .text
855 .define mlu~
856 .extern unknown~,mlu4~
857 ! $Id: mlu.s,v 2.4 1994/06/24 13:16:59 ceriel Exp $
858
859 mlu~:
860         cmp     r0,$04
861         bgt     1f
862         beq     2f
863         mov     (sp)+,r0
864         mov     (sp)+,r1
865         mul     (sp)+,r1
866         mov     r1,-(sp)
867         jmp     (r0)
868 2:      mov     (sp)+,r3
869         jsr     pc,mlu4~
870         mov     r1,-(sp)
871         mov     r0,-(sp)
872         jmp     (r3)
873 1:      jmp     unknown~
874         mlu4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0q\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
875 .sect .text
876 .define mlu4~
877 .extern save~,retu~
878 ! $Id: mlu4.s,v 2.4 1994/06/24 13:17:04 ceriel Exp $
879
880 mlu4~:
881         jsr     pc,save~
882         clr     r1
883         mov     02(sp),r0
884         mov     06(sp),r3
885         mul     r3,r0
886         tst     r3
887         bge     1f
888         add     02(sp),r0
889 1:      mov     02(sp),r3
890         mul     04(sp),r3
891         add     r3,r0
892         mov     06(sp),r3
893         mul     (sp),r3
894         add     r3,r0
895         add     $010,sp
896         jmp     retu~
897 0mon.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Õ\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
898 ! $Id: mon.s,v 2.4 1994/06/24 13:17:09 ceriel Exp $
899 .sect .text
900 .define mon~
901
902 EBADMON = 031
903
904 mon~:
905         mov     $EBADMON,-(sp)
906         jsr     pc,trp~
907         tst     (sp)+
908         rts     pc
909 (ngf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Ð\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
910 .sect .text
911 .define ngf~
912 .extern setfloat~
913 ! $Id: ngf.s,v 2.5 1994/06/24 13:17:14 ceriel Exp $
914
915 ngf~:
916         jsr     pc,setfloat~
917         negf    2(sp)
918         setd
919         rts     pc
920 ngi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0)\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
921 .sect .text
922 .define ngi~
923 .extern unknown~
924 ! $Id: ngi.s,v 2.3 1994/06/24 13:17:19 ceriel Exp $
925
926 ngi~:
927         mov     (sp)+,r1
928         cmp     r0,$02
929         bgt     1f
930         neg     (sp)
931         jmp     (r1)
932 1:      cmp     r0,$04
933         bgt     2f
934         neg     (sp)
935         neg     02(sp)
936         sbc     (sp)
937         jmp     (r1)
938 2:      jmp     unknown~
939 dnop.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0       \ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
940 .sect .text
941 .define nop~
942 .extern hol0,prf~
943 ! $Id: nop.s,v 2.3 1994/06/24 13:17:24 ceriel Exp $
944
945 nop~:
946         mov     hol0,-(sp)
947         mov     $fmt,-(sp)
948         jsr     pc,prf~
949         add     $04,sp
950         rts     pc
951 .sect .data
952 fmt:    .asciz "test %d\n"
953         prf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\08\ 2.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
954 .sect .text
955 .define prf~
956 .extern save~,retu~,hol0,printf~
957 ! $Id: prf.s,v 2.5 1994/06/24 13:17:30 ceriel Exp $
958
959 prf~:
960         jsr     pc,save~
961         mov     hol0,-(sp)
962         mov     hol0+4,r0
963         beq     1f
964         mov     r0,r2
965         mov     $050,r1
966 3:      movb    (r2)+,r3
967         beq     2f
968         cmpb    r3,$0177
969         bge     1f
970         cmpb    r3,$040
971         blt     1f
972         sob     r1,3b
973         clrb    (r2)
974 2:      mov     sp,r1
975         mov     r1,-(sp)
976         mov     r0,-(sp)
977         mov     $fmt,-(sp)
978         jsr     pc,printf~
979         add     $010,sp
980         jsr     pc,printf~
981         jmp     retu~
982 1:      mov     $name,r0
983         br      2b
984
985 .sect .data
986 fmt:    .asciz "\"%s\", sp = %d, line %d: "
987 name:   .asciz "_unknown file_"
988 printf.s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0^\ 3.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
989 .sect .text
990 .define printf~
991 ! $Id: printf.s,v 2.6 1994/06/24 13:17:35 ceriel Exp $
992
993 printf~:
994         mov     r2,-(sp)
995         mov     r3,-(sp)
996         mov     r4,-(sp)
997         mov     sp,r3
998         mov     $buff,r4
999         add     $010,r3
1000         mov     (r3)+,r2
1001 prloop:
1002         movb    (r2)+,r0
1003         beq     ready
1004         cmpb    r0,$045
1005         bne     1f
1006         movb    (r2)+,r0
1007         cmpb    r0,$0144
1008         beq     2f
1009         cmpb    r0,$0163
1010         beq     3f
1011 1:      movb    r0,(r4)+
1012         br      prloop
1013 2:      mov     (r3)+,r1
1014         bge     4f
1015         movb    $055,(r4)+
1016         neg     r1
1017 4:      jsr     pc,printn
1018         br      prloop
1019 printn:
1020         clr     r0
1021         div     $010,r0
1022         beq     5f
1023         mov     r1,-(sp)
1024         mov     r0,r1
1025         jsr     pc,printn
1026         mov     (sp)+,r1
1027 5:      add     $060,r1
1028         movb    r1,(r4)+
1029         rts     pc
1030 3:      mov     (r3)+,r1
1031 7:      movb    (r1)+,r0
1032         bne     6f
1033         br      prloop
1034 6:      movb    r0,(r4)+
1035         br      7b
1036 ready:
1037         movb    r0,(r4)+
1038         sub     $buff,r4
1039         mov     r4,-(sp)
1040         mov     $buff,-(sp)
1041         mov     $01,-(sp)
1042         jsr     pc,WRITE
1043         add     $06,sp
1044         mov     (sp)+,r4
1045         mov     (sp)+,r3
1046         mov     (sp)+,r2
1047         rts     pc
1048 .sect .bss
1049 buff:   .space 256
1050 rck.s\0.s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\17\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1051 .sect .text
1052 .define rck~
1053 .extern trp~
1054 ! $Id: rck.s,v 2.3 1994/06/24 13:17:41 ceriel Exp $
1055
1056 ERANGE  = 1
1057
1058 rck~:
1059         mov     (sp)+,r1
1060         cmp     (sp),(r0)
1061         blt     1f
1062         cmp     (sp),02(r0)
1063         ble     2f
1064 1:      mov     $ERANGE,-(sp)
1065         jsr     pc,trp~
1066 2:      jmp     (r1)
1067 aret.s\0.s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0¬\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1068 .sect .text
1069 .define ret~,lfr~
1070 .extern unknown~, retar
1071 ! $Id: ret.s,v 2.5 1994/06/24 13:17:46 ceriel Exp $
1072
1073 ! Size in r0
1074 ret~:
1075         mov     r0,r1
1076         beq     1f
1077         asr     r1
1078         add     $retar,r0
1079         cmp     r0,$retend
1080         bhi     9f
1081 3:      mov     (sp)+,-(r0)
1082         sob     r1,3b
1083 1:      mov     r5,sp
1084         mov     (sp)+,r5
1085         rts     pc
1086 9:      jmp     unknown~
1087 lfr~:
1088         mov     (sp)+,r3
1089         asr     r0
1090         beq     4f
1091         mov     $retar,r1
1092 5:      mov     (r1)+,-(sp)
1093         sob     r0,5b
1094 4:      jmp     (r3)
1095 rmi.s\0.s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0T\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1096 .sect .text
1097 .define rmi~
1098 .extern unknown~,rmi4~
1099 ! $Id: rmi.s,v 2.4 1994/06/24 13:17:50 ceriel Exp $
1100
1101 rmi~:
1102         mov     (sp)+,r3
1103         cmp     r0,$04
1104         bgt     1f
1105         beq     2f
1106         mov     02(sp),r1
1107         sxt     r0
1108         div     (sp)+,r0
1109         mov     r1,(sp)
1110         br      3f
1111 2:      jsr     pc,rmi4~
1112         mov     r1,-(sp)
1113         mov     r0,-(sp)
1114 3:      jmp     (r3)
1115 1:      jmp     unknown~
1116 rmi4.s\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0~\ 3.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1117 .sect .text
1118 .define rmi4~
1119 .extern save~,retu~
1120 ! $Id: rmi4.s,v 2.4 1994/06/24 13:17:55 ceriel Exp $
1121
1122 rmi4~:
1123         jsr     pc,save~
1124         mov     02(sp),r3
1125         sxt     r4
1126         bpl     1f
1127         neg     r3
1128 1:      cmp     r4,(sp)
1129         bne     hardrmi4
1130         mov     06(sp),r2
1131         mov     04(sp),r1
1132         mov     r1,r4
1133         bge     2f
1134         neg     r1
1135         neg     r2
1136         sbc     r1
1137 2:      mov     r4,-(sp)
1138         clr     r0
1139         div     r3,r0
1140         mov     r1,r0
1141         mov     r1,r4
1142         mov     r2,r1
1143         div     r3,r0
1144         bvc     3f
1145         mov     r2,r1
1146         mov     r4,r0
1147         sub     r3,r0
1148         div     r3,r0
1149         tst     r1
1150         beq     3f
1151         add     r3,r1
1152 3:      tst     (sp)+
1153         bpl     4f
1154         neg     r1
1155 4:      sxt     r0
1156         br      9f
1157 hardrmi4:
1158         mov     06(sp),r2
1159         mov     04(sp),r1
1160         bpl     5f
1161         neg     r1
1162         neg     r2
1163         sbc     r1
1164 5:      clr     r0
1165         mov     (sp),r3
1166         bge     6f
1167         neg     r3
1168         neg     02(sp)
1169         sbc     r3
1170 6:      mov     $16,r4
1171 1:      clc
1172         rol     r2
1173         rol     r1
1174         rol     r0
1175         cmp     r3,r0
1176         bhi     7f
1177         bcs     8f
1178         cmp     02(sp),r1
1179         blos    8f
1180 7:      sob     r4,1b
1181         br      2f
1182 8:      sub     02(sp),r1
1183         sbc     r0
1184         sub     r3,r0
1185         sob     r4,1b
1186 2:      tst     04(sp)
1187         bge     9f
1188         neg     r0
1189         neg     r1
1190         sbc     r0
1191 9:      add     $010,sp
1192         jmp     retu~
1193 rmu.s\0\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Y\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1194 .sect .text
1195 .define rmu~
1196 .extern rmu2~,rmu4~,unknown~
1197 ! $Id: rmu.s,v 2.4 1994/06/24 13:18:00 ceriel Exp $
1198
1199 rmu~:
1200         mov     (sp)+,r3
1201         cmp     r0,$04
1202         bgt     1f
1203         beq     2f
1204         cmp     r0,$02
1205         bne     1f
1206         jsr     pc,rmu2~
1207         mov     r1,-(sp)
1208         jmp     (r3)
1209 2:      jsr     pc,rmu4~
1210         mov     r1,-(sp)
1211         mov     r0,-(sp)
1212         jmp     (r3)
1213 1:      jmp     unknown~
1214 rrmu2.s\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1215 .sect .text
1216 .define rmu2~
1217 ! $Id: rmu2.s,v 2.3 1994/06/24 13:18:05 ceriel Exp $
1218
1219 rmu2~:
1220         mov     04(sp),r1
1221         tst     02(sp)
1222         blt     1f
1223         clr     r0
1224         div     02(sp),r0
1225 2:      mov     (sp)+,r0
1226         add     $04,sp
1227         jmp     (r0)
1228 1:      cmp     02(sp),r1
1229         bhi     2b
1230         sub     02(sp),r1
1231         br      2b
1232 rmu4.s\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0®\ 2.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1233 .sect .text
1234 .define rmu4~
1235 .extern save~,retu~
1236 ! $Id: rmu4.s,v 2.4 1994/06/24 13:18:09 ceriel Exp $
1237
1238 rmu4~:
1239         jsr     pc,save~
1240         clr     r0
1241         tst     (sp)
1242         bne     hardrmu4
1243         tst     02(sp)
1244         blt     hardrmu4
1245         mov     06(sp),r2
1246         mov     04(sp),r1
1247         mov     02(sp),r3
1248         div     r3,r0
1249         mov     r1,r0
1250         mov     r1,r4
1251         mov     r2,r1
1252         div     r3,r0
1253         bvc     1f
1254         mov     r2,r1
1255         mov     r4,r0
1256         sub     r3,r0
1257         div     r3,r0
1258         tst     r1
1259         beq     1f
1260         add     r3,r1
1261 1:      clr     r0
1262         br      2f
1263 hardrmu4:
1264         mov     06(sp),r2
1265         mov     04(sp),r1
1266         mov     (sp),r3
1267         mov     $17,r4
1268         br      3f
1269 6:      clc
1270         rol     r2
1271         rol     r1
1272         rol     r0
1273 3:      cmp     r3,r0
1274         bhi     4f
1275         bcs     5f
1276         cmp     02(sp),r1
1277         blos    5f
1278 4:      sob     r4,6b
1279         br      2f
1280 5:      sub     02(sp),r1
1281         sbc     r0
1282         sub     r3,r0
1283         sob     r4,6b
1284 2:      add     $010,sp
1285         jmp     retu~
1286 rol.s\0\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0D\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1287 .sect .text
1288 .define rol~
1289 .extern save~,retu~
1290 ! $Id: rol.s,v 2.3 1994/06/24 13:18:13 ceriel Exp $
1291
1292 rol~:
1293         jsr     pc,save~
1294         mov     (sp)+,r3
1295 3:      add     r0,sp
1296         mov     r0,r1
1297         asr     r1
1298         clc
1299 1:      rol     -(sp)
1300         sob     r1,1b
1301         bcc     2f
1302         mov     sp,r1
1303         add     r0,r1
1304         bis     $01,-(r1)
1305 2:      sob     r3,3b
1306         jmp     retu~
1307 ror.s\0\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0E\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1308 .sect .text
1309 .define ror~
1310 .extern save~,retu~
1311 ! $Id: ror.s,v 2.3 1994/06/24 13:18:17 ceriel Exp $
1312
1313 ror~:
1314         asr     r0
1315         jsr     pc,save~
1316         mov     (sp)+,r3
1317 3:      mov     sp,r1
1318         mov     r0,-(sp)
1319         clc
1320 1:      ror     (r1)+
1321         sob     r0,1b
1322         bcc     2f
1323         bis     $0100000,02(sp)
1324 2:      mov     (sp)+,r0
1325         sob     r3,3b
1326         jmp     retu~
1327 2sar.s\0\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1328 .sect .text
1329 .define sar~
1330 ! $Id: sar.s,v 2.4 1994/06/24 13:18:21 ceriel Exp $
1331
1332 sar~:
1333         mov     (sp)+,r3
1334         sub     (r0),r1
1335         mov     04(r0),r0
1336         mul     r0,r1
1337         add     (sp)+,r1
1338         asr     r0
1339         beq     1f
1340 2:      mov     (sp)+,(r1)+
1341         sob     r0,2b
1342         jmp     (r3)
1343 1:      movb    (sp)+,(r1)
1344         jmp     (r3)
1345 sbf.s\0\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0
1346 \ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1347 .sect .text
1348 .define sbf~
1349 .extern setfloat~
1350 ! $Id: sbf.s,v 2.4 1994/06/24 13:18:27 ceriel Exp $
1351
1352 sbf~:
1353         mov     (sp)+,r1
1354         jsr     pc,setfloat~
1355         movf    (sp)+,r0
1356         subf    (sp)+,r0
1357         negf    r0
1358         movf    r0,-(sp)
1359         setd
1360         jmp     (r1)
1361 sbi.s\0\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0>\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1362 .sect .text
1363 .define sbi~
1364 .extern unknown~
1365 ! $Id: sbi.s,v 2.3 1994/06/24 13:18:30 ceriel Exp $
1366
1367 sbi~:
1368         mov     (sp)+,r1
1369         cmp     r0,$04
1370         bgt     1f
1371         cmp     r0,$02
1372         bgt     2f
1373         sub     (sp)+,(sp)
1374         jmp     (r1)
1375 2:      sub     (sp)+,02(sp)
1376         sub     (sp)+,02(sp)
1377         sbc     (sp)
1378         jmp     (r1)
1379 1:
1380         jmp     unknown~
1381 set.s\0\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\9a\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1382 .sect .text
1383 .define set~
1384 .extern save~,retu~,trp~
1385 ! $Id: set.s,v 2.3 1994/06/24 13:18:34 ceriel Exp $
1386
1387 ESET    = 2
1388
1389 set~:
1390         jsr     pc,save~
1391         mov     r0,r2
1392         asr     r0
1393 1:      clr     -(sp)
1394         sob     r0,1b
1395         div     $010,r0
1396         cmp     r0,r2
1397         blo     2f
1398         mov     $ESET,-(sp)
1399         jsr     pc,trp~
1400         jmp     retu~
1401 2:      add     sp,r0
1402         bisb    bits(r1),(r0)
1403         jmp     retu~
1404
1405 .sect .data
1406 bits:    .data1 1,2,4,010,020,040,0100,0200
1407 setfl.s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0S\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1408 .sect .text
1409 .define setfloat~,setint~
1410 .extern unknown~
1411 ! $Id: setfl.s,v 2.4 1994/06/24 13:18:37 ceriel Exp $
1412
1413 setfloat~:
1414         cmp     r0,$8
1415         bne     1f
1416         rts     pc
1417 1:      cmp     r0,$04
1418         bne     3f
1419         setf
1420 2:      rts     pc
1421 3:      jmp     unknown~
1422 setint~:
1423         cmp     r0,$04
1424         bne     4f
1425         setl
1426         rts     pc
1427 4:      cmp     r0,$02
1428         bne     3b
1429 5:      rts     pc
1430 (sim.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0¹\ 1#
1431 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1432 .sect .text
1433 .define sim~
1434 .extern trpim~
1435 ! $Id: sim.s,v 2.4 1994/06/24 13:18:42 ceriel Exp $
1436
1437 #define float
1438
1439 sim~:
1440         mov     (sp)+,r3
1441         mov     (sp)+,r0
1442         mov     r0,trpim~
1443 #ifdef float
1444         stfps   r1
1445         bis     $07400,r1
1446         bit     $020,r0
1447         beq     0f
1448         bic     $01000,r1
1449 0:      bit     $040,r0
1450         beq     0f
1451         bic     $02000,r1
1452 0:      bit     $01000,r0
1453         beq     0f
1454         bic     $04000,r1
1455 0:      bit     $02000,r0
1456         beq     0f
1457         bic     $0400,r1
1458 0:      ldfps   r1
1459 #endif
1460         jmp     (r3)
1461 rsli.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0}\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1462 .sect .text
1463 .define sli~
1464 .extern unknown~
1465 ! $Id: sli.s,v 2.4 1994/06/24 13:18:46 ceriel Exp $
1466
1467 sli~:
1468         mov     (sp)+,r3
1469         cmp     r0,$02
1470         bgt     1f
1471         mov     (sp)+,r1
1472         mov     (sp)+,r0
1473         ash     r1,r0
1474         mov     r0,-(sp)
1475         jmp     (r3)
1476 1:      cmp     r0,$04
1477         bgt     2f
1478         mov     02(sp),r0
1479         mov     04(sp),r1
1480         ashc    (sp)+,r0
1481         mov     r0,(sp)
1482         mov     r1,02(sp)
1483         jmp     (r3)
1484 2:      jmp     unknown~
1485 0sri.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\9d\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1486 .sect .text
1487 .define sri~
1488 .extern unknown~
1489 ! $Id: sri.s,v 2.4 1994/06/24 13:18:49 ceriel Exp $
1490
1491 ! Size in r0
1492 sri~:
1493         mov     (sp)+,r3~
1494         cmp     r0,$02
1495         bgt     1f
1496         mov     (sp)+,r1
1497         mov     (sp)+,r0
1498         neg     r1
1499         ash     r1,r0
1500         mov     r0,-(sp)
1501         jmp     (r3)
1502 1:      cmp     r0,$04
1503         bgt     2f
1504         mov     02(sp),r0
1505         mov     04(sp),r1
1506         neg     (sp)
1507         ashc    (sp)+,r0
1508         mov     r0,(sp)
1509         mov     r1,02(sp)
1510         jmp     (r3)
1511 2:      jmp     unknown~
1512 :sru.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Á\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1513 .sect .text
1514 .define sru~
1515 .extern unknown~
1516 ! $Id: sru.s,v 2.5 1994/06/24 13:18:52 ceriel Exp $
1517
1518 sru~:
1519         neg     2(sp)
1520         mov     (sp)+,r3
1521         cmp     r0,$02
1522         bgt     1f
1523         mov     2(sp),r1
1524         clr     r0
1525         ashc    (sp)+,r0
1526         mov     r1,(sp)
1527         jmp     (r3)
1528 1:      cmp     r0,$04
1529         bgt     3f
1530         mov     02(sp),r0
1531         mov     04(sp),r1
1532         tst     (sp)
1533         beq     4f
1534         ashc    $-1,r0
1535         bic     $0100000,r0
1536         inc     (sp)
1537 4:      ashc    (sp)+,r0
1538         mov     r0,(sp)
1539         mov     r1,02(sp)
1540         jmp     (r3)
1541 3:      jmp     unknown~
1542 osto2.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ e\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1543 .sect .text
1544 .define sto2~
1545 ! $Id: sto2.s,v 2.4 1994/06/24 13:18:55 ceriel Exp $
1546
1547 sto2~:
1548         mov     (sp)+,r3
1549         cmp     r0,$01
1550         bne     1f
1551         movb    (sp),(r1)
1552         tst     (sp)+
1553         jmp     (r3)
1554 1:      asr     r0
1555 2:      mov     (sp)+,(r1)+
1556         sob     r0,2b
1557         jmp     (r3)
1558 strhp.s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0¯\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1559 .sect .text
1560 .define strhp~
1561 .extern trp~,reghp~
1562 ! $Id: strhp.s,v 2.8 1994/06/24 13:18:58 ceriel Exp $
1563
1564 EHEAP   = 021
1565
1566 strhp~:
1567         mov     (sp)+,r0
1568         mov     (sp)+,r1
1569         mov     r0,-(sp)
1570         mov     r1,reghp~
1571         cmp     r1,2f
1572         blos    1f
1573         add     $01777,r1
1574         bic     $01777,r1
1575         mov     r1,-(sp)
1576         mov     r1,2f
1577         jsr     pc,BRK
1578         tst     (sp)+
1579         tst     r0
1580         blt     3f
1581 1:      rts     pc
1582 3:      mov     $EHEAP,-(sp)
1583         jsr     pc,trp~
1584         rts     pc
1585 .sect .data
1586 2:      .data2 0
1587 )unknown.s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Ø\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1588 .sect .text
1589 .define unknown~
1590 ! $Id: unknown.s,v 2.3 1994/06/24 13:19:04 ceriel Exp $
1591 .extern fat~
1592
1593 EILLSIZ = 023
1594
1595 unknown~:
1596         mov     $EILLSIZ,-(sp)
1597         jmp     fat~
1598 trp.s\0n.s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\85\ 6.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1599 .sect .text
1600 .define trp~,fat~
1601 .extern trppc~,trpim~,savearea,retar
1602 ! $Id: trp.s,v 2.8 1994/06/24 13:19:01 ceriel Exp $
1603
1604 fat~:
1605         jsr     pc,trp~
1606         jsr     pc,EXIT
1607
1608 trp~:
1609         mov     r0,-(sp)
1610         mov     04(sp),r0
1611         mov     02(sp),04(sp)
1612         mov     (sp),02(sp)
1613         mov     r1,(sp)
1614         cmp     r0,$020
1615         jhis    0f
1616         mov     $01,r1
1617         ashc    r0,r1
1618         bit     r1,trpim~
1619         bne     8f
1620 0:      mov     r2,-(sp)
1621         mov     r3,-(sp)
1622         mov     r4,-(sp)
1623         movf    r0,-(sp)
1624         movf    r1,-(sp)
1625         movf    r2,-(sp)
1626         movf    r3,-(sp)
1627         stfps   -(sp)
1628         mov     $savearea,r2
1629         mov     (r2)+,-(sp)
1630         mov     (r2)+,-(sp)
1631         mov     (r2)+,-(sp)
1632         mov     (r2)+,-(sp)
1633         mov     (r2)+,-(sp)
1634         mov     (r2)+,-(sp)
1635         mov     $retar,r2
1636         mov     (r2)+,-(sp)
1637         mov     (r2)+,-(sp)
1638         mov     (r2)+,-(sp)
1639         mov     (r2)+,-(sp)
1640         mov     (r2)+,-(sp)
1641         mov     (r2)+,-(sp)
1642         mov     (r2)+,-(sp)
1643         mov     (r2)+,-(sp)
1644         mov     r0,-(sp)
1645         mov     trppc~,r0
1646         beq     9f
1647         clr     trppc~
1648         jsr     pc,(r0)
1649         tst     (sp)+
1650         mov     $retar+020,r2
1651         mov     (sp)+,-(r2)
1652         mov     (sp)+,-(r2)
1653         mov     (sp)+,-(r2)
1654         mov     (sp)+,-(r2)
1655         mov     (sp)+,-(r2)
1656         mov     (sp)+,-(r2)
1657         mov     (sp)+,-(r2)
1658         mov     (sp)+,-(r2)
1659         mov     $savearea+014,r2
1660         mov     (sp)+,-(r2)
1661         mov     (sp)+,-(r2)
1662         mov     (sp)+,-(r2)
1663         mov     (sp)+,-(r2)
1664         mov     (sp)+,-(r2)
1665         mov     (sp)+,-(r2)
1666         ldfps   (sp)+
1667         movf    (sp)+,r3
1668         movf    (sp)+,r2
1669         movf    (sp)+,r1
1670         movf    (sp)+,r0
1671         mov     (sp)+,r4
1672         mov     (sp)+,r3
1673         mov     (sp)+,r2
1674 8:      mov     (sp)+,r1
1675         mov     (sp)+,r0
1676         rts     pc
1677 9:      mov     (sp)+,r0
1678         mov     $buf+011,r1
1679         mov     $4,r2
1680 1:      mov     r0,r3
1681         bic     $0177770,r3
1682         bisb    r3,-(r1)
1683         ash     $-3,r0
1684         sob     r2,1b
1685         mov     $013,-(sp)
1686         mov     $buf,-(sp)
1687         mov     $2,-(sp)
1688         jsr     pc,WRITE
1689         add     $6,sp
1690         jsr     pc,EXIT
1691 .sect .data
1692 retar:  .space 16
1693 retend:
1694 buf:    .ascii "err 00000\n"
1695 \0xor.s\0n.s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0û\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1696 .define xor~
1697 .extern save~,retu~
1698 ! $Id: xor.s,v 2.3 1994/06/24 13:19:08 ceriel Exp $
1699
1700 xor~:
1701         jsr     pc,save~
1702         mov     sp,r1
1703         add     r0,r1
1704         asr     r0
1705 1:
1706         mov     (sp)+,r2
1707         xor     r2,(r1)+
1708         sob     r0,1b
1709         jmp     retu~
1710  save.s\0.s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\97\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1711 .sect .text
1712 .define save~,retu~,savearea
1713 ! $Id: save.s,v 2.4 1994/06/24 13:18:24 ceriel Exp $
1714
1715 save~:
1716         mov     r5,savearea
1717         mov     $[savearea+2],r5
1718         mov     r4,(r5)+
1719         mov     r3,(r5)+
1720         mov     r2,(r5)+
1721         mov     (sp)+,r2
1722         mov     (sp)+,(r5)+
1723         jmp     (r2)
1724 retu~:
1725         mov     -(r5),-(sp)
1726         mov     -(r5),r2
1727         mov     -(r5),r3
1728         mov     -(r5),r4
1729         mov     -(r5),r5
1730         rts     pc
1731
1732 .sect .bss
1733 savearea:
1734         .space 12
1735