mirror of
https://github.com/qrush/unix.git
synced 2025-07-23 19:19:05 +00:00
James Markevitch sent in an updated bootstrap which can use V2 "as".
git-svn-id: http://unix-jun72.googlecode.com/svn/trunk@259 44b2186c-a14b-0410-8c95-595313601b93
This commit is contained in:
@ -14,6 +14,9 @@ The system can be warm booted with:
|
||||
|
||||
tools/pdp11 boot/simh.cfg
|
||||
|
||||
NOTE: For using kernels built using the V2 assembler, all of the following
|
||||
should refer to msys2, instead of msys.
|
||||
|
||||
Alternatively, everything can be installed while running under the V1 system
|
||||
using the following procedure:
|
||||
|
||||
|
78
fs/usr/boot/bos.s
Normal file
78
fs/usr/boot/bos.s
Normal file
@ -0,0 +1,78 @@
|
||||
/ bos -- UNIX V1 bootstrap
|
||||
/
|
||||
/ re-creation, based on description in UNIX_ProgammersManual_Nov71.pdf,
|
||||
/ page 7-06, BOOT PROCEDURES (VII)
|
||||
/ 5/6/08 jam@magic.com
|
||||
/
|
||||
/ M792 bootstrap loads this into core at 54000
|
||||
/
|
||||
/ Behavior depends on switch register:
|
||||
/ 173700 or
|
||||
/ 073700 Read Warm UNIX from RF into core location 0 and jump to 400
|
||||
/ 1 Read Cold UNIX from RF into core location 0 and jump to 400
|
||||
/ 2 Read unassigned 3K program into core location 0 and jump to 400
|
||||
/ 10 Dump 12K words from core location 0 onto DECtape drive 7
|
||||
/ 0 UNIMPLEMENTED -- should be read UNIX binary paper tape
|
||||
|
||||
csw = 177570
|
||||
|
||||
/. = 54000
|
||||
|
||||
mov $177472,r1
|
||||
mov *$csw,r0
|
||||
cmp r0,$173700
|
||||
beq warm
|
||||
cmp r0,$73700
|
||||
bne 1f
|
||||
warm:
|
||||
/ x73700 = Warm UNIX
|
||||
mov $3,-(r1) / rf0 dae = track number high bits
|
||||
mov $142000,-(r1) / rf0 dar = 256KW - 15KW
|
||||
clr -(r1) / rf0 cma = 0
|
||||
mov $-14000,-(r1) / rf0 wc = 6KW
|
||||
loadrf:
|
||||
mov $5,-(r1) / rf0 dcs = read
|
||||
tstb (r1) / rf0 done?
|
||||
bge .-2 / no, loop
|
||||
jmp *$400 / jump to loaded code
|
||||
|
||||
1:
|
||||
cmp r0,$1
|
||||
bne 1f
|
||||
|
||||
/ 0 = Cold UNIX
|
||||
mov $3,-(r1) / rf0 dae = track number high bits
|
||||
mov $156000,-(r1) / rf0 dar = 256KW - 9KW
|
||||
clr -(r1) / rf0 cma = 0
|
||||
mov $-14000,-(r1) / rf0 wc = 6KW
|
||||
br loadrf
|
||||
|
||||
1:
|
||||
cmp r0,$2
|
||||
bne 1f
|
||||
|
||||
/ 2 = Unassigned 3K
|
||||
mov $3,-(r1) / rf0 dae = track number high bits
|
||||
mov $172000,-(r1) / rf0 dar = 256KW - 3KW
|
||||
clr -(r1) / rf0 cma = 0
|
||||
mov $-6000,-(r1) / rf0 wc = 3KW
|
||||
br loadrf
|
||||
|
||||
1:
|
||||
cmp r0,$10
|
||||
bne 1f
|
||||
|
||||
/ 10 = Dump 12K to DECtape drive 7
|
||||
mov $177350,r1
|
||||
clr -(r1) / tc11 tcba = 0
|
||||
mov $-30000,-(r1) / tc11 tcwc = 12KW
|
||||
mov $3415,-(r1) / tc11 tccm = UNIT=7,WDATA,DO
|
||||
tstb (r1) / tc11 done?
|
||||
bge .-2 / no, loop
|
||||
2:
|
||||
0 / halt
|
||||
br 2b
|
||||
|
||||
1:
|
||||
0 / halt -- unrecognized switch setting
|
||||
br 1b
|
87
fs/usr/boot/msys.s
Normal file
87
fs/usr/boot/msys.s
Normal file
@ -0,0 +1,87 @@
|
||||
/ msys -- 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
|
||||
|
||||
/ b bos 1700
|
||||
/ u warm unix 1704
|
||||
/ 1 cold unix 1734
|
||||
/ 2 unassigned 1764
|
||||
|
||||
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
|
||||
br 2f
|
||||
1:
|
||||
cmpb (r4),$'u
|
||||
bne 1f
|
||||
mov $1704,r3
|
||||
br 2f
|
||||
1:
|
||||
cmpb (r4),$'1
|
||||
bne 1f
|
||||
mov $1734,r3
|
||||
br 2f
|
||||
1:
|
||||
cmpb (r4),$'2
|
||||
bne badcmd
|
||||
mov $1764,r3
|
||||
2:
|
||||
|
||||
/ open file
|
||||
mov (r5),r4
|
||||
mov r4,0f
|
||||
sys open; 0:..; 0
|
||||
bes error
|
||||
mov r0,r1
|
||||
|
||||
/ 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,r4
|
||||
mov r2,r0
|
||||
sys write; buf; 512.
|
||||
bes error
|
||||
tst r4
|
||||
bne 1b
|
||||
|
||||
sys exit
|
||||
|
||||
error:
|
||||
mov $1,r0
|
||||
sys write; 1f; 2
|
||||
4
|
||||
sys exit
|
||||
1:
|
||||
<?\n>
|
||||
|
||||
badcmd:
|
||||
mov $1,r0
|
||||
sys write; 1f; 2
|
||||
4
|
||||
sys exit
|
||||
1:
|
||||
<?\n>
|
||||
|
||||
disk:
|
||||
</dev/rf0\0>
|
||||
.even
|
||||
|
||||
buf: .=.+512.
|
97
fs/usr/boot/msys2.s
Normal file
97
fs/usr/boot/msys2.s
Normal file
@ -0,0 +1,97 @@
|
||||
/ 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.
|
4
fs/usr/boot/run
Normal file
4
fs/usr/boot/run
Normal file
@ -0,0 +1,4 @@
|
||||
as bos.s
|
||||
mv a.out bos
|
||||
as msys2.s
|
||||
mv a.out msys2
|
BIN
fs/usr/boot/unix.out
Executable file
BIN
fs/usr/boot/unix.out
Executable file
Binary file not shown.
Reference in New Issue
Block a user