mirror of
https://github.com/dynamicwebpaige/AppleII_DOS.git
synced 2024-06-15 20:29:30 +00:00
70 lines
3.8 KiB
Plaintext
70 lines
3.8 KiB
Plaintext
|
|
||
|
Apple DOS 3.1 Source Code - Notes
|
||
|
****************************************************************************************
|
||
|
|
||
|
|
||
|
* The initial release of DOS 3.1 had a handful of bugs, two of which were particularly
|
||
|
frustrating for users. The first bug prevented the ability to successfully run the
|
||
|
MASTER.CREATE program. You could INIT a slave disk just fine, but not a master
|
||
|
disk. Indeed, I've confirmed this with every DOS 3.1 disk image that I could find.
|
||
|
Apparently, a patch was published by a user group that fixed the issue, and that
|
||
|
patch was at some point incorporated in some of the later DOS 3.1 disks that were
|
||
|
distributed by Apple (it seems they didn't change the 3.1 revision number when they
|
||
|
released the updated disks). Try as I might, I haven't found any differences in the
|
||
|
RAWDOS binary or DOS/boot sectors on any of the disk images that I have located,
|
||
|
and I haven't located any documentation that provides any details on this particular
|
||
|
patch.
|
||
|
|
||
|
With that, I studied the source for a bit and pretty quickly found what the problem
|
||
|
was, and applied (what turned out to be) a simple two byte patch.
|
||
|
|
||
|
The second bug prevented Applesoft from READ'ing or WRITE'ing lines numbered greater
|
||
|
than 255. The patch that addressed this problem, while apparently not on the initial
|
||
|
release of DOS 3.1, WAS found on every disk image that I have located.
|
||
|
|
||
|
This source file, the included boot disk image, and the RAWDOS binary on the disk
|
||
|
image, all incorporate these two simple patches (thus the 'Patched Release'
|
||
|
reference at the top of the source file).
|
||
|
|
||
|
* This source file obviously includes the Apple DOS RWTS low-level subroutines
|
||
|
written by Steve Wozniak and Randy Wigginton. The original source listing file is
|
||
|
posted on the CHM website and named "Apple_DOS_RW_30May1978.txt".
|
||
|
|
||
|
The object code for this part of the source was compared to sectors extracted from
|
||
|
an Apple DOS 3.1 master disk, as well as the RAWDOS binary distributed with DOS 3.1,
|
||
|
and somewhat surprisingly only a single byte was changed. The change occurs at
|
||
|
appdos31.asm source line number 4877. The delay byte in the original is $5F, and
|
||
|
with DOS 3.1 it's $FF.
|
||
|
|
||
|
Note that this source not only contains the RWTS low-level subroutines that were
|
||
|
made available, but also the necessary RWTS main entry point routines. The original
|
||
|
source listing for this part of RWTS has not been made available as of this writing.
|
||
|
With that, I took a stab at commenting that part of the disassembled code.
|
||
|
|
||
|
* This source file will produce a binary that is identical (with the one exception
|
||
|
noted at the top of the source file) to the RAWDOS binary image that was included
|
||
|
on the DOS 3.1 master disk.
|
||
|
|
||
|
The resulting binary was placed on a DOS 3.1 master disk image and named as RAWDOS,
|
||
|
the disk was booted, and then the MASTER.CREATE program was run (because we have the
|
||
|
necessary patch! :)) to create a new master disk. The new disk (INIT'ed with the
|
||
|
newly assembled RAWDOS binary) was tested and found to be working perfectly.
|
||
|
|
||
|
And (just for the fun of it :)), I also placed the various components of this binary
|
||
|
directly on the appropriate sectors of a disk image, set some of the initial EC3, IOB,
|
||
|
and various 'MISC BUT REQD CELLS' values that are required to boot, and it also boots
|
||
|
and runs just fine.
|
||
|
|
||
|
* The disk image (Apple DOS 3.1 Master - AFS.nib) included with this archive is the
|
||
|
result of running MASTER.CREATE with the assembled RAWDOS binary, and then copying
|
||
|
(loading/saving) the additional files that were distributed with the DOS 3.1 master
|
||
|
disk from an original 3.1 master disk image. It is in the 'nibblized' image format,
|
||
|
which should be supported by most (if not all) Apple II emulators.
|
||
|
|
||
|
|
||
|
|
||
|
Scott LaBombard
|
||
|
labomb@rochester.rr.com
|
||
|
12/07/2013
|
||
|
|
||
|
|