Updated page on COMPAQ DOS 1.11

This commit is contained in:
Jeff Parsons 2017-06-26 07:33:03 -07:00 committed by Jeff Parsons
commit 8d5c618b78
2 changed files with 34 additions and 34 deletions

View file

@ -70,7 +70,7 @@ A directory listing of the 320Kb diskette is provided [below](#directory-of-comp
28 file(s) 256320 bytes
53248 bytes free
The boot sector of the COMPAQ MS-DOS 1.11 disk image (COMPAQ-DOS111.img) contained the following bytes:
The boot sector of the COMPAQ MS-DOS 1.11 disk image contains the following bytes:
00000000 fa bc e7 01 b8 c0 07 8e d0 fb 8e d8 8e c0 33 c0 |..............3.|
00000010 cd 13 b8 01 02 bb 00 02 b9 04 00 33 d2 e8 8b 00 |...........3....|
@ -105,29 +105,30 @@ The boot sector of the COMPAQ MS-DOS 1.11 disk image (COMPAQ-DOS111.img) contain
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Consequently, the disk could not be mounted by a modern operating system (e.g., macOS), because it lacked a proper
Consequently, the disk cannot be mounted by a modern operating system (e.g., macOS), because it lacks a proper
BPB at offset 0x000B.
Using the *--forceBPB* option of the [DiskDump](/modules/diskdump/) utility, I was able to create a mountable disk
image with the following boot sector modifications:
One solution is to use the *--forceBPB* option of the [DiskDump](/modules/diskdump/) utility, which creates a
mountable disk image with the following boot sector modifications:
00000000 eb fe 90 50 43 4a 53 2e 4f 52 47 00 02 02 01 00 |...PCJS.ORG.....|
00000010 02 70 00 80 02 ff 01 00 08 00 02 00 00 00 00 00 |.p..............|
00000020 00 00 00 00 00 8a 07 3c 24 74 0c 53 b4 0e bb 07 |.......<$t.S....|
These modifications included:
The following byte ranges are modified:
- 0x0000-0x0002: 2-byte Intel JMP instruction followed by 1-byte Intel NOP
- 0x0000-0x0002: 2-byte Intel x86 JMP instruction followed by 1-byte x86 NOP
- 0x0003-0x000A: 8-byte OEM signature string (we use the fake "PCJS.ORG" OEM signature)
- 0x000B-0x001D: 19-byte BPB describing a 320Kb diskette image with 8 sectors/track and 2 heads
Ordinarily, only the 19-byte BPB would be required, but it turned out that macOS wouldn't mount the image file
*unless* the boot sector also began with an Intel JMP instruction. All known PC-DOS boot sectors begin with a JMP
instruction, so these early OEM disk images were rather unusual.
Ordinarily, only the 19-byte BPB would be required, but it turns out that macOS won't mount the disk image
unless the boot sector *also* begins with an Intel x86 JMP instruction. So the *--forceBPB* option updates all
30 bytes at the beginning of the boot sector, making the disk image mountable, but also rendering it unbootable --
which is OK if all you want to do is mount the image and copy files from it.
Anyway, I changed the *--forceBPB* option to update all 30 bytes at the beginning of the boot sector, making the disk
image mountable, but also rendering it unbootable. But that was OK, because all I wanted to do with the image was mount
it and copy its files. The sequence of commands were:
Here's a sample command sequence. Note that *two* DiskDump commands are required, because BPB modification
only happens when converting an IMG file to a JSON file; the second command converts the JSON file back into
a separate IMG file, preserving the original.
diskdump --disk=COMPAQ-DOS111.img --format=json --output=COMPAQ-DOS111-BPB.json
warning: BPB has been updated
@ -139,4 +140,12 @@ it and copy its files. The sequence of commands were:
mkdir COMPAQ-DOS111
cp -pr /Volumes/Untitled/ COMPAQ-DOS111
Another curiosity regarding this disk are the BASIC files. **BASIC.COM** and **BASICA.COM** are nothing more than
tiny programs to load **BASICA.EXE**, a stand-alone version of BASIC that doesn't require any BASIC ROMs. And
**BASICA.EXE** reports a version number that differs from the DOS version:
The COMPAQ Personal Computer BASIC
Version 1.13
(C) Copyright COMPAQ Computer Corp. 1983
[Return to [COMPAQ MS-DOS Disks](/disks/pcx86/dos/compaq/)]