Apple I History

Introduction

The Apple I Owners Club web site was over a year in the making. Photographs had to be taken, documents had to be scanned and converted to text, and the information had to be compiled. We have collected over 70 megabytes of data about the Apple I. Needless to say, that's quite a bit of information and if you're not familiar with the Apple I, can be very hard to sift through.

To assist in this process, we've created this tour. At the bottom of every page, you will find a set of arrows such as these:

These arrows will help you navigate through the Apple I site. Follow the green forward arrow and will see every page of the Apple I site, presented in logical order. If you find that the information on a certain page is not of interest to you, the yellow button can be used to skip ahead to the next sub-category and the red button to the next category. Many of the categories do not have sub-categories, in which case the yellow button produces the same results as the red. The yellow button will likely be of most value in the software and letters sections where the it will allow you to skip ahead to letters/programs of another person, whereas the red button will take you entirely out of the letters or programs section.

The reverse buttons act as you would expect and may be useful if you skipped ahead and want to take a glimpse at what you missed.

Many of the documents provided here were scanned from hard copies and converted to plain text for the sake of download speed and searchability. Where this is the case, a link to the original image will be found on the page. If the converted text file presents any confusion or leaves anything in doubt, the original may be referred to. All typos have been preserved.

The complete tour, if you take the time to see everything, is over 120 pages. Everything is done in standard HTML, so you can easily bookmark any page and pick up exactly where you left off.

History

Two Steves

Apple Computer was founded on April 1, 1976, by Steve Jobs, Steve Wozniak, and Ron Wayne. The Apple I was introduced at the Homebrew Computer Club in May with Paul Terrell of the Byte Shop ordering 50 units at $500 apiece.

Joe Torzewski purchased his Apple 1 in 1977, direct from Apple and not long after the initial introduction. He was an engineer, like most early buyers of personal computers. Joe chose the Apple 1 over the competing S-100 sytems largly due to the integrated design. Problems with the S-100 bus were plentiful, whereas the Apple 1 already had everything onboard. But even still, it was possible to add an extension board, which Joe later did. Previous to his Apple 1 purchase, Joe had no computer experience, but he was handy with a soldering iron, and so the Apple 1 appealed to him. Joe's Apple 1 saw active use for over two and a half years, before being succeeded by a TRS-80 Model I, and shortly thereafter an Apple II.

The Owner's Club

Letter from Apple to Joe about replacement parts

Joe wrote to Apple in an attempt to to find a 2519 IC chip. This was their reply:


Apple Computer Inc.
Service Department
20605 Lazeneo Drive
Cupertiono, California 95014
(408) 446-5444

March 8, 1979

Mr. Joe Torzewski
51625 Chestnut Road
Granger, IN 46530

Dear Joe:

As you probably know, we stopped manufacturing the Apple I
a long time ago. As such, parts are very hard to come by.

We will however, try to help you by allowing you to trade-
in your Apple I for an Apple II. We will allow you a $400
credit towards the purchase of an Apple II with the trade-in.
If this is of interest to you, please contact me and I will
explain how you can go about doing that.

In the meantime, we will try to locate the ICs you re-
quested.

Sincerely,

Sami Asfour
National Service Manager

SA/g

Letter from Apple to Owners

This letter was sent from Apple to all Apple I owners, informing them of the newly informed Apple I Owners Club. Apple also mentions this letter to Joe in the upcoming letter about Apple Disassembler.


Apple Computer Inc.
20863 Stevens Creek Blvd B3+C
Cupertino, California 95014
(408) 996-1010

Dear Apple I Owner

Good news. Joe Torzewski is starting an Apple I Owners Club.
Since the Apple II has been introduced, interest in Apple I
software has declined and we have been making tapes available
on special order basis only. This has made support costly
and difficult.

Joe's Apple I Club will now provide a means of expanding
your software bank and also in communicating with other Apple
I owners. We will be supporting Apple I software through the
club. He will be handling both hardware and software
applications.

Please feel free to contact him at:

Apple I Owners Club
51525 Chestnut Road
Granger, IN 46530

Invitation to join the User Group

This is the letter that would be sent out to Apple I owners inviting them to join Joe's Apple I User's Group. It's a form letter, with the name and date needing to be added.


Joe Torzewski
51625 Chestnut Road
Granger, In 46530

Dear

First of all would like to know if you have an Apple 1 ? If so
welcome to the growing group of Apple I owners. About 20 of us
so far and still growing.

What are we doing(if I get the support back from everyone).Working
on printers,graphics and more menory. I have asked for the details
on the printers because two guys said that they have them up and
running so I hope to have this in first letter out.

Would like to know if you have done anything hardware wise with
your Apple? Did you have any problems and if so how did you fix
it?What kind of keyboard? What kind of hardware would you like to
see added to the Apple?

How about software. Do you have the games that Apple put out? The
new monitor which we think is part of Apple II monitor. Can you
help us out by sending in hardware or software(basic or machine
language) every month or so?

That about it for now hope to hear from you soon and let me know
what you think and if you have anything(programs or such) please
send it in.

Sincerely,
Joe

Premier Newsletter

This is the first of the Apple I Owners Club's newsletters. One was written every two to three months.


APPLE 1 POWER

Joe Torzewski
51625 Chestnut Road
Granger,In 46530

Well this is our start and I hope it's just one of many. So far
there are about 30 of us. First of all would like to put out a
list of names of persons who want to get in touch with other
Apple 1 ownders and working on projects,also a list of persons who
would be willing to help others with hardware of software projects.

We need hardware articles on anything that you have hooked up to
your Apple. Memory expansion is high on the list.

Where is our Apple 1 hardware expert I Need someone who can devote
his time on a project for us. Needs access to a slide projector
or should have one. I have 35mm slides and some notes on how
Apple put the 16K chips on the Apple 1 board. Someone has to figure
out from this(mainly the slides) and try to write it up so we
can pass it along to everyone. So now don't be bashful now we need
you.

Would like to hear from you guys with the new monitor and what
you have done with it and the commands and such. Trying to get all
the details from everyone and ty to piece it together.

Software programs in basic and machine language are needed. Maybe
we should work on certain types of programs together as a group
for a month or two and then go to another area. Take one type of
program and try to modify it and see what we can come up with.
Open for ideals on this, so input now. How about sending a list of
your program so we can see what is out there.

Here is a basic (Apple-Basic) challenge from Larry Neison. What is
the best Apple-Basic solution to the problem with the following
program ?
75 DATA 13, 14, 15, 22, 23, 24, 29, 30, 31
77 For W-1 to 9
79 HEAD K
81 B(N)--7
32 NEXT W

There is a program, 4 pages, a primitive,line-oriented text editor
that you can use to draw pictures or text and store them, from
Professor Schawlow.Well that's about it for now, remember to send
in your inputs and program and a stamp or so if you can, till
next time.

Regards,
Joe

March Newsletter

There were three more issues after this one that have since been lost.


March
APPLE 1 POWER
Joe Torzewski
51625 Chestnut Road
Granger,In 46530

Well here we are again,we have enough inputs to put out the March
newsletter. Out of last months mailing,30,only had 4 replys.Inputs
have been coming in from 4 people and another 5 promising support
but so far none. If we are going to make a go of it we need your
support.

For those of you with the Datanetics ASR-33 type keyboard the
following parts are available. The main chip MM5740AAE/N, cost is
$13.50. The key switches are$.50(fifty cents) each.I guess you
should add something for postage. Address is
Datanetics 18065 Euclid street,Pountain Valley, Ca 92708

Another Apple exchange group is starting in Washington but it looks
like all Apple II, will let you know as I find out more.Possible
to do some program changing.

Am in touch with a dealer who might sell the KIMSI boards for
$90. plus shipping, savings of about $35. This is not a group
purchase price, its if you want one you got it. More info when
I get it. This would put the $100 bus on the Apple 1 if we can
interface it.

The program this month is by Richard Drennan,it's Captain Kirk
verus the Horta.

About the programs, any errors or changes in them will be put in
the next months letter so if you find something wrong or a change
that you think imporves the program or what make sure that you
make an input about it.

There is a change for the Editor from last months program,to
change the address to 0500 and that way the new monitor can be left
in to, also two errors.Check it out.Inputs by Larry Nelson.

Well that it for this month,hope to hear from everyone and send
in your programs.

Regards,
Joe

April 1977 Price List

The Apple I had dropped in price by April, 1977, from $666 to $475.

April 1977 Price List

Apple I parts postcard

October 1977 Price List

By October, 1977, the Apple I was no longer included in Apple's price list.

October 1977 Price List

Apple I Advertisement

Apple I Advertisement

Letters from Robert Edmonds

August 3, 1977

Dear Joe,
I have your two letters, but I don't get time often enough
to answer as soon as would be nice. Anyhow I've reached a pause
stage in my writing and can put my mind back on computers for a
little.
I called Jerry on Monday to find out whether he had
solved the recording-read back problem which he had told me about.
It seems that he has. He uses a J.C.Penny $39.95 recorder, cat.
#851-0018. He turns the treble high, to 10 or 12. He uses
volume in a mid range for recording and for playback, in the 3 to
7 range depending on what the recording volume was. I assume that
the treble may have been part of his problem because I worked with
him and his recorder one day and got good results. Anyway, he is
now quite well satisfied with the tape operations.
I do not have my machine here. It is in San Francisco and
is for sale because I just don't have time to use it. I'm doing
mostly writing on economics, working on a book and some papers.
I hope to get a word processing or text editing unit some time so
my problems will be eased. The Apple won't be able to do that for
me, so I won't be doing anything with it after I sell the boards I
now have.
Regarding pricing, I am now asking $200 for the bare board,
$50 each for each 4K memory, and $50 for the ACI. I have one or
two keyboards left which cost $67 (No, I think $77). They are
the New Datanetics ASR 33 type. Quite suitable. I've sold several of
the keyboards for $50 plus $15 for installing a strap and interconnect
cable to plug into the Apple. That would all add up to $350 for
Apple with 8K and ACI plus $65 for Keybd ready to plug in. In
addition you need two small transformers which I believe I no
longer have. (I suppose my friend, George Wong in S.F could get
then someplace.) I have accepted one offer to sell below these
prices and I would again if they seemed not competitive enough or
attractive enough. If you want to make an offer against those
prices I'd be glad to consider it.
I'll enclose both a manual and a BASIC manual with this.
(Also the ACI manual). If you want them after reading but don't
want to purchase an Apple, I suppose they should be$1 each. That's
what they cost. But if you don't go ahead with purchase, you prob.
won't need them, so it would be fine just to send them back without
charge. Back to the recorders. I have used a Panasonic $34.95
Model RW-309AS. It does not have a tone control, just volume. It
has frequency done quite well for loading or playback, but not so
reliably for saving or recording programs. I've not tried any internal
adjustments. I've also used a Rad.Shack Realistic CTR 30B Mod 14-836.
It has both tone and vol controls. I use tone at max, vol at mid or
little less. It has auto level control and tape coutner (Pana does not).
Again, playback is OK, recording and saving unreliable for me. I don't
know why.
Guess that's all for now. Write when you can.

Sincerely,

Robert H.Edmonds
565 Bellevue Ave. #706
Oakland, CA 94610

Edmonds' Apple I Overview

Robert H. Edmonds
565 Bellevue Ave. #706
Oakland, CA 94610

APPLE-1 COMPUTER

The Apple Computer is a complete microprocessor system, consisting
of an MOS Technology 6502 Microprocessor and support hardware, integral
video display electronics, keyboard connector, dynamic memory and refresh
hardware, and fully regulated DC power supplies. It contains resident
system monitor software (in PROM), enabling the user, via the keyboard
and display, to write, examine, debug, and run programs efficiently. It
is an educational tool for learning microprocessor programming and is an
aid in developing software. It is the core of a first class hobbyist
computer system.

The Apple Computer is sold fully assembled, tested, and burned in.
The only external devices necessary for operation are: an ASCII encoded
keyboard, a video display monitor (or TV), and AC power sources of 8 to
10 volts and 28 volts. The video display and keyboard eliminate the
usual need for a teletype, with its problems of noise and slow speed.
They also eliminate the need for switches and lights, which, by comparison,
are painfully slow and awkward means for communicating with a computer.

The integral video display section contains its own memory, leaving
all RAM for user programs. Output formatin is 40 characters/line, 24 lines/
page, with auto scrolling. Simple modification is usually all that is
necessary to adapt any TV for use as a display monitor.

Almost any ASCII encoded keyboard with positive DATA outputs will
interface directly with the Apple system via a "DTP" connector. If your
keyboard has negative logic DATA outputs (rare), you can install inverters
(7404) in the breadboard area. Instructions for adaptation are provided
in the Apple-1 Operation Manual. Since the system monitor accepts only
upper-case alpha (A-F, R--for hex coding and Run), it is desirable, though
not essential, to have a keyboard equipped with upper-case alpha lock
(usually in the electronics). Although the video output displays only
upper-case alpha, both upper and lower case are encoded and are available
for hard copy output.

The Hex Monitor is a PROM program in locations FF00 to FFFF (hex).
It uses the keyboard and display to perform the front panel functions of
examining memory and entering and running programs. The monitor program
is entered by hitting (RESET). Commands are typed ona "line-at-a-time"
basis with editing. Each line may consist of any number of commands (up
to 128 characters). None are executed until (RETURN) is typed. Hexadecimal
digits (0-9,A-F) are used for address and data values. Additional command
symbols are: period (.), colon (: ), and R (for RUN). Operation of the
monitor can be learned in just a few minutes time.

The Apple-1 Operation Manual comes with each system purchased or can
be bought separately. It includes the full Hex Monitor listing, detailed
Schematic Diagrams and provisions of the thirty day Warranty.

Edmonds' Apple I Specifications

All IC's are installed in sockets, thus simplifying repairs or
hardware troubleshooting. The board has sockets for up to 8K bytes of
the 16 pin, 4K type RAM, and the system is fully expandable to 65K via
the edge connector. The system uses dynamic memory (4K bytes supplied),
although static memory may also be used. All refreshing of dynamic
memory, including all "off-board" expansion memory, is done automatically.
The entire system timing, including the microprocessor clock and all
video signals, originates in a single crystal oscillator. Furthermore,
the printed circuit board contains a "breadboard area", in which the user
can add additional "on-board" hardware (for example, extra PIA's, ACIA's,
EROM's and so on). The board, as supplied, requires no more than 1.5 amps
DC from the +5V supply, while the regulator is capable of supplying 3 amps.
The remaining 1.5 amps DC from the +5V supply is available for user hard-
ware expansion (provided suitable transformers are employed).

(Above data abstracted from Apple-1 Operation Manual.)

Bob Edmonds' Small Computers Center, PO Box 484, Actudillo Station, San
Landro, CA 94577 Temp. tel. (445) 357-5037 (5/17/76)

SPECIFICATIONS

MICROPROCESSOR: MOS TECHNOLOGY 6502

Microprocessor Clock Frequency: 1.023 MHz

Effective Cycle Frequency: 0.960 MHz

VIDEO OUTPUT: Composite positive video, 75 ohms,
level adjustable between 0 and +5V pp.

Line Rate: 15734 Hz

Frame Rate: 60.05 Hz

Format: 40 char/line, 24 lines, with automatic
scrolling

Display Memory: Dynamic shift registers (1K x 7)

Character Matrix: 5 x 7

RAM MEMORY: 16-pin, 4K Dynamic, type 4096 (2104)

On-board RAM Capacity 8K bytes (4K supplied)

POWER SUPPLIES: +5 Volts @ 3 amps, +/-12 Volts @ 0.5
amps, and -5 Volts @ 0.5 amps

Input Power Requirements: 8 to 10 Volts AC (RMS) @ 3 amps,
26 to 28 Volts AC (RMS) Center-Tapped,1A

Bill of Sale

Bill of Sale

Apple I Money Order

Assembly

With every componet coming from a different manufacturer, it was impossible to assemble the entire Apple I all at once. Joe spread everything out on a work desk in the basement, and assembled the system as the pieces came in.

Apple I Photo 3 Apple I Photo 1
Apple I Photo 2 Apple I Photo 5

Briefcase Apple I

Back in 1977, Joe stored his Apple 1 in the below pictured briefcase. The transformer and main boards were mounted and the keyboard was also stored inside. All you had to do was pick up the briefcase and your monitor (TV) and you had a portable computer that could go anywhere.

Briefcase 1 Briefcase 2

Motherboard Close-ups

Apple I - 6800

The 6800 area of board.

Joes tell us, "If I remember right, you pulled the 6502 chip and put in the 6800 cpu and all the parts and you had an Apple I based on the 6800 cpu instead of the 6502 cpu. I also believe that there was a law suit by Motorola who had the 6800 chip because MOS Tech who came out with the 6502 chip were all engineers who left Motorola and helped on the 6800 cpu and the 6502 cpu could use all the instructions that the 6800 had and was faster."

According to the manual: "Remove the 6502 cpu and put in a 6800 cpu into the 6502 socket. Install all componets shown in the 6800 breadboard area. Break both solder bridges on the board marked 6502, there are two of them. The Apple 1 computer is fully compatible with the 6500/6800 cpu timing signals."

Apple I - A to D

This one shows rows of chips, A,B,C and D.

Apple I - A & B

Here is a shot between rows B and C.

Apple I C & D

Here is the shot between rows C and D.

Apple I - video

This top down shot shows the video adjust pot and the video output plug.

Apple I CPU 2

This is the MOS 6502 processor.

Apple I key switches

Here is a shot showing the switches under the front panel for the printer and tape cassette.

Apple I power supply

This is a top down shot of the power supply, diodes, regulators, filters caps, etc.

The Cassette and its Interface

Apple I BASIC cassette

Apple I cassette interface front Apple I cassette interface back

Apple I recorder

Entering data by hand is a slow and cumbersome process. Storing the code on some sort of media, even if that media is merely a cassette tape, is far more efficient. As a consequence, the Apple-1 Cassette Interface was a popular add-on. Many programs were available from Apple on cassette, such as BASIC, Dis-Assembler, Blackjack, Hamurabi, and Luner Lander.

Apple I Cassette Interface manual cover

44 Pin Bus

The 44 Pin Bus Motherboard connects to the 44 pin edge connector on the Apple I and provides ten slots. Joe cut the board down to three slots and put three connectors on it due to space limitations in the cabinet.

Apple I - 44 pin bus 44 pin bus on Apple I

44 Pin Bus Advertisement

44 Bus Motherboard Advertisement

This advertisement appeared in:

44 pin bus catalog cover

Homebrew EPROM card

Apple I - eprom card back

Apple I - eprom card front Apple I - eprom card back 2

Joe writes:

"I built an EPROM card to use in the 44 pin bus in my Apple 1 computer. It had on it two 2716 EPROM's. The 2716 was a 2k memory chip. I had a new monitor and a dis-assembler on the chips. To use this card I had to first unplug the two Apple Proms on the motherboard. As you can see I did not solder the sockets, but wire wrapped the card instead."

Apple I - eprom card inserted

KIMSI

This board connected to the Apple 1 via the 44 Pin Bus and allowed S-100 cards to be connected.

The MOS Technology Kim-1 was a 6502 cpu based single-board computer with 1k of memory and a keypad for input.

The KIMSI allowed S-100 cards to be connected to the Kim-1. Connect this KIMSI card to the 44 Pin Bus card, and it was possible to use S-100 cards on the Apple I, as well.

KIMSI advert

KIMSI Connections

This paper shows the connections between the Apple 1 computer and the extension (expansion) card for the Kim-1 computer.

KIMISI Connections sheet

Drennan on the KIMSI

Richard Drennan
4590 Oberlin Avenue
Lorain, Ohio 44053

Dear Joe:

Once again I must apologize for taking so long to write. It seems
the older I get the lazier I get. Oh well.

I got the KIMSI board to work, but I get intermittent memory failiers
that have really bot me stumpped. To test the memory, I've using the
following program:

10 INPUT "ENTER LOW MEMORY, HIGH MEMORY LOCATION" ,L,H
20 IF L>H THEN 10
30 J=170
40 FOR I= 1 TO 100
50 FOR K=L TO H
60 IF J=85 THEN 70 : J=85 : GOTO 80
70 J = 170
80 POKE K,J
90 M= PEEK(K)
100 IF J=M THEN 130
110 PRINT "FAILIER AT ADRESS ":K:" (";M;" SHOULD BE ";J;")"
120 END
130 NEXT K : NEXT I
140 PRINT "ALL ADRESSES TESTED O.K."
150 END

This routine takes a long time to run, but if your memory passes it O.K.,
you can be pretty sure that the memory is adressing, reading and writing
O.K.

I originally bought my APPLE I to have a micro processor to play games
on, but since I'm a compulsive tinkerer, The APPLE I is apart as much as
it is together. To solve this problem, I've bought an APPLE II. Now I've got
a computer that runs, and one I can tinker with. If I can copy the paddle
circuits used by the APPLE II and write some assembler routines to simulate
the APPLE II graphics comands, I should be able to write some "PONG" type
game for the APPLE I for use with the SWTP graphics board that I have
hooked to my APPLE I. I think games like "Breakout", "tennis", etc.
should be bossible. The APPLE II low resolution graphics mode is 40 X 47,
but my graphics board is a little better since it's resolution is 64 X 96.
The APPLE II graphics are in color, but my grpahics board is only black and
white.

I don't know how you can set up a grid without some sort of graphics
board unless you plan to re-write it every time. If you are going to
re-write each time, you just build an array with the proper date, then
write teh board from the array (the HORTA program I sent you is a good
example of this techinique).

In order to convert my programs to the APPLE II, I listed all of them.
If you would like, I will see if I can make you a copy of all of them.

Wll, thats about it. If there is anything I can do, just write.
I'll try to write back quicker next time.

Upgrading the Memory

Apple I board

Note the bread board area at the left of the top-most blue capacitor.

Apple I - breadboard area

The 74153 and 74139 chips on the bread board area on the Apple 1 computer, as mentioned on the next page.

Apple I - memory

The 4K chips are on the left and the newer 16K chips are on the right.

Apple I - memory, bottom

Expanding the Memory to 20k

INSTRUCTIONS FOR EXPANDING THE APPLE-1 MEMORY TO 20K

The procedure consists of replacing one row of type 4096 memory chips (the X
row) by 4116 chips, each of which has a capacity of 16384 bytes rather than
4096, and providing the circuits to address the new memory. Note that each chip
gives one bit: to make up a byte, the computer uses one bit from each of the
eight chips.

WARNING
The new memory will cover the addresses from 0000 to 3FFF. This includes the
base page, which is vital to any operation of the computer, even using the
Monitor without basic. Thus if you use one chip that has a bad bit in the base
page area, it may prevent operation of the computer even if everything is
installed correctly. You can sometimes check if that is happening by
interchanging chips. If the symptoms change when you do that, you have to
suspect a bad chip. Even if everything works fine, you should check all the
memory occasionally.

Unfortunately, I don't know any source of 4116 memory chips that is completely
infallible. A good supplier should at least be willing to exchange any
defective chips. I have obtained good chips (and some bad ones which they
replaced) from Electrolabs (P.O. Box 6721, Standord, CA 94305, phone 415-321-5601).

(1) Install 2 16 pin DIP sockets in the breadboard area at the pwer-supply end.

(2) On the back of the printed-circuit board, cut the trace between W6-15 and
X6-15. Cut the trace between X7-13 and the feed-through point between rows A
and B.

(3) Remove chip B8 (74S257), and bend out pin 14 so that it does not make
contact. Reinsert it in its socket, leaving pin 14 sticking out to the side.

(4) In the jumper area near the center of the board, cut the solder jumper
between X and CS0.

(5) Install wires from the new 74153 socket pins:
1 Jumper to pin 8 7 Bll-13 (X7)
2 37-1 (74S257) 8 D9-8 (74161)
3 B10-23 (74154) 14 B5-1 (74S257)
4 B10-22 16 D9-16 (74161)
5 D9-14 Pins 9,10,11,12,13,15 no connection
6 Jumper to pin 5

(6) Install wires from new 74139 socket:
1 Jumper to pin 8 12 Bll-15 (X7)
2 Jumper to pin 14 13 B10-20 (74154)
3 Jumper to pin 13 14 B10-21 (74154)
4 H2-1 (7410) 15 B6-12 (74S257)
8 D11-8 (74161) 16 Dll-16 (74161)
Pins 5,6,7,9,10,11 no connection

(7) Install a 74153 and a 74139 in their respective sockets in the breadboard
area.
Install new 16k memory chips (4116) in sockets X0 to X7.

Datanetics Corp Keyboard

Apple I - Datanetics keyboard

The keyboard most commonly used with the Apple 1 was the Datanetics Corp keyboard.

Apple I - Datanetics logo

The Datanetics Corp logo.

Apple I - Datanetics date

Dated May 28, 1976.

Apple I - Datanetics bottom

Of course, in order to hook the keyboard up to the Apple 1, the pin layouts needed to be known. Robert H. Edmonds (deceased) acquired these from Steve Jobs and passed them along to Joe.

Apple I - Datanetics pinout

Datanetics pricing

Datanetics

February 16, 1978
78-DH-S1558

Mr. Joe Torzewski
51625 Chestnut Road
Granger, IN 46530

Dear Mr. Torzewki:

Thank you for your letter of February 4, 1978.

In accordance with your request, we are pleased to offer
pricing on P/N MM5740AAE/N I.C. chip. Pricing is $13.50
each. The keyswitch would cost $.50 each.

Also enclosed is a copy of a data sheet on our ASR-33 type
encoded keyboard.

If you desire additional information, please contact us.

Sincerely,

DATANETICs

Dennis Hill
Customer Service

DH/rjf

Enclosure

cc: R.O. Whitenail & Associates
6692 S. Washington Street
Indianapolis, In 46219
Tel: 317-358-9283

Apple DisAssembler

Apple I - DisAssembler letter

Apple I - DisAssembler cassette

The enclosed "copy of the preliminary version of the Apple I DisAssembler," on cassette.

GT-6144 Graphics Board

The Apple I's onboard video memory was capable of displaying text only. With the addition of the GT-6144 Graphics Board, the Apple I could display primitive black and white graphics.

Apple I - GT board

GT-6144 Advertisement

Apple I - GT-6144 Advert

Interfacing a SWTP GT-6144 to an Apple I

INTERFACING A SWTP GT-6144 GRAPHICS KIT TO AN APPLE I MICROPROCESSOR

 

The STWP graphics board displays a picture made of a 64 X 96 array of rectangles. The schematic I've enclosed is pretty straigt forward. The .006 MFD capacitor connected between pins 6 and 7 of the 74123 controls the length of time that must elapse between each output of date to the GT-6144. I've been unable to load the date faster than the .005 capacitor will allow.

The rectangles are turned on by sending a horizontal co-ordinate followed by a vertical co-ordinate to the GT-6144. This is clearly explained in the instructions included with the GT-6144. The co-ordinates are stored in location D00A which in basic would be -12278 and would be accomplished by the following: 10 POKE -12278,X where 'X' is hte co-ordinate to be written to the 6144.

The GT-6144 is a kit, and took me about 4 hours to build. The instructions are very good, and my board worked the first time I applied power to it. There is no power supplied with the kit, so you must either build your own, or buy their kit which is sold seperately.

The Gt-6144 is either connected to a TV monitor or to a standard TV thru a video modulator just as you must do with the APPLE 1.

The commands that can be acomplished by the GT-6144 are 1) turn on a rectangle 2) turn off a rectangle 3) display screen as white on black 4) display screen as black on white. The PIA must be set up before you can write to the GT-6144. It must also be set-up after you press the 'RESET' button on your APPLE 1. I get around this problem by making the first statement of my programs an exit in to the subroutine attached to this sheet. This routine not only sets up the PIA but also clears the screen of any rectangles left over from the last program. or the random rectangles that are always present right after powering-up the board.

If you plan to program the graphics in Basic, rember that Basic is very slow, and therefore your graphics will not respond very fast. If you use the POKE command shown above, the following values for X will cause the following actions:

X=0 to 63

send horizontal cordinate and set up to set off rectangle

X=64 to 127

send horiztonal cordinate and set up to set on rectangle

X=128 to 223

send vertical co-ordinate and set on or off rectangle as previously defined in the last horizontal co-ordinate sect

X=240

display screen as black on white

X=241

display screen as white on black

SWTP GT-6144 Interface Schematic

This information is taken from the schematic for the hook up of the Apple1 to the SWTP GT-6144 graphics board, refer to it while reading this, especially on the PIA pins , 23, 34, 35, 37 and 38.

The chip on the left is for the PIA for the graphic board. All pins marked with a * are connected to the corresponding pin on the keyboard PIA, pins 1, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36. This is listed at the bottom of the sheet on the left side. Pin 22 goes to the address line A3.

The capacitor on the 74123, between pins 6 and 7. On the bottom of the sheet on the right hand side says, ì you may have to play with this capacitor a little. The capacitor governs the length of time that must elapse between each output of data to the GT-6144.

The 12 pin molex connector on the GT-6144 board is shown on the right side of the sheet.

The information right below the 12 pin molex connector has the 6820-6520 PIA pins.

1  = VSS          11 = PB1          21 = R/W         31 = D2<br />
2  = PA0          12 = PB2          22 = CS1         32 = D1<br />
3  = PA1          13 = PB3          23 = CS3*        33 = D0<br />
4  = PA2          14 = PB4          24 = CS2         34 = RESET*<br />
5  = PA3          15 = PB5          25 = ENABLE      35 = RS1*<br />
6  = PA4          16 = PB6          26 = D7          36 = RS0<br />
7  = PA5          17 = PB7          27 = D6          37 = IRQB*<br />
8  = PA6          18 = CB1          28 = D5          38 = IRQA*<br />
9  = PA7          19 = CB2          29 = D4          39 = CA2<br />
10 = PB0          20 = VCC          30 = D3          40 = CA1



Click to enlarge: Apple I - GT-6144 Interface Schematic

Drennan on the Graphics Board

Richard Drennan
4590 Oberlin Avenue
Lorain, Ohio 44053
May 5, 1978

Hi Joe.

I finally got my graphics board to work!!! I'm sending along the information
on the graphics that I've been promising you for the last several months.
The system uses the SWTP GT-6144 Graphics board kit which can be had for around
$100.00 . I'm sending you the following: 1) some sales liturature about the board
2) a schematic of how I hooked up the board (it's actually very simple) 3) a
diss-assembled copy of a subroutine needed to set up the graphics PIA and to clear
the graphics screen and 4) some notes to help anyone who might like to try to hook
up the GT-6144. I did not go into much detail about programming with the GT-6144
because the is covered very well in the instructions included with the GT-6144.
If there is anything that I can do to help anyone attempting to use my hook-up,
I'd be glad to help them.

Well, thats it for now. Hope that the information on the graphics board will
be of some help to someone out there.

Sincerely,

Richard Drennan

GT-6144 Subroutine

SUBROUTINE TO SET UP GRAPHICS PIA AND CLEAR SCREEN

<br />
TO ENTER:<br />
   IN MACHINE LANGUAGE- JSR $0300<br />
                        (20 00 03)</p>
<p>   IN BASIC -           CALL 768</p>
<p>0300-     48          PHA<br />
0301-     8A          TXA<br />
0302-     48          PHA<br />
0303-     98          TYA<br />
0304-     48          PHA<br />
0305-     A9 00       LDA   #$00<br />
0307-     8D 0B D0    STA   $D00B<br />
030A-     A9 FF       LDA   #$FF<br />
030C-     8D 0A D0    STA   $D00A<br />
030F-     A0 2C       LDA   #$2C<br />
0311-     8D 0B D0    STA   $D00B<br />
0314-     A2 00       LDX   #$00<br />
0316-     A0 00       LDY   #$00<br />
0318-     8A          TXA<br />
0319-     8D 0A D0    STA   $D00A<br />
031C-     98          TYA<br />
031D-     09 80       ORA   #$80<br />
031F-     8D 0A D0    STA   $D00A<br />
0322-     C9 FF       CMP   #$FF<br />
0324-     10 04       BPL   $032A<br />
0326-     C8          INY<br />
0327-     4C 1C 03    JMP   $031C<br />
032A-     8A          TXA<br />
032B-     C9 3F       CMP   #$3F<br />
032D-     10 04       BPL   $0333<br />
032F-     E8          INX<br />
0330-     4C 16 03    JMP   $0316<br />
0333-     68          PLA<br />
0334-     A8          TAY<br />
0335-     68          PLA<br />
0336-     AA          TAX<br />
0337-     68          PLA<br />
0338-     60          RTS<br />
0339-     FF          ???<br />
033A-     FF          ???<br />
033B-     FF          ???<br />
033C-     FF          ???<br />
033D-     FF          ???<br />
033E-     FF          ???<br />

SWTPC PR-40 Printer

Apple I - printer

Steve Jobs wrote an article about interfacing an Apple 1 to the SWTPC PR-40 printer in the October 1976 issue of Interface Age. Joe read the article, purchased and built the printer kit, and interfaced it to his Apple 1.

Apple I - Interface Age

Below is a sample of the SWTPC PR-40's output quality. The print is somewhat light, but all in all, not that bad.

Apple I - printer output

At the time of the article, the Southwest Technical Products printer cost $250.00 in kit form. Line length was 40 characters, identical to the video format of the Apple 1. Only what was being outputed to the video screen could be printed, as the printer got its data from the video source. A switch was connected and whenever you wanted to print you put the switch in the "on" position and everything that went to the screen went to the printer, as well. It did slow things down a bit.

Apple I - printer ribbon

This is an original SWTPC PR-40 printer ribbon. When new these cost $4.00 apiece.

SWTP PR-40 Printer Interface Schematics

Apple I - printer interface schematic

The above was the most commonly used schematic for connecting a printer. It allowed the user to switch between two outputs: to the video monitor, and to both the video monitor and the printer.

The below schematics functions as the prevous one, but adds a third switch setting for printing without sending output to the video monitor. This increased the data output speed to the printer.

Apple I - printer interface schematic 2

System Overview

Apple I Front

The case is built like a tank and cost Joe around $50 back in 1977.

Apple I Keyboard

The top switch is for the printer. When you throw it, you get a print out to the screen and a hard copy from the printer. Below that switch is a red LED which is hooked to the cassette interface. Every time the tape was read or written to the either flicker or stay on read, depending on the level at which it was being accessed. The next switch to the left is for the cassette interface. When you wanted to read a tape you would have to throw this switch. To next switch to the right was also for the cassette interface. This one controlled writing.

Apple I - no cover

The lid had five screws to hold it in place, though Joe kept the cover loose. Once the computer was up and running, there was little need to remove the lid unless you wanted to look at the cassette interface LED, which is why Joe mounted one on the front panel.

Apple I - inside

The card plugged into the Apple I motherboard is the cassette interface card. The blue card plugged into the extended bus is the EPROM card.

Apple I - fan and speaker

These are the two power transformers need to power the Apple I along with the fan that Joe chose. The speaker is mounted to the side of the cabinet, below the fan. The fan ran off 110V; the switch for it was on the back.

Apple I CPU

This is a view from the back of the computer. You can see the cassette infterface card in the lower left corner, the many rows of chips are the memory. The last chip in the left row, color white, is the cpu, a 6502.

Apple I EPROM card

To the lower right you see the heat sink fins for the 5.volt regulator chip. To the bottom left you see the EPROM card and right above that the cassette interface card and above that the memory chips.

Apple I EPROM back

Another view from the back, this one showing the EPROM board and the cassette interface. On the cassette interface, you can see the plug for the cassette tape read and write in the top left.

Connecting a Teletype

Computer Data Systems, Inc.

TIM BYTES THE APPLE:

For those of you that would like to have hard copy capability

and much better control over program development on the Apple 1,

the following hardware addition will accomplish it.

Using a 6530-004 ('TIM' chip) costing about $12.00 gives many

superb features such as a variable baud rate serial input/output,

a high speed parallel input (high speed paper tape reader), an

excellent breakpoint processor, paper tape dump and load

routines, etc.

The TTY port is located at lcations 6202H and 6203H. Date at

that port should be 00H and 16H respectively. The baud rate is

stored at 00EAH and 00EBH and 110 baud is represented by 10H and

46H at those locations.

It's a fun addition to the Apple 1. Try it!

Fred Hatfield K8VDU

Teletype connection schematic

Apple I - teletype schematic

Teletype Pinouts

<br />
APPLE COMPUTER</p>
<p>     TIM                 APPLE I<br />
     6530-004             6502<br />
        33        D0        33<br />
        32        |         32<br />
        31        |         31<br />
        30        |         30<br />
        29        |         29<br />
        28        |         28<br />
        27        \/        27<br />
        26        D7        26<br />
         5        A9        18<br />
         6        |         17<br />
         7        |         16<br />
         8        |         15<br />
        10        |         14<br />
        11        |         13<br />
        12        |         12<br />
        13        |         11<br />
        14        |         10<br />
        15        AO         9<br />
        16        RES       40<br />
        17        IRQ        4</p>
<p>          1 - GND<br />
         20 - +5V              -----------------------<br />
          3 / PIN25           |  FRED HATFIELD K8VDU  |<br />
            \ 6820            |                       |<br />
         18 - +5V             |     7/77              |<br />
                               -----------------------<br />

Operations Manual

Apple I - Operations Manual cover Apple I - New Operations Manual cover

The manual consists of about 12 pages plus the warranty page.

The Apple 1 computer is a complete microprocessor system, consisting of a 6502 microprocessor and support hardware, integral video display, dynamic memory and refresh hardware and fully regulated power supplies. It has a resident system monitor software, enabling the user to display, write, examine, debug and run programs.

The video section contained its own memory there by leaving the entire ram for user programs. The output format was 40 characters a line. There were 24 lines per page, it also had auto scrolling.

The board came with 4K of Ram from Apple company and you could add another 4K giving you 8K on the board. The memory used was dynamic memory, 16pin.

The system was fully expandable to 65K of memory via the edge connector. The Apple 1 had a 44-pin buss, which had all the clocks, voltages, address lines and data lines running to it.

The Apple 1 used a single crystal oscillator to get all of its timing signals for the entire computer. There was also a breadboard area for the user to add sockets for other chips, piaís etc or what ever he wanted to add to the Apple 1 system. Maybe some people did not know this but you could get rid of the 6502 microprocessor and put in a 6800 microprocessor if you wanted to. You had to add some components, maybe this is why the breadboard area was included also?

The Apple 1 computer came fully assembled. All you needed to do to get up and running was get ASCII keyboard, a video monitor and two AC transformers, one supplying 8 to 10 volts @ 3 amps and one at 28 volts @ 1 amp. After hooking up everything there was a test program to check out the hookup.

Section II of the manual was on using the system monitor, which was in two Proms at FF00 to FFFF. To enter the monitor you hit reset and you got a backslash and return. This was not a dis-assembler, this monitor just showed the value at that memory location that you was looking at or you could look at blocks of memory if you wanted to. All together there was 4 pages on the system monitor including a listing of the monitor with another 4 pages of schematics of the Apple 1 system.

The warranty for the Apple 1 computer was for 30 days from the date of purchase. Not a long period of time when you look at what you can get today but when you consider that it was back in 1976 era, then the Apple 1 was one of the kings of that time.

Apple BASIC

Apple I - BASIC manual 2 Apple I - BASIC manual 1

Apple 1 basic was on cassette tape and took about 30 seconds to load.

Some of the following was in the BASIC:

Functions

Commands

Statements:

In Apple Basic you could input more than one statement on a line. Each statement must be separated by a colon (Smile.

Error messages

Apple I - BASIC cassette

Adapting BASIC programs to run in Apple BASIC.

Who says that Apple Basic won't do the job? Except for the
usual memory limitations (crowd 16K Star-Trek into an Apple I?)
our language is pretty comprehensive. Which translates into
"Copy anyone's basic listing for a program". The secret word
is ADAPT! When the listing you try to copy won't run, don!t
curse and type "SCR". Instead, think of your computer as an
adaptable machine, and then ADAPT.

As an example, consider the following listing, as it might
appear in "101 Basic Games":
10 IF RND(O)>0.8333 THEN 70

Adaption to Apple Basic becomes:

10.IF RND(6)>4 THEN 70

Two-dimensional arrays are common in Basic program listings,
and require a solution to fit the program into our computers.
The listing usually looks like this:

1 DIM A(10,10)
and...
10 A (J,K)-B

To rearrange this to fit in Apple Basic, just multiply the
X and Y co-ordinates in the DIM statement to dimension the
array. (i.e. A(10,10) becomes A(100).) Then, as the list
statements call for A(J,K), use the general form A((X-1)*J+K),
where X was the first number in the DIM statement. Our new
listing in the computer now reads:

1 DIM A(100)
and...
10 A(9*J+K)=B

Another "stumper" is the statement:

90 GO TO J 0F 260,270,280,290

But Apple basic will accept this statement:

90 GO TO (250+10*J)

Which will do the same thing.

One more b it of advice. When you manage to work around
some unusual coding that your Apple won't accept, write it


page 2

down. Show what you have done alongside your hard-copy listing,
with all the reasons for doing it your new way. Chances are
that you will run into this problem again. There is no reason
for you to have to re-invent the solution. Besides, maybe you
can help some other micro-freak when he has given up.

In fact, here's a challenge! What is the best Apple-Basic
solution to the problem with the following program?

75 DATA 13, 14, 15, 22, 23, 24, 29, 30, 31
77 FOR W=1 to 9
79 READ M
81 B(M)=-7
83 NEXT W

Send your solutions to Joe at the Apple Owners Club, and we'll
print the solutions that you send in. So sit down now, put on
the old thinking cap, and tell the rest of us how dumb we are.
We'll enjoy hearing from you.

Focal

Focal printout

Focal, originally written for the Apple II, was converted to the Apple 1 by the Apple One Library, a group of Apple 1 owners.

Joe's receipt for Focal:

Apple I - Focal Receipt

Focal Notes

This Apple I Focal program is a number guessing game. The first part of the print out shows the code; the second part shows the game being played.

Focal - Guessing Game

The below note contains instructions for starting Focal. 56.00E8R400.1A65R is where Focal is loaded into the computer's memory. Entering 400R starts the program. Then it finally displays the Focal banner on the screen.

Apple I - Starting Focal

Software

ACSII Hex equivalents

Program to print ASCII HEX equivalents of all printing characters

44:50 07

0044: 38
9F0R

09F0: 20
0750- A2 A0 LDX #$A0
0752- A9 8D LDA #$8D
0754- 20 EF FF JSR $FFEF
0757- 8A TXA
0758- 20 EF FF JSR $FFEF
0758- A9 A0 LDA #DA0
075D- 20 EF FF JSR $FFEF
0760- 8A TXA
0761- 20 DC FF JSR $FFDC
0764- E8 INX
0765- A9 A0 LDA #$A0
0767- 20 EF FF JSR $FFEF
076A- 20 EF FF JSR $FFEF
076D- E0 00 CPX #$00
076F- F0 03 BEQ $0774
0771- 4C 54 07 JMP $0754
0774- 4C 1F FF JMP $FF1F

Sample run

750R
0750: A2
A0 ! A1 * A2 # A3 $ A4 % A5
& A6 ' A7 ( AB ) A9 * AA + A
B , AC - AD . AE / AF 0 BO 1
B1 2 B2 3 B3 4 B4 5 B5 6 B6
7 B7 8 B8 9 B9 : BA ; BB < BC
= BD > BE ? BF @ C0 A C1 B
C2 C C3 D C4 E C5 F C6 G C7
H C8 I C9 J CA K CB L CC M CD
N CE 0 CF P D0 Q D1 R D2 5 D
3 T D4 U D5 V D6 W D7 X D8 Y
D9 Z DA [ DB \ DC ] D7 | DE
DF @ E0 A E1 B E2 C E3 D E4
E E5 F E6 G E7 H E8 I E9 J
EA K EB L EC M ED N EE 0 EF
P F0 Q F1 R F2 S F3 T F4 U F5
V F6 W F7 X F8 Y F9 Z FR [ F
B \ FC ] FD | FE FF


This program, like the previous, also converts characters to their ASCII HEX equivalents.


Program to print ASCII HEX equivalent of any keyboard character

44:00 07
0044: 24
9FOR

09F0: 20
0700- A9 8D LDA #$8D
0702- 20 EF FF JSR $FFEF
0705- AD 11 D8 LDA $D011
0708- 10 FB BPL $0705
070A- AD 10 D0 LDA $D010
070D- AA TAX
070E- 20 EF FF JSR $FFEF
0711- A9 A0 LDA #$A0
0713- 20 EF FF JSR $FFEF
0716- 8A TXA
0717- 20 DC FF JSR $FFDC
071A- 4C 00 07 JMP $0700

Sample run

700R
0700: A9
A C1
C C3
1 B1
0 CF
(CONTROL 0)8F
C C3
(CONTROL C)83
; BB
! A1
/ AF
\

Apple Pugetsound Group

April 4, 1978

Dear Joe:

Sorry to be so long between letters, but I just don't have all
that much time to write. I shipped your cassettes UPS last nite.
They came to 8.67 all told, and since you sent 8.80, that makes
it pretty close.

We have had two meetings to date and now have 19 members
currently. We got 13 from the first meeting, and there are still
four or five in the wings. Two new Aple dealers will be opening
the end of this month, and this, of course, will provide still more
potential members.

Re "Stopwatch" which I sent you, I think it can be modified
easily for Apple I. Clearing the screen is not important except

for appearanse sake. If not cleared, each second will simply
scroll up. Instead of the Peek_16368 routine, which you don't
have available, I would think INPUT A$ (hit return and) END
would have the same effect. Try and see.

I have come up with a great menu of utility routines that
will append two programs together (loaded seperately from tape)

print a basic line in hex and identify its hex location and renumber
basic lines. However, since they all involve chjanging memory or
examining memory with PEEK and POKE statements, I am not
sending it on.

I haven't had a chance yet to try the program you sent me. Looks
like it would work, however. And, I've got to run. I'll send you any
programs I think might work for Apple I (like MULTIPLY, for example)
if you see anything in the catalogue (Page 4 of April Call -Apple of interest,
let me know.
Regards,

Stopwatch for Apple I

1 REM           "STOPWATCH"<br />
2 REM           APPLE I VERSION<br />
3 REM           ADAPTED BY LARRY NELSON<br />
4 REM           MARCH 12, 1978<br />
5 REM<br />
120 PRINT: PRINT "REAL-TIME CLOCK AND STOPWATCH"<br />
130 PRINT: PRINT "TO STOP TIME, HIT ANY KEY"<br />
140 PRINT: "EXCEPT WHILE COMPUTER IS PRINTING"<br />
145 PRINT: PRINT "   FOR STOPWATCH FUNCTION,": PRINT " ENTER<br />
    ALL TIMES AS ZERO." :PRINT: PRINT<br />
150 INPUT "HOURS ",H : PRINT<br />
160 INPUT "MINUTES ",M : PRINT<br />
170 INPUT "SECONDS ",S : PRINT<br />
180 S=S+1: IF S < 60 THEN 200: S=0: M=M+1: IF M < 60 THEN 200:<br />
    M=0: H=H+1: IF H > 12 THEN H=1<br />
200 TAB 15: PRINT H; " : "; : IF M<10 THEN PRINT 0 ; : PRINT M;<br />
    " : " ; : IF S < 10 THEN PRINT 0 ; : PRINT<br />
210 FOR I=1 TO 450: NEXT I: IF PEEK (-12272) > 128 THEN 300<br />
230 S1=S1+1: IF S1 < 60 THEN 260 : S1=0 : M1=M1+1 : IF M1 < 60 THEN<br />
260 : M1=0 : H1=H1+1<br />
    H=H+1 : IF H>12 THEN H=1 :  GOTO 200<br />
300 FOR I = 1 TO 1000 : NEXT I<br />
330 PRINT : PRINT "ELAPSED TIME:  ";<br />
340 PRINT H1; " : " ; : IF M1 < 10 THEN PRINT 0 ; : PRINT M1 ; " : " ; :<br />
    IF S1 < 10 THEN PRINT 0 ; : PRINT S1<br />
350 PRINT : PRINT : PRINT " TO RESET TIME, TYPE ' RUN ' "<br />
380 PRINT : PRINT "TO CONTINUE WITH SAME TIME , "<br />
390 PRINT "TYPE  ' GOTO 210 ' . " : PRINT : END</p>
<p>Apple 11 version centers the time display on the screen erasing and<br />
reprinting each up date. ( I had to print the time and just scroll the<br />
screen) stopping the program during a printing function prints<br />
" Stopped at 210 message so hit key ( and hold it down ) while the cursor<br />
is at the left margin. The timming loop at line 210 asks if a key is<br />
depressed by looking at D0100 (16) , the keyboard input location. There is<br />
problaly a poke statement to prevent the program stopping at line<br />
210. But I need to dig for it, I guess.

Whoops! Just realized a shortcut on program : -
Line 260 could be: 260 GOTO 180

Stopwatch for the Apple II

>LIST</p>
<p>  5 REM           "STOPWATCH"<br />
  6 REM            ^^^^^^^^^<br />
  7 REM<br />
  8 REM        BY BOB HUELSDONK &<br />
  9 REM            VAL GOLDING<br />
 10 REM<br />
 11 REM    APPLE PUGETSOUND PROGRAM<br />
 12 REM        LIBRARY EXCHANGE<br />
 13 REM<br />
 14 REM        6708 39TH AVE. SW<br />
 15 REM        SEATTLE, WA.  98136<br />
 16 REM<br />
 17 REM           FEB 12, 1978<br />
 18 REM<br />
 50 GOTO 100<br />
 60 X= PEEK (-16384): IF X > 127 THEN 300: POKE -16368.0: RETURN</p>
<p> 70 PRINT : TAB 15: RETURN<br />
 80 VTAB 16: GOSUB 70: RETURN<br />
 90 PRINT "0";: RETURN<br />
100 TEXT : CALL -936: VTAB 4<br />
110 PRINT "THIS PROGRAM FUNCTIONS AS EITHER A": PRINT "REAL TIME CLO<br />
    CK OR STOPWATCH"<br />
120 PRINT : PRINT " FOR STOP WATCH FUNCTION, ": PRINT "ENTER ALL TIME<br />
    S AS ZERO"<br />
130 PRINT : PRINT "TO FREEZE TIME, HIT RETURN": PRINT : PRINT "AFTER<br />
    A BRIEF PAUSE, ELAPSED TIME WILL BE DISPLAYED"<br />
140 GOSUB 80: PRINT "HRS:MIN:SEC"<br />
150 GOSUB 70: PRINT "HOURS": INPUT H<br />
170 GOSUB 70: PRINT "MINUTES": INPUT M<br />
180 GOSUB 70: PRINT "SECONDS": INPUT S<br />
190 CALL -936: POKE 37,23: POKE 34,22<br />
200 TAB 15: PRINT H;":";: IF M<10 THEN GOSUB 90: PRINT M;":";: IF<br />
    S<10 THEN GOSUB 90: PRINT S<br />
210 REM ADJUST MAXIMUM VALUE OF I          70 VARY CLOCK SPEED<br />
220 FOR I=1 TO 640: NEXT I: GOSUB 60<br />
230 ES=ES+1: IF ES>59 THEN 240: GOTO 260<br />
240 EM=EM+1:ES=0: IF EM>59 THEN 250: GOTO 260<br />
250 EH=EH+1:EM=0<br />
260 S=S+1: IF S>59 THEN 270: GOTO 200<br />
270 M=M+1:S=0: IF M>59 THEN 270: GOTO 200<br />
280 H=H+1:M=0: IF H>12 THEN H=1: GOTO 200<br />
300 PRINT H:":";: IF M < 10 THEN GOSUB 90: PRINT M;";"; : IF S < 10 THEN<br />
    GOSUB 90: PRINT S:<br />
310 FOR I=1 TO 12000: NEXT I<br />
320 TEXT : CALL -936: VTAB 4: PRINT "TO RESET TIME, TYPE 'RUN'."</p>
<p>330 VTAB 8: TAB 4: PRINT "ELAPSED TIME ";<br />
350 PRINT EH;":";: IF EM < 10 THEN GOSUB 90: PRINT EM;":";: IF ES<<br />
    10 THEN GOSUB 90: PRINT ES<br />
360 END</p>
<p>>PR#0

Arthur L. Schawlow - Print Large Characters

PROGRAM TO PRINT LARGE CHARACTERS (SIX PER LINE)

This program accepts up to six characters per line, in as many as 18
lines, and displays them on the TV monitor as large block characters.

It comes with sample messages stored in it. There are entry
subroutines beginning at addresses 610, 620, 640 and 650. To see the stored
messages, you might start with 610R, which will repeat one message endlessly
until interrupted by the Break key. 640R displays a second message once.

To enter a new message, start with 620R. You can then type up to
six characters per line, and can use the Rubout key to make corrections.
There is room for up to 128 characters, including carriage returns. When
you have finished entering your message, Control-A starts display of the
large characters.

650R permits storing a second message of up to 64 characters,
starting halfway through the storage block. 640R displays this message
once. 340R will display the first message. Both 340 and 640 are jumps to
subroutines, and end with a return command (HEX code 60). If you run them
directly, you have to use th Break key to get out. But you can also call
them from a BASIC program.

The Apple I types out one line after another. To show one line of
display characters, you need five lines, and so the program scans each line
of characters five times and jumps successively to an address in the second
half of the 300, 400, 500, 600 and finally 700 page. For instance, if you
are to print the letter B (ASCII HEX code C2), on successive lines it looks
up addresses 3C2, 4C2, 5C2, 6C2 and 7C2. In each case it finds there a
number whose binary digits tell it whether to print an "X" or a space. An X
is printed for a one digit, and a space for a zero digit.

A.L. Schawlow
Jan. 2, 1978

Results

Apple I - Schawlow Results

DrawText

PROGRAM TO DRAW PICTURES OR TEXT AND STORE THEM STARTING AT EOO0

OAOO R (ret)

Computer prints OAOO= A9

Press (ret)

Anything typed now will be stored.

(ret) causes remainder of that line to be filled out with spaces,
which can later be replaced with characters if desired.

LINE FEED Prints one word and the space immediately after it.

SI (CONTROL 0) prints one line.

/P prints out lines continuously until *$ indicates end of file.

/M returns to beginning of line, or if at the beginning of a line,
returns to beginning of preceding line.

/- returns to beginning of file.

/F XXX (ret) searches file for lines containing the character
string XXX.

// returns control to the keyboard (equivalent to Break)

A.L.Schawlow
Stanford University
January 31, 1977

"Draw Text" Results

Apple I - DrawText results

Example of how to run BASIC on an Apple I

EXAMPLE OF HOW TO RUN BASIC ON AN APPLE I - not setting LOMEM
_____________________________________________________________

\ press reset
C100R run cassette program

C100: A9* (APPLE I response)
E000.EFFFR read BASIC into memory
\ (APPLE I response)
E000R start-up BASIC

E000: 4C (APPLE I response)
>10 PRINT"SAMPLE PRORGRAM #1" type in new program
>20 PRINT"THIS PROGRAM USES" type in new program
>30 PRINT"MEMORY FROM" type in new program
>40 PRINT"2048 TO 4096." type in new program
>50 END type in new program
>RUN
SAMPLE PROGRAM #1 (APPLE 1 response)
THIS PROGRAM USES (APPLE 1 response)
MEMORY FROM (APPLE 1 response)
2048 TO 4096 (APPLE 1 response)
>\ press reset
C100R run cassette program

C100: A9* (APPLE 1 response)
4A.00FFW800.FFFW write program to tape
\ (APPLE 1 response)
C100R enter cassette program

C100: A9* (APPLE 1 response)
4A.00FFR800.FFFR read program from tape
\ (APPLE 1 response)
E2B3R re-enter BASIC

E2B3: 20 (APPLE 1 response)
>LIST
10 PRINT "SAMPLE PROGRAM #1" (APPLE 1 response)
20 PRINT "THIS PROGRAM USES" (APPLE 1 response)
30 PRINT "MEMORY FROM" (APPLE 1 response)
40 PRINT "2048 TO 4096." (APPLE 1 response)
50 END (APPLE 1 response)
>

Example of how to run BASIC on an Apple I - with LOMEM

EXAMPLE OF HOW TO RUN BASIC ON AN APPLE I - setting LOMEM
_____________________________________________________________

\ press reset
C100R run cassette program

C100: A9* (APPLE I response)
E000.EFFFR read BASIC into memory
\ (APPLE I response)
E000R start-up BASIC

E000: 4C (APPLE I response)
>LOMEM-768 set low memory boundry
>10 PRINT"SAMPLE PRORGRAM #2" type in new program
>20 PRINT"THIS PROGRAM USES" type in new program
>30 PRINT"MEMORY FROM" type in new program
>40 PRINT"768 TO 4096" type in new program
>50 END type in new program
>RUN
SAMPLE PROGRAM #2 (APPLE 1 response)
THIS PROGRAM USES (APPLE 1 response)
MEMORY FROM (APPLE 1 response)
768 TO 4096 (APPLE 1 response)
>\ press reset
C100R run cassette program

C100: A9* (APPLE 1 response)
4A.00FFW300.FFFW write program to tape
\ (APPLE 1 response)
C100R enter cassette program

C100: A9* (APPLE 1 response)
4A.00FFR300.FFFR read program from tape
\ (APPLE 1 response)
E2B3R re-enter BASIC

E2B3: 20 (APPLE 1 response)
>LIST
10 PRINT "SAMPLE PROGRAM #2" (APPLE 1 response)
20 PRINT "THIS PROGRAM USES" (APPLE 1 response)
30 PRINT "MEMORY FROM" (APPLE 1 response)
40 PRINT "768 TO 4096" (APPLE 1 response)
50 END (APPLE 1 response)
>

Frank Emens' Software

Dear Joe,
You came pretty close in the comment you made on the
back of the last newsletter---I haven'tsold the Apple-1
yet, but I will before much longer. About the first of the
year, I got an Apple-2 and have spent most of the time get-
ting familiar with the goodies it has. I have since expanded
its memory to 24K. After the A-1 and it's 8k, I still feel
like rattling around in all that memory---though I've already
found situations where 24K is not really enough. (For example,
the floating point uses about 10K, the high resolution graphics
takes 8K for the display memory, the hi-res graphics support
routines take almost 1K and the stack, zero page, & alpha-
numeric display area takes up 2K more.)
Some of the things I've been doing with the Apple-2 are
applicable to the A-1, so don't take me off the list and
brand me a traitor yet... I'm sending you two items that
might be interesting. One is for puzzle freaks who are interested
in the "Cryptoquote" puzzles published in a lot of newspapers.
(I've found that an interest in puzzles and an addiciton to
computers seems to go together.) The program does not solve the
cryptogram, but it gives you a lot of help in solving it by
instantly (well, almost instantly) displaying the effect of
different letter substitution trials. It's a lot of fun to
see the solution almost pop out at you as you feed in the sub-
stitutions. The real reason for including this one is that it
illustrates the point I mentioned in the first letter to you--
about expanding the capabilities of Apple-BASIC with a few
simple machine language routines. The short routines that go
with the cryptosolve program add the equivalent of the "ASC"
and the "CH$" functions to your BASIC. "ASC" converts an
ASCII character to its numeric equivalent and "CHR$" converts
a number from 0 to 255 to its ASCII equivalent character.
(The routines don't literally replace the two functions, but
allow you to do some things that you would ordinarily use them
for.)
I'm also enclosing (in the form of SWTP printer outputs-and
probably not reproducible.) two versions of programs that gen-
erate cryptograms from any clear text you input. One uses the
routines above and the other uses a Kluge to get around them.
You will see, if you try them both out, that there is nearly
a factor of ten difference in speed between the two.
I'm also enclosing a dissertation on the Audible Apple
which you & others might have some fun with. I've been holding
up sending you this stuff because I wanted to verify it on
the Apple-1 before sending it to you. The audible programs
were genned up for the Apple-2 (thought I've done something
similar with the -1 before) and I've converted the address
range, zereo page registers uses, etc., for the A-1. I was
in the process of verifying them a few weeks ago and, half-
way through the process, something caused BASIC to crash and
I haven't been able to load anything since. I would

suggest that, if you decide to distribute these programs,
you check them out, or get someone to do so. If they give
any trouble, maybe I can help figure out the problem at
a distance with some correspondence. What I'm sending is
adentical to the machine language routines that work on the
A-2 except for the addresses. If there is a problem, it will
almost have to be that the page-zero addresses I selected for
the A-1 are also used by BASIC. I don't think that's a prob-
lem, because of the way the routines were working before the
machine crashed on me. The only thing I was not able to verify
was the Morse code routine. The tone generators were working
OK. Sooner or later, I'm going to reconstruct the conversion
tables, etc., required to play music with the Audible Apple,
and when I do, I'll send the information along. It's prety
straightforward, and I'm sure someone will do that for you
before I get around to it.

I've loaded you with enough stuff to worry about now, so
I'll close. Til next time....

Frank Emens


Joe, hope some of this will be
useful or entertaining, sorry to
have been so slow responding.

BY THE WAY, IF THE A-1 EXTENDED MONITOR
IS LIKE THE A-2 MONITOR, THE TAPE READ &
WRITE ROUTINES ARE ACCESSIBLE AS SUB-ROUTIENS
AND CAN BE CALLED FROM BASIC, ETC. IF I CAN
SMOKE OUT THE DETAILS I'LL LET YOU KNOW.
Frank

Cryptogram

COMMENTS ON "CRYPTOGRAM AID" PROGRAM

7 Clears 309 bytes of "pokespace" by writing in ASCII
"space".

10 Initialize character count(C) & line count(L).

20 Call keyboard routine: pick up character from "mailbox"
(location #14), call it T

30 Put away in pokespace.

40 Test T for "rubout"
50 " T " "esc"
60 " T " "Dc" (control-D)
70 " T " "return"

80 T was none of above, so it was not a command. Keep it in
pokepsace, increment character count. If not an end of
line (40 characters), go back to line 20 for another.

90 T was "return". Update line count, resect character count
to 1.

100 Return to input routine.

110 T was "escape". Reset character count, keep same line
count, return to input.

120 T was "control-d". Leave input routine, save line count
as L2.

140 Now poke "space" into 26 locations. Here we will save the
substitute alphabet.

230 Get a character, call it T2.

235 If it's "Dc", input is complete.

240 Display "=", then get the other side of the equation.

250 If right side is not a letter, user scrogged up. Repeat
instructions and try again.

260 Subtract 192, the result is the position of the letter in
the alphabet. Now place T2 (the code equivalent of T) in
the table formed in 140, locating it at position T.

265 Print a "space" for clarity, go back for another pair.

280 "Dc" was found in line 235, so all equivalents have been
entered for now...Set up a loop which will process all the
lines entered.

285 Initialize character count.

290 Get a character.

300 Make sure it's a letter, if not, print it unchanged (line 320).

305/310 Subtract 192 to access equivalent table, pull equi-
valent from table.

320 Poke it tomailbox, call routine that prints it as an
ASCII character.

330 See if it was "return"

335 If not, increment character count & go get another.

337 It was "return", so reset character count.

340 We've printed all the equivalents that have been assigned
so far, now in lines 340 through 370, print the crypto-
gram line just under the letter equivalents that have been
assigned so far.

370 Go to next line & repeat the process.

380 All lines have been printed. Go to 230 to assign more
equivalents.

For this program to work you need the following two machine
language subroutines loaded. They make it possible to use
the POKE and PPK commands to store ASCII data in the un-
committed memory space. Data so stored may be recorded on
cassette for read from tape without disturbing the BASIC
program that is doing the manipulationg.

0000- AD 11 D0 LDA $D011 | This subroutine reads
0003- 10 FB BPL $0000 | the keyboard, when it
0005- AD 10 D0 LDA $D010 | gets a char. it displays
0008- 20 EF FF JSR $FFEF | it and stores it in $0E.
000B- 85 0E STA $0E |
000D- 60 RTS |
000E- EA NOP
000F- A5 0E LDA $0E | This one picks the char.
0011- 20 EF FF JSR $FFEF | out of $0E and displays
0014- 60 RTS | it on CRT.

Cryptogram Source Code

CRYPTOGRAM AID

5 PRINT "INPUT CRYPTOGRAM"
7 FOR N=640 TO 949: POKE N,160: NEXT N
10 PRINT: PRINT: C=1:L=0
20 CALL 0: T-PEEK (14)
30 POKE (639+C+40*L),T
40 IF T=255 THEN 100
50 IF T=155 then 110
60 IF T=132 THEN 120
70 IF T=141 THEN 90
80 C=C+1: IF C < 41 THEN 100
90 C=1: L=L+1
100 GOTO 20
110 C=1: GOTO 20
120 L2=L-1
125 PRINT : PRINT
130 PRINT "CRYPTOGRAM ENTRY COMPLETE"
140 FOR N=1 TO 26: POKE 950+N,160: NEXT N
150 PRINT "NOW ENTER YOUR EQUIVALENTS, ENTER"
160 PRINT "THE CRYPTO LETTER, THEN, AFTER THE ="
170 PRINT "APPEARS, ENTER THE EQUIVALENT LETTER."
180 PRINT "TO DISPLAY THE QUOTE WITH ALL CURRENT"
190 PRINT "SUBSTITUTIONS MADE, PRESS CTRL AND D"
200 PRINT "SIMULTANEOUSLY. AN EQUIVALENT MAY BE"
210 PRINT "CANCELED BY MAKING IT EQUAL 'SPACE'"
225 PRINT :PRINT
230 PRINT "?";: CALL 0:T=PEEK(14)
235 IF T=132THEN 270
240 PRINT "=";: CALL :T2=PEEK(14)
250 IF T<193 OR T>218 THEN 150
260 T=T-192: POKE (950+T),T2
265 PRINT " ";: GOTO 230
270 PRINT : PRINT
280 FOR L=0 TO L2
285 C=1
290 T=PEEK (639+C+40*L)
300 IF T<193 OR T>218 THEN 320
305 T=T-192
310 T2= PEEK (950+T): T=T2
320 POKE 14,T: CALL 15
330 IF T=141 THEN 337
335 C=C+1: GOTO 290
337 C=1
340 T=PEEK (639+C+40*L): POKE 14,T: CALL 15
350 IF T=141 THEN 370
360 C=C+1: GOTO 340
370 PRINT : NEXT L
380 PRINT : GOTO 230

The Audible Apple

The three machine language subroutines listed here
produce audio signals at the output normally used to write
to tape from the cassette interface. For the best effect,
try connecting the output to the input of an audio amplifier.
If there is no amp available, you can record the output on
tape and listen to the output.
The subroutine at $300 creats an audio tone whose pitch
is determined by the value loaded in $16 and whose duration
depends on the number loaded in $15. The routine at $318 is
identical, except that it creates no sounds. It can be used
for rests if you use the routines for music, or for calibrated
intervals of silence for other applications. I have worked out
the values to plug into $16 to create a musical scale, but
can't find the information now, so will let you work that out.
The two BASIC routines here will give you a quick demonstration
of the possibilities.

10 for I=1 to 255 step 4
20 FOR J=1 TO 255 STEP 4
30 POKE 22,J: POKE 21,I
40 CALL 768
50 NEXT J,I
60 END

10 I= RND(256): J= RND(256)
20 POKE 22,I: POKE 21,J
30 CALL 768
40 GOTO 10

The subroutine at $330 uses the first two to generate
Morse Code. To use it, store an ASCII character in $OE (14d)
and CALL 816. The ASCII value is used to enter a conversion
table at $#AO to $3DF, which returns an eight bit pattern
defining the Morse equivalent of the letter. The scheme for
storing the code characters is best explained with an example.

The letter "L" in Morse id "dit dah dit dit". Beginning
with the most significant bit of the 8 bit byte, a zero represents
a "dit" and a one represents a "dah". After the last bit of
the Morse character, a final one serves as a stop bit. The
remaining bits of the byte are zeros. The "L" would be stored
as "01001000", or $48. An "A", which is "dit dah" would be
encoded as "01100000", or $60.

To convert this representation to actual Morse, one executes
a series of left shifts (ASL's). After each shift, first check
to see if the word has gone to zero, indicating that the "stop"
bit has just moved into the carry. If it did, you have completed
outputting the character code, and must follow it with the standard
character space. If it did not go to zero, the state of the carry
flag tells you whether to output a dit or a dah.
As with the tone generation routines, the Morse routine
can be driven from APPLE BASIC with a lttle finagling. Use
the keyboard and CRT routines accompanying the cryptogram
program to Poke a string of characters into a table, then
transfer them to the Morse routine in sequence. A neat code
practice generator should be:

10 N=0
20 FOR I=1 TO 5: T= 192+RND(26)
30 POKE 14,T: CALL 15 : CALL 816
40 NEXT I: N=N+1: IF N MOD 6 THEN 60
50 PRINT
60 POKE 15,160: CALL 15: CALL 816
70 GOTO 10

This should give you five letter groups of random characters
and display them on the CRT for checking your copy. Oh yes!,
the Morse routine alters the character you stuffed into the
mailbox register, so be sure to call the CRT routine before
calling the Morse routine.

Now for an apology. These subroutines were cobbled up in
a hurry to get ready for a demonstration ath the local ham club
and they lack some refinements that would really be desirable
if you intend to use them extensively. They could be implemented
in much less memory, if that were a consideration, and the
Morse routine requires a lot of hassle to change speeds. The
values given here make it run at about 14 words per minute, to
change speeds, you must alter the "load immediate" instructions
at #342, $349, $352, $359, $362, & $36A. These instructions
set up the length of a dit, an internal space between code
elements (equal to a dit, but silent), a dah, another internal
space, a space between letters, and a space between words--in
the order listed. Smaller numbers mean faster code, just
remember to keep the proportions the same.
I just spotted the odd looking sequence at $330 and $331.
I could have used simply "LDY $OE" instead of "LDA $OE, TAY".
Obviously this was done late at night.

Audible Apple Code

<br />
300      A4 16      LDY      $16<br />
302      A5 15      LDA      $15<br />
304      85 17      STA      $17<br />
306      A2 FF      LDX      #$FF<br />
308      88         DEY<br />
309      D0 05      BNE      $0310<br />
30B      80 28 CO   STA      $COZ8<br />
30E      A4 16      LDY      $16<br />
310      CA         DEX<br />
311      DO F5      BNE      $0308<br />
313      C6 17      DEC      $17<br />
315      D0 EF      BNE      $0306<br />
317      60         RTS<br />
318      A4 16      LDY      $16<br />
31A      A5 15      LDY      $15<br />
31C      85 17      STA      $17<br />
31E      A2 FF      LDX      #$FF<br />
320      88         DEY<br />
321      D0 O5      BNE      $0328<br />
323      80 28 BO   STA      $B028<br />
326      A4 16      LDY      $16<br />
328      CA         DEX<br />
329      D0 F5      BNE      $0320<br />
32B      C6 17      DEC      $17<br />
32D      D0 EF      BNE      $0318<br />
32F      60         RTS<br />
330      A5 OE      LDA      $OE<br />
332      A8         TAY<br />
333      B9 00 03   LDA      $0300,Y<br />
336      85 OE      STA      $OE<br />
338      C9 80      CMP      #$80<br />
33A      FD 26      BEQ      $0362<br />
33C      06 OE      ASL      $OE<br />
33E      F0 2A      BEQ      $036A<br />
340      80 10      BCS      $0352<br />
342      A9 20      LDA      #$20<br />
344      85 15      STA      $15<br />
346      20 03 00   JSR      $0300<br />
349      A9 20      LDA      #$20<br />
34B      85 15      STA      $15<br />
340      20 18 03   JSR      $0318<br />
350      00 EA      BNE      $033C<br />
352      A9 60      LDA      #$60<br />
354      85 15      STA      $15<br />
356      20 00 03   JSR      $0300<br />
359      A9 20      LDA      #$20<br />
35B      85 15      STA      $15<br />
35D      20 18 03   JSR      $0318<br />
360      F0 DA      BEQ      $033C<br />
362      A9 80      LDA      #$80<br />
364      85 15      STA      $15</p>
<p>366      20 18 03   JSR      $0318<br />
369      60         RTS<br />
36A      A9 40      LDA      #$40<br />
36C      85 15      STA      $15<br />
36E      20 18 03   JSR      $0318<br />
371      60         RTS</p>
<p>03A0 80 80 80 80 80 80 80 80<br />
03A8 80 80 80 80 CE 80 56 94<br />
03B0 FC 7C 3C 1C 0C 0F 84 C4<br />
03B8 E4 F4 80 80 80 80 80 32<br />
03C0 80 60 88 A8 90 40 28 D0<br />
03C8 08 20 78 B0 48 E0 A0 F0<br />
03D0 68 D8 50 10 C0 30 18 70<br />
03D8 98 B8 C8 80 80 80 80 80</p>
<p>         03D0 is 68

LOGAN

DATAPOINT CORPORATION

Joe;

Enclosed is a tape of LOGAN and NIM, along with some notes of explanation
for LOGAN. This program was written by Robert Bishop: a clever piece of
work. I have found it genuinely useful for working out logic sequences
before breadboarding or building them. Unfortunately, it does not accommodate
clocked logic. Maybe later.
NIM is one of my early efforts at writing game programs. It's amazing
how difficult it is to analyze strategy for simple games! (Note, for example,
the length of the program.) Taught me how to play NIM, though.
I thought we might trade programs, instead of me charging you $2 and you
charging me $2. The new monitor sounds good! The old one gives me problems
by inconveniently using up page zero locations. Maybe I can modify it.
Keep me notified of whatever other software you have.
This A/D described in interface works quite well, and has many applications.
Measuring shaft positions, voltages, light levels (with a CdS cell), tem-
perature, etc. are all good applications. I have a nice lunar lander using
a joystick which involves takeoff, orbit altitudes, etc. I will send it as
soon as I rewrite it (erased my only copy.)
Try this: In BASIC, type PRINT COLOR and see what you get. Or type
COLOR=100 and then PRINT COLOR. Seems to work as a variable with a mind of
its own. I don't know what it means.
Working on 16K chip problem. I can see now why the modification would
require a lot of jumpers. Every try to work with address multiplexing
Anyway, I'll document any successes and pass them along.
What kind of printer are you playing with? Where's that chess program?
Anybody try to interface a cassette operating system? Saw a photo of Jobs/
Wozniak in Mini/Micro, and industry mag.
Keep those cards and letters coming!

Harry J. Saddler

c/o Datapoint corp.

Page 1

DATAPOINT CORPORATION

LOGAN: 9LOGic ANalysis) 4A.00FF/800.FFF

LOGAN sets up, analyzes and displays results of x simulation of x digital logic
circuit. Program allows teh use of six devices:

NAND gate
AND gate
OR gate
NOR gate
XNOR gate (exclusive NOR)
TNV (inverter)

TERMS:

GATE: device, listed above
LABEL: numeric label of a gate
NODE: numeric label of an input or output of a gate
STATE: "L" or "0" logic level

PROGRAM FUNCTIONS:

-2: sets up circuit
-1: assign states (logic levels) to inputs
0: analyze circuit
1: display state of all nodes
2: display gates, their labels and their nodes

For clarity, I will go through a run on paper. This is the circuit we will
analyze:

Apple I - LOGAN circuit

Page 2

NOTE: * is a program prompt.

RUN......

*FUNCTION? -2 (set up circuit)
*OLD OR NEW? NEW (Clears memory of any old circuits, though there are none at
this point. If you want to add a gate to an existing circuit, delete one, or
change the configuration, gate type, label, whatever, type OLD, then make the
changes.)
*LABEL? 10 (Arbitrary number to label a gate, can be any number so long as
each gate has a different one.)
*GATE? NAND (Type of gate.)

*NODE? 3 (Labelling of nodes pertaining to this gate. Output is always label-
led first! This denotes it as the output. Any number can be used.)
*NODE? 1 (An input. Note that a gate can have any number of inputs, only 1 output.)
*NODE? 2 (An input.)
*NODE? 0 (Stops node labelling routine.)
*LABEL? 20
*GATE? NOR
*NODE? 4 (Output.)
*NODE? 3
*NODE? 2
*NODE? 0
*LABEL? 30
*GATE? INV (inverter)
*NODE? 5
*NODE? 2
*NODE 0
*LABEL? 40
*GATE XNOR
*NODE? 6
*NODE? 4
*NODE? 5
*NODE? 0
*LABEL? 0 (Stops specifying of circuit.)
*FUNCTION? -1 (Assign logic levels. Levels can be assigned to any or all nodes.
Normally, only circuit inputs are assigned states.)
*CLEAR? YES (Sets all nodes to logic "0". If you are checking the effect of
a state change on one input of a stable circuit, use NO. This leaves all nodes
in the previous states.)

(...next page)

Page 3

DATAPOINT CORPORATION

*NODE? 1 (A circuit input)
*STATE? 1 (logic "1".)
*NODE? 2 (Circuit Input.)
*STATE? 1 (Logic "1")
*NODE? 0 (Scope assignment of logic levels)
*FUNCTION? 0 (Analyze. Program loops until circuit is stable; prints
"ITERATION X" each loop. If it keeps on looping and looping to no end, you
have a very unstable circuit- cannot stabilize.)
*FUNCTION? 1 (Display states of all nodes in this form:

1:1 2:1 3:0 4:0 5:0 6:1
/ \
node state Node 6 is of primary interest here)

*FUNCTION? 2 (Optional; outputs circuit in this form:

10 NAND 3 1 2
20 NOR 4 3 2
30 INV 5 2
40 XNOR 6 4 5
/ | \ \__\
gate | \ \
label gate output inputs)

You can go back and change input logic levels, add, remove or change gates.(Add
gates, that is, until you memory goes over the high side.) Truth tables can be
generated easily with this program. For instance, the truth table for this cir-
cuit is:

A B X
0 | 0 | 0
0 | 1 | 1
1 | 0 | 0
1 1 1

Not too useful, but it explains.
Anyway, feel free to distribute the program and this write-up. Note credit
in line 2 of program listing.

Harry J. Saddler

c/o Datapoint Corp.

Nelson's Tic-Tac-Toe

                      TIC-TAC-TOE</p>
<p>programmed in Apple Basic<br />
by Larry Nelson<br />
December, 1977</p>
<p>1 DIM A(9)<br />
10 PRINT "          TIC-TAC-TOE"<br />
20 PRINT<br />
30 PRINT "WE NUMBER THE SQUARES LIKE THIS:"<br />
40 PRINT<br />
50 PRINT 1,2,3<br />
55 PRINT: PRINT<br />
60 PRINT 4,5,6<br />
70 PRINT 7,8,9<br />
75 PRINT<br />
80 FOR I=1 TO 9<br />
90 A(I)=0<br />
95 NEXT I<br />
97 C=0<br />
100 IF RND (2)=1 THEN 150                (flip a coin for first move)<br />
110 PRINT "I'LL GO FIRST THIS TIME"<br />
120 C=1<br />
125 A(5)=1                               (computer always takes<br />
130 PRINT                                   the center)<br />
135 GOSUB 1000<br />
140 goto 170<br />
150 print "YOU MOVE FIRST"<br />
160 PRINT<br />
170 INPUT "WHICH SPACE DO YOU WANT",B<br />
180 IF A(B)=0 THEN 195<br />
185 PRINT "ILLEGAL MOVE"<br />
190 GOTO 170<br />
195 C=C+1                                (C is the move counter)<br />
200 A(B)=1<br />
205 GOSUB 1700<br />
209 IF G=0 THEN 270                      (G is the flag signaling<br />
211 IF C=9 THEN 260                         a win)<br />
213 GOSUB 1500<br />
215 C=C+1<br />
220 GOSUB 1000<br />
230 GOSUB 1700<br />
235 IF G=0 THEN 270<br />
250 IF C < 9 THEN 170<br />
260 PRINT "TIE GAME!!!!"<br />
265 PRINT<br />
270 INPUT "PLAY GAIN (Y OR N)",A$<br />
275 IF A$="Y" THEN 80                    (No need to Dimension a string<br />
280 PRINT "SO LONG"                      with lengh of one)<br />
285 END<br />
995 REM *PRINT THE BOARD*<br />
1000 FOR J=1 TO 3<br />
1010 TAB 6<br />
1020 PRINT "*";<br />
1030 TAB 12</p>
<p>                              TIC-TAC-TOE PAGE 2</p>
<p>1040 PRINT "8"<br />
1050 FOR I=1 TO 3<br />
1060 TAB S*(I-1)+2<br />
1070 GOSUB 1200<br />
1080 TAB 6*I<br />
1090 IF I < 3 THEN PRINT "*";<br />
1100 NEXT I<br />
1110 PRINT<br />
1120 TAB 6<br />
1130 PRINT "8";<br />
1140 TAB 12<br />
1150 PRINT "*"<br />
1160 IF J < 3 THEN PRINT "*****************"<br />
1170 NEXT J<br />
1175 PRINT<br />
1180 RETURN<br />
1190 REM *MARK OCCUPIED SQUARES*<br />
1200 IF A((J-1)*3+I)=1 THEN PRINT "YOU";<br />
1210 IF A((J-1)*3+I)=-1 THEN PRINT "ME";<br />
1220 RETURN<br />
1490 REM *LOOK FOR A WINNING MOVE*<br />
1500 X=2<br />
1502 H=0<br />
1505 P=2:Q=3:R=1                        (There is probably a better<br />
1507 GOSUB 1600                         test for winning moves,<br />
1509 P=4:Q=7                            but we test each combina-<br />
1513 GOSUB 1600                         tion seperatly)<br />
1517 P=5:Q=9<br />
1519 GOSUB 1600<br />
1523 Q=8:R=2<br />
1525 GOSUB 1600<br />
1527 P=1:Q=3<br />
1529 GOSUB 1600<br />
1535 GOSUB 1600<br />
1539 P=5:Q=7<br />
1541 GOSUB 1600<br />
1545 P=6:Q=9<br />
1547 GOSUB 1600<br />
1557 P=1:Q=7<br />
1559 GOSUB 1600<br />
1563 R=6:P=9:Q=3<br />
1565 GOSUB 1600<br />
1569 P=5:Q=4<br />
1571 GOSUB 1600<br />
1575 R=7:P=1<br />
1577 GOSUB 1600<br />
1581 P=5:Q=3<br />
1583 GOSUB 2600<br />
1587 P=8:Q=9<br />
1589 GOSUB 1600<br />
1593 R=8:P=7<br />
1595 GOSUB 1600</p>
<p>                              TIC-TAC-TOE PAGE 3</p>
<p>1597 GOTO 1620<br />
1599 REM *TEST FOR TWO-IN-A-ROW*<br />
1600 IF A(P)+A(Q)#X THEN RETURN<br />
1605 IF A(R)=0 THEN H=R<br />
1610 RETURN<br />
1620 P=2:Q=5<br />
1622 GOSUB 1600<br />
1626 R=9:P=1<br />
1628 GOSUB 1600<br />
1632 P=3:Q=6<br />
1634 GOSUB 1600<br />
1638 P=7:Q=8<br />
1640 GOSUB 1600<br />
1642 IF X=-2 THEN 1670<br />
1644 X=-2<br />
1646 GOTO 1505                           (Now we Try To Block any<br />
1650 IF H#0 THEN 1670                     Wins Coming Up)<br />
1652 FOR I=2 TO 8 STEP 2<br />
1654 IF A(I)#0 THEN 1666<br />
1656 H=I<br />
1666 NEXT I<br />
1669 IF A(5)=0 THEN H=5                  (The computer moves!)<br />
1670 IF C#3 THEN 1677<br />
1675 IF A=A(9)=2 THEN H=2                (And blocks the trap on the<br />
1676 IF A(3)+A(9)=2 THEN H=6             third move of the game)<br />
1677 A(H)=-1<br />
1679 RETURN<br />
1690 REM *TEST FOR A WIN*<br />
1700 G=0<br />
1705 FOR I=1 TO 7 STEP 3                 (Horizontal)<br />
1710 D=J<br />
1720 E=I+1<br />
1730 F=I+2<br />
1740 GOSUB 1800<br />
1750 NEXT I<br />
1760 FOR I=1 TO 3                        (Vertical)<br />
1760 D=I<br />
1765 E=I+3<br />
1770 F=I+6<br />
1775 GOSUB 1800<br />
1780 NEXT I<br />
1782 D=1                                 (And Diagonal)<br />
1784 E=5<br />
1786 GOSUB 1800<br />
1788 D=3<br />
1790 F=7<br />
1792 GOSUB 1800<br />
1796 GOTO 1900                 (Oops! Not enough allowed space again)<br />
1800 IF ABS (A(D)+A(E)+A(F))#3 THEN RETURN<br />
1810 G= SGN (A(D)+A(E)+A(F))<br />
1820 RETURN<br />
1900 PRINT<br />
1910 IF G=-1 THEN PRINT "I WIN  !!!"<br />
1915 PRINT                         (No losing message, since computer<br />
1920 RETURN                           can't lose!)

Reverse

The rules for REVERSE

The object of REVERSE is to play a list of the digits from 1 to 9 which
are in random order into order from 1 to 9 in as few moves as possible.

Each move consists of reversing from 2 to 9 digits starting from the leftmost
digit and working toward the rightmost digit. For example if you had the
following list 8 2 3 7 9 5 4 61 and reverse 4 it would then become
7 3 2 8 9 5 4 6 1. If you then reversed 7, the list would become
4 5 9 8 2 3 7 6 1.

In the program, the numbers are printed this way:

1 2 3 4 5 6 7 8 9
-----------------
(4 5 9 8 3 3 7 6 1)
-----------------

The top numbers are to help you decide how many to reverse. The bottom numbers
are the list that you are trying to get in order.

Source Code

>LIST
100 PRINT "R E V E R S E": PRINT

110 DIM A(9), B(9)
115 T=0
120 FOR I=1 TO 9: A(I)=0 : NEXT
I
130 FOR I= 1 TO 9
140 J= RND (20) +1
150 IF J>9 THEN 140
160 IF A(J)#0 THEN 140
170 A(J) =I
180 NEXT I
190 PRINT " 1 2 3 4 5 6 7 8 9"
: PRINT " -----------------"
191 PRINT "("):: FOR I=1 TO 9: PRINT
A(I):: IF I<9 THEN PRINT " "
:: NEXT I
192 PRINT ")": PRINT"------------
------"
193 PRINT
200 INPUT "HOW MANY SHALL I REVERSE
",N
210 IF N<=9 THEN 230
220 PRINT "OOPS! TOO MANY- I CAN REV
ERSE AT MOST 9": GOTO 200
230 IF N>1 THEN 250
240 PRINT "OOPS ! TOO SMALL; YOU MUS
T REVERSE SOMETHING!"
241 GOTO 200
250 T=T+1
260 FOR I=1 TO 9: B(I)=A(I): NEXT
I
270 FOR I=1 TO N:J=N+1-I: A(J)=
B(I): NEXT I
280 I=0
290 I=I+1
300 IF A(I) > A(I+1) THEN 190
310 IF I < 8 THEN 290
320 PRINT "YOU WON IN ";T;" MOVES"
330 END

R E V E R S E

1 2 3 4 5 6 7 8 9
-----------------
(4 3 9 5 8 6 2 7 1)
-----------------
HOW MANY SHALL I REVERSE?3
1 2 3 4 5 6 7 8 9
-----------------
(9 3 4 5 8 6 2 7 1)
-----------------
HOW MANY SHALL I REVERSE?9

1 2 3 4 5 6 7 8 9
-----------------
(1 7 2 6 8 5 4 3 9)
-----------------

HOW MANY SHALL I REVERSE?1

OOPS! TOO SMALL: YOU MUST REVERSE SOMETHI
NG!
HOW MANY SHALL I REVERSE?2

1 2 3 4 5 6 7 8 9
-----------------
(7 1 2 6 8 5 4 3 9)
-----------------

HOW MANY SHALL I REVERSE?4
1 2 3 4 5 6 7 8 9
-----------------
(6 2 1 7 8 5 4 3 9)
-----------------

HOW MANY SHALL I REVERSE?3

1 2 3 4 5 6 7 8 9
-----------------
(1 2 6 7 8 5 4 3 9)
-----------------
HOW MANY SHALL I REVERSE?5
1 2 3 4 5 6 7 8 9
-----------------
(8 7 6 2 1 5 4 3 9)
-----------------
HOW MANY SHALL I REVERSE?8
1 2 3 4 5 6 7 8 9
-----------------
(3 4 5 1 2 6 7 8 9)
-----------------
HOW MANY SHALL I REVERSE?3
1 2 3 4 5 6 7 8 9
-----------------
(5 4 3 1 2 6 7 8 9)
-----------------
HOW MANY SHALL I REVERSE?5

1 2 3 4 5 6 7 8 9
-----------------
(2 1 3 4 5 6 7 8 9)
-----------------

HOW MANY SHALL I REVERSE?2

YOU WON IN 10 MOVES

Letters

Letter from Craig Solomonson

Craig was a computer collector of types who was considering writing a book about the Apple 1. That's why he wrote to Edmond to find out more on the Apple 1 and to the Woz.


Joe,

Nice to hear from you. Sounds like you have been
doing some house cleaning! Glad to hear that
you found the case, box, and keyboard for the
Apple 1. I would be interested in any of those
items. Let me know what you need for those items.
I wouldn't need the cassette interface, but I'll pass
the info on if anyone inquires about one.

I don't have any of the cards you are looking for,
but I do have a spare Disk ][ interface card (handy
spare or to expand to a 4 drive system) and also a set of
chips for the disk drive. I also have a copy of
Apple Logo with manuals in the box that has never been
opened. It's a nice starter language for kids. I think
it retails for about $150. If any of these items are
of interest, let me know. I also have probably
10-15 new diskettes full of assorted educational programs.

I wrote to Robert Edmonds. His wife wrote back and
said he had died a few years ago and she threw
away all his old papers, computer stuff, etc. Also got
a letter from Steve Wozniak about the Apple 1. He said
they built 200 of them and only a couple actually
got traded in on Apple ]['s. Incidently, Apple did not
serial number the boards... the Byte Shop put those
on the ones they bought from the Steves (about 100
boards).

I haven't tried the Apple 1 out yet. Still
looking for the other transformer and the
right keyboard. Couple guys here at work have
said they would hook it up. Maybe will get
that done soon if we work someting out on
the keyboard.

Well, that's about all for right now. Thanks
for writing and hope all is going well.

Sincerely,
Craig Solomonson
1760 2nd Avenue N.W.
Cambridge, MN 55008

P.S. How's the Apple II+ working? Fine, I hope.
I really like my new IIe except
the new Unidrives worry me. They
sound cheap!

Letter from Stan Veit

This letter is from Stan Veit, former owner of The Computer Mart of New York, the third person Steve Jobs sold an Apple 1 to, and Apple's third dealer. It was sent to Joe Torzewski of the Apple One Owners Club.


STANLEY S. VEIT19 WEST 34 ST.NEW YORK,N.Y.10001

MAY 23,1981
APPLE ONE LIBRARYJOE TORZEWSKI51625 CHESTNUT ROADGRANGER, IN 46530

Dear Joe:

Strange you should mention it, but I will certainly talk about the Apple One. I knew that someone out there might be working with them, but I didn't know there was such a library. I will be happy to use my column to bring it to everyone's attention.

In April of 1976, I received a phone call at The Computer Mart of New York which I ran. It was from a young man in who had just developed a single-board computer using the 6502. He wanted me to become his dealer on the east coast and because he was so enthusiastic about his machine, I bought it. In a short time UPS dropped off a package containing the Apple 1. It didn't work. So I got on the phone and called Los Gatos and talked to Steve (for both the young men involved were called Steve). They sent me another one and a keyboard, plus the little cassette board they had just built. This time it worked like a charm. There was a monitor, a Game of Life program and that's it. No BASIC yet. Still I enjoyed my Apple One and I built it into an attache case. About that time the New York Chapter of the ACM had a meeting at which they invited several microcomputer vendors to show their wares to the collected group of big-computer people. My wife and I attended the meeting with my little case and a 9-inch monitor. The Altair people were there with a whole rack of equipment, the Computer Corner of Westchester showed an IMSAI with a terminal and a ASR-33 Teletype. When they saw me with no big load of equipment they were disappointed, but when I set up the Apple One and ran LIFE, I was the hit of the evening. Here was a true personal computer.

That summer was the first Atlantic City Personal Computer Festival the first big computer show. I had two booths. Before it opened I went to Emeryville Ca. to a meeting at Processor Technology. While there I met the two Steves, Jobs,and Wozniack ,they offered me a piece of the Apple Computer Co for $10,000. I had all my money invested in the Computer Mart of New York so I had to refuse. That 10K would have returned millions! Anyway, I invited them to join me in my booth at the show for free. They said they would be glad to come if they could rase the fare to Atlantic City. Well they borrowed the money and came. They had promised me to bring BASIC with them and it was not finished, but they had the prototype of Apple II and they wanted to dump Apple One right then and there. I convinced them that they would have zero creditability if they didn't finish BASIC and support the

model 1 while they developed the model 2.

The upshot of all this was they finished BASIC in the hotel during the show, they were a big hit and Apple was on its way. As for me, I sold all my Apple One's (including my own), didn't get Apple II for over a year, by which time all was forgotten. What had I done for them lately!

Of course Steve Jobs still says "hello" to me when we meet, as we did two weeks ago at the NCC, but the Apple Computer wouldn't give me the right time.

Hang on to your Apple One, it's history and my be worth something some day, besides being a great board. Thanks for writing to me.

Stan Veit

Letters from Larry Nelson

Dec. 19, 1977

Larry F. Nelson
2620 South Washington Street
Marion, Indiana 46952
December 19, 1977

Joe Torzewski
Apple I Owners Club
51625 Chestnut Road
Granger, IN 46530

Dear Joe:

Thanks for the very interesting telephone conversation Sunday.
Since I purchased my Apple I in June of this year, I have
had very little contact with other computer hobbyists. The
nearest Computer Club is 60 miles from here, and to the best
of my knowledge there are no other hobbyists in this area.
So any contact I can make with other computer nuts will be
a big improvement.

My interests are mainly in programming and hardware at this time.
I am convinced that the 6502 CPU is a powerful processor that
I only partially appreciate, since I am ignorant of its full
capabilities. I have spent most of the last six months trying
basic programs and dabbling in some machine-language instruc-
tions, and am willing to share what information I have gained
with everyone in order to improve my own system.

I am enclosing a listing of a Tic-tac-toe game that I developed
to run in the Apple I. Also, I am sending you an article for
a newsletter that I wrote last night. Use these as you wish,
and if you would rather have tapes than listings, let me know.
I have several games I have developed to run in my Apple I that
I'll let you have.

If you have any programs, tapes, listings or information on
the Apple I, I want it! Let me know how much money, what you
have, what you need, etc., and I will send a money order back.

Be sure to let me know if I can help get this Owners Club off
the ground. I'll be glad to type articles (although my typing
leaves much to be desired), make mailings, or do the printing
(I have a spirit duplicator) if needed.

Seasons greetings to you and your family. I'll look forward to
hearing from you.

Yours truly,

Larry F. Nelson

Mar. 17, 1980

"Note some of the commands and such are for Apple II basic but they were in Apple 1's basic. You could type in the command and the basic would not give you an error, it would just sit there. So we both thought that Apple, the Steves, were thinking about the Apple 2 when they were trying to do the Basic for the Apple 1."


Larry Nelson
514 S. Adams
Marion, In 46952
March 17, 1980
Dear Joe,
Sorry I haven't written lately. Last
week I went to Florida on a short vacation.
Before that I was working on BASIC.
I've broken a lot of the code and am working
on cleaning out a lot of trash. It looks like
they threw this thing together to get a computer
on the market fast. Probably other used bits
and pieces from other listings, since there
are several places with bad listings. Also found
USR, RNDX, and OFF statements on commands in
there. USR and RNDX don't work, but OFF
turns off the auto-line #. (Try it by typing Auto10(r).
then type "escape", then OFF(r)).
We have COLOR=, PLOT, HLIN, too. It adds \
up to 120 bytes in there + several commands that
we can't use.
Now, if I can decipher how the ASCII is
coded for each command, I'll have it made! Then
I'll be able to pull out those unused commands and
replace them with something useful.

I haven't even looked at those memories
since I gave up. Maybe I'll get back to them
one of these days.

That Space War Program sounds great! I
hope you're not having too many bugs to finish
it.
Any time you want to see how much memory
you have left, exit BASIC, and type:
CA,CD (r)
computer echos CA: 3A 21 00 05
means program is stored from 213AH to top of memory
and variables are stored from 0500H to bottom of memory.
The space still empty is between 0500H to 213AH
or 1D3AH bytes = 748210 !! (Remember, variables
are called when the program runs, so allow 6
bytes for each variable in the program, where typing in the
program.)
Guess that's all for now. Write when
you can.
Larry

Jan. 3, 1981

"In this letter you will see that we talked about putting the Apple 1 in EPROM and the spaces in basic and if we could and how to use them."


Larry Nelson
514 S. Adams
Marion, In 46952
Jan 3, 1981
Dear Joe,
They say "Three is a charm" and this is the
third time I've started a letter to you, so maybe
I'll get to finish it this time.
Still no keyboard. Met a fellow who
says he has a spare he'll let me have, but
he hasn't come through yet.
The INKEY function could be put in
code. The problem is that I've used some of
BASIC empty spots, and now I'm not sure
which places I've filled (HIMEM=and LOMEM=
changes, and that routine to randomize).
I goofed and didn't save a hard copy of
the changes. (I make up for my stupidity with
ineptness!)
In the original Apple BASIC, there are
several areas we could put "fixes":
E61C thru E622 = 710 Bytes
E98D " E997 = 1110 Bytes
EE3E " EE67 = 3710 Bytes (PLOT, COLOR=, OFF commands)
EEA6 thru EECA = 3710 Bytes (HLIN, COLOR, Value of HIMEM and
LOMEM
(don't work)
plus another 34 bytes strung over the 4K program in
banks of 6 or less.

Apple BASIC does not modify itself, so
it is ROMable. Programs would rut at the same
speed, since the APPLE cycle time is about 980 NS,
since it uses a clock of 1.023 MHz. Dynamic
roms need a refresh cycyle crowded into the clock
once ina while, which probably explains why
they have to be faster on access.
Until I get the Apple up, I can't do
much on Adventure game, except work out
arrays, flow charts, etc. Called A-BOMB.
A berserk ambassador has armed an atomic
bomb in his embassy. Your assignment, if you
accept it, is to search the building, find and
disarm the bomb before it blows the city
(and you) off the map. It'll be written in BASIC,
with a lot of the data accessed via PEEK and
POKE. Conserves memory and keeps hackers from
listing the traps, lagards, and solutions. I'll have
60 to 70 verbs and nouns (should be a sizeable
vocabulary). Random outcome of the game will
prevent you from winning one time and "Breaking
the code". I've played some of these games that have
only one solution. Once you win, you can always
win, and there's no thrill in playing it again.
I have no idea how much memory I'll need,
but I guess I'll find that out when I start writing
it.
Better get this in the mail, now.

Larry

Feb. 7, 1981

"This letter talks about the Inkey command and aabout cursor control for the Apple 1 computer. Also the statement is made that they was preparing for the Apple II back in 1976 the way the software, Basic looked."


Feb 7, 1981
Dear Joe,
Boy, I'll be glad when winter is over. It
seems like it lasts forever, only more.
MURPHY'S LAW strikes again!! That
program I sent you has an error at 0311 -
change F8 to F5. You couldn't trace it
because TRACE hangs up waiting for the PIA
to clear, and loops endlessly, but it (the program) should
work correctly. (unless more gremlins got into
it.)
INKEY IS SURE O.K.! (Hint, change
20H (JSR) to 4CH(JMP) at E86F, EE43, EE57
and EE5C. JMP is faster than JSR and doesn't
push the return address on the stack. I don't
know if it would happen, but the stack could
overflow on a large BASIC program and wipe
out the game.)
You asked about curosr control - - -
(Print AT, etc.) JOBS, WOZNIAK and COMPANY
made the Apple I with NO way to control
the cursor. That's the biggest difference between
Apple I and Apple II. They used dynamic
shift registers (1K storage - 2504's) to hold
the characters for display, giving us a first-in-
first-out stock in hardware. No way to
change a character, blank or move the cursor,
clear the screen, or add clusters except at

the end of the list. Some BASIC commands of
ours change the vertical cursor pointer, etc.
but since the video isn't in RAM, nothing
happens. (They were preparing for Apple II
back in '76). Our advantage, of course, is
another Kilobyte of RAM free for our use,
plus less overhead in our MONITOR.

Still no keyboard. I can't see paying
80 to 200 bucks at this time for a keyboard
when 16K of RAM is $29. Well, maybe something
will turn up, - I'll let you know when I'm up
and running again.

Oops! I've missed the mailman. -
I'd better get this letter in an envelope or
you'll never get it. - Write when you can.

CV
Larry

Apr. 8, 1981

Larry Nelson
514 S. Adams
Marion, In 46952
April 8, 1981
Dear Joe,
Boy, It's good to have the apple up and
running! - Now if I can only get away from
that "Attack on the Death Star" program, I
might get something serious started. - It's a
great game!! Congratulations.
(You asked about standardizing INKEY at $0A -
since we are writing the standards, let's do it -
no problems that I can see.)
I have checked your monitor listing and
can only find 1 error - Change AF8D from
$0E to $AE (same as AE4F from $0D to $AD,
which you had correctly marked.)

The NEW BASIC is almost ready!
I've re-written the whole thing, added INKEY,
(10 A=INKEY : If A=176 THEN...)(Automatically clears $0A)
MEM, (Type MEM (CR), computer prints
free memory left in program), the rnadom generator
straightened up HIMEM, LOMEM, HIMEM=,
LOMEM-, end removed that irritating "***ENDERR"
message that isn't needed.
Two empty spaces are left, 4Z10 bytes and
5010 bytes. - Got any idea for a couple of

short commands? (not enough space for RENUMBER or
VARLIST, but maybe ASC() or CHR$().)
examples: 100 IF ASC(A$) = "175" THEN GOSUB...
120 PRINT CHR$(162);

The new basic works with all our present
programs. All I've done is cleaned out the trash,
made some fixes, etc, and rearranged to save
time and space on execution. The ADE program
editor was perfect for the job --
Which reminds me, "backspace" in the EDITOR
is defined as $08 at $EE15. -- change it to
whatever your characer is with Bit8 set to 0. -
To change memory limits, see the instruction
changes I sent you.

My ADVENTIURE-type game is still in the
planning stage. - Hope to get some of it into the
APPLE soon. I'll try to keep you informed
on what's happening here.

CV
Larry

Letters from Professor Schawlow

Jan. 3, 1977

The date on this letter is incorrect. It was actually written in 1978, not 1977.


Stanford University
DEPARTMENT OF PHYSICS

Jan. 3, 1977
Mr. J. Torzewski
51625 Chestnut Road
Granger, IN 46530

Dear Mr. Torzewski:

I am glad to see, from the December issue of Interface Age, that you
are collecting Apple I programs. After more than a year of struggling with
the Apple I, I have pretty much put it aside since I have been able to get
the use of computers with better hardware and software support (Cromemco Z1
and now an Apple II). But I did write some programs for it, which are
enclosed with this letter.

The enclosed cassette has two tracks of programs: A, starting at 0
on my tape counter, and B which starts at 10. A contains
A1 (280-7FF) Program to display large characters
A2 (800-FFF) Extended monitor (apparently a design study for the
Apple II)
B contains
B1 (700-71C) Porgram to display ASCII HEX equivalents o f any
keyboard character
B2 (750-776) Program to display ASCII HEX equivalents of all
printing characters
B3 (7C0-7FF) Improved search subroutine for disassembler (like the
one I published in the October issue of Interface Age, except that it prints
only two lines of disassembled code)
B4 (700-9FF) Disassembler (as published in Dr. Dobb's Journal and
Interface Age)
B5 (A00-BFF) Primitive, line oriented text editor

I had expanded the Apple I memory to 20K and have a 16K Star Trek
and a floating point calculator program. However, I have taken out the 16K
chips and put them in the Apple II and so can no longer run these. If you
want, I can make copie on the Apple II, but I cannot test them.

It will be interesting to hear what programs you find. I would also
be interested in any information on how to interface the Apple I. I do have
an SWTP printer connected to it, but that is all.

Yous sincerely,

Arthur L. Schawlow
Professor

Jan. 23, 1977

Standford University
DEPARTMENT OF PHYSICS

Jan. 23, 1977
Mr. J. Torzewski
51625 Chestnut Road
Granger, IN 46530

Dear Mr. Torzewski:

I can give only partial answers to your questions, and it has taken me
some time to assemble this much information. We did not make the conversion to
16K memory chips. That was done by Steve Jobs of Apple Computer, and he did not
give us any documentation. Therefore, I have taken photos of the board to show
the connections, and these are enclosed.

In the breadboard area, there are five sockets. One of them (slides 13
and 15: at the left if breadboard area is at the top) is a socket for the flat
cable connecting to the SWTP printer. The next small socket and the large one
were for a project that was never completed, and so have no function. The two
on the right, labelled 74153 and 74139, are for integrated circuits with those
part numbers and are used in the 16K chips conversion. The connections to these
sockets are the light green wires shown in slides 17 and 19. Note that two
traces on the underside of the board have been cut for the 16K conversion. They
have been bridged by the red wires shown in the photograph. Also, the X-0
solder bridge in the chip select area must be cut. (The red wires in that area
were for another unfinished project and serve no useful function). Pin 14 of
integrated circuit 74S257 at location B-8 was bent so that it did not go into
the socket. If you have questions about the photograph and can't see where a
particular wire goes, we can look again at our board, but this is about all we
know.

Steve Jobs published an article describing how to interface to an STWP
printer, in the October 1976 issue of Interface Age. A copy of that article is
enclosed. We followed it, and the corresponding connections are the yellowish
green and red-white wires shown in slide 17. There is a switch to permit the
computer to output characters to the TV display when the printer is not in use.
It is indicated in Jobs' article and is mounted on the comptuer hoiusing so that
it is not visible in these photos.

I am enclosing a handwritten sheet listing some of the commands of the
extended monitor, a copy of the commands of the Apple II monitor, and a
disassembler listing of the extended monitor. Frankly, I believe that the
extended monitor was juast a design study for the Apple II, and it is not much use
for the Apple I especially if you have only 8K memory.

I hope to hear something of what you have been learning before too long.
Would it be worthwhile for you to start a newsletter and sell subscriptions?

Yous sincerely,

Arthur L. Schawlow
Professor

Sep. 17, 1978

Stanford University. Stanford. California 94303

ARTHEUR L. SCHAWLOW
J.G. Jackson - C.J. Wood
Professor of Phyiscs
(415) 407-4358

September 14, 1978

Mr. J. Torzewski
51625 Chestnut Road
Granger, IN 46530

Dear Mr. Torzewski:

Since you want it, and since nobody else has the
information, we will work out instructions for expanding
the memory of the Apple I. To start, I have ordered
duplicates of the slides, and should get them in a week
or so. We will then set out to expand the memroy again
and will note what we do as we do it. If all goes well,
we will have something to send you in a couple of weeks.

Our Apple I belongs to the University and it is
impractical to sell it now. There would be a lot of red
tape, and I would have no say as to who they sell it to.
So it seems best to keep it and make some limited use
of it.

Yous sincerely,

Arthur L. Schawlow

ALS:jf

Oct. 30, 1978

ARTHEUR L. SCHAWLOW
J.G. Jackson - C.J. Wood
Professor of Phyiscs
(415) 407-4358

October 30, 1978

Mr. J. Torzewski
51625 Chestnut Road
Granger, IN 46530

Dear Mr. Torzewski:

I am enclosing the instructions for converting an Apple I
to 20K memory. I am still not convinced that it is worth the
trouble, but it does work. We reconverted ours to check the
instructions.

I really don't know whether the speed of the memory chips
is critical. I don't know anything about the chips we have
used, and they may have been fast ones made surplus for some
other reason, but we did not pay a premium for speed. Still,
bad chips can be very troublesome, and so you should try to
get good ones if you can.

Do you have any information about input and output port
circuits for the Apple I? Even with the primitive BASIC, it
could make a useful controller if it could be interfaced with
transducers or relays.

I will be interested to hear how you make out if you do
try the memory conversion.

Yous sincerely,

Arthur L. Schawlow

Jul. 19, 1980

ARTHEUR L. SCHAWLOW
J.G. Jackson - C.J. Wood
Professor of Phyiscs
(415) 407-4358

July 10, 1980

Mr. J. Torzewski
51625 Chestnut Road
Granger, IN 46530

Dear Mr. Torzewski:

After I received your letter of January 26, 1979, I made a
number of attempts to copy the Apple I version of Star Trek for you,
but did not succeed. The recorder may have been defective, or it may
have been the tape.

Subsequently, some months ago, I ran across the enclosed tape in
the clearance sale pile at a local computer store. It is a copy of
Star Trek for the Apple I. But before I could get around to trying
it out, the students using our Apple I burned out something vital in
it, and so that computer no longer works. Apple won't repair it, and
I haven't found anyone else to do it yet. So, this tape is untested
and may be damaged, blank or otherwise useless. Whatever it is, you
can keep it. If you are still using the Apple I, you can try the
tape or throw it away as you wish.

Yous sincerely,

Arthur L. Schawlow

ALS:fj
Enclosure
(Dictated by Professor Schawlow;
signed in his absence by - fj.)

Letters from Richard Drennan

Feb. 2, 1978

Richard Drennan
4590 Oberlin Avenue
Leraine, Ohio
February 2, 1978

Dear Joe,
Before I go any further, I'd like to appoligize for my typing.
I'm a good programer, but a bad typist and a worse speller. Also,
my rickety old typewritter has seen better days.

I'd have written sooner, but a. combinitation of bad weather
and lots of things going on at work has kept me busy.

First a bit of information I've discovered. When you load
BASIC from a cassette, LOMEM is initalized to 2048. On my APPLE I
this leaves a large block of memory unused. I found that after
loading BASIC I can set LOMEM equal to 768 and BASIC functions
fine. Doing this almost doubles available memory into which you
can store a BASIC program. Some of my programs will only go into
my memory if I use this technique.

I have over 50 programs (all games) for my APPLE I. I'm sending
you a list of the games I have. I would be happy to send you a
source list of all my programs, but the hard part is typing up
instructions on how to play the games, which is necessary because
all my programs are poorly documented. (REM statements use up
memory).

I have got my printer partialy running, but it has the bad habit
of printing the first character of the next line an the previous
line. This doesn't bother source listings so long As the statement
numbers are less than 10000 because the first character of every
line is then blank. It does, however, make program. runs hard to
read.

I am sending you two programs ,which I particularly like. I
tried to do a decent job of explaning them in a sheet attached to
each source list. I hope you like them.

I have not yet gotten my graphics to run mostly because I have
not yet gotten my printer to run to my satisfaction, and have been
spending most of my time on the printer. When I get them to run
I'll send you details.

That is about it. I hope what I'm sending you will help you.

Sincerely,

Richard Drennan

Feb. 2, 1978

Richard Drennan
4590 Oberlin Avenue
Leraine, Ohio
February 2, 1978

Dear Joe,
Before I go any further, I'd like to appoligize for my typing.
I'm a good programer, but a bad typist and a worse speller. Also,
my rickety old typewritter has seen better days.

I'd have written sooner, but a. combinitation of bad weather
and lots of things going on at work has kept me busy.

First a bit of information I've discovered. When you load
BASIC from a cassette, LOMEM is initalized to 2048. On my APPLE I
this leaves a large block of memory unused. I found that after
loading BASIC I can set LOMEM equal to 768 and BASIC functions
fine. Doing this almost doubles available memory into which you
can store a BASIC program. Some of my programs will only go into
my memory if I use this technique.

I have over 50 programs (all games) for my APPLE I. I'm sending
you a list of the games I have. I would be happy to send you a
source list of all my programs, but the hard part is typing up
instructions on how to play the games, which is necessary because
all my programs are poorly documented. (REM statements use up
memory).

I have got my printer partialy running, but it has the bad habit
of printing the first character of the next line an the previous
line. This doesn't bother source listings so long As the statement
numbers are less than 10000 because the first character of every
line is then blank. It does, however, make program. runs hard to
read.

I am sending you two programs ,which I particularly like. I
tried to do a decent job of explaning them in a sheet attached to
each source list. I hope you like them.

I have not yet gotten my graphics to run mostly because I have
not yet gotten my printer to run to my satisfaction, and have been
spending most of my time on the printer. When I get them to run
I'll send you details.

That is about it. I hope what I'm sending you will help you.

Sincerely,

Richard Drennan

May 5, 1979

Richard Drennan
4590 Oberlin Avenue
Lorain, Ohio
May 5, 1979

Dear Joe,

Well once again I have to apologize for not writing sooner. I'll try to shape up.

I noticed that your letters are post marked South Band. How far is Granger from South
Band, and in what direction? What post mark is on my letters? Lorain is, by the way,
about 25 miles west of Cleveland on beautiful (??) Lake Erie. Lorain is supposed to be the
10th largest city in Ohio, but I doubt that any non-residents have ever heard of it.

Well, on to more prosaic things. Did you ever get your 2519 chip? If so, where?
I can't seem to find anyone who sells them. I sure hope my 2519 remains O.K.

My 16K runs fine. If you have some old programs that you would like to convert for 16K
try this:
1) Load your program at 4A.0DFFR3800.3FFFR
2) while still in the monitor enter the following:
a) 4A:00 10 FF 3F (return)
b) CD (return)
This should display the contents of address 00CD. For example,the comptuer
might respond with 00CD:09
c) Next, you must add 30 to the contents of CD. If 09 was in CD as in the
above example, then 30 + 09 = 39.
d) 3D:@@ where '@@' is the number found in c). It would be 39 in the above
example so you would enter 3D:39 (return)
e) E2B3R (return)
3) You should now be in BASIC. Try listing the program. If ic lists O.K., then
RUN the program. THIS IS VERY IMPORTANT, because running the program will not
only tell you if the program is going to function, but it sets up pointers
that were not changed by the above procedure. DO NOT store the program
or GOTO the program until you have run it at least once.
4) Press reset
5) To store the program type 4A.00FFW1000.3FFFW This will take quite a while to
complete since you are now storing 12K instead of 2K, and will also require
almost 6 time as much tape
6) To read the program back, type 4A.00FFR1000.3FFFR
The advantage to moving your programs in this way is that you don't have to re-enter them
if you want to expand them from the old 2K, and you can load the Extended Monitor and
run BASIC programs without clabbering the Extended Monitor. To use the same addresses for
a new program that you are entering, try the following:
1) Enter BASIC
2) Type in the following:
a) HIMEM=16384 (return)
b) LOMEM=4096 (return)
any program that was in memory will be lost, and any new program entered will be stored in
the same addresses as the instructions above.

I know a little about machine language, but doubt that I would soon be able to find the
time to try to convert the FOCAL program for the APPLE I. I wouldn't mind, however,
having FOCAL on my APPLE II. If you send me details on how I might get it, I'll buy it
and get running on my APPLE I, then if I find the time, I'll try to get it running on the
APPLE I.

I didn't send a cassette because the extended monitor seems to allow you pass
programs between the APPLE I and the APPLE II Should have told you earlier, but I guess
I got to lazy to write.

Still don't know whats wrong with my cassette interface, but think the problem is probally
in the read circuitry, because programs written by the APPLE I Extended Monitor will read
fine on the APPLE II, but the same program will not read on the APPLE I. The strange thing
is that all my old tapes (before I started having troubles) will read o.k. I'm getting
frustrated enough to replace all the parts on the whole interface (excepth the ROM's) to
see if that will help.

I have printed out all my APPLE I programs. I will send you a copy of them if you want.
I don't have an explanation for them, however, an you would have to figure out how to play them
yourself.

That's it, I guess. The weather out here is lousy also, but you get use to that when you live
on the shores of beautiful (ugh) Lake Erie.

Sincerely,

Rich Drennan

Drennan's software list

Richard Drennan's game programs in BASIC

1 Stock Market
2 Master Mind
3 Black Jack
4 Moon Lander
5 The Coffee Game
6 Craps
7 Poker Dice
8 Hurkle
9 Trap
10 Reverse
11 Amaze
12 Klingon Attack
13 Survive
14 Tower of Honoi
15 Clue
16 Wheel of Fortune
17 Horse Race
18 Hamurabi
19 Balance of Terror
20 Golf
21 Russian Roulete
22 Life (#1 & #2)
23 Probe
24 Square Mile
25 Slot Machine
26 Roulette
27 Kamikaze
28 Bowling
29 Sailboat Races
30 Racks
31 Pyramids
32 Chuck-a-Luck
33 Fare
34 Klingon Capture
35 Horta
36 Rotate
37 Across the field
38 Code name: sector
39 Othello
40 Press ups
41 Computer Rage
42 Shogun
43 Battleship
44 Swahili
45 Trouble
46 Dungeon Dice
47 Payday
48 Gambler
49 Yahtzee
50 Business Strategy
51 Star Trek (small version from APPLE)

Postcard from Woz

The best way to get an answer from Apple in the early days (and sometimes still) was to include a self-addressed post card with your letter. Joe used this method in 1977 when he inquired about floating point BASIC for the Apple 1. He recieved the following reply, from Steve Wozniak himself:

Apple I - Woz postcard 1

Apple I - Woz postcard 2

SCCS INTERFACE

The hobbyists magazines of the 1970's had spots where they would tell about newsletters, clubs, etc. for free. This one was for the Apple 1 Library. It was published in 1977.


Dear Joe,

I got your note and will run it in the next SCCS Interface. Would you mind if I were to list you as Apple I coordinator?

If it is okay, drop me a line and enclose a short biography like those on page 20 of the August issue.

Are you going to have any sort of newsletter? Robert Tripp is starting a 6502 N.L., perhaps you can assist.
Larry PressSCCS InterfaceBox 5429Santa Monica, CA 90405

P.S. How about Apple II?

The Apple I in Europe

APPLE COMPUTER COMPANY
770 Welch Rd. Suite 154
Palo Alto, CA 94304
(415) 326-4248

Mr. Peter Vizenetz,

Enclosed is the Apple Computer, Cassette Interface, and additional 4K of memory which you have ordered. I can ship the additional unit the last week of September.

Also included are tapes of the Apple Dis-assembler, and two games, Lunar Lander and Mastermind. These may prove very attractive at the European show. Load the tapes as follows:

BASIC

load E000.EFF run at E000 . Basic now has full strings.

Dis-assembler

load 800.9FF run at 9F0 . Deposit the starting locations in memory locations 44,45 (backwards, ie 44: 00 08 will dis-assemble the next twenty locations starting at location 800. Typing 'R' will dis-assemble the next twenty locations, etc.)

Lunar Lander

load 300.A00 run at 300. This is a good game.

Mastermind

load 300.3FF run at 300 . Try to guess a 5 digit number, digits 0-7 . "+" means right number in right location, "-" means right number in wrong location (you don't know which number).

If you have any questions or comments, please call.

I look forward to selling many Apple systems in Europe.

Respectfully yours,

Steven Jobs