Code Monkey home page Code Monkey logo

rom4x's Introduction

ROM 4X and 5X by MG

ROM 4X and 5X are enhancements to the Apple //c version 4 and Apple IIc Plus firmware ROMs.

It adds the following features to the Apple //c and IIc Plus firmware:

  • Identifies and reinstates a bootable (it must have something that looks like a boot block!) RAM disk from battery-backed expansion memory (see below), such as the RAM Express II+ from A2Heaven.
  • Provides a menu of various tools upon pressing Ctrl+Closed-Apple+Reset (or holding Closed-Apple when powering up), that let you:
    • Enter the monitor unconditionally.
    • Reboot the machine (enter standard boot sequence).
    • Zero the RAM card, in case it is corrupted.
    • Execute the machine and RAM card diagnostics.
    • Tell the machine to boot the SmartPort, the internal floppy drive, or an external floppy drive.
  • IIc only:
    • The system drops to BASIC if no bootable device is found (this is the default behavior in the IIc Plus).
    • Configure default boot device by saving a file on the RAM Disk.
    • XModem-CRC support.
  • IIc Plus only:
    • Menu control the built-in accelerator.
    • Accelerator settings persist across resets.
    • Build option to default the system to 1 MHz.

The first feature listed above is the raison d'etre for this project. The larger story is down below but in short: The Apple //c memory card driver keeps certain information in the "screen holes" in main memory, which are required to use the memory card as a RAM disk. Should these screen hole values disappear, the card is re-initialized to empty when ProDOS boots. This happens even when the card is battery-backed and already has a RAM disk. The card data is not damaged until ProDOS boots, but if you attempt to manually boot the RAM disk it will say "UNABLE TO START FROM MEMORY CARD" because the screen hole values are not initialized.

This firmware enhancement identifies a ProDOS boot block on the RAM disk and, if found, restores the appropriate screen holes to make the RAM disk bootable and prevent firmware or ProDOS from re-initializing it.

Build / Install / Documentation

ROM 4X

See the ROM 4X README.md.

ROM 5X

See the ROM 5X README.md.

The Whole Story

Why did I do this? See story.md.

rom4x's People

Contributors

cbmeeks avatar mgcaret avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rom4x's Issues

Mockingboard

I have a Mockingboard 4c and to make it function, I often need to do:
CALL-151
*C403:FF FF

This enabled it and clobbers the mouse port. I never use the mouse, and would prefer the Mockingboard just to be enabled at every boot.

Is it possible to patch the 4x rom to do this?

rom5x working in modified kegs...

I hacked Kegs (a 2gs emulator) to work with essentially all kinds of apple2 roms. As you can guess, the Apple IIc+ was the most difficult to get to work. I found your project while researching the MIG chip. I can now run the rom5 firmware and read/write the (simulated) apple3.5drives of the 2gs. I just tried your ROM5x and it seems to work fine. At this point I haven't yet implemented the ACIA --kegs simulates a z8530-- and the accelerator support is the one provided by Kegs (a 8Mhz ZipGS). See (https://github.com/leonbottou/kegs-universal) for the hacked kegs. The MIG simulation is near line 200 in moremem.c.

a2c-rom5x
a2c-rom5x-vols

Sorry for making this an issue. I could not find another way to reach you. In case you want details, my email address is @.org

Merlin 8 2.58 and 2.59 crashes with ROM 5X.

Merlin 8 2.59 crashes from the main menu into the monitor with a break at CA45 (BRK at CA43).

This has been reported by users to not occur with the stock ROM.

Thanks to Skander Ben Abdelkrim, Eric Leung, and Wyatt Wong for bringing this issue to my attention.

Compile problem

When running "rake" to patch the ROM4, the following error is thrown and the patches aren't applied:
"ld65: Warning: Option -o' should precede options -t' or `-C'"

I manually edited the Rakefile to move "-t none" to the end of the line, and the file compiled without errors and the patches are applied to the stock ROM4.

Environment used: Ubuntu 16.04 tools with the ca65 tool installed through apt after adding the repository to my sources.list..

ROM 5X -- hangs when enabling Mockingboard 4c+

ROM 5X will hang when enabling a Mockingboard 4c+ which uses the $C4XX space for access to its hardware. This appears to be because the patch for handling the delete key is installed in the same region in bank 0 (see https://github.com/mgcaret/rom4x/blob/master/rom5x/B0_C4EE_del_key.s).

To test this on a IIc Plus with a Mockingboard 4c+ installed, drop into the monitor and do the following:
*C403:FF FF

On ROM 5, this will give you a new monitor prompt with a blinking cursor. On ROM 5x, the * will be printed for the prompt but the cursor will not be visible. Keyboard presses will no longer work. Due to the Mockingboard IO overriding the $C4XX space, the Apple IIc Plus will need to be cold restarted to recover.

Error during Downloading ROM

I got the following error when I run "rake" in the rom4x folder. However I found the iic_rom4x.bin was successfully created.

I am using the following ruby and rake versions:

ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
rake, version 13.0.1

========================
Downloading ROM...
/Users/wyattwong/Downloads/rom4x/rom4x/Rakefile:38: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open

ROM 4X doesn't switch drives when using some software

The following video explains the problem in detail:
https://youtu.be/B89QvviZuBM

As you can see, I am using ROM Xc which has ROM 4X functionality, and ROM 4X isn't working as expected with VTAK.dsk on my FloppyEMU.

Download VTAK.dsk here to test it yourself:
https://github.com/MaxPiantoni/View-To-A-Kill

Is this a bug in ROM 4X?

NOTE: If I use the Drive Switcher hardware solution from BMOW (instead of ROM 4X), there is no problem.
https://www.bigmessowires.com/switcher/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.