Cross-development on a Unix-like system. Tested on macOS 10.15 and Linux Ubuntu Xenial 16.04.
Fetch, build, and install cc65:
git clone https://github.com/cc65/cc65
make -C cc65 && make -C cc65 avail
A very recent version of cc65 will be required, as recent compiler features and symbols from asminc/apple2.inc
are used, and these change fairly often.
Fetch and build Apple II DeskTop:
git clone https://github.com/a2stuff/a2d
cd a2d
make
This will build all targets, including DeskTop itself, desk accessories, and preview accessories, and the optional Selector app.
There are a handful of approaches for getting the files on your real or virtual Apple II.
Useful with ADTPro, solid-state drives like Floppy Emu, or emulators.
To produce a ProDOS disk image, install and build Cadius:
git clone https://github.com/mach-kernel/cadius
make -C cadius && make -C cadius install
Then run: make package
This will generate: A2DeskTop-...2mg
and .hdv
(800KB/32MB images containing the full application) and A2DeskTop-..._140k_disk1.po
, ..._disk2.po
and ..._disk3.po
(the files split across multiple 140k images). The version (e.g. alpha30
) and language (e.g. en
) are defined in config.inc
.
Mount these disk images in your emulator, or transfer them to real floppies with ADTPro, then follow the install instructions below.
Useful with solid-state drives like Floppy Emu, or emulators.
Build and install Cadius (instructions above)
Set these environment variables:
INSTALL_IMG=/path/to/image/file.2mg # e.g. ~/Documents/hd.2mg
INSTALL_PATH=/prodos/directory # e.g. /HD/A2.DESKTOP
Then run: make install
This will create the target ProDOS directory if necessary, then copy the built files in, overwriting any existing files.
After building and installing, you can use bin/setopt sel
and bin/setopt nosel
to toggle whether Selector starts or not, and bin/setopt ram
and bin/setopt noram
to toggle whether DeskTop is copied to a RAMCard or not. These can be controlled within DeskTop using the Options control panel, but being able to toggle these on the command line is useful during development.
If DeskTop hasn't created LOCAL/DESKTOP.CONFIG
yet, run bin/defopt
first to create a default options file.
Optional:
- Define
INSTALL_NOLOCDA=1
to skip localizing DA filenames; useful if you switch languages during development and don't want to clutter your install. - Define
INSTALL_NOSAMPLES=1
to skip installing sample media, which can be slow.
Useful with the Virtual ][ emulator
If you use Virtual ][ as your emulator, you can skip creating a disk image.
After building, run: make mount
This will copy the built files into the mount/
directory with appropriate file types/auxtypes set. Run Virtual ][ and use the Media > Mount Folder as ProDOS Disk... menu item, then select the mount/
folder. A new ProDOS volume called /MOUNT
will be available, containing DeskTop.
If you have a workflow amenable to ShrinkIt disk images, first install nulib2
, then run make shk
. This will create an A2D.SHK
file.
If you need to copy the files some other way (e.g. via CiderPress), it's probably easiest to transfer the files from the disk images created by make package
as they will have the appropriate ProDOS file types and aux types.
Apple II DeskTop works best on a mass storage device. Once you have the files accessible on your Apple, transfer them to your hard disk. It's best to create a top level A2.DESKTOP
directory and copy the files/folders into it, with the following structure:
Name Type AuxType
/HD/
A2.DESKTOP/ DIR
DESKTOP.SYSTEM SYS
MODULES/ DIR
DESKTOP $F1 $0000
DISK.COPY $F1 $0000
SELECTOR $F1 $0000
THIS.APPLE $F1 $0642
SHOW.FONT.FILE $F1 $0642
SHOW.IMAGE.FILE $F1 $0642
...
APPLE.MENU/ DIR
CALCULATOR $F1 $0642
EYES $F1 $0642
CONTROL.PANELS/ DIR
DATE.AND.TIME $F1 $0642
SYSTEM.SPEED $F1 $0642
...
...
EXTRAS/ DIR
UNSHRINK SYS
...
Invoke DESKTOP.SYSTEM
to launch the app. By default, DeskTop will launch. You can use the control panel Options to configure Selector to start instead, which will show a dialog containing any shortcuts you have configured in DeskTop, for faster access to programs.