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:
warren.toomey
2008-05-18 07:17:25 +00:00
parent 13f78d8ffb
commit 00d7adc4c3
6 changed files with 269 additions and 0 deletions

View File

@ -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
View 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
View 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
View 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
View 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

Binary file not shown.