1
0
mirror of https://github.com/DoctorWkt/unix-jun72.git synced 2026-02-28 09:28:28 +00:00
Files
DoctorWkt.unix-jun72/fs/usr/boot/msys2.s

98 lines
1.3 KiB
ArmAsm

/ msys2 -- copy file to RF read only slot
/
/ re-creation, based on description in UNIX_ProgammersManual_Nov71.pdf,
/ page 7-06, BOOT PROCEDURES (VII)
/ 5/9/08 jam@magic.com
/ 5/17/08 jam@magic.com -- modified to copy 407-format a.out files
/ b bos 1700 1KW
/ u warm unix 1704 6KW
/ 1 cold unix 1734 6KW
/ 2 unassigned 1764 3KW
mov sp,r5
mov (r5)+,r3 / argc
cmp $3,r3 / must be 3
bne badcmd / else error
tst (r5)+
mov (r5)+,r4 / get first arg
cmpb (r4),$'b
bne 1f
mov $1700,r3
mov $4,r4
br 2f
1:
cmpb (r4),$'u
bne 1f
mov $1704,r3
mov $30,r4
br 2f
1:
cmpb (r4),$'1
bne 1f
mov $1734,r3
mov $30,r4
br 2f
1:
cmpb (r4),$'2
bne badcmd
mov $1764,r3
mov $14,r4
2:
/ open file
mov (r5),r5
mov r5,0f
sys open; 0:..; 0
bes error
mov r0,r1
sys seek; 20; 0 / skip 407 (16-byte) header
bes error
/ open rf0 and seek to correct block
sys open; disk; 1
bes error
mov r0,r2
mov r3,0f
sys seek; 0:..; 0
bes error
/ copy file from file to disk one block at a time
1:
mov r1,r0
sys read; buf; 512.
mov r0,r5
mov r2,r0
sys write; buf; 512.
bes error
dec r4
beq 3f
tst r5
bne 1b
3:
sys exit
error:
mov $1,r0
sys write; 1f; 2
br .+2
sys exit
1:
<?\n>
badcmd:
mov $1,r0
sys write; 1f; 2
br .+2
sys exit
1:
<?\n>
disk:
</dev/rf0\0>
.even
buf: .=.+512.