1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #
- .define .trp
- .sect .text
- .sect .rom
- .sect .data
- fmt: .asciz "%s\n"
- .sect .bss
- .sect .text
- .trp:
- movem.l d0/d1/a0, -(sp)
- move.l (12, sp), a0 ! return address
- move.l (16, sp), d0 ! error number
- move.l a0, (16, sp)
- move.l d0, (12, sp)
- cmp.l #16, d0
- bcc 1f
- move.l (.ignmask), d1
- btst d0, d1
- bne 3f
- 1:
- move.l (.trppc), a0
- move.l a0, d1
- beq 9f
- clr.l (.trppc)
- movem.l d2-d7/a1-a5,-(sp)
- #if _M68881
- fmovem.x fp0-fp7,-(sp)
- #endif
- move.l d0,-(sp)
- jsr (a0)
- add.l #4, sp
- #if _M68881
- fmovem.x (sp)+,fp0-fp7
- #endif
- movem.l (sp)+,d2-d7/a1-a5
- 3:
- movem.l (sp)+, d0/d1/a0
- add.l #4, sp
- rts
- 9:
- move.l d0,-(sp)
- jsr (__trpstr)
- move.l d0,(sp)
- pea (fmt)
- jsr (.diagnos)
- lea (4, sp), sp
- illegal
- jmp (EXIT)
- .align 2
|