ack/mach/pdp/libem/trp.s
1994-06-24 14:02:31 +00:00

98 lines
1.6 KiB
ArmAsm

.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
.sect .text
.define trp~,fat~
.extern trppc~,trpim~,savearea,retar
! $Id$
fat~:
jsr pc,trp~
jsr pc,EXIT
trp~:
mov r0,-(sp)
mov 04(sp),r0
mov 02(sp),04(sp)
mov (sp),02(sp)
mov r1,(sp)
cmp r0,$020
jhis 0f
mov $01,r1
ashc r0,r1
bit r1,trpim~
bne 8f
0: mov r2,-(sp)
mov r3,-(sp)
mov r4,-(sp)
movf r0,-(sp)
movf r1,-(sp)
movf r2,-(sp)
movf r3,-(sp)
stfps -(sp)
mov $savearea,r2
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov $retar,r2
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov (r2)+,-(sp)
mov r0,-(sp)
mov trppc~,r0
beq 9f
clr trppc~
jsr pc,(r0)
tst (sp)+
mov $retar+020,r2
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov $savearea+014,r2
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
mov (sp)+,-(r2)
ldfps (sp)+
movf (sp)+,r3
movf (sp)+,r2
movf (sp)+,r1
movf (sp)+,r0
mov (sp)+,r4
mov (sp)+,r3
mov (sp)+,r2
8: mov (sp)+,r1
mov (sp)+,r0
rts pc
9: mov (sp)+,r0
mov $buf+011,r1
mov $4,r2
1: mov r0,r3
bic $0177770,r3
bisb r3,-(r1)
ash $-3,r0
sob r2,1b
mov $013,-(sp)
mov $buf,-(sp)
mov $2,-(sp)
jsr pc,WRITE
add $6,sp
jsr pc,EXIT
.sect .data
retar: .space 16
retend:
buf: .ascii "err 00000\n"