Example ROM Implementation
This chapter describes the procedure for building Caldera(tm) DR-DOS(tm) in ROM for a particular hardware configuration. This example is based on the hardware configuration defined as Type 4 in the RDISKIO.ASM file. The purpose of this example is to illustrate the procedure for building a ROM-based system, rather than to explain exactly how you build a ROM system on every possible hardware configuration.
Structure of the ROM
ROM structure In the Sample Implementation
For this sample implementation two 512 Kbit PROMs (for example, Intel 27512) are required, giving a total of 128 Kbytes of ROM. The ROM starts at paragraph address E000H and ends at paragraph address 0FFFFH. The first 96 Kbytes of ROM contain DR-DOS and the last 32 Kbytes are the computer,s ROM BIOS. This is illustrated below.
The files for DR-DOS are the BOOTSTRAP program ROMINIT.BIN, the DR-DOS kernel, the DOS BIOS, and the COMMAND.COM interpreter. There is also room for CONFIG.SYS and AUTOEXEC.BAT files to initially configure the system.
The procedure generates a ROM version of DR-DOS suitable for inserting into an IBM-compatible computer with single or dual floppy drives, hard disks and an 8-bit data bus.
The ROMs generated as described in this procedure replace all ROMs in the target hardware between E0000H and FFFFFH. The ROM BIOS and DR-DOS kernel are executed from ROM. The ROM also appears to the system as a READ ONLY disk containing the following files:
Standard DR-DOS command processor.
Standard DR-DOS kernel.
DOS BIOS including resident ROMDISK device driver. Note that the file ROMBIO.COM is renamed to IBMBIO.COM by a command in the control file. This is done for reasons of compatibility.
Copy of target system ROM BIOS. Note that this file is not supplied by Caldera.
Bootstrap software for a ROM-based version of DR-DOS executing from ROM.
The file CONTROL in this implementation includes the lines:
The switch =8000 forces the file ROMBIOS.BIN to be positioned at byte offset 8000H in the second ROM image. This is paragraph 0F800H in the computerís memory space. Note that this offset reflects the use of 64K chips. If you have an implementation that uses 128K chips, there is a single ROM image, and the byte offset is 18000H, generated by the lines:
Example Procedure for Type 4 Hardware
Example of Building DR-DOS in ROM
This section details an example procedure to build DR-DOS in ROM for Type 4 hardware. The resultant ROM structure is as described in the previous section. The example assumes the default drive is C:.
1. Copy the contents of the DR-DOS ROMing SDK to the hard disk.
C:\>XCOPY D:\OEM\SDKS\ROMMING *.* C:\ /SE
There is now a \OEM\SDKS\ROMMING subdirectory.
2. Change to the ROMMING subdirectory.
3. Execute the MAKEROM.BAT file by using the command MAKEROM n, where n is the hardware type. In this example procedure you therefore issue the command:
MAKEROM.BAT builds the following files from source:
A loadable version of the ROMDISK device driver for debugging.
DOS BIOS incorporating the ROMDISK device driver.
ROM initialization code.
4. Copy the files IBMDOS.COM and COMMAND.COM from the DRDOS directory into the ROMMING subdirectory.
5. In this example implementation, the DR-DOS ROMs replace the target systemís ROM BIOS. Therefore, a copy of the target ROM BIOS must be copied from paragraph address F800H into the file ROMBIOS.BIN. This is accomplished by using the DOS debugger SID.EXE. The values XXXX and YYYY in the following example session will vary between systems:
This creates a 32768 byte file ROMBIOS.BIN in the current ROMMING directory.
Note: The file ROMBIO.COM is read into memory first, in order to force the SID debugger to allocate a memory buffer and to allow the ROMBIOS.BIN file to be written without error.
6. Construct the ROM image files by starting the ROMDISK.EXE utility.
ROMDISK.EXE reads the names and locations of the files to be placed in ROM from a control file. The file CONTROL has been supplied for this purpose, but it assumes that all the necessary files are in the current subdirectory.
To start the ROMDISK utility, enter:
You will see the following screen displayed:
ROMDISK R1.7 Romdisk creation utility
Copyright (c) 1988,1989 Caldera, Inc. All rights reserved.
IMG SEQ TOT Address Size Fixadd Pointer Pathname
0 1 0 00000000 00000000 00000000 00000000 Header
0 1 0 00000020 00000000 00000000 00000000 Label:-"ROM DISK ď
0 1 1 00000060 00000147 00000000 00000000 ROMINIT.BIN
0 1 1 000001D0 000099D9 00000000 00000000 IBMDOS.COM
0 1 1 00009BD0 00005540 00000000 00000000 IBMBIO.COM
0 1 2 0000F130 00000ED0 00000000 00000000 COMMAND.COM
1 2 2 00000020 00007D50 00000000 00000ED0 COMMAND.COM
1 1 0 00007D90 00000250 00008000 00000000 Filler
1 1 1 00008000 00008000 00000000 00000000 ROMBIOS.BIN
Output file(s) generated will be binary.
OK to continue ? (Y/N):
In this sample implementation, the address of ROMBIOS.BIN will be 8000H.
Note: The file sizes shown in this example may not match those in your particular implementation.
In response to the prompt:
OK to continue ? (Y/N):
The ROMDISK utility creates two ROM images. These are called PROM0000.BIN and PROM0001.BIN.
Now generating Low ROM: PROM0000.BIN
Now generating Low ROM: PROM0001.BIN
The binary ROM image files will now be present in the ROMMING subdirectory, and can be downloaded to a PROM programmer and used to blow two 27512 64Kbyte PROMS.