Archive for the ‘8008’ Category

Apple PROM board, MEA/Apple TTY emulation update

Saturday, December 13th, 2014

The SCELBI PROM board is working fine and I was able to create a small program in the editor and execute pass one of the assembler with MEA. I can’t completely assemble a program and run it until I get the cassette interface built and operating. Pass two of the assembler writes the output to cassette tape. I’ll have to hold up doing a video until I can get the complete package going. My impressions of the MEA package are quite positive. It’s not as elegant as later software you might be more used to. However, considering the time frame it was made and the platform is the 8008, it’s a pretty nice package.

SCELBI PROM and extra SRAM boards cost $50 each and are available now. This recent work also confirms that the TTY board is working fine and those are available for $30.

I’ve been using an Apple IIe in 80 column mode with a bit-banged serial serial card to act as TTY emulator. However there are a couple of fairly significant issues that need to be solved before publishing this teletype replacement solution. It’s usable for me, but there are some problems. The two issues with my current Apple II TTY emulation solution are:

  • 1)The Apple II isn’t fast enough to scroll it’s screen at the same time it’s receiving data in a bit banged mode. It drops a few bits from the next character while scrolling the screen. This means that I’ll need to come up with a special designed card to support 110baud current loop with a UART. Since I’m doing a new card, I’ll consider figuring out how to add paper tape support and possibly printer support, as well.
  • 2) In 80 column mode, the screen driver doesn’t support carriage return, without also doing a line feed. In other words, you can’t move the cursor backwards to position 0 on the same line, like a real TTY would when it receives a CR. I’ll have to look into a software fix for this, but it might take sending the cursor to home and then moving it back down to the correct position on the page or something like that.
  • SCELBI running MEA

    SCELBI running MEA

    This image shows the Apple IIe acting as a TTY for the SCLEBI 8B on the left. The screen contains a small program entered with the MEA editor. The listing of the program at the top of the screen has two extra lines at the end. The “D 000 006,000 007″ is an editor command that deletes lines 6 and 7. The “L” command lists the text buffer. The last two commands “P1″ and “P2″ are pass 1 and pass 2 of the assembler. Pass 1 shows no errors. Pass 2 writes results to cassette tape. Since the cassette isn’t installed in my system it actually does nothing. If I had a tape, pass 3 would read the object back into the system so it could be executed.

    The “E”s on the left side of the screen should be the first character of the next line, but the Apple IIe can’t scroll fast enough to be ready to receive the first character of the new line, so it receives a partial character.

    yeah – MEA running on reproduction SCELBI 8B

    Wednesday, December 10th, 2014
    MEA dump memory command - Apple IIe used as TTY emulator connected to reproduction SCELBI 8B

    MEA dump memory command – Apple IIe used as TTY emulator connected to reproduction SCELBI 8B

    Here is the dump of memory from the SCELBI PROM card from addresses 060-000 to 0600-037 as displayed on a 40 column Apple IIe, running some very simple TTY emulation software.

    To interface to the SCELBI, I’m using an Apple IIe with an old serial interface card. The Apple Serial Card is the first serial card released by Apple, and was intended to connect to serial printers. It included support for current loop and 110 baud rate. It’s the only thing I own, that supports that combination of baud rates and interface protocols. Be aware that this card is not the same as the very common Apple Super Serial card, which does not support current loop.

    For TTY terminal emulation purposes, I’m doing a major rewrite to the driver, as the default printer driver is not suitable for TTY emulation. I’ll post the emulation software and directions on connecting this serial card to the SCELBI TTY card as soon as I clean up a number of small issues.

    More updates on this exciting development to come soon.

    SCELBI PROM Board Progress

    Saturday, December 6th, 2014
    SCELBI PROM Board

    SCELBI PROM Board

    The PROM Board is built, installed and appears to be running. However, it’s not completely checked out. I need to hack together a simple Apple IIe TTY emulation program that will work with Apple’s old serial card. That card is the only card that I have (outside of my SCELBI stuff) that will run at 110 baud, but it was designed for printing, so I couldn’t find any ready made terminal program for it. The standard PROMs on the SCELBI 8B assume either a keyboard/oscilloscope interface or a TTY interface at 110 baud. Since we don’t have the keyboard/oscilloscope software, I burnt the TTY software into PROMs.

    It should take me a day to two to complete the TTY/terminal program hack for the Apple II, at which point, I will probably make short video showing the capabilities of the SCELBI 8B minus the cassette interface.

    I used black tape to cover the windows on the EPROMs because I’m told that sunlight will erase them after a while.

    Meanwhile, you can run the software in my OS/X emulator by downloading the MEA hex file from scelbi.com and jumping to 060-000. In a quick trial, it appeared to work ok for me. Be aware that I don’t currently have the cassette interface emulated, so cassette operations will not work. Cassette emulation is one the things on my to do list.

    SCELBI PROM PCB Update

    Friday, November 14th, 2014
    diode in copper

    diode in copper (crop of image by Jack Rubin)

    Last Friday, I thought I froze the layout for the final time. I took a few looks at it, checking for correctness over the last week, finding nothing to fix or improve upon. Today, I planned on kicking off the build, after doing a final check. However, during this “last” check, I noticed that the diode symbols were missing on the front copper layer. The are not obvious, as they are obscured by the actual diodes. I’ll have to add them in, recheck the layout, regenerate the Gerbers and do some final checking (yet again). Hopefully the PCB will be ready to order by Monday. After that, it will take about four weeks, plus or minus, to be manufactured, shipped, built and tested.

    Memory Test for the 8008 Posted on my 8008 Software Page

    Sunday, November 2nd, 2014

    This was ported to the 8008 from my 6502 memory test program by Mark Arnold. I have made some modifications to his port, so any problems are solely my fault.

    It contains a couple of enhancements over the 6502 version.

  • It does not stop on error
  • It keeps a running count of errors that is displayed every pass
  • http://www.willegal.net/scelbi/apps8008.html

    By the way it’s been running for the last hour, checking out the 12K of memory installed on my reproduction 8B, without reporting any errors.

    I suppose someone who needed a good 8080 memory test could port it to the 8008 or Z80 without too much trouble.

    What is SCELBI’s MEA

    Tuesday, October 21st, 2014

    Like so many other things in the SCELBI world, it’s best to let the creators describe it for you.

    THE SCELBI MONITOR/EDITOR/ASSEMBLER PROGRAM, ABBREVIATED IN THIS MANUAL AS “MEA” IS A POWERFUL SOFTWARE PACKAGE THAT COMBINES THE FUNCTIONS OF A MONITOR, EDITOR, AND ASSEMBLER IN A RESIDENT, CONVERSATIONAL TYPE ARRANGEMENT. THE PACKAGE IS STANDARDLY SUPPLIED ON A PROGRAMMABLE READ ONLY MEMORY ELEMENTS THAT RESIDE ON PAGES 60 THROUGH 77 (OCATL) FOR USE IN A SELBI-8B MINICOMPUTER. I/O ROUTINES FOR THE PACKAGE ARE SUPPLIED ON TWO SEPARATE “PROMS.” THE STANDARD SCELBI AUDIO TAPE DRIVING PROGRAM RESIDES ON PAGE 77. I/O ROUTINES FOR THE SPECIFIC I/O HARDWARE TO BE USED WITH THE SYSTEM IS PROVIDED ON A PROM ON PAGE 76. TWO STANDARD I/O VERSIONS ARE AVAILABLE. ONE FOR SYSTEMS EQUIPPED WITH THE SCELBI OSCILLOSCOPE ALPHANUMERIC DISPLAY INTERFACE AND SCELBI ASCII KEYBOARD INTERFACE, THE OTHER FOR SYSTEMS USING A MODEL 33 TELETYPE INTERFACED WITH THE SCELBI BIT-SERIAL TTY INTERFACE. OTHER TYPES OF I/O DEVICES CAN BE ACCOMMODATED BY SPECIAL ARRANGEMENT AND SUBSTITUTION OF APPROPRIATE I/O ROUTINES PROGRAMMED ONTO A PROM ON PAGE 76.

    Here is the cover of the manual, which can be found at scelbi.com.

    SEA cover page

    SEA cover page

    This development environment, which was available in 1975, was quite an achievement for the time. The environment was “robust” enough that Mark Arnold used it to develop SCELBAL. Few other “personal” computer systems available in 1975 had such capabilities built in. For instance, Microsoft BASIC for the 8080/Altair was developed in emulation on a PDP-10.

    Also at scelbi.com is a intel hex file of the contents of the PROM card. This version of the contents was painstakingly reconstructed by Mark Arnold from an object listing that was sent from Nat Wadsworth to Mark when Mark started experiencing problems with the EPROMs on his system back in the old days. It’s very fortunate that Mark saved this listing.

    Start of MEA Listing

    Start of MEA Listing

    The listing was just a raw dump and where it was folded the data was illegible. Mark and Cameron Cooper managed to get MEA up and running in emulation and used the emulator to help reconstruct the missing data, so they believe the hex file at scelbi.com is correct.

    MEA listing with missing line

    MEA listing with missing line

    The version they have, is set up for the TTY interface. So far, we haven’t been able to find a surviving version of the oscilloscope drivers that would replace the TTY drivers on page 76. I think it’s rather unlikely at this point that we will be able to find the oscilloscope version, so that version will most likely have to be rewritten from scratch.

    We have the TTY version of the MEA program and I have already done the TTY interface card, so we are getting close to having reconstructed a complete SCELBI 8B running MEA. After completing the PROM card, my next efforts will be to do the cassette interface, which will allow running the MEA system as it was intended on real hardware.

    In order to get MEA working in my OS/X emulator, I’ll need to enhance the terminal support to act more like a real TTY as CR and LF are separate functions and I’ll also need to figure out how to support backspace. I also intend to add cassette interface emulation support to my emulator to allow complete support of MEA in emulation.

    Reproduction SCELBI 8B now running SCELBAL

    Saturday, October 11th, 2014

    This has been a very long time coming and I’m super excited to see it finally running.

    Here is a very poor quality video of it in action.

    Note that the versions of SCELBAL found on the net require 12K because they include all the available features and options. In order to run in a 8K system, the array feature is going to have to stripped out.

    A SCELBI 8H-B

    Saturday, October 11th, 2014

    I’m calling a SCELBI 8H that includes a 4K memory card from a SCELBI 8B a SCELBI 8H-B. See the original 8H-B here.

    Attaching a single 4K memory card to an 8H is easily done because of the way that SCELBI memory cards are addressed. While reading the following description, keep in mind that on a SCELBI, a bank of memory is considered 256 bytes.

    On a SCELBI 8h, there are 4 bank select lines connected to each slot for a total of 16 bank select lines. This provides addressing for 4 banks or 1K per slot and 16 banks or 4K for the entire system. The are 4 bank select lines connected to each of the 4 slots at different points as can be seen in this image of part of the 8H backplane.

    8H backplane bank selects

    8H backplane bank selects

    On a SCELBI 8H 1K memory card, each of the four banks available on the 1k card, is connected to the backplane at four different points. In the picture below, the line for the first memory bank on that card is highlighted in green.

    1KSRAM 1st bank select

    1KSRAM 1st bank select

    Depending upon which slot the card is plugged into, it will pick up the 4 bank selects for that slot, thus automatically providing a different address range for each slot, without requiring extra decoding logic on a memory card.

    The SCELBI 8B memory design is a little different in that the memory expansion card decodes 16 banks for each slot (4k) and a total of 64 banks (16K) for the entire system. This image shows the 64 bank select lines going to the 4 memory slots on a SCELBI 8B backplane.

    8B memory selection

    8B memory selection

    The 4K memory card is also different, with the 16 bank lines all feeding into the on board circuitry separately.

    4K memory selects

    4K memory selects

    This design also requires extra complexity on the memory card. The 16 bank selects on the back plane must be demultiplexed into 4 chips selects, each of which selects one of the four rows of memory chips.

    So how do you connect a 4K SCELBI memory card to the 8H? A few of you may have already deduced how to do this. You simply jumper all 16 banks selects available on a 8H backplane to a single slot, making sure you leave the other slots empty. This still leaves you a 4K system memory capacity, but will significantly reduce the cost of creating a 4K SCELBI 8H.

    The SCELBI 8B memory addressing architecture is unique in my experience. I think it was deliberately designed to allow use of a single 4K memory modules in a SCELBI-8H. Perhaps Nat and Bob were considering a cost reduced 5 slot SCELBI 8H backplane that would take advantage of this architecture.

    SCELBI 8B Early Adopter PCB Sale

    Monday, October 6th, 2014

    I am now offering 8B PCB set to early adopters a special price of $275 plus shipping. Though my prototype system has been brought up and basically checked, it hasn’t been fully checked with a full complement of memory and PROM cards. Also I/O port testing has been minimal. There could be additional issues beyond those already documented in my blog that will require rework. Once checkout is considered fully complete, the price of a board set (minus PROM card) will rise.

    The introductory set contains one each of the following PCBs. Extra SRAM cards are available now at $50 each. This set does not include the PROM card, which is still under development. Estimated time before PROM card will be available is 3 months, give or take 2 or 3 months.

    1100 CPU
    1101 DBB
    1102 INPUT
    1104 Front panel
    1106 memory expansion
    1107 4k SRAM (1)
    1108 8B Backplane

    Send an email with your address and and questions to:mike@willegal.net for a shipping quote and ordering information.

    I’m not sure when chassis sheet metal will be available, as I’m looking for bargain on a used Box and Pan Brake, so I can fabricate them at substantial savings over contractors prices. Note that not just any brake will do, it has to handle a minimum of 2′ of 16 gauge stock with at least a 4″ depth. for now, you can fabricate your own temporary chassis or use an off the shelf Bud AC-413. The only problem with the Bud chassis is that the original chassis were 3.5″ high and the AC-413 is only 3″ high.

    My Improved Understanding of the SCELBI Data Display

    Sunday, October 5th, 2014

    During my debug of the 8B, over the last couple of days, I improved my understanding of the data display on the SCELBI front panel. Though it is clear from the block diagram, some things just don’t sink into my brain without some additional lessons, usually learned the hard way.

    The data display simply shows the contents of the memory location that is currently being addressed. I already knew that when you stop or step the SCELBI, it stops after setting up the address bus, but before executing the next cycle. In 8008 terms, this is at CPU state T1. The two status bits on the front panel are simply the two high bits of the high byte of the address byte. These two bits are not actually address bits, but known as the cycle control decodes, which is why the 8008 only has 16K of address space and not 64K. Another fact to consider is that both 1101 and 2102 memory chips have different input and output data lines.

    The interesting thing that is a result of these design decisions, is that you can do simple memory tests from the front panel by writing a memory location, without even reading it. The data you write should show up on the front panel, without the need to even execute a read instruction. If you have a write failure, you will immediately see that the data you thought that you wrote is being displayed incorrectly and therefore has been written to memory incorrectly.

    One other thing, without memory in the system, the data display will always show up as all ones. You can still jam instructions into the CPU, but you will not be able to use the data display as an aide to troubleshooting.