MediaWiki:Sitenotice:
2024-03-02: The wiki ran out of disk space, so things were not working. This has been resolved by adding another 5GB of quota ;-) Thanks to Tim Lindner for reporting the issues.
2020-05-17: If a page gives you an error about some revision not being found, just EDIT the page and the old page should appear in the editor. If it does, just SAVE that and the page should be restored. OS-9 Al (talk) 12:22, 17 May 2020 (CDT)
OS-9:Level 1 Boot: Difference between revisions
(The bootstrap sequence for OS-9 Level 1 on the Color Computer) |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
The user is then prompted to place the OS9L1V1M.DSK master diskette in the floppy disk drive and press a key to continue. | The user is then prompted to place the OS9L1V1M.DSK master diskette in the floppy disk drive and press a key to continue. | ||
== 1.1 == | === 1.1 === | ||
Place the OS9L1V1M.DSK master disk into the floppy diskette drive, type DOS, and OS-9 begins to boot. | Place the OS9L1V1M.DSK master disk into the floppy diskette drive, type DOS, press ENTER, and OS-9 begins to boot. | ||
== Boot Track == | == Boot Track == | ||
Line 33: | Line 33: | ||
* Start address | * Start address | ||
* OS9 Boot banner text | * OS9 Boot banner text | ||
* | * [[REL]]ocate code | ||
* OS9 kernel module part 1 | * [[OS9]] kernel module part 1 | ||
* MPU vectors | * MPU vectors | ||
* | * [[OS9p2]] kernel module part 2 | ||
* Init module | * [[Init]] module | ||
* Boot module | * [[Boot]] module | ||
== RELocate == | == RELocate == | ||
The [[REL]]ocate code does setup housekeeping: | |||
* Configure the SAM for all-RAM mode to move the ROMs out of the way and create a flat 64KB RAM workspace for OS-9 to manage | |||
* Configure the SAM to locate the VDG screen RAM at address $8000 | |||
* Clear the screen RAM | |||
* Copy the OS9 Boot banner text onto the screen | |||
* Check to see if this is first boot or a restart after reset | |||
* Copy the boot track blocks initially loaded into address $2600 to $3800 into high RAM starting at address $F000 | |||
* Jump into the [[OS9]] kernel module part 1 start address | |||
This sequence will crash on a Color Computer 3 due to its new vector page at $FE00 to $FEFF getting overwritten. | |||
Later versions of OS-9 change [[REL]]ocate to copy the boot track one 256-byte page lower, starting at $EF00, to avoid the new vectors page. | |||
== OS9 == | == OS9 == | ||
The | The [[OS9]] kernel module part 1 provides core service tables, cold start code, interrupt handlers, module linking and CRC verification, and other essential functions. | ||
== Vectors == | == Vectors == | ||
Line 49: | Line 61: | ||
== OS9p2 == | == OS9p2 == | ||
The | The [[OS9p2]] kernel module part 2 provides additional memory and process management along with additional core functions. | ||
== Init == | == Init == | ||
The | The [[Init]] module is a small set of configuration data for the OS-9 system such as the first process to start, usually SysGo, the default storage device name such as /D0 or /DD, the initial terminal device name such as /TERM and the name of the Boot module. | ||
== Boot == | == Boot == | ||
The | The [[Boot]] module provides hardware-specific code to read the OS-9 RBF disk storage layout, find the OS9Boot file, and begin loading it into memory to initialize each module found in it. | ||
== OS9Boot == | == OS9Boot == | ||
The OS9Boot file is a collection support modules to provide services to the OS-9 applications run by the user. | The [[OS9Boot]] file is a collection of support modules to provide services to the OS-9 applications run by the user. | ||
* CCDisk - driver for WD17x3 floppy disk drives | * [[CCDisk]] - driver for WD17x3 floppy disk drives | ||
* CCIO - driver for the Color Computer console I/O | * [[CCIO]] - driver for the Color Computer console I/O | ||
* Clock - system module for time tracking and task switching | * [[Clock]] - system module for time tracking and task switching | ||
* D0 - a device descripter for floppy disk drive 0 | * [[D0]] - a device descripter for floppy disk drive 0 | ||
* D1 - a device descripter for floppy disk drive 1 | * [[D1]] - a device descripter for floppy disk drive 1 | ||
* D2 - a device descripter for floppy disk drive 2 | * [[D2]] - a device descripter for floppy disk drive 2 | ||
* D3 - a device descripter for floppy disk drive 3 | * [[D3]] - a device descripter for floppy disk drive 3 | ||
* IOMan - the I/O manager service module handling pathlist management for the kernel | * [[IOMan]] - the I/O manager service module handling pathlist management for the kernel | ||
* PipeMan - the Pipe file manager providing interprocess pipe handling | * [[PipeMan]] - the Pipe file manager providing interprocess pipe handling | ||
* Piper - the Pipe driver providing interprocess pipe handling | * [[Piper]] - the Pipe driver providing interprocess pipe handling | ||
* Pipe - the Pipe device descripter providing interprocess pipe handling | * [[Pipe]] - the Pipe device descripter providing interprocess pipe handling | ||
* PRINTER - the printer driver for serial printers attached to the built-in serial port | * [[PRINTER]] - the printer driver for serial printers attached to the built-in serial port | ||
* P - the printer device descripter for serial printers attached to the built-in serial port | * [[P]] - the printer device descripter for serial printers attached to the built-in serial port | ||
* RBF - the Random Block File manager for block-oriented storage devices | * [[RBF]] - the Random Block File manager for block-oriented storage devices | ||
* RS232 - the RS-232 serial port driver for terminals or modems attached to the built in serial port | * [[RS232]] - the RS-232 serial port driver for terminals or modems attached to the built in serial port | ||
* SCF - the | * [[SCF]] - the Sequential Character File manager for character-by-character devices | ||
* Shell - the default command interpreter | * [[Shell]] - the default command interpreter | ||
* SysGo- | * [[SysGo]] - the system startup module to spawn the console shell on the default disk and terminal device | ||
* T1 - the device descripter for a terminal attached to the built-in serial port | * [[T1]] - the device descripter for a terminal attached to the built-in serial port | ||
* TERM - the default Color Computer console device descripter | * [[TERM]] - the default Color Computer console device descripter | ||
== SysGo == | == SysGo == | ||
The SysGo module starts the initial console shell and waits in the background for it to exit, and restart it if this happens. | The [[SysGo]] module starts the initial console shell and waits in the background for it to exit, and restart it if this happens. | ||
== Shell == | == Shell == | ||
The user command line | The [[Shell]] modules provides a user command line environment, command execution, file system navigation, and I/O stream redirection. | ||
== Startup == | == Startup == | ||
The [[Startup]] shell procedure file loads and runs the [[setime]] module to prompt for the current date and time from /[[TERM]]. | |||
== Bootstrap complete == | == Bootstrap complete == | ||
The system is ready to use once the OS9: prompt appears. | The system is ready to use once the OS9: prompt appears. |
Latest revision as of 12:57, 19 May 2024
OS-9 Level 1 Boot
Disk Extended Color BASIC
1.0
Disk Extended Color BASIC 1.0 does not directly support the OS-9 boot track.
The OS9L1V1B.DSK contains two files: *.BAS and $82$81
- .BAS provides a menu to choose Boot or to test the floppy diskette drive.
If the disk test is chosen, the $82$81 is loaded from diskette into address $5000 and started to test the rotation speed of the floppy disk drive to verify it rotates close to 300 revolutions per minute.
If boot is chosen, then BASIC DATA statements are poked into address $5000 and started.
The boot code is very similar to the DOS command added for Disk Extended Color BASIC 1.1.
The user is then prompted to place the OS9L1V1M.DSK master diskette in the floppy disk drive and press a key to continue.
1.1
Place the OS9L1V1M.DSK master disk into the floppy diskette drive, type DOS, press ENTER, and OS-9 begins to boot.
Boot Track
The *.BAS machine code or the DOS command loads track 34, sectors 1-18 from the the OS9L1V1M.DSK diskette into RAM at address $2600.
If the first two bytes of the boot track are 'OS' then the DOS command reads the 16-bit address loaded into $2602 and transfers control to the code there.
Between the OS signature, start address, and the beginning of code are the bytes of the OS9 Boot banner shown on the screen.
The boot track contains:
- OS Signature bytes 'OS'
- Start address
- OS9 Boot banner text
- RELocate code
- OS9 kernel module part 1
- MPU vectors
- OS9p2 kernel module part 2
- Init module
- Boot module
RELocate
The RELocate code does setup housekeeping:
- Configure the SAM for all-RAM mode to move the ROMs out of the way and create a flat 64KB RAM workspace for OS-9 to manage
- Configure the SAM to locate the VDG screen RAM at address $8000
- Clear the screen RAM
- Copy the OS9 Boot banner text onto the screen
- Check to see if this is first boot or a restart after reset
- Copy the boot track blocks initially loaded into address $2600 to $3800 into high RAM starting at address $F000
- Jump into the OS9 kernel module part 1 start address
This sequence will crash on a Color Computer 3 due to its new vector page at $FE00 to $FEFF getting overwritten.
Later versions of OS-9 change RELocate to copy the boot track one 256-byte page lower, starting at $EF00, to avoid the new vectors page.
OS9
The OS9 kernel module part 1 provides core service tables, cold start code, interrupt handlers, module linking and CRC verification, and other essential functions.
Vectors
This block of data is designed to load into RAM to initialize the address of the 6809 MPU vectors.
OS9p2
The OS9p2 kernel module part 2 provides additional memory and process management along with additional core functions.
Init
The Init module is a small set of configuration data for the OS-9 system such as the first process to start, usually SysGo, the default storage device name such as /D0 or /DD, the initial terminal device name such as /TERM and the name of the Boot module.
Boot
The Boot module provides hardware-specific code to read the OS-9 RBF disk storage layout, find the OS9Boot file, and begin loading it into memory to initialize each module found in it.
OS9Boot
The OS9Boot file is a collection of support modules to provide services to the OS-9 applications run by the user.
- CCDisk - driver for WD17x3 floppy disk drives
- CCIO - driver for the Color Computer console I/O
- Clock - system module for time tracking and task switching
- D0 - a device descripter for floppy disk drive 0
- D1 - a device descripter for floppy disk drive 1
- D2 - a device descripter for floppy disk drive 2
- D3 - a device descripter for floppy disk drive 3
- IOMan - the I/O manager service module handling pathlist management for the kernel
- PipeMan - the Pipe file manager providing interprocess pipe handling
- Piper - the Pipe driver providing interprocess pipe handling
- Pipe - the Pipe device descripter providing interprocess pipe handling
- PRINTER - the printer driver for serial printers attached to the built-in serial port
- P - the printer device descripter for serial printers attached to the built-in serial port
- RBF - the Random Block File manager for block-oriented storage devices
- RS232 - the RS-232 serial port driver for terminals or modems attached to the built in serial port
- SCF - the Sequential Character File manager for character-by-character devices
- Shell - the default command interpreter
- SysGo - the system startup module to spawn the console shell on the default disk and terminal device
- T1 - the device descripter for a terminal attached to the built-in serial port
- TERM - the default Color Computer console device descripter
SysGo
The SysGo module starts the initial console shell and waits in the background for it to exit, and restart it if this happens.
Shell
The Shell modules provides a user command line environment, command execution, file system navigation, and I/O stream redirection.
Startup
The Startup shell procedure file loads and runs the setime module to prompt for the current date and time from /TERM.
Bootstrap complete
The system is ready to use once the OS9: prompt appears.