Add files via upload

This commit is contained in:
Paige Bailey 2018-10-04 14:55:38 -07:00 committed by GitHub
parent fb18081a9f
commit 731a69c89d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 11676 additions and 0 deletions

1
Apple DOS 3.1 Master - AFS.nib generated Normal file

File diff suppressed because one or more lines are too long

5542
appdos31.asm Normal file

File diff suppressed because it is too large Load Diff

BIN
appdos31.bin Normal file

Binary file not shown.

5946
appdos31.lst Normal file

File diff suppressed because it is too large Load Diff

70
appdos31_notes.txt Normal file
View File

@ -0,0 +1,70 @@
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

63
how-to.txt Normal file
View File

@ -0,0 +1,63 @@
How To Create A Customized Apple DOS 3.1 Master Disk Image
---------------------------------------------------------------------------
1. Customize the appdos31.asm file as you wish. You may need to change
the syntax to suit the assembler that you choose to use. Pay close
attention to the overall size of the binary generated, and to page
boundaries as per the warnings throughout the comments in the source.
2. Assemble the source to produce a binary. Rename the binary to RAWDOS.
You may need to include the file attributes in the name depending on
the utility you use to add the binary to a disk image.
3. Open a DOS 3.1 master disk image in a disk image manipulation utility,
and then copy the newly assembled binary to the image, replacing the
existing original RAWDOS binary.
4. Boot the image in an Apple II emulator. Many emulators do not support
booting a 13 sector per track image directly, but that isn't a problem
(see Note 1 below for more detail):
a. Boot a DOS 3.3 master disk image that contains the Apple's
BOOT13 binary.
b. Enter "BRUN BOOT13" and wait for the prompt to enter the
slot number to boot from (default=6).
c. Eject the DOS 3.3 disk and mount the DOS 3.1 image that has
your custom RAWDOS file on it.
d. Press enter.
5. Once the DOS 3.1 disk has booted, enter "RUN MASTER.CREATE" and follow
the directions.
Note 1:
Apple's DISK II disk controller is outfitted with two 256x8 PROMs. One of
these PROM's contains the 'Phase 0' boot code that is responsible for
loading up and running the 'Phase 1' code located sector 0 of track 0 on
a DOS boot disk. The second PROM is generally referred to as the 'logic
state sequencer' PROM and is used to control disk accesses.
The initial shipments of Apple's DISK II disk controller were outfitted with
P5 (boot) and P6 (logic sequencer) PROMs. These versions of the PROMs were
specific to 13 sector per track disks, which was the format used when DOS 3.1
(and DOS 3.2) was released. With the release of DOS 3.3, the format changed
to 16 sectors per track. Apple made newer PROMs available (P5A and P6A) to
support the new disk format. While you cannot boot a 13 sector per track
disk directly with the newer P5A boot PROM (it is specific to 16 sectors
per track), the P6A logic-state sequencer has no issue reading and writing
both 13 and 16 sector per track disks.
Indeed, that is why Apple provided the BOOT13 binary (and the "BASICS"
diskette) when DOS 3.3 became available. With a controller outfitted with
the newer PROMs, it's simply a matter of booting a DOS 3.3 disk, and
entering 'BRUN BOOT13'.
Scott LaBombard
labomb@rochester.rr.com
12/07/2013

View File

@ -0,0 +1,54 @@
This document summarizes where changes occur in the Apple DOS 3.1 source code
as compared to the pre-release Apple DOS source written in 1978 by Paul Laughton,
then an employee of Shepardson Microsystems.
No attempt is made to explain why the changes were made... that is left to the
reader to determine :).
-----------------------------------------------------------------------------------
source source
line # line #
shepdos.asm appdos31.asm change to appdos31.asm source - comments
------------ ------------ ---------------------------------------------------
35 62 label DR1B moved up a line
47 75 BNE destination addr changed
51 79 BNE destination addr changed
55 83 'find end of DOS' JSR to a PATCH
382-389 instructions removed
583-584 instructions removed
644-646 instructions removed
663-664 instructions added
654 instructions removed
826-827 840-841 instruction order reversed
1101 instruction removed
1107-1108 1120-1121 'verify a file' JMP to a PATCH
1245 1256-1259 instructions removed, new instructions added
1274-1278 instructions removed
1498 instruction removed
1610 instruction removed
1626 instruction removed
1653 instruction removed
1666 instruction removed
1689-1691 1688 instructions removed, JMP to AS r/w PATCH
1694 1691 BMI destination addr changed
1695-1696 instructions removed
1736-1741 instructions removed
2234-2259 2224-2249 various DB/DW default values differ
2360 instruction added
2406 instruction removed
3670-3675 3660-3665 various DB/DW default values differ
3688-3699 3678-3689 various DB/DW default values differ
3720 3710 DB value differs
3851-3878 'find end of DOS' PATCH code added
3994-4003 'verify a file' PATCH code added
3991-4012 4021-4042 various DB/DW default values differ
Scott LaBombard
labomb@rochester.rr.com
12/05/2013