Add files via upload
This commit is contained in:
parent
fb18081a9f
commit
731a69c89d
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||
|
||||
|
|
@ -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
|
|
@ -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
|
||||
|
Loading…
Reference in New Issue