2017-01-29 23:54:00 +00:00
|
|
|
# ROM 5X by MG
|
|
|
|
|
2017-04-08 21:31:52 +00:00
|
|
|
## Consider it a step beyond beta :-)
|
2017-01-29 23:54:00 +00:00
|
|
|
|
2017-04-08 21:31:52 +00:00
|
|
|
*All of the functionality, including the RAM Disk recovery and other functions,
|
2017-03-18 22:48:12 +00:00
|
|
|
appear to work correctly, but I would appreciate any feedback if something isn't
|
|
|
|
workign for you.*
|
2017-03-17 03:12:41 +00:00
|
|
|
|
2017-03-11 19:02:13 +00:00
|
|
|
This is ROM 5X, providing the ROM 4X functionality to the Apple IIc Plus ROM
|
2017-04-08 21:31:52 +00:00
|
|
|
version 5, plus some basic control functions for the Apple IIc Plus accelerator.
|
|
|
|
|
|
|
|
There are some build options in accel5x.s - some functional, others needing more
|
|
|
|
work, the most popular of which will no doubt be the option to reset the system
|
|
|
|
with the accelerator in the disabled state. The "extra commands" option will
|
|
|
|
currently fail to build because the code gets too large, and is really only for
|
|
|
|
experimental purposes.
|
|
|
|
|
|
|
|
### Nitty Gritty
|
2017-01-29 23:54:00 +00:00
|
|
|
|
2017-02-12 19:53:47 +00:00
|
|
|
There are almost no free bytes in the main bank of the IIc Plus firmware, so
|
|
|
|
I had to get creative to get into the alternate bank, where I then had to split
|
2017-03-11 19:02:13 +00:00
|
|
|
the code up across multiple smaller free spaces due to the massive 3.5 drive
|
|
|
|
handling code. Ironically this makes the code larger as well.
|
2017-02-12 19:53:47 +00:00
|
|
|
|
|
|
|
For those interested, I hijack the monitor BEEP1 routine. The beep routine has
|
|
|
|
an LDA #$40 and then calls WAIT with this value for a .1 second delay,
|
|
|
|
presumably so that multiple beeps are distinct from each other.
|
|
|
|
|
|
|
|
I patch the JSR WAIT to be STA $C028, which switches to the other bank.
|
|
|
|
The code in the other bank checks the accumulator and for two values calls
|
2017-03-17 03:12:41 +00:00
|
|
|
either reset5x or boot5x, for a third value ($40 loaded by BEEP1) does the
|
|
|
|
classic Apple II "air raid" beep sound, and for any other value executes the WAIT
|
|
|
|
(assuming that we got there from BEEP1) and returns back to BEEP1.
|
2017-02-12 19:53:47 +00:00
|
|
|
|
2017-03-17 03:12:41 +00:00
|
|
|
Then, in only 6 bytes I can create two entry points that load the right values
|
|
|
|
into the A register that we need for the reset or boot routines, and then jump
|
|
|
|
to the above patch.
|
2017-01-29 23:54:00 +00:00
|
|
|
|
2017-03-11 19:16:05 +00:00
|
|
|
## Options
|
|
|
|
|
|
|
|
The options directory contains one or more subdirectories with optional patches
|
|
|
|
that change the default behavior of the Apple IIc Plus.
|
|
|
|
|
2017-03-18 22:49:00 +00:00
|
|
|
Enable options by copying the files to the main directory. Disable the by removing
|
|
|
|
the copied files.
|
|
|
|
|
2017-04-08 21:31:52 +00:00
|
|
|
### (Obsolete) Accelerator Reverse
|
|
|
|
|
|
|
|
This option was obsoleted by the inclusion of Accel5X in the project.
|
2017-03-11 19:16:05 +00:00
|
|
|
|
2017-04-08 21:31:52 +00:00
|
|
|
The accelerator reverse patch is a 1-byte patch that causes a IIc Plus with the
|
|
|
|
original Apple accelerator code to start at the "normal" 1 MHz speed.
|
2017-03-11 19:16:05 +00:00
|
|
|
|
2017-03-19 06:39:47 +00:00
|
|
|
Pressing ESC at reset time will make the machine run at 4 MHz.
|
2017-01-29 23:38:12 +00:00
|
|
|
|