| Last update: 12th September 2004 |
Overview
These pages are intended to contain useful links and files for the SDOS project.
Useful links
- Boot sequence
- Notes on the OS/2 boot sequence; nearly all of this is generic
information, and may be helpful when working on bootstraps.
-
Bootstrap Tutorial
- A tutorial on bootstrapping, and example assembler code.
-
How C Programming Works
- This is quite a useful site, with some nice stuff on pointers, and some pictures.
May be worth reading through it.
- Format of .EXE files
- This page describes the internal format of a DOS .EXE file. This information is needed
to write a bootstrap loader, and to load new tasks.
- 8272 data sheet
- This is the actual Intel data sheet on the 8259a interrupt controller chip.
Although this chip is no longer used, its functionality is included in all modern chipsets.
This is useful for checking obscure points not covered by some reference books.
- DMA information
- This is a useful page which explains how DMA works.
Useful files
- PC-DOS 7.0 Technical Update (PDF)
- This is a technical reference document, which applies equally to MS-DOS and PC-DOS.
It contains details of disk data structures, as well as full details of all system
calls (including direct disk access). Of limited use for this project,
but may help when writing utilities.
- 8259 data sheet
- This is the actual Intel data sheet on the 8259a interrupt controller chip.
Although this chip is no longer used, its functionality is included in all modern chipsets.
This is useful for checking obscure points not covered by some reference books.
- 82C54 data sheet
- This is the actual Intel data sheet on the 82C54, a later version of the 8253 timer chip.
The functionality of this chip is included in most modern chipsets.
- 8237 data sheet
- This is the actual Intel data sheet on the 8237a, a later version of the 8237
Direct Memory Access (DMA) chip.
The functionality of this chip is included in most modern chipsets.
- MC6845 data sheet
- This is the actual Motorola data sheet on the MC6845 video controller.
This is the chip on which all later video controller chips are based, so all
basic functions are described here.
- UNZIP utility
- Windows version of UNZIPping utility, to extract files from ZIP files. Note that this executable should be run in
an empty directory, as it is actually a self-extracting ZIP file.
- ZIP utility
- Windows version of ZIPping utility, to pack files into ZIP files.
Note that this is a ZIP file, and needs unpacking with UNZIP.
- Minix 2.0 system sources
- This ZIP file contains the MINIX systems sources, which may be useful to see how
the keyboard and display are programmed.
Sample code
These are samples of code that may be used to save time and allow concentration on the important parts
of the project.
- Bootstrap (primary and secondary)
- This is a complete bootstrap program written in Microsoft MASM. The tools to build
it are included. The bootstrap will load a file called KERNEL.EXE (in the root directory)
from a diskette, and place it in memory after processing it. This bootstrap can be written
to a diskette using the WRBOOT utility. See the README.TXT file
inside the ZIP file for more details.
- Write boot block
- WRBOOT is a utility which will write a bootstrap program (primary and secondary)
to a diskette. The diskette can be of any size. The diskette must be in drive A:. See the README.TXT
file inside the ZIP file for more details.
- Skeleton kernel
- This is a skeleton kernel that simply displays an opening greeting message. See
the README.TXT file inside the ZIP file for more details.
- Skeleton kernel, later version
- This is a skeleton kernel that displays an opening greeting message, and has two skeleton
tasks. See
the README.TXT file inside the ZIP file for more details.
- Skeleton kernel, even later version
- This is a skeleton kernel that has two basic
tasks. The diskette task does nothing; the console task can be sent messages to do screen output,
and has a keyboard interrupt handler (but nothing is done with the input characters).
See the README.TXT file inside the ZIP file for more details.
Building the sample system
To build the sample system:
- Build the WRBOOT utility.
- Build the bootstrap.
- Format a diskette.
- Use WRBOOT to place the bootstrap on the diskette. If the LOADER.BIN file cannot be written
to the diskette by WRBOOT, copy it using the COPY command.
- Build the kernel.
- Copy the kernel to the diskette, using the COPY command.
Then try booting from the diskette.
References
These are references to useful books, papers, documents etc.
-
Operating Systems: Design and Implementation, by Andrew S. Tanenbaum, published by Prentice-Hall,
ISBN 0136373313.
- This is the book on Minix. Look at sections 2.2.8 and 2.5.3. for information about message passing.
There is a link
here to the entry on Amazon; you may find it hard to search for as they have spelled his name wrong!
There should be copies in the University Library.
Local information
None yet.