Add original unix v6
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
/
|
||||
/
|
||||
|
||||
/ a3 -- pdp-11 assembler pass 2
|
||||
|
||||
assem:
|
||||
jsr pc,readop
|
||||
cmp r4,$5
|
||||
beq 2f
|
||||
cmp r4,$'<
|
||||
beq 2f
|
||||
jsr pc,checkeos
|
||||
br eal1
|
||||
mov r4,-(sp)
|
||||
cmp (sp),$1
|
||||
bne 1f
|
||||
mov $2,(sp)
|
||||
jsr pc,getw
|
||||
mov r4,numval
|
||||
1:
|
||||
jsr pc,readop
|
||||
cmp r4,$'=
|
||||
beq 4f
|
||||
cmp r4,$':
|
||||
beq 1f
|
||||
mov r4,savop
|
||||
mov (sp)+,r4
|
||||
2:
|
||||
jsr pc,opline
|
||||
dotmax:
|
||||
tstb passno
|
||||
bne eal1
|
||||
movb dotrel,r0
|
||||
asl r0
|
||||
cmp dot,txtsiz-4(r0)
|
||||
blos ealoop
|
||||
mov dot,txtsiz-4(r0)
|
||||
eal1:
|
||||
jmp ealoop
|
||||
1:
|
||||
mov (sp)+,r4
|
||||
cmp r4,$200
|
||||
bhis 1f
|
||||
cmp r4,$2
|
||||
beq 3f
|
||||
jsr r5,error; 'x
|
||||
br assem
|
||||
1:
|
||||
tstb passno
|
||||
bne 2f
|
||||
movb (r4),r0
|
||||
bic $!37,r0
|
||||
beq 5f
|
||||
cmp r0,$33
|
||||
blt 6f
|
||||
cmp r0,$34
|
||||
ble 5f
|
||||
6:
|
||||
jsr r5,error; 'm
|
||||
5:
|
||||
bic $37,(r4)
|
||||
bis dotrel,(r4)
|
||||
mov 2(r4),brdelt
|
||||
sub dot,brdelt
|
||||
mov dot,2(r4)
|
||||
br assem
|
||||
2:
|
||||
cmp dot,2(r4)
|
||||
beq assem
|
||||
jsr r5,error; 'p
|
||||
br assem
|
||||
3:
|
||||
mov numval,r4
|
||||
jsr pc,fbadv
|
||||
asl r4
|
||||
mov curfb(r4),r0
|
||||
movb dotrel,(r0)
|
||||
mov 2(r0),brdelt
|
||||
sub dot,brdelt
|
||||
mov dot,2(r0)
|
||||
br assem
|
||||
4:
|
||||
jsr pc,readop
|
||||
jsr pc,expres
|
||||
mov (sp)+,r1
|
||||
cmp r1,$symtab /test for dot
|
||||
bne 1f
|
||||
bic $40,r3
|
||||
cmp r3,dotrel / can't change relocation
|
||||
bne 2f
|
||||
cmp r3,$4 / bss
|
||||
bne 3f
|
||||
mov r2,dot
|
||||
br dotmax
|
||||
3:
|
||||
sub dot,r2
|
||||
bmi 2f
|
||||
mov r2,-(sp)
|
||||
3:
|
||||
dec (sp)
|
||||
bmi 3f
|
||||
clr r2
|
||||
mov $1,r3
|
||||
jsr pc,outb
|
||||
br 3b
|
||||
3:
|
||||
tst (sp)+
|
||||
br dotmax
|
||||
2:
|
||||
jsr r5,error; '.
|
||||
br ealoop
|
||||
1:
|
||||
cmp r3,$40
|
||||
bne 1f
|
||||
jsr r5,error; 'r
|
||||
1:
|
||||
bic $37,(r1)
|
||||
bic $!37,r3
|
||||
bne 1f
|
||||
clr r2
|
||||
1:
|
||||
bisb r3,(r1)
|
||||
mov r2,2(r1)
|
||||
|
||||
ealoop:
|
||||
cmp r4,$'\n
|
||||
beq 1f
|
||||
cmp r4,$'\e
|
||||
bne 9f
|
||||
rts pc
|
||||
1:
|
||||
inc line
|
||||
9:
|
||||
jmp assem
|
||||
|
||||
checkeos:
|
||||
cmp r4,$'\n
|
||||
beq 1f
|
||||
cmp r4,$';
|
||||
beq 1f
|
||||
cmp r4,$'\e
|
||||
beq 1f
|
||||
add $2,(sp)
|
||||
1:
|
||||
rts pc
|
||||
|
||||
fbadv:
|
||||
asl r4
|
||||
mov nxtfb(r4),r1
|
||||
mov r1,curfb(r4)
|
||||
bne 1f
|
||||
mov fbbufp,r1
|
||||
br 2f
|
||||
1:
|
||||
add $4,r1
|
||||
2:
|
||||
cmpb 1(r1),r4
|
||||
beq 1f
|
||||
tst (r1)
|
||||
bpl 1b
|
||||
1:
|
||||
mov r1,nxtfb(r4)
|
||||
asr r4
|
||||
rts pc
|
||||
|
||||
Reference in New Issue
Block a user