mirror of
https://github.com/qrush/unix.git
synced 2025-08-11 02:43:02 +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
|
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
|
Alternatively, everything can be installed while running under the V1 system
|
||||||
using the following procedure:
|
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