During calls, MGTK uses the top half of the zero page to hold the active grafport and local variables. It normally saves/restores the ZP on each call so that the application's ZP state is preserved. Per docs, the ZP1 call with param $00 can be used to disable this; MGTK will write its state to the ZP and assume the ZP is not touched until a subsequent ZP1 call with param $80, allowing higher performance. DeskTop would normally run in this state ($00), except when DAs were invoked since they could use ROM routines (etc) and expect the top half of the ZP to be preserved during MGTK calls. But it did this with a toggle ($00, $80, run the DA, then $00 again). Confusingly, the Calc (and Eyes, c/o copy/pasta) DA would also attempt to get to a normal state when running ($80, run, $00). In rev 30532c31 I disabled DeskTop's toggling around DAs to fix an issue in the Sort Directory DA (see #119), which might have changed the overall behavior. The result is that on the IIc+ (and possibly other hardware, but not Virtual II or Laser 128EX) the Calc and Eyes DAs would crash. This change disables use of the ZP1 by DeskTop and the DAs. This will likely impair performance somewhat due to the save/restore overhead on each call, but at least this gets us to a "known good state". Fixes #157, #158
Apple II DeskTop
Work-in-Progress disassembly and enhancements for Apple II Desktop (a.k.a. MouseDesk)
💾 Disk images can be found on the Releases page 💾
Background
This application started its life as MouseDesk by Version Soft. It is a mouse-driven Mac-like "Finder" GUI application for 8-bit Apples and clones with 128k of memory, utilizing double-hires monochrome graphics (560x192), an optional mouse, and the ProDOS operating system.
Apple Computer acquired the software and released it - rebranded as Apple II DeskTop - as the initial system software for the Apple IIgs before 16-bit GS/OS replaced it. The rebranded version still functions on 8-bit Apples, including the Apple IIe, Apple IIc, Apple IIc Plus, Apple IIe Option Card for Macintosh, and the Laser 128 family.
- History of MouseDesk/Apple II DeskTop versions, by Jay Edwards
- Overviews: GUI Gallery — GUIdebook
- Manual: Apple IIgs System Disk User’s Guide (1986) - Chapter 2 “The DeskTop”
- Disk Images for MouseDesk and Apple II DeskTop
Other GUI environments exist for the 8-bit Apples, including GEOS (which includes productivity applications) and Quark Catalyst. While Apple II DeskTop is more limited - serving only as a file manager and application launcher - it is (subjectively) more visually appealing and better integrated with ProDOS.
This Project
The goal of this project is to disassemble/reverse-engineer the suite with an eye towards understanding how it functions, fixing bugs, and adding functionality.
See the Release Notes for a list of enhancements and fixes so far.
KansasFest 2018 presentation by @mgcaret
Additional help is welcome! See the guide for Contributing.
Tools
The cc65 tool chain will be used; source files will target the ca65 macro assembler. Cross-development on modern systems will be assumed. (Sorry, Merlin purists! We still love you.)
Code of Conduct
Discussions should be polite, respectful and inclusive, and focus on the code. Harassment will not be tolerated. Keep comments constructive. Please read the full Code of Conduct.