AOS/VS Startup (Boot)
The information on this page was mainly gleaned from the AOS/VS Internals document which refers to AOS/VS version 5.00 on ‘classic’ (i.e. non-DC-class) hardware.
Below follows a description of the normal cold boot to multi-user AOS/VS from disk.
Prerequisites
To boot from disk:
- The system disk must have be formatted with the DFMTR program.
- The base system software must have been installed on the system disk with the INSTL program. The base system includes the DKBT standalone program (also TBOOT) and SYSBOOT.
- DKBT is the disk bootstrap and is installed on blocks 0 and 1 of the disk.
- SYSBOOT brings up AOS/VS. If the disk is not prepared in the above manner then you will have to boot from removable media (magnetic tape) via TBOOT.
TBOOT
This description is taken from the AOS/VS Internals Guide (AOS/VS Rev. 5 version).
The operator keys in B 22 (or the correct device code for the intalled tape drive) and the system ROM then loads the first 1024 words (2KB) from file 0 of the tape and does a JMP . at location 0377. Eventually this looping JMP gets overwritten by the data from the tape and causes the TBOOT program to start.
- Goto location 0 and start program
- Overwrite location 0777 with a JMP @0376
- When location 0777 is overwritten it will cause a JMP to location 10.
- At location 10 an IORST is done
- Get the device code of the tape drive (from Boot command) and adjust I/O driver for that device
- Dispay message to ask for file number
- Ensure tape is backspaced to file 0
- Space forward the tape the number of files entered at the prompt
- Move TBOOT to high memory out of the way
- Set up DCH mapping and initialise the map registers
- Start the load of the specified file into memory
- After load completes rewind the tape
- Get start address from location 2 and JMP to it
DKBT Operation
Normally the operator keys in B nn to initiate system operation from device nn.
The system ROM then loads the two blocks from the boot device and jumps to location 10.
- Issue an IORST instruction and retrieve boot device code which ROM has put in AC0
- Prepare for entry into location 400 in DKBT
- Read in DIB (Device Information Block)
- Start loading SYSBOOT into memory from the disk address stored in the DIB
- Recalibrate the disk
- Move part of SYSBOOT to 76000
- Move the remainder of SYSBOOT into the right place
- Enter SYSBOOT through its location 2 entry point
SYSBOOT Operation
- Issue an IORST instruction and set up ECC error routine for memory
- Init the entire LDU (Logical Disk Unit) by asking for each disk in the LDU
- Verify that the disks are valid devices
- Read in the DIB and check for valid version and FIXUP bit set
- Set up LDU table for this disk
- Set up BBT (Bad Block Table) for this disk
- Get microcode filename and request if it should be loaded
- If it was the permanent name then load it regardless
- Resolve the microcode filename on disk
- Issue an LCS instruction to load the microcode
- Size the memory for SYSBOOT
- Get the system (genned AOS/VS) file name
- If user-specified name then resolve the path, otherwise create a pointer to the installed system
- Read in the system file and move it to high memory
- Write out the overlay file for the OS
- Set up communications area for SINIT (this contains the address of the overlay file and the names of LDU’s in the system)
- Move part of system into lower memory and start the SINIT code