-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firmware does not set drive number when booting #5
Comments
Thank you, RB for this comment! Some time ago, I too had the idea to "include" my card in an emulator, but I never came around to do so. This could make debugging some outstanding Smartport issues much easier. Maybe your fix and two others I found while working on my 6502 branch will get us a little further. Regards, Florian |
ProDOS itself does initialize all of the ZP locations necessary, but when booting from the AppleIISd your slot firmware doesn't set all of the locations. It's this code:
There needs to be an STZ DSNUMBER too. My SDCard emulation needs more work before I can commit the support to MAME, but it already boots and runs Total Replay and various ProDOS 8-based images fine. I suspect this may be what's causing issue #3. |
I have made changes to the code in 99eebeb. Please see if it works now. |
I just tried it and it didn't work. Looking at the disassembly, the setting of DSNUMBER is missing in the AppleIISd.bin firmware image. Could you double-check what's going on? Edit: Error was on my end, loading the correct binary now and it works. You might suggest the people with issue #3 try out the new version too then. |
I have just pushed another fix when I realized that BIT may not work in some situations. I probably will change the whole build process to a CMake based one, with ROM code and flasher as subprojects. "Install" could then create the image for the flasher. |
Yeah, it was my error. I forgot that our AT28C64B class actually saves the contents and uses those in preference to the original ROM image so that you can run the flasher and have it take effect. With the latest firmware image it works fine in the emulation and properly sets DSNUMBER. |
Glad to hear that! I will close the issue. |
Hi Florian,
I've been working on supporting AppleIISd as an optional expansion card in the MAME emulator, and I've noticed that the boot firmware does not initialize zero page location $43 (what you call DSNUMBER). The fill pattern we use in MAME to avoid issues with some buggy A2 games has $FF there, for instance, so GETBLOCK thinks we're looking for drive 2 and adds $10000 to the block number. This probably causes weird problems on real hardware as well, since not all Apple IIs have clear RAM on a cold start, and $43 could contain anything on a Ctrl-Open Apple-Reset restart.
Cheers,
-RB
The text was updated successfully, but these errors were encountered: