Browse this growing collection of Apple-1 programs.
A tribute to history and their hackers.
Run them in the emulator right away, or just on the real machine.
by Corey Cohen in 2012
Brings a little music via the TO TAPE-jack of the cassette interface.
This nice sound demo was published by Corey Cohen on Applefritter in 2012. There is also a separate discussion thread that goes into more detail about it.
Corey is a professional computer historian who is specialized in Apple-1 authentication and restoration. He created this program when he found an old Xerox page with note-calibration values for the 6502 microprocessor:
There is someone I have to credit for the chart of C1 at 255 to calibrate my notes on the 6502. The problem is I don't have a name, it was from an old Xerox page shoved in a book...
So thank you to someone out there. You saved me a lot of work using an electronic guitar tuner and a lot of trial and error. Trust me I started this project that way until I remember the chart and tracked it down.
As mention by the program author here.
This program does not work in emulators, a real machine with a working ACI card is needed.
The program has no text-output on the display, it just shows a waiting cursor while playing. The program uses POKE commands to read from memory assigned to the Apple Cassette Interface (ACI). This way the ACI 'clicks' on the speaker output in rapid succession to form a tune.
A speaker with a built-in amplifier can be connected to the TO TAPE jack of the ACI to be able to hear the sound. Listen to it below.
Mike Willegal suggests a simple preamp to be used with the speaker output (from this discussion thread):
This simple preamp I built some time ago will provide line level compatible output, if connected to the cassette output.
He has put more information on his website.
A tune consists of succeeding notes that each have a pitch and a duration. Corey has put a table explaining the pitch-values of the different notes in the BASIC source, see below.
10000 REM DURATION POKE BETWEEN 0 AND 255 TO 769
10001 REM NOTES POKE BELOW VALUE TO 768
10002 REM NOTE LOW MED HIGH
10003 REM =====================
10004 REM C 255 128 64
10005 REM C# 241 121 60
10006 REM D 227 114 57
10007 REM D# 214 108 54
10008 REM E 202 102 51
10009 REM F 191 96 48
10010 REM F# 180 91 45
10011 REM G 170 85 43
10012 REM G# 161 81 40
10013 REM A 152 76 38
10014 REM A# 143 72 36
10015 REM B 135 68 34
10016 REM =====================
For example, line 46 of the program results in a low G-note (170) with maximum duration (255).
46 POKE 768,170: POKE 769,255: CALL 770
Use your keyboard to interact with this Apple-1 program.
Emulated with HoneyCrisp v1.2.7,
check here for more details.
This website has full functionality (i.e. direct serial transfer and emulation of an Apple-1) when displayed on a larger screen.
In 1976, the Apple-1 Computer was advertised for $666.66 and came with 4K of on-board memory. For a $120 extra, this doubled to 8K of RAM. The provided Operation Manual included the circuit diagram and assembly source code of Wozmon, the operating system.
The Apple Cassette Interface (or ACI) was used to load and save programs from cassette tape. The ACI Manual showed how to install it (the main board had to be jumpered correctly) and explained how it had to be used. Priced at $75, it included a cassette of Apple BASIC.
Woz wrote a BASIC interpreter by himself. It was tiny enough to fit in 4K of memory, but did not support floating point arithmetic. The software itself was free. The Preliminary Apple BASIC Users Manual explained how to write your own games and programs with it.
Cassette tapes could be bought as an original accessory to your new Apple-1. A total of nine programs were available and listed $5 each. Pick one below and go back in time.
At the time, people were also inspired by publications like 101 BASIC Computer Games. They spent their evenings and nights to key-in the games, but soon were disappointed to discover that some of these did not work at all because of the missing floating points... Arghh.
Dive deeper? Read more here and here.
The Apple-1 has a 16-bit address bus and 64kB of addressable space. Within this space the 6502-processor can use the different parts of the computer:
Woz designed a jumper area on the Apple-1 mainboard where the hobbyist-user could configure how memory should be organized. This was very flexible and made extension of the Apple-1 possible.
The full 64kB is split into 16 equal banks of 4kB each by this jumper area. The banks range from 0 to F, hexadecimal. A bank can be tied to one part of the computer: e.g. the ROM, upper RAM chips or a board in the expansion slot.
The default configuration is shown above. For example bank E (address space $E000-$EFFF) was usually tied to the eight lower RAM chips on the Apple-1 mainboard, indicated by W and the black wire in the figure. Usually BASIC was loaded here.
No windows yet. It was called a monitor program back then, the predecessor of an operating system. It allowed reading and modifying the computer's memory and starting programs. Woz his monitor was stored in only 256 bytes of ROM.
To load it, the user had to press RESET after powering on the computer. A back slash \ appeared on the screen with a flashing @ below, the cursor. Indicating the Apple-1 was ready for commands.
Try Wozmon yourself by pressing the
Run button and after that
Reset in the above emulator (any program). Then type 280 RETURN to read a memory location. Values are hexadecimal, so range from 0 to F. Change memory with 280: AB RETURN. Read it again and wow you changed memory!
Follow this excellent course to learn more. The original manual explains Wozmon as well (in Section II) and lists the assembly source code.
Use the 8BitFlux.com Keyboard Serial Terminal to connect to an Apple-1 with this website. It uses the Web Serial API locally and is supported by Chrome and Edge browsers. The Wozmon code of any program can be transferred right away.
Use the Serial button to transfer the current program to an Apple-1. For example, BASIC takes around 20 seconds to transfer, at a speed of 57.6 kbps. The board is compatible with the high-speed TurboType™ format. It also performs a CRC check and has an error LED indicator.
Done transferring the game or program? Switch the input to the attached Apple-1 keyboard by pressing a button and enjoy it. This makes a great kit for hobbyists, museums or public events. More info »
It is easy to run the software with one of these emulators as well:
This website uses the HoneyCrisp emulator. More information can be found here. It has its own software library with even more programs to explore.
View a comparison of emulators here.
An initiative of 8BitFlux.com. This website can be put to full use with a Keyboard Serial Terminal adapter board, which enables you run software on a (real) Apple-1 right away.
The textual descriptions and screenshots of the programs listed on this website are licensed under CC BY 4.0
A lot of recognition goes out to Landon J. Smith for being so kind to share his HoneyCrisp Emulator (also available on GitHub) for use on this website. Many Thanks to Uncle Bernie for his support and provision of his TurboType™ algorithm, which is part of his Apple-1 Toolchain. Last but not least, all this was not possible by all the authors of Apple-1 software and other emulators. The hobby computer enthusiasts of the past, but also people of the present, who keep this hobby so alive. Thank you all.
This website is not associated with Apple Inc. in any way.
It tries to be a tribute to (their) history. It wants to list only software that is already considered to be in the public domain, or its license permits further publication. The (online) sources of the program and other references are listed when known.
No AI is used to describe the software packages here. Human mistakes happen, so please report any nonconformities.
Made behind an 🍎 in The Netherlands.