71 lines
739 B
ArmAsm
71 lines
739 B
ArmAsm
/
|
|
/
|
|
|
|
/ a2 -- pdp-11 assembler pass 1
|
|
|
|
error:
|
|
incb errflg
|
|
mov r0,-(sp)
|
|
mov r1,-(sp)
|
|
mov (r5)+,r0
|
|
tst *curarg
|
|
beq 1f
|
|
mov r0,-(sp)
|
|
mov *curarg,r0
|
|
clr *curarg
|
|
jsr r5,filerr; '\n
|
|
mov (sp)+,r0
|
|
1:
|
|
mov r2,-(sp)
|
|
mov r3,-(sp)
|
|
mov line,r3
|
|
movb r0,1f
|
|
mov $1f+6,r0
|
|
mov $4,r1
|
|
2:
|
|
clr r2
|
|
dvd $10.,r2
|
|
add $'0,r3
|
|
movb r3,-(r0)
|
|
mov r2,r3
|
|
sob r1,2b
|
|
mov $1,r0
|
|
sys write; 1f; 7
|
|
mov (sp)+,r3
|
|
mov (sp)+,r2
|
|
mov (sp)+,r1
|
|
mov (sp)+,r0
|
|
rts r5
|
|
|
|
.data
|
|
1: <f xxxx\n>
|
|
.even
|
|
.text
|
|
|
|
betwen:
|
|
cmp r0,(r5)+
|
|
blt 1f
|
|
cmp (r5)+,r0
|
|
blt 2f
|
|
1:
|
|
tst (r5)+
|
|
2:
|
|
rts r5
|
|
|
|
putw:
|
|
tst ifflg
|
|
beq 1f
|
|
cmp r4,$'\n
|
|
bne 2f
|
|
1:
|
|
mov r4,*obufp
|
|
add $2,obufp
|
|
cmp obufp,$outbuf+512.
|
|
blo 2f
|
|
mov $outbuf,obufp
|
|
movb pof,r0
|
|
sys write; outbuf; 512.
|
|
2:
|
|
rts pc
|
|
|