rom4x/rom5x/README.md

56 lines
2.3 KiB
Markdown
Raw Normal View History

2017-01-29 23:54:00 +00:00
# ROM 5X by MG
## Consider it a step beyond beta :-)
2017-01-29 23:54:00 +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
This is ROM 5X, providing the ROM 4X functionality to the Apple IIc Plus ROM
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
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.
### (Obsolete) Accelerator Reverse
This option was obsoleted by the inclusion of Accel5X in the project.
2017-03-11 19:16:05 +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