跳转到主要内容

Apple 1 Notes

Programs

读取磁带

输入 C100R

回显 C100: A9#

输入 E000.EFFFR

 

Machine Language Programs

Apple 1 Basic

Basic Programs

Apple II Monitor on Apple 1

The Apple 1 Cassette data format uses 1 cycle of 1 KHz for a 1 and 1 cycle of 2 KHz for a zero. There is no checksum but an approximate error check can be gained from checking the last two bytes of the recording. This is pretty effective because of the data dependent record length.

 Note: All of the following aiff files are processed for use on an iPod or iPhone

Machine Language Programs.zip

Life
Load at 0280.0900R, Last 2 bytes should be 00 00, Run at 0400R
This Game came with the Apple 1 – $44A Display Char, $44B Backgnd Char, $44C Tiime

Mastermind
Load at 0300.03FFR, Last 2 bytes should be E0 A9, Run at 0300R
This Game came with the Apple 1

Apple 30th Aniv
Load at 0280.0FFFR, Last 2 bytes should be 20 00, Run at 280R
This is a running demo written for Apple’s 30th Anniversary in 2007

Apple 1 Basics.zip

There were many versions of Apple 1 Basic provided by Apple in the early days. There was just Woz and SJ and Woz was writing Basic while the computers were being sold. When someone got a copy from SJ it was just the last stable version from Woz. I bought my Apple 1 at a Byte shop in mid 1976 and I got 4 different versions of Basic over the next 6 months or so. I labeled them version A through D. Version A did not even have an INPUT statement so about all you could do is print “HELLO WORLD”. Version B added the INPUT statement, Version C added Arrays and Version D added PEEK and POKE. I have copies of C and D but have not been able to find any earlier. The Huston brothers got a copy of Apple 1 Basic in late 1977 or early 1978 when they were employees at Apple that includes a checksum program and I presume that was the last version. By late 1976 and early 1977 Woz was focused on the Apple II. The following Excel file is a comparison of several Apple 1 Basics.

Apple 1 Basics Comparison

Basic
Load at E000.EFFFR, Last 2 bytes should be 0C E0, Run at E000R for a new program or E2B3R for a loaded program.

Basic Huston
Load at E000.EFFFR 0300.035FR, This version of Basic contains a check
sum program to verify the load. After loading run at 320R to go to Basic

Basic Programs.zip

These recordings need to be run at E2B3R with Basic loaded.

BlackJack
Load at 004A.00FFR 0800.0FFFR, Last 2 bytes should be 0B 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”

Brians Quiz
Load at 004A.00FFR 0400.1FFFR, Last 2 bytes should be 5B 01, Run at E2B3 with Basic Loaded
Junior High School Project from 1976 by Brian Sander, requires expanded memory.

Football
Load at 004A.00FFR 0400.2FFFR, Last 2 bytes should be 5B 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”, requires expanded memory.

Hamurabi
Load at 004A.00FFR 0400.0FFFR, Last 2 bytes should be 51 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”

HiLo
Load at 004A.00FFR 0800.0FFFR, Last 2 bytes should be 5B 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”

Lunar Lander
Load at 004A.00FFR 0800.0FFFR, Last 2 bytes should be 00 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”

Startrek
Load at 004A.00FFR 0300.2FFFR, Last 2 bytes should be 87 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”. This was adapted to
the Apple II and became the AppleTrek game shipped with early Apple II Computers, requires
expanded memory.

Wari
Load at 004A.00FFR 0400.0FFFR, Last 2 bytes should be 7D 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”

WordCross
Load at 004A.00FFR 0300.0FFFR, Last 2 bytes should be 51 01, Run at E2B3 with Basic Loaded
An original program for Apple 1 by wsander. This program creates Crossword puzzles from words. This program can take a very long time to create the Crossword but is interesting for such a small program.

Wumpus
Load at 004A.00FFR 0300.0FFFR, Last 2 bytes should be 51 01, Run at E2B3 with Basic Loaded
Adapted from “101 Basic Computer Games”

Xmas Program
Load at 004A.00FFR 0800.0FFFR, Last 2 bytes should be 51 01, Run at E2B3 with Basic loaded
A display program for Christmas

Woz Apple 1 Monitor
Load at 0800.0FFFR, Last 2 bytes should be 00 00, Run at 0F3DR
A development version of the Apple II monitor for Apple 1 by Woz and Allen Baum.

Apple II Monitor on Apple 1

Monitor Files.zip

In 2013 I was contacted by the History San Jose museum to restore an Apple 1 in their collection to
to working order. The Apple 1 was a donation that had belonged to Winston D. Gayler who was the
author of “Apple II Circuit Description” published by Sams. Dan Kottke, Allen Baum, and I were able
to get the computer operational along with one owned by Allen Baum. As a part of the material in the
Gayler collection was a program tape that contained a file of the Apple II monitor ported to the Apple
1 that he had apparently made complete with Mini-Assembler. This was not a transitional step from
the Apple 1 like the Monitor file by Steve and Allen but a port of the completed Apple II monitor
including the mini-assembler. The file was located at E500 to EFFF which makes sense for the basic
Apple 1 but prevents use of Basic. A description of available operations for the Apple II Monitor on
the Apple 1 is described in the document.

Monitor Instructions.pdf

Monitor II on 1 at E Original Filtered
The first program file is a filtered version of the original tape.
Load at E500.EFFFR, Last 2 bytes should be 86 FA, Run at EF59R

Monitor II on 1 at E
The next file is a slightly corrected version located at E500 to EFFF that fixed a couple of minor bugs.
Load at E500.EFFFR, Last 2 bytes should be 86 FA, Run at EF59R

The Monitor is much more useful if it is relocated and it was relatively easy to write a specialized
relocation program so I generated files located at $B500 to $BFFF, $7500 to $7FFF, $6500 to $6FFF,
and $3500 to $3FFF. These have also been modified a bit more to support Basic, etc.

Monitor II on Apple 1 at B
Load at B500.BFFFR, Last 2 bytes should be 86 FA, Run at BF59R

Monitor II on Apple 1 at 7
Load at 7500.7FFFR, Last 2 bytes should be 86 FA, Run at 7F59R

Monitor II on Apple 1 at 6
Load at 6500.6FFFR, Last 2 bytes should be 86 FA, Run at 6F59R

Monitor II on Apple 1 at 3
Load at 3500.3FFFR, Last 2 bytes should be 86 FA, Run at 3F59R

Monitor II on Apple 1 at F
The last version of the program is located back at $F400 to $FEFF. This works with the FRAM board
using the VMA mod or with any system having the ability to control the $Fxxx space. With this
configuration the Apple 1 monitor is still at $FF00 to $FFFF and there is a minimum of interference
with other programs. The version at $Fxxx has been modified so that Control Q can be used to
rapidly switched between the two Monitors.
Load at F400.FEFFR, Last 2 bytes should be 86 FA, Run at FE59R
Can also be run with Control Q from Apple 1 Monitor