SDOS resource page
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:

  1. Build the WRBOOT utility.
  2. Build the bootstrap.
  3. Format a diskette.
  4. 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.
  5. Build the kernel.
  6. 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.


Get Dilbert!


© 2004 Bob Eager, Tavi Systems