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?
- Press the button, and recording starts.
- Play the cassette next to the computer, then press the button again.
- The machine tells you what to type (usually
CLOAD, thenRUN). 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.