Dragon 1982The Dragon machine · being built Open source on GitHub עברית ← Back to the app

Two computers: here, on the machine, as close to the original as we can get. To learn and write BASIC the easy way, with games and a helper: the app.
This is the Dragon machine: the Dragon 32's chips (the 6809 CPU, memory and video), running a BASIC we wrote ourselves, without the original ROM. It is still being built: the BASIC behaves like the original in everything we have checked, and the routines that 1982 machine-code software called now sit at the original addresses. Original games from that time, by Ken Kalish, Scott Adams, Mike Hughey, Tim Love, Harry Whitehouse, Ian Murray-Watson, Rolf Michelsen, Douglas J. Morgan, Gary Ritchie and Owen Stenseth, already run on it without any change to their code. We have not yet compared it with a real Dragon. What we are building now. Click the screen and type, or use the keyboard below.

Tape shelf

Tap a tape to put it in the cassette player. Type CLOAD, and after OK type RUN. Dragon Eggs is written in machine code: type CLOADM, and after OK type EXEC. The machine-code games by other authors start by themselves after CLOADM, and are here with their authors' permission.

How did you load a game in 1982?

Games were sold on audio cassettes. You put the tape in a cassette player wired to the computer and typed CLOAD ("load from cassette"). The computer listened to the tape for a few seconds and copied the game into memory. Then you typed RUN and the game started.

Here you tap a tape to put it in the player, and type just like then.

My tapes 0
ℹ️ How it works

🎮 Machine code, usually a game: type CLOADM, then EXEC. 📝 A BASIC program: type CLOAD, then RUN. 🕹 Arrows as joystick: in a game that moves with a joystick, the arrows move and Alt or Space is the button.

Write a program and type CSAVE "NAME" (up to 8 letters). It is recorded to tape and kept here. To load: tap the tape and type CLOAD, or type CLOAD "NAME".

Tapes are kept only in this browser and are lost if you clear it (in Safari also after a week without a visit). To keep one for good or move it to another device: ⬇ downloads the tape as a file.

For a real Dragon: 🔊 downloads the tape as sound (wav), like a tape from back then. Plug the Dragon's cassette lead (the EAR plug) into your headphone socket, type CLOAD on the Dragon and play the file at about 75% volume. If you get ?IO ERROR, change the volume and try again.

First try: type it yourself

With no tape, the machine is waiting for you. Type PRINT 2+3 and ENTER, and it answers 5. Or a small program: 10 FOR I=1 TO 10:PRINT I*I:NEXT, then RUN. To stop: BREAK (Esc).

What works, and what's still missing

Works: the whole BASIC in one 16K chip, like the original: numbers and strings, variables and arrays, IF/THEN/ELSE, AND/OR/NOT, FOR, GOTO, GOSUB, ON, DATA/READ, INPUT, DEF FN, the functions (INT, RND, SIN, LEFT$, MID$...), graphics (PMODE, LINE, CIRCLE, PAINT, DRAW, GET/PUT), sound (SOUND, AUDIO, PLAY), cassette in the original format (CSAVE/CLOAD, CSAVEM/CLOADM, OPEN/PRINT #/INPUT #), PRINT USING, TAB, EDIT, RENUM, DEL, STOP/CONT, TRON. RESET keeps your program, like a real Dragon.

Still missing: DLOAD. Nothing has been checked against a real Dragon yet. The app's cartridges and helper don't work here.

Found a difference from the Dragon you remember? That is exactly what we're looking for. Open a report on GitHub (a ready form with three questions; a GitHub account is needed), or write via the contact page (in Hebrew; English is fine): what you typed, what you got, and what the original would have done.

How to edit a line (EDIT)

Type EDIT 20 and the line number appears. Now every key is a command. A number before a command repeats it, for example 3 D.

Space: one character forward · ←: one back · D: delete · C: change · I: insert · X: insert at the end · H: delete the rest and insert · S and a character: jump to it · K and a character: delete up to it · L: show the line · A: undo the changes.

To leave insert mode: SHIFT+↑ (on a computer keyboard: _). ENTER saves the line, BREAK leaves without saving.

🎙️ A real cassette from home

Got an old Dragon cassette? The machine can hear it through the microphone.

How does it work?
  1. Press the button, and recording starts.
  2. Play the cassette next to the computer, then press the button again.
  3. The machine tells you what to type (usually CLOAD, then RUN). A part didn't come through? Play it again; what was already read is kept.

No cassette? Play the test tape from your phone (8 seconds), at medium volume in a quiet room.

The emulator is XRoar by Ciaran Anscomb, licensed under GPL v3. Sources and licences. Our BASIC: github.com/gonenya-create/dragon32.