Archive for the ‘Apple II’ Category

The Great American Prob. Machine

Thursday, January 14th, 2016

A few days ago, I was searching through my small personal archive of Apple II floppy disk images, looking for an Apple II clone of Colosal Cave. As fate would have it, among those images, I ran across a program called “THEGREATAMERICANPROB.MACHINE”. Vaguely recalling it being a fun program from the “old” days, I started up an Apple II emulator, loaded the DSK image and ran the program. Here is a screen capture



and a movie of the program in action.


Just as I sort of remembered, it was a pretty cute Apple II low res color graphic animation. However, when the credits rolled, I discovered something totally unexpected. It was written by none other than Bruce Tognazzini. Tog, as he is now known, is now a respected authority on user interface design.

Having had a brief email interaction with Tog a few years ago, and knowing he was quite approachable, I decided to send him a message. I let him know that this old work wasn’t forgotten. I figured that he would appreciate that. The response I recieved, had some quite unexpected news. Here is Tog’s reply.

Thanks. It was when Steve Jobs saw that program that he decided to hire me. It was the first ever full-screen animation done on the Apple II.

I sent him another message thanking him for his reply and asking him if he minded if I shared it on my blog. He responded with more details about how “THEGREATAMERICANPROBMACHINE” helped get him hired at Apple.

Not a problem. Specifically, I took a piece of code I’d written that added a new command to Integer BASIC down to Apple to show Steve. After selling him on that, he asked me what else I had done. I showed him the Probability Machine, throwing it up on Apple’s large-screen Advent projector. He got really excited, left the room, and gathered up everyone he could find in the building. (Apple was still all in a single building in those days.) I was quite surprised it caused so much excitement; I had no idea I’d pulled off something that, at the time, was a breakthrough. A week or so later, Jef Raskin called me up and said that Steve thought we should talk. I assumed he was going to want to buy some more of my software. It turned out, he and Steve wanted me,


Using an Apple Powerbook as a Cassette Tape Recorder

Sunday, September 13th, 2015

During my debug of the SCELBI cassette tape interface, I decided I needed to get better visibility to the actual output of the cassette interface. There are a couple of ways to do this. One way was to use a DSO (digital storage oscilloscope) or logic analyzer to capture and analyze the signal. I don’t have either, so I had to resort to a second method. That is to capture the cassette output as an audio clip using an audio recorder and editor on a personal computer. One such application is Audacity, which is a free download.

The only trouble with using a modern personal computer is getting the audio clip into the PC. Apple Powerbooks include a headphone port that includes speaker out and microphone in. Wendell Sander has an Apple 1 site that includes directions on connecting an Apple 1 to an iPod’s headphone port. I did a bit of research and determined that the Powerbook headphone port is basically the same.

I constructed a dongle based on Wendells directions and hooked it up to an Apple IIe for testing. Unfortunately, I found that the Powerbook didn’t recognize the microphone input. After some more web searches I found a couple of sites that indicated that a 1600 ohm resistor between microphone in and ground would cause the microphone to be recognized. I hooked up a 1500 ohm resistor and found that it worked most of the time. The next larger size resistor in my stash was 2K ohms, so I switched to that and found that it worked reliably. I tested with the Apple IIe and found I could read and write reliably. I also decided to add a .1 uF capacitor on the microphone input line to decouple it.

I next switched to the SCELBI to capture the output of the SCELBI write card. This proved very helpful and with the help of the Audacity audio editor, I was able to zero in on the problem I was having. During the examination of the SCELBI cassette signal I noticed that the high frequency tone was greatly attenuated. This was due to the .33uF capacitor suggested in Wendell’s notes. The SCELBI uses much higher frequencies than the Apple. I needed to change the capacitor to .01uF so it didn’t attenuate the 2700 Hz high frequency signal used in the SCELBI cassette interface. The resulting circuit is depicted below.

powerbook cassette adapter circuit

powerbook cassette adapter circuit

Here is a picture of the dongle. Note that I took a 4 conductor patch cord and cut it in two for the plug end. The reason is that the small clearances in 4 conductor plugs are difficult to solder cleanly. It was much easier to cut the wire and solder the wires and components together.

Powerbook Cassette Interface Dongle

Powerbook Cassette Interface Dongle

And here is a screen shot of the Audacity application showing a piece of SCELBI cassette audio out. The higher frequency portions represent ones, and the lower frequency are zeros. It takes 2 cycles of low frequency or 4 cycles of high frequency to represent a single bit. This encoding method is called frequency shift keying or FSK.

SCELBI Cassette Clip

SCELBI Cassette Clip

Apple II TTY Emulator Fixed

Sunday, August 30th, 2015

My previous posts described some barely working attempts at using an Apple IIe as a teletype replacement. When faced with bringing up my SCELBI cassette interface, I decided I needed to improve the Apple II based TTY emulation system.

After spending about a week of my spare time focussed on this effort, I think I succeeded pretty well. The hardware interface hasn’t changed from that previous post, but the TTY emulator now supports the standard SCELBI TTY software and hardware really nicely with full 72 columns and 24 lines. Most of that time was spent trying to overcome what appears to be a glitch in the hardware serial start bit detection.

Except for the initialization routine, I bypassed the Apple monitor character out functions and ended up writing my own output functions. Control characters behave like the SCELBI MEA application package expects them to behave. With the full screen now available, the new TTY emulation software is much more pleasant to use than the previous version.

I didn’t implement a cursor. Some people may feel this is a shortcoming. While a cursor would be pretty easy to implement, I decided that a real TTY didn’t have a cursor, so my emulator shouldn’t need one, either.

If you are interested, the source code can be found at this link:

While working on this, I found one little issue with the MEA memory dump command. When dumping a full line of memory contents, it attempts to print a space character in column 73 of the TTY. I’d guess that a real TTY would just refuse to advance the carriage in this event. If you know how they really work, let me know.

I’ll need to port these changes over to my RTTY application, so it can also use a full screen. It’s not directly usable, because the RTTY runs at 45 baud and uses Baudot, instead of 110 baud ASCII. In any case, the RTTY port will have to wait, as next up on the to do list, is to check out the SCELBI cassette interface cards, which are built and waiting.

Captain Crunch’s Memory Modification

Friday, August 28th, 2015

After I received the original snap shot of John Draper’s Apple II, I asked for and received better images. Here is one of them, showing the unusual Apple II memory arrangement.

Crunch's Memory

Crunch’s Memory

If you look closely, you will notice that all the memory banks are double stacked, largely with Signetics 2660 chips. These chips are 4Kx1, compatible with 4096s. This gives this system 24K of memory in 6 banks of 4K on each bank. Though I’ve seen double stacked memory on other systems, occassionally even on production boards, I’ve never seen this on any Apple II. Everyone else, managed to find 16Kx1 DRAMs and used those to expand their systems memmory. Don’t get me wrong, 16K memory chips were not cheap, especially in the early days of the Apple II. In fact for a long time, I ran my original Apple II with 2 banks of 16K and 1 bank of 4K for a total of 36K, which is all I could afford. I do believe John Draper’s approach is truly a unique solution to expanding memory for the Apple II.

What is more remarkable is this article, where John Draper, Capt. Crunch talks about his Apple II.

John mentions his Apple II memory configuration in the second paragraph, “My apple used the cheaper 4k rams and I piggy backed them to get 24k of ram.”

At some point, I plan on reviewing the wiring to see exactly how John wired up the 6 banks of memory.

I have more information on this system to post in later blog entries.

Apple IIe Fast Scroll Routine

Thursday, August 27th, 2015

I’ve been working on improving my Apple IIe TTY emulation application. One of the major limitations with it, is the amount of time it takes to scroll the Apple IIe’s screen, especially when in 80 column mode. In order to improve this function, I wrote my own fast scroll routine. Kind of interesting how close it turned out to a comment I received to a previous post, even though I forgot about that comment by the time I did this.

; Fast Screen Scroll Routine
LINE1 EQU $400
LINE2 EQU $480
LINE3 EQU $500
LINE4 EQU $580
LINE5 EQU $600
LINE6 EQU $680
LINE7 EQU $700
LINE8 EQU $780
LINE9 EQU $428
LINE11 EQU $528
LINE13 EQU $628
LINE15 EQU $728
LINE17 EQU $450
LINE19 EQU $550
LINE21 EQU $650
LINE23 EQU $750

  STA STORE80 ; enable aux mem
  STA PAGE2OF ; page 1 first
  STA PAGE2ON ; now do aux mem

  LDX #39

  LDX #39
  LDA #$A0 ; clear last line
  BPL FS_L13


This routine takes about 18 milliseconds to run on a 1 MHz Apple IIe, compared to the standard monitor scroll routine which takes 34 milliseconds. Other than unrolling the loops, which would greatly expand the size of the function for a minimal speed increase, I think this is about as fast as it’s going to get.

18 milliseconds is still not fast enough for my TTY emulation package, so I’m going to have split it up into several segments and check for input events between segments. However, now that I have my own version of the scroll code, I’ll be able to split it up relatively easily.

There are some other issues with the standard monitor COUT routines for this TTY application, so it’s very possible that I’ll end up customizing all the COUT routines. For instance, I’ve already customized the “BELL” function for performance reasons. The Carriage Return function also had to be customized, because on a teletype, CR does not force a line feed.

An Apple with a Very Interesting History

Friday, August 21st, 2015

My web site doesn’t draw the number of hits that many more popular sites do, but my site occasionally attracts some emails that turn into very interesting stories. The discovery of John Draper’s Apple II is one of them, and I need to put together a few more posts in order to describe his system and it’s history. However, right on the heels of the discovery of Draper’s Apple II, another very interesting system has just surfaced which is housed in this enclosure.

Apple Case

Apple Case

The story is that it was taken out of Steve Jobs office by Apple employee and manufacturing engineer, Don Hutmacher, after Steve was fired in the mid 80s. The story goes that Don was allowed by his boss to go into Steve Job’s office take anything that was left over. It had been picked clean by the time that he got there. He noticed this computer and a bag of Starbucks coffee, and that is how he ended up with it.

More to come…

Amazing Discovery

Wednesday, August 19th, 2015

In a previous post, I mentioned that an amazing vintage find has just been made. Last week, I received an email with this picture.

Apple II rev 0

Apple II rev 0

The person said, “Hi mike. I found your page via Google. Can you help me identify this apple product please? I think it is an apple ii board. ”

I receive these sorts of requests from time to time and this request for information is typical. My answer went like this:”It’s a revision 0 Apple II motherboard. You don’t find many with original 4K memory jumper blocks still installed. Almost all of them were upgraded to use 16K memory chips. Looks like someone has done some unconventional memory upgrades, but it otherwise looks pretty original. It could be a really early one, the serial number is usually written in sharpie in the white block near the power supply connector. There may be some masking tape over it.”

After a few more email exchanges that day, the person sent me an email declaring that he thought it was “Charley”. Charley is the machine that John Draper, “Captain Crunch” turned into the first phone freak computer. This machine was seized during a police raid at a housewarming party, held on 22nd of October, 1977. Here is a link to a copy of the party invitation.

There is always the danger of fraud in cases like this, but I’m pretty well convinced that this is actually “Charley”, and I’ll explain more in a future post.

Dr. Galfo’s Integer BASIC Compiler

Monday, June 1st, 2015

I just put up a web page with documentation and DSK images of Dr Galfo’s Integer BASIC Compiler (IBC). This compiler was used in development of some well known Apple II games. It runs around six times faster than WOZ’s BASIC interpreter, so it’s worth trying out. Compiling an Integer BASIC program is easy. You simply load the program in the standard Apple interpreter and then run the compiler. You will be prompted for a few options and then, after the compiler is run, are given the option of running the program.

Radio Teletype Explored – part 1

Sunday, April 26th, 2015

Before I acquired Chris Galfo’s HAM software package for the Apple II, I had already developed a simple RTTY (Radio Teletype) setup that used my Apple IIe as a terminal. This series of posts will go over what I did to put together this setup. Before going into details of each component, I’ll go over the general setup and a few of the decisions that lead to the choice of major components.

In the beginning, my goal was to set up a RTTY station using 70’s era components. As you will see, I went a little into the 80’s in the choice of some specific components, but the basic platforms on which those components were based, were all available in the 70’s.

RTTY Block Diagram

RTTY Block Diagram

As you can see, my setup is made up of 4 main components.

  • The antenna – I’m currently using a simple inverted V dipole because of ease of deployment and low cost
  • The radio – Kenwood TS-530S – I chose this unit as it is an vintage unit that is an evolved version of a Kenwood TS-520. The TS-520 was released about the same time as the SCELBI-8H, but my TS-530S was sold in the early 80s. I chose the TS-530S over the TS-520 primarily because of it’s integrated digital frequency display and support for additional bands
  • The TU (teminal unit) – HAL ST-6 – The main job of the terminal unit is to convert tones coming from the radio audio output to a series of 1s and 0s which is digital information that can be interpreted by a computer or teletype. It also can convert 1s and 0s coming from a teletype or computer to tones to be sent to a radio’s microphone input for transmission. The HAL ST-6 was released about 1970 and still has a reputation as being one of the best terminal units around
  • The keyboard and display unit – Apple IIe – I choose this over the SCELBI because of the integrated video display and keyboard. I chose the IIe over earlier Apple II models, because it has an integrated 80 column display. Teletypes have 72 column output, which would require 2 lines to display on a standard 40 column Apple II display. I explored using a straight Apple II with a plug in 80 column card, but found some differences between the 80 column support in an Apple IIe and the standard Videx 80 column card. Turns out the differences were significant for this application, so I went with the Apple IIe
  • VCF east, Apple Monitor II Problem Explored

    Saturday, April 25th, 2015

    My setup at VCF east X had three monitors/CRTs setup as displays. They run all day, starting at about 9:00 AM, until the exhibit closes. One of them was an Apple Monitor II.

    Apple Monitor II

    Apple Monitor II

    Saturday, towards the end of the day, I noticed that the Monitor II wasn’t displaying anything and the “power” light wasn’t lit. Doing a quick check of power cords and trying a power cycle got no response. Since I was so busy, I decided to put it aside and remove one of the less important systems from my exhibit.

    During day on Sunday, I casually asked Ian Primus, who is a CRT repair guru, if he knew of any common problems with the Apple Monitor II. He said that they never fail, but he’d be glad to take a look, later on. Late in the afternoon on Sunday, when activity was dying down, I decided to open it up and see if anything was obviously wrong. Once I got it open, Ian and Jeff Golas who was in the next “booth”, did a 5 minute investigation. They found that the fuse was blown, but little else obviously wrong. There was no obviously blown caps. Ian checked the rectifier diodes and a couple of power transistors, but they all checked out. Jeff measured the power consumption by using his meter as a jumper over the blown fuse, and it came out at .4 amps. Jeff said that he had a similar problem with one of his Apple Monitor II’s. It also blew the fuse. However his unit only measured .2 AMPS. With the quick inspection over, I closed it back up and decided to do a complete inspection when I got home.

    I found some time Thursday night and took it apart for a complete inspection. After carefully making sure the tube was discharged, I disconnected the connectors going to the main logic board so I could pull it out enough to get to the back of the PCB. I set up my home-brew ESR tester and checked all the caps and could find no fault. I did find one located next to the horizontal output transistor heat sink that was a bit brown. However, it checked out fine, just like all the others. I also used my diode checker to check all the diodes and transistors on the board. I could find no fault with any of them.

    After a few hours of probing, I was coming up with nothing, all the components that I could test, looked good. The next day, I stopped at a local shop to see if they had a replacement for the cap that was slightly brown, but they didn’t have the correct value. I decided that since it tested good, that I would leave it alone. I decided to clean the tarnished pins on the CRT yolk, reassemble and repeat the power test that Jeff had executed at VCF east. This time, the power consumption was down to .2 AMPs. I’m not sure why it dropped in half, maybe some connector wasn’t making good contact. Since the monitor is rated at 30 watts, .2 AMPs seems like normal power draw and matches what Jeff measured on his unit.

    At this point, I was at a loss and decided to replace the 500 milliamp fuse and operate the monitor for a while. I figured that if there was something seriously wrong, the fuse would go again, or perhaps a marginal part would fail completely. I put everything back together and ran the unit for about an hour and it performed as designed.

    I’m not sure if it’s fully repaired. I did find a SAMs repair manual for the unit online, which showed details of signals on the logic board, but since it’s working so well, I decided not to pursue evaluating all the signals in minute detail. For now, I just plan to keep a close eye on it whenever I am using it.