diff --git a/disks/pcx86/dos/compaq/1.11/README.md b/disks/pcx86/dos/compaq/1.11/README.md index e8ed57dfe..31419b084 100644 --- a/disks/pcx86/dos/compaq/1.11/README.md +++ b/disks/pcx86/dos/compaq/1.11/README.md @@ -18,7 +18,7 @@ machines: COMPAQ MS-DOS 1.11 ------------------ -Released in 1983 by COMPAQ Computer Corp, this early version of MS-DOS displays on startup: +Released in 1983 by COMPAQ Computer Corp, this version of MS-DOS reports itself as: The COMPAQ Personal Computer DOS Version 1.11 @@ -28,7 +28,7 @@ Released in 1983 by COMPAQ Computer Corp, this early version of MS-DOS displays (C) Copyright Microsoft 1981, 82 To learn more about this double-sided 320Kb diskette, see the -[Directory Listing](#directory-of-compaq-ms-dos-111-diskette) and [Boot Sector](#compaq-ms-dos-110-boot-sector) below. +[Directory Listing](#directory-of-compaq-ms-dos-111-diskette) and [Boot Sector](#compaq-ms-dos-111-boot-sector) below. {% include machine.html id="ibm5150-compaq111" %} @@ -114,9 +114,135 @@ The boot sector of the COMPAQ MS-DOS 1.11 disk image contains the following byte 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - 000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| + 000001e0 00 00 00 00 00 00 00 e7 01 00 00 00 00 00 00 00 |................| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +Unlike most DOS boot sectors, this boot sector doesn't start with an Intel x86 JMP instruction. Let's take a +look at the code, using the PCjs Debugger to stop at the first instruction: + + >> bp 0:7c00 + bp &0000:7C00 set + >> g + bp &0000:7C00 hit + stopped (5153504 opcodes, 42808074 cycles, 9014 ms, 4749065 hz) + AX=0000 BX=7C00 CX=0004 DX=0000 SP=0100 BP=E4B7 SI=0000 DI=0044 + SS=0030 DS=0040 ES=0000 PS=F296 V0 D0 I1 T0 S1 Z0 A1 P1 C0 + &0000:7C00 FA CLI + >> u 7c00 + &0000:7C00 FA CLI + &0000:7C01 BCE701 MOV SP,01E7 + &0000:7C04 B8C007 MOV AX,07C0 + &0000:7C07 8ED0 MOV SS,AX + &0000:7C09 FB STI + &0000:7C0A 8ED8 MOV DS,AX + &0000:7C0C 8EC0 MOV ES,AX + &0000:7C0E 33C0 XOR AX,AX + &0000:7C10 CD13 INT 13 + &0000:7C12 B80102 MOV AX,0201 + &0000:7C15 BB0002 MOV BX,0200 + &0000:7C18 B90400 MOV CX,0004 + &0000:7C1B 33D2 XOR DX,DX + &0000:7C1D E88B00 CALL 7CAB + &0000:7C20 EB1C JMP 7C3E + &0000:7C22 BBDA00 MOV BX,00DA + &0000:7C25 8A07 MOV AL,[BX] + &0000:7C27 3C24 CMP AL,24 + &0000:7C29 740C JZ 7C37 + &0000:7C2B 53 PUSH BX + &0000:7C2C B40E MOV AH,0E + &0000:7C2E BB0700 MOV BX,0007 + &0000:7C31 CD10 INT 10 + &0000:7C33 5B POP BX + &0000:7C34 43 INC BX + &0000:7C35 EBEE JMP 7C25 + &0000:7C37 33C0 XOR AX,AX + &0000:7C39 CD16 INT 16 + &0000:7C3B EBC3 JMP 7C00 + &0000:7C3D C3 RET + &0000:7C3E FC CLD + &0000:7C3F 8BF3 MOV SI,BX + &0000:7C41 BFC400 MOV DI,00C4 + &0000:7C44 B90B00 MOV CX,000B + &0000:7C47 F3 REPZ + &0000:7C48 A6 CMPSB + &0000:7C49 75D7 JNZ 7C22 + &0000:7C4B 83C615 ADD SI,0015 + &0000:7C4E B90B00 MOV CX,000B + &0000:7C51 F3 REPZ + &0000:7C52 A6 CMPSB + &0000:7C53 75CD JNZ 7C22 + &0000:7C55 B80102 MOV AX,0201 + &0000:7C58 BB0002 MOV BX,0200 + &0000:7C5B B90200 MOV CX,0002 + &0000:7C5E 33D2 XOR DX,DX + &0000:7C60 E84800 CALL 7CAB + &0000:7C63 8A27 MOV AH,[BX] + &0000:7C65 80FCFE CMP AH,FE + &0000:7C68 BE2601 MOV SI,0126 + &0000:7C6B 740A JZ 7C77 + &0000:7C6D 80FCFF CMP AH,FF + &0000:7C70 7402 JZ 7C74 + &0000:7C72 EBAE JMP 7C22 + &0000:7C74 BE3C01 MOV SI,013C + &0000:7C77 B86000 MOV AX,0060 + &0000:7C7A 50 PUSH AX + &0000:7C7B 07 POP ES + &0000:7C7C 8B04 MOV AX,[SI] + &0000:7C7E 33DB XOR BX,BX + &0000:7C80 8B4C02 MOV CX,[SI+02] + &0000:7C83 8B5404 MOV DX,[SI+04] + &0000:7C86 E82200 CALL 7CAB + &0000:7C89 8B4406 MOV AX,[SI+06] + &0000:7C8C 035C08 ADD BX,[SI+08] + &0000:7C8F 8B4C0A MOV CX,[SI+0A] + &0000:7C92 8B540C MOV DX,[SI+0C] + &0000:7C95 E81300 CALL 7CAB + &0000:7C98 8B440E MOV AX,[SI+0E] + &0000:7C9B 035C10 ADD BX,[SI+10] + &0000:7C9E 8B4C12 MOV CX,[SI+12] + &0000:7CA1 8B5414 MOV DX,[SI+14] + &0000:7CA4 E80400 CALL 7CAB + &0000:7CA7 FF2E5201 JMP FAR [0152] + &0000:7CAB BF0500 MOV DI,0005 + &0000:7CAE 57 PUSH DI + &0000:7CAF 50 PUSH AX + &0000:7CB0 CD13 INT 13 + &0000:7CB2 7203 JC 7CB7 + &0000:7CB4 58 POP AX + &0000:7CB5 58 POP AX + &0000:7CB6 C3 RET + &0000:7CB7 33C0 XOR AX,AX + &0000:7CB9 CD13 INT 13 + &0000:7CBB 58 POP AX + &0000:7CBC 5F POP DI + &0000:7CBD 4F DEC DI + &0000:7CBE 75EE JNZ 7CAE + &0000:7CC0 58 POP AX + &0000:7CC1 E95EFF JMP 7C22 + >> db 7cc4 l13c + &7CC4 49 4F 53 59 53 20 20 20-43 4F 4D 4D 53 44 4F 53 IOSYS COMMSDOS + &7CD4 20 20 20 43 4F 4D 0A 0D-4E 6F 6E 2D 53 79 73 74 COM..Non-Syst + &7CE4 65 6D 20 64 69 73 6B 20-6F 72 20 64 69 73 6B 20 em disk or disk + &7CF4 65 72 72 6F 72 0A 0D 52-65 70 6C 61 63 65 20 61 error..Replace a + &7D04 6E 64 20 73 74 72 69 6B-65 20 61 6E 79 20 6B 65 nd strike any ke + &7D14 79 20 77 68 65 6E 20 72-65 61 64 79 0A 0D 24 47 y when ready..$G + &7D24 41 53 01 02 08 00 00 00-08 02 00 02 01 01 00 00 AS.............. + &7D34 08 02 00 10 01 02 00 00-06 02 03 00 00 01 08 02 ................ + &7D44 00 0C 01 01 00 00 03 02-00 10 01 01 00 01 00 00 ................ + &7D54 60 00 28 43 29 43 6F 70-79 72 69 67 68 74 20 43 `.(C)Copyright C + &7D64 4F 4D 50 41 51 20 43 6F-6D 70 75 74 65 72 20 43 OMPAQ Computer C + &7D74 6F 72 70 6F 72 61 74 69-6F 6E 20 31 39 38 32 00 orporation 1982. + &7D84 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ + &7D94 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ + &7DA4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ + &7DB4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ + &7DC4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ + &7DD4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ + &7DE4 00 00 00 E7 01 00 00 00-00 00 00 00 00 00 00 00 ................ + &7DF4 00 00 00 00 00 00 00 00-00 00 00 00 + +### Mounting the COMPAQ MS-DOS 1.11 Diskette + Note that the disk cannot be mounted by a modern operating system (e.g., macOS), because it lacks a proper BPB at offset 0x000B. @@ -144,7 +270,7 @@ by pointing out that some (newer) ROMs will not boot from a disk if that signatu However, that evidence is misleading, because those ROMs check only *hard disk* boot sectors for the 0xAA55 signature, not diskettes. Which makes sense, because hard disk support didn't exist in DOS until version 2.0 -- the same version -of DOS that also introduced BPBs and boot sector signatures. +of DOS that also introduced BPBs and the 0xAA55 boot sector signature. Here's how you can use [DiskDump](/modules/diskdump/) to a mountable disk. Note that *two* DiskDump commands are required, because BPB modification only happens when converting an IMG file to a JSON file; the second DiskDump command diff --git a/disks/pcx86/dos/compaq/1.12/README.md b/disks/pcx86/dos/compaq/1.12/README.md index 04ddcc171..e6f7b42a5 100644 --- a/disks/pcx86/dos/compaq/1.12/README.md +++ b/disks/pcx86/dos/compaq/1.12/README.md @@ -18,7 +18,7 @@ machines: COMPAQ MS-DOS 1.12 ------------------ -Released in 1983 by COMPAQ Computer Corp, this early version of MS-DOS displays the following messages on boot: +Released in 1983 by COMPAQ Computer Corp, this version of MS-DOS reports itself as: The COMPAQ Personal Computer DOS Version 1.12 @@ -26,7 +26,8 @@ Released in 1983 by COMPAQ Computer Corp, this early version of MS-DOS displays (C) Copyright COMPAQ Computer Corp. 1982, 83 (C) Copyright Microsoft 1981, 82 -A directory listing of the diskette is provided [below](#directory-of-compaq-ms-dos-112-diskette). +To learn more about this double-sided 320Kb diskette, see the +[Directory Listing](#directory-of-compaq-ms-dos-112-diskette) and [Boot Sector](#compaq-ms-dos-112-boot-sector) below. {% include machine.html id="ibm5150-compaq112" %} @@ -70,4 +71,44 @@ A directory listing of the diskette is provided [below](#directory-of-compaq-ms- 28 file(s) 257402 bytes 52224 bytes free +### COMPAQ MS-DOS 1.12 Boot Sector + +The boot sector of the COMPAQ MS-DOS 1.12 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....| + 00000020 eb 1c bb da 00 8a 07 3c 24 74 0c 53 b4 0e bb 07 |.......<$t.S....| + 00000030 00 cd 10 5b 43 eb ee 33 c0 cd 16 eb c3 c3 fc 8b |...[C..3........| + 00000040 f3 bf c4 00 b9 0b 00 f3 a6 75 d7 83 c6 15 b9 0b |.........u......| + 00000050 00 f3 a6 75 cd b8 01 02 bb 00 02 b9 02 00 33 d2 |...u..........3.| + 00000060 e8 48 00 8a 27 80 fc fe be 26 01 74 0a 80 fc ff |.H..'....&.t....| + 00000070 74 02 eb ae be 3c 01 b8 60 00 50 07 8b 04 33 db |t....<..`.P...3.| + 00000080 8b 4c 02 8b 54 04 e8 22 00 8b 44 06 03 5c 08 8b |.L..T.."..D..\..| + 00000090 4c 0a 8b 54 0c e8 13 00 8b 44 0e 03 5c 10 8b 4c |L..T.....D..\..L| + 000000a0 12 8b 54 14 e8 04 00 ff 2e 52 01 bf 05 00 57 50 |..T......R....WP| + 000000b0 cd 13 72 03 58 58 c3 33 c0 cd 13 58 5f 4f 75 ee |..r.XX.3...X_Ou.| + 000000c0 58 e9 5e ff 49 4f 53 59 53 20 20 20 43 4f 4d 4d |X.^.IOSYS COMM| + 000000d0 53 44 4f 53 20 20 20 43 4f 4d 0a 0d 4e 6f 6e 2d |SDOS COM..Non-| + 000000e0 53 79 73 74 65 6d 20 64 69 73 6b 20 6f 72 20 64 |System disk or d| + 000000f0 69 73 6b 20 65 72 72 6f 72 0a 0d 52 65 70 6c 61 |isk error..Repla| + 00000100 63 65 20 61 6e 64 20 73 74 72 69 6b 65 20 61 6e |ce and strike an| + 00000110 79 20 6b 65 79 20 77 68 65 6e 20 72 65 61 64 79 |y key when ready| + 00000120 0a 0d 24 47 41 53 01 02 08 00 00 00 08 02 00 02 |..$GAS..........| + 00000130 01 01 00 00 08 02 00 10 01 02 00 00 06 02 03 00 |................| + 00000140 00 01 08 02 00 0c 01 01 00 00 03 02 00 10 01 01 |................| + 00000150 00 01 00 00 60 00 28 43 29 43 6f 70 79 72 69 67 |....`.(C)Copyrig| + 00000160 68 74 20 43 4f 4d 50 41 51 20 43 6f 6d 70 75 74 |ht COMPAQ Comput| + 00000170 65 72 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 31 |er Corporation 1| + 00000180 39 38 32 00 00 00 00 00 00 00 00 00 00 00 00 00 |982.............| + 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| + 000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| + 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| + 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| + 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| + 000001e0 00 00 00 00 00 00 00 e7 01 00 00 00 00 00 00 00 |................| + 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| + +It is identical to the [COMPAQ MS-DOS 1.11 Boot Sector](../1.11/#compaq-ms-dos-111-boot-sector), +so refer to that page for more information. + [Return to [COMPAQ MS-DOS Disks](/disks/pcx86/dos/compaq/)] diff --git a/modules/pcx86/lib/debugger.js b/modules/pcx86/lib/debugger.js index f16ee42ad..8ef248442 100644 --- a/modules/pcx86/lib/debugger.js +++ b/modules/pcx86/lib/debugger.js @@ -4761,9 +4761,9 @@ class DebuggerX86 extends Debugger { /** * doDump(asArgs) * - * The length parameter is interpreted as a number of bytes, in hex, which we convert to the appropriate number - * of lines, because we always display whole lines. If the length is omitted/undefined, it defaults to 0x80 (128.) - * bytes, which normally translates to 8 lines. + * The length parameter is interpreted as a number of bytes (in hex, by default). + * If the length is omitted/undefined, it defaults to 0x80 (128.) bytes, which normally + * translates to 8 lines of data. * * @this {DebuggerX86} * @param {Array.} asArgs (formerly sCmd, [sAddr], [sLen] and [sBytes])