Starting work on disambiguating PCjs the emulator from PCjs the project/website; the emulator will become PCx86
This commit is contained in:
parent
7c3aab2a7e
commit
288f28055d
1519 changed files with 16242 additions and 6939 deletions
|
|
@ -1,178 +0,0 @@
|
|||
---
|
||||
layout: page
|
||||
title: Microsoft MS-DOS 3.20
|
||||
permalink: /disks/pc/dos/microsoft/3.20/
|
||||
machines:
|
||||
- type: pc
|
||||
id: ibm5170-msdos320
|
||||
config: /devices/pc/machine/5170/ega/640kb/rev1/machine.xml
|
||||
autoMount:
|
||||
A:
|
||||
name: MS-DOS 3.20 (Disk 1)
|
||||
path: /disks/pc/dos/microsoft/3.20/MSDOS320-DISK1.json
|
||||
---
|
||||
|
||||
Microsoft MS-DOS 3.20
|
||||
---
|
||||
|
||||
The MS-DOS 3.20 disks in the PCjs collection are the only known non-OEM copies of that release
|
||||
available online. All other known MS-DOS 3.20 disk images are OEM releases (eg, HP, Zenith, Data General,
|
||||
Seiko Epson, etc.) and can be found on sites like [WinWorld](https://winworldpc.com/product/ms-dos/320).
|
||||
|
||||
Directory listings of the four 360Kb distribution diskettes are provided [below](#directory-listings).
|
||||
|
||||
{% include machine.html id="ibm5170-msdos320" %}
|
||||
|
||||
Directory Listings
|
||||
---
|
||||
|
||||
Disks 3 and 4 contained a printed date of `March 21, 1986` (see the photo below), which is consistent with
|
||||
the file timestamps (`2-14-86` and `3-14-86`) on those disks. However, all the files on Disks 1 and 2 are
|
||||
timestamped `7-07-86`. Apparently, the Programmer's Reference files were finalized several months in advance
|
||||
of the final MS-DOS 3.20 binaries.
|
||||
|
||||
Based on the dates of the binaries, **July 7, 1986** is considered the release date of MS-DOS 3.20.
|
||||
|
||||
NOTE: Disks 1 and 2 are restored versions of the original disks, since the original disks had been slightly
|
||||
modified for personal use. The disks should be complete, and all files should be genuine and in the original
|
||||
order. As proof, the following data from Disk 1:
|
||||
|
||||
00013db0 0d 0a 0d 0a 4d 69 63 72 6f 73 6f 66 74 28 52 29 |....Microsoft(R)|
|
||||
00013dc0 20 4d 53 2d 44 4f 53 28 52 29 20 20 56 65 72 73 | MS-DOS(R) Vers|
|
||||
00013dd0 69 6f 6e 20 33 2e 32 30 0d 0a 20 20 20 20 20 20 |ion 3.20.. |
|
||||
00013de0 20 20 20 20 20 20 20 28 43 29 43 6f 70 79 72 69 | (C)Copyri|
|
||||
00013df0 67 68 74 20 4d 69 63 72 6f 73 6f 66 74 20 43 6f |ght Microsoft Co|
|
||||
00013e00 72 70 20 31 39 38 31 2d 31 39 38 36 0d 0a 0d 0a |rp 1981-1986....|
|
||||
|
||||
matches the data listed at [16bitos.com](http://16bitos.com/320ms.htm), as do the MD5 checksums of IO.SYS,
|
||||
MSDODS.SYS and COMMAND.COM.
|
||||
|
||||
### Directory of MS-DOS 3.20 (Disk 1)
|
||||
|
||||
Volume in drive A has no label
|
||||
Directory of A:\
|
||||
|
||||
IO SYS 16138 7-07-86 12:00p
|
||||
MSDOS SYS 28480 7-07-86 12:00p
|
||||
ANSI SYS 1651 7-07-86 12:00p
|
||||
APPEND COM 1725 7-07-86 12:00p
|
||||
ASSIGN COM 1523 7-07-86 12:00p
|
||||
ATTRIB EXE 8234 7-07-86 12:00p
|
||||
CHKDSK EXE 9680 7-07-86 12:00p
|
||||
COMMAND COM 23612 7-07-86 12:00p
|
||||
DISKCOMP EXE 3808 7-07-86 12:00p
|
||||
DISKCOPY EXE 4096 7-07-86 12:00p
|
||||
DRIVER SYS 1102 7-07-86 12:00p
|
||||
EDLIN EXE 7356 7-07-86 12:00p
|
||||
EXE2BIN EXE 3050 7-07-86 12:00p
|
||||
FC EXE 14558 7-07-86 12:00p
|
||||
FDISK EXE 16830 7-07-86 12:00p
|
||||
FIND EXE 6403 7-07-86 12:00p
|
||||
FORMAT EXE 11005 7-07-86 12:00p
|
||||
GRAFTABL EXE 8210 7-07-86 12:00p
|
||||
GRAPHICS EXE 13170 7-07-86 12:00p
|
||||
JOIN EXE 9012 7-07-86 12:00p
|
||||
KEYBDV EXE 2886 7-07-86 12:00p
|
||||
KEYBFR EXE 2948 7-07-86 12:00p
|
||||
KEYBGR EXE 2940 7-07-86 12:00p
|
||||
KEYBIT EXE 2892 7-07-86 12:00p
|
||||
KEYBSP EXE 2983 7-07-86 12:00p
|
||||
KEYBUK EXE 2886 7-07-86 12:00p
|
||||
LABEL EXE 2750 7-07-86 12:00p
|
||||
MODE EXE 13928 7-07-86 12:00p
|
||||
MORE COM 282 7-07-86 12:00p
|
||||
PRINT EXE 8824 7-07-86 12:00p
|
||||
RAMDRIVE SYS 6462 7-07-86 12:00p
|
||||
RECOVER EXE 4145 7-07-86 12:00p
|
||||
REPLACE EXE 4852 7-07-86 12:00p
|
||||
SORT EXE 1898 7-07-86 12:00p
|
||||
SUBST EXE 9898 7-07-86 12:00p
|
||||
SYS COM 4607 7-07-86 12:00p
|
||||
36 File(s) 81920 bytes free
|
||||
|
||||
### Directory of MS-DOS 3.20 (Disk 2)
|
||||
|
||||
Volume in drive A has no label
|
||||
Directory of A:\
|
||||
|
||||
BACKUP EXE 23404 7-07-86 12:00p
|
||||
DEBUG EXE 15647 7-07-86 12:00p
|
||||
GWBASIC EXE 78864 7-07-86 12:00p
|
||||
LINK EXE 43988 7-07-86 12:00p
|
||||
RESTORE EXE 21750 7-07-86 12:00p
|
||||
SHARE EXE 8544 7-07-86 12:00p
|
||||
TREE EXE 8588 7-07-86 12:00p
|
||||
XCOPY EXE 5396 7-07-86 12:00p
|
||||
8 File(s) 151552 bytes free
|
||||
|
||||
### Directory of MS-DOS 3.20 (ProgRef 1)
|
||||
|
||||
Volume in drive A is MS320DOC03
|
||||
Directory of A:\
|
||||
|
||||
PROGREF1 DOC 357451 2-14-86 12:00a
|
||||
1 File(s) 0 bytes free
|
||||
|
||||
### Directory of MS-DOS 3.20 (ProgRef 2)
|
||||
|
||||
Volume in drive A is MS320DOC04
|
||||
Directory of A:\
|
||||
|
||||
PROGREF2 DOC 305536 3-14-86 9:44a
|
||||
1 File(s) 56320 bytes free
|
||||
|
||||
Surprisingly Bad Bug in MS-DOS 3.20
|
||||
---
|
||||
If you attempt to boot MS-DOS 3.20 on an [IBM PC Model 5150](/devices/pc/machine/5150/cga/384kb/softkbd/) (with either
|
||||
an MDA or CGA video card), the machine will appear to crash after printing the first character.
|
||||
|
||||
When MS-DOS 3.20 prints characters to the screen, it uses this code:
|
||||
|
||||
0287:1FA8 CD29 INT 29 ;history=7
|
||||
0070:017A 50 PUSH AX ;history=6
|
||||
0070:017B 56 PUSH SI ;history=5
|
||||
0070:017C 57 PUSH DI ;history=4
|
||||
0070:017D 55 PUSH BP ;history=3
|
||||
0070:017E B40E MOV AH,0E ;history=2
|
||||
0070:0180 B307 MOV BL,07 ;history=1
|
||||
0070:0182 CD10 INT 10
|
||||
AX=0E43 BX=0B07 CX=0010 DX=0000 SP=0862 BP=36FE SI=00D3 DI=000B
|
||||
SS=0287 DS=0287 ES=0287 PS=F012 V0 D0 I0 T0 S0 Z0 A1 P0 C0
|
||||
|
||||
whereas MS-DOS 3.30 uses this code:
|
||||
|
||||
022F:222E CD29 INT 29 ;history=10
|
||||
0070:069E 50 PUSH AX ;history=9
|
||||
0070:069F 56 PUSH SI ;history=8
|
||||
0070:06A0 57 PUSH DI ;history=7
|
||||
0070:06A1 55 PUSH BP ;history=6
|
||||
0070:06A2 53 PUSH BX ;history=5
|
||||
0070:06A3 B40E MOV AH,0E ;history=4
|
||||
0070:06A5 B700 MOV BH,00 ;history=3
|
||||
0070:06A7 B307 MOV BL,07 ;history=2
|
||||
0070:06A9 CD10 INT 10 ;history=1
|
||||
|
||||
MS-DOS 3.20 doesn't clear the BH register before calling INT 0x10 Video BIOS function 0x0E, and the Model 5150 Video
|
||||
BIOS uses the BH register to select the video page, so when BH contains garbage (0x0B in the above example), it prints
|
||||
characters off-screen, where they can’t be seen.
|
||||
|
||||
As a result, the machine hasn't technically "crashed", but it's printing characters where they can't be seen, making
|
||||
the machine more or less unusable.
|
||||
|
||||
Starting with the IBM PC Model 5160, Video BIOS function 0x0E ignores BH and always use the current page.
|
||||
|
||||
Microsoft must not have tested MS-DOS 3.20 on any 5150 machines, or if they did, those machines must have contained
|
||||
upgraded video cards, such as an EGA, which provided their own Video BIOS. This bug was fixed in MS-DOS 3.21,
|
||||
but that release apparently wasn't made available until almost a year later (MS-DOS 3.21 files are timestamped
|
||||
`5-01-87`).
|
||||
|
||||
MS-DOS 3.20 Photos
|
||||
---
|
||||
|
||||
Here's what one of the MS-DOS 3.20 diskettes looked like.
|
||||
|
||||
> 
|
||||
|
||||
And the box, courtesy of [www.oldcomputermuseum.com](http://www.oldcomputermuseum.com/os/msdos_3.2.html).
|
||||
|
||||
> 
|
||||
Loading…
Reference in a new issue