Apple //c

Apple //c

65C02 · 128K · IWM · two Disk II, running Apple's 341-0445-B ROM through the 341-0265-A character generator. Applesoft, the monitor and DOS all come off the real ROM and the real disk.

Getting to the ] prompt

The boot disk starts a menu program that owns the keyboard, so you land there rather than at a prompt.

5
the menu's own EXIT
Ctrl-C
break — wait a beat before typing, or keys arriving mid-parse give a spurious ERROR #11
RESET
warm start
NEW
the menu is still in memory — clear it before typing a program of your own, or your line joins it

Reading a disk

CATALOG,D2
list what is on it
RUN NAME,D2
load and run an Applesoft program (type A)
LOAD NAME,D2
load without running — LIST to read it
BRUN NAME,D2
run a machine-code file (type B)
PR#6
reboot from drive 1

Say which drive you mean. DOS goes to the last drive it touched, and the boot disk's greeting catalogs drive 2 — so straight after booting a bare CATALOG lists drive 2, not the disk you just put in drive 1. Add ,D1 or ,D2.

The drives

Drive 1 cold-boots whatever you insert. Drive 2 swaps without rebooting, which is what a data disk needs and what a running program expects. You can also drag a .dsk onto the window to boot it.

Images must be 143,360 bytes — 35 tracks of 16 sectors, DOS 3.3 order. .woz and .nib are not supported. A disk with no boot sector cannot start the machine, however good its catalog; the drive light and a click every few seconds is the ROM retrying. Boot a disk that has DOS in drive 1 and read that one from drive 2.

Disks

DISKS, at the top of the drive panel, opens the images that ship with the page. It feeds either drive, which is why it sits above both. The list comes from disks/programs/catalog.json: drop a .dsk in that folder and add an entry to the JSON and it appears in the catalog. BOOT puts the disk in drive 1 and starts the machine on it; DRIVE 2 loads it beside whatever is already booted, which is what a data disk wants. Both arrive write-protected.

An entry needs only a file name; the rest is description.

{ "programs": [
    { "file": "OREGONTRAIL1975.DSK",
      "name": "The Oregon Trail",
      "year": "1975",
      "note": "Bootable.",
      "boot": true }
  ] }

boot is only a label on the button — set it false for a disk with no boot sector and the catalog offers drive 2 alone, rather than a BOOT that can only click.

Browser store

Drive 2 comes up holding a writable disk kept in this browser. It is the only writable drive — everything else is write-protected, so a stray write cannot damage an image you loaded. Writes commit when the drive motor stops and again when you leave the page. BROWSER STORE puts it back in drive 2; DOWNLOAD, UPLOAD and RESET are under the two bays.

SAVE MYPROG,D2
keep a program for next time
DELETE MYPROG,D2
remove one
RUN HELLO,D2
what's on it
RUN MANDEL,D2
Mandelbrot, in text
RUN KALEID,D2
lo-res kaleidoscope
RUN SPIRAL,D2
hi-res spirals
RUN SPEAKER,D2
a scale and a siren. Applesoft alone only reaches about 58 Hz here, so it pokes a tone routine into $300 and lets the 6502 drive the speaker

Display

PR#3
80 columns
PR#0
back to 40
TEXT
leave graphics

Double hi-res is the one gap. The soft switch works, so a program can turn it on and will believe it succeeded — but only main memory is drawn, so you get half the picture as ordinary hi-res. Hi-res “colour” is NTSC artifacting from the real 280×192 bitmap, as on the hardware.

The panel

Floppy
opens the drives
POWER
cuts power — memory goes with it, disks stay in
RESET
warm start; the program in memory survives

Keyboard

Letters arrive uppercase, as they did with caps lock down. Ctrl-letter sends the control code, so Ctrl-C breaks and Ctrl-D is DOS's command prefix. Arrows map to the Apple's own codes, and there is one key of keyboard buffer — the same as the hardware.

EMULATED

NOT

Drives

DISK LIBRARY
DISK DRIVE 1
empty
DISK DRIVE 2
empty
BROWSER STORE

Disks

BOOT starts the machine on the disk; DRIVE 2 loads it beside whatever is already booted. Both are write-protected.

drop a .dsk image