Archive for the ‘Apple II’ Category

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.

    First of my “Vintage Digital Radio” Webpages is Up

    Tuesday, April 21st, 2015

    This is the first of several webpages that I plan on putting up to document my efforts to integrate vintage computer operation with present day HAM activities. It is not currently linked to from my main homepage or other vintage web pages.

    This page provides access to one of the first commercial HAM communications packages to be released anywhere. During my explorations of HAM integration with early vintage computers, I ran across several references to a software program released by a CH Galfo. Though I couldn’t find any actual images of the software or documentation, I was lucky enough to make contact with Dr Galfo, himself. Better yet, he was friendly and willing to help make the software accessible to vintage computer people. He sent me a floppy and a hard copy of the documentation, both of which I’ve been able to copy into a web friendly format. Dr Galfo indicated that since there is no commercial value, that you should feel free to copy and distribute.

    http://www.willegal.net/digitalradio/Galfo-HAM-App.html

    fixed 6502/Apple 1 Cheat Sheet

    Friday, February 6th, 2015

    Apple 1 6502, cheat sheet, v.98

    I fixed the definition of the ROL and ROR instructions.

    6502 memory test gotcha – 6502 cheat sheet error

    Friday, February 6th, 2015

    One of the more popular programs that I’ve written is this 6502 memory test. One person using this test to checkout his Mimeo, recently discovered that it doesn’t work with his early white 6502. Turns out that that particular 6502 is a nice collectors piece, without a functioning ROR instruction. I used the ROR instruction at the end of the third test, so the program hangs when run on an early 6502 with the missing ROR functionality.

    ;
    ;
    ; all test 2 passes complete – prepase for test 3
    ;
    LDA #$7F
    BNE NX_TEST ;always branch

    CHK_TEST3 ;floating zeros in progress or done
    CPY #3
    BNE CHK_TEST4
    ;
    ; pass of test 3 complete – 8 passes in all with 0 in each bit position
    ;
    SEC
    ROR TEST_PATRN ; rotate right – Carry to MSB, LSB to Carry
    BCS NX_PASS2 ; keep going until zero bit reaches carry

    I haven’t checked it, but I think the following code will accomplish the same basic test without using the ROR instruction.

    ;
    ;
    ; all test 2 passes complete – prepase for test 3
    ;
    LDA #$FE
    BNE NX_TEST ;always branch

    CHK_TEST3 ;floating zeros in progress or done
    CPY #3
    BNE CHK_TEST4
    ;
    ; pass of test 3 complete – 8 passes in all with 0 in each bit position
    ;
    SEC
    ROL TEST_PATRN ; rotate left – MSB TO Carry, LSB = Carry
    BCS NX_PASS2 ; keep going until zero bit reaches carry

    I recently discovered that my 6502 cheat sheet has an egregious error. The ROL and ROR instructions move the Carry bit into the LSB and MSB (respectively), not the MSB and LSB. In other words the instructions are rotate through carry instructions.

    I’m not sure how I managed to mess this one up or why it took so long for me to notice this or why no one else noticed it. Perhaps the functionality of these instructions are so well known that most people don’t need to refer to a cheat sheet to understand functionality. Clearly, I knew how they worked (or were supposed to work in the case of the early chips) when I wrote the 6502 memory test.

    Brain Boards Sold Out – summary of pending projects

    Friday, January 9th, 2015

    I built and tested the last two kits over the holiday break and sold them on eBay. I made 59 PCBs, and kept 1 for myself, so there are 58 that were sold, either as kits or fully assembled.

    Once the initial interest passed, they were very slow sellers, so I’m not expecting to make any more. I have some ideas for an enhanced version, but that is very far down my list of things to do, so I don’t know if or when I’ll take the time to work on that.

    Here are just a few projects on my backlog that are ahead of the enhanced Brain Board. These will easily keep me busy for a couple of years or more.

  • Finishing all the SCELBI I/O Boards
  • Getting Apple II RTTY on the air – reception is working – transmission software is coded, but needs lab testing prior to actual “on air” tests
  • Getting vintage computer Morse code encoder/decoder on the air – Jack Rubin sent me an early Byte Magazine article with a 8008 software package for this, so I’ll probably do this on the SCELBI
  • Fabricating SCELBI Chassis Components
  • Putting together the VCF East 10 display and “Fix It” lecture
  • Hack together a Mimeo with 20K DRAM
  • Move Apple II RTTY application to the Mimeo/Apple 1
  • I have identified another board that is rare, of historical significance and worthy of replication
  • I have other ideas, that are even further out, such as doing a Mark-8. If I did a Mark-8, I would probably etch my own boards. This would probably be pretty easy to do, as the artwork was published and there was no solder mask and the holes were not plated through. I don’t think I would make batches of boards for sale, as this has been done already, and some of the parts are in the harder to find category.

    I also really need to do a manual/book on the SCELBI and I have made some half hearted attempts to start this. The main obstacle is that I’d want to scan and OCR the original docs and that is a very laborious process.

    Improved Apple Teletype Emulation

    Wednesday, December 31st, 2014

    A previous post showed how I attempted to connect the SCELBI TTY to an Apple IIe with an old serial card that supported current loop. Well I’ve been working on some of the issues and now have it working good enough to post some of the details. With the standard Apple 80 column scroll routine, I can only reliably get 8 lines to scroll at 110 baud, but it’s working pretty decently, with that limitation.

    First of all, here is how the TTY card is connected. The standard SCELBI MEA software assumes these port assignments.

    Apple Serial To SCELBI TTY Connection Diagram

    Apple Serial To SCELBI TTY Connection Diagram

    If you try repeating this experiment, be aware that there are two versions of the Apple Serial Card firmware,. However, since I don’t use the standard driver, it doesn’t matter which version you have.

    The simple TTY emulation source code can be downloaded from www.willegal.net/appleii/ttyemul.asm. It is written to use an assembler called DASM, which can be found and downloaded with a web search.

    You can experiment with changing the window size by changing the second line in the program. Note that I started with a “hijacked” version of the original serial card driver, but it has been greatly modified. This code assumes a IIe with 80 column card. For display, I had a lot of issues getting CR not to send a LF, but still return to beginning of the line. I also implemented a bare bones bell that sounds only if no characters are coming in.

    I suppose a custom “fast” scroll routine might help with increasing the window size, but I haven’t had time to work on that. I think I left enough of the original Apple II peripheral card software mechanism in place, that it wouldn’t be too hard to move the code to PROMs that would reside on the serial card itself. For now, it assumes slot 2 for the serial card, and slot 3 for the 80 column card. Let me know if you have any luck with this.

    I’m using a modified version of this software as the basis for my Apple II RTTY software, but the transmit side of that implementation needs some work. I want to create a way to type in some canned strings for transmitting CQ with a call sign and so forth.

    Video Posted Showing RTTY RX with Vintage Gear

    Thursday, December 25th, 2014

    Check out my latest podcast.

    feed://www.willegal.net/feed.xml

    The Radio Teletype receive function seems to be working real well. The work I did in the “lab” preparing for this, resulted in almost immediate success upon hooking up my rig to a real HAM receiver.

    Before I can start transmitting over the airwaves, I still have to do some work with antenna tuning, write an Apple IIe RTTY transmit driver and generally check things out in the lab. I also have some kludged cabling going on that needs to be fixed.

    That said, I think that KC1CKV will soon be on the air…

    73

    HAL ST-6 RTTY TU Restored to Operating Order

    Monday, December 22nd, 2014

    In a previous post, I showed a picture of my HAL ST-6 RTTY Terminal Unit.

    Now that I had the SCELBI 8B working, in my spare time, I have devoted a few hours to getting the ST-6 up and operating. For those of you who aren’t aware, an ST-6, demodulates a Radio Teletype (RTTY) signal and presents a current loop data stream to an external device. It was intended for connection to a Teletype, but I’m connecting it to my vintage computers.

    The HAL ST-6 is quite a different beast, as compared to the computers I’ve been working with over the years. There is a lot of hand wiring in it, and each module is filled with discrete components along with a few op-amps.

    inside the HAL ST-6

    inside the HAL ST-6

    The RTTY signal comes in several forms. My mid 70’s era HAL ST-6 was designed to support demodulating a signal with frequency shift keying offset of 170, 425 or 850 Hertz. Instead of a teletype, my plans are to have a vintage computer decode the serial stream and display the incoming data. I’m starting with an Apple IIe and have written a driver for the old serial printer board that supports current loop. The driver reads 45.45 baud 5 bit BAUDET format, converts it to ASCII, and displays it on the screen. Eventually I hope to be able to port this code over to a SCELBI.

    For testing purposes, I’m using an internet RTTY audio stream. This audio is routed from a computer speaker output to the HAL ST-6 audio input. This audio stream replaces the radio’s audio output of a real RTTY stream, which would normally come from the speaker output of the radio. At this point, except for a few quirks with my Apple II software, it seems to be working quite nicely. Once I get the kinks worked out of the software, I’ll hook it up to my radio, and see if I can tune in some real RTTY broadcasts.

    RTTY tuning in the old days was enhanced by hooking an oscilloscope in XY mode to the oscilloscope output of the ST-6. I have done the same with this test stream and think I have a pretty good pattern.

    RTTY eye pattern

    RTTY eye pattern

    Getting the HAL ST-6 up and running wasn’t trouble free. At first, the output of the 170 Hertz filter/limiter wasn’t working at all. It took quite a bit of debugging before I discovered that a potentiometer case was shorted against the windings of a coil. While debugging this issue, I found and repaired a broken wire on another coil. I also tweaked the “alignment” and spent considerable time just checking out the circuit to make sure everything was working correctly. I also spent a lot of time chasing “issues” that turned out to be operator error, but I learned a lot in the process.

    Once I get reception working well, and get a handle on how real operations work on HAM RTTY, I’ll start working on the transmit side of things. This HAL ST-6 has an audio FSK modulator incorporated in it. I’ll have to be cautious about how I bring it up, since AFSK operations are well known to have a lot a issues with harmonics and spurious noise.