Description of Software

Booting The System: On startup, the system runs code stored in a small boot ROM. This code traverses through the FAT16 filesystem of the connected Compact Flash card, locating a special file named RAMIMAGE in the root directory. This file contains the object code for the operating system. Once found, the boot loader code copies the operating system to main memory and tranfers control to the OS starting routine. Note that by changing the RAMIMAGE file, one can run any p37x program on system startup. This allows the user to customize the system if desired.

Operating System: The operating system begins by traversing the root directory of the CF card, creating a list of all relevant media items. Each element in this list contains the item's name and all information necessary to locate and read the file from disk. Once this file list is constructed, file names are displayed to the user, and the OS polls for user input to navigate through the file list and present the appropriate media items.

Executing Other Programs: If the selected media item is another p37X program, the operating system transers control by sending the new program's disk address to the compact flash controller, setting a special boot flag, and transferring control to the boot ROM. The boot ROM code, seeing that the boot flag has been set, copies the new program to main memory (instead of loading the operating system). When the new program has finished execution, it transfers control back to the OS by clearing the boot flag and passing control to the boot ROM. Now with the boot flag clear, the boot code will once again load the operating system. Note that the boot flag is automatically cleared on system reset, forcing the boot ROM to load the operating system. This allows for an easy way to terminate misbehaving programs.