1
0
mirror of https://github.com/DoctorWkt/unix-jun72.git synced 2026-02-02 06:51:49 +00:00
Files
DoctorWkt.unix-jun72/fs/usr/sys/maki.s

163 lines
1.9 KiB
ArmAsm
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/ maki -- make initialization dec tape
sys open; tape; 1
bes error
mov r0,fo
sys write; vcboot; 512.
bes error
sys open; disk; 0
bes error
mov r0,r1
sys seek; 1700; 0
bes error
mov $64.,r2
1:
mov r1,r0
sys read; buf; 512.
jsr pc,tout
dec r2
bne 1b
mov r1,r0
sys close
mov $files,r5
1:
tstb (r5)
beq 1f
mov r5,0f
sys stat; 0:..; buf
bes error
mov $buf,r3
mov buf+6,(r3)+ / size
movb buf+2,(r3)+ / mode
movb buf+5,(r3)+ / uid
2:
movb (r5)+,(r3)+
bne 2b
2:
clrb (r3)+
cmp r3,$buf+512.
blo 2b
jsr pc,tout
sys open; buf+4; 0
bes error
mov r0,fi
2:
mov fi,r0
sys read; buf; 512.
tst r0
beq 2f
jsr pc,tout
br 2b
2:
mov fi,r0
sys close
br 1b
1:
clr buf
jsr pc,tout
sys exit
tout:
mov fo,r0
sys write; buf; 512.
bes error
rts pc
error:
mov $1,r0
sys write; 1f; 4
4
sys exit
1:
<?\n>
vcboot:
mov $20000,sp
jsr r5,dtio; 1; 20000; -20000; 5
jsr r5,drio; 3; 140000; 20000; -20000; 3
jsr r5,dtio; 33.; 20000; -20000; 5
jsr r5,drio; 3; 160000; 20000; -20000; 3
jsr r5,drio; 3; 140000; 54000; -2000; 5
jmp *$54000
tcdt = 177350
tccm = 177342
dtio:
mov $tcdt,r0
mov $tccm,r1
mov $3,(r1) / rn-f
1:
tstb (r1)
bge 1b
tst (r1)
blt 0f
cmp (r5),(r0)
beq 2f
bgt dtio
0:
mov $4003,(r1) / rn-b
1:
tstb (r1)
bge 1b
tst (r1)
blt dtio
mov (r0),r2
add $5,r2
cmp (r5),r2
bgt dtio
br 0b
2:
tst (r5)+
mov (r5)+,-(r0)
mov (r5)+,-(r0)
mov (r5)+,-(r0)
1:
tstb (r0)
bge 1b
tst (r0)
bge 1f
sub $8.,r5
br dtio
1:
mov $1,(r0) / sat
rts r5
dae = 177470
drio:
mov $dae+2,r0
mov (r5)+,-(r0)
mov (r5)+,-(r0)
mov (r5)+,-(r0)
mov (r5)+,-(r0)
mov (r5)+,-(r0)
1:
tstb (r0)
bge 1b
tst (r0)
bge 1f
sub $10.,r5
br drio
1:
rts r5
tape:
</dev/tap7\0>
disk:
</dev/rf0\0>
files:
</etc/init\0>
</etc/getty\0>
</bin/chmod\0>
</bin/date\0>
</bin/login\0>
</bin/mkdir\0>
</bin/sh\0>
</bin/tap\0>
</bin/ls\0>
<\0>
.even
fi: .=.+2
fo: .=.+2
buf: .=.+512.