A microprocessor is a computer on a chip. It has:
The Intel 4004 was the first chip that had general purpose capability. It was made for use in a hand held 4 function calculator and/or for use as a traffic light controller. It used 4 bit words, enough for numbers but not enough for 8 bit ASCII characters. The 8008 then 8080 chips were 8 bit data word chips.
- data bus
- address bus
- control lines
The microprocessor works like a Turing machine (Wiki) in that it stores data and instructions in the same memory (Wiki: Computer architecture).
MicrocontrollerThe microcontroller is a much more modern part. Instead of having the classic address and data buss I/O pins it has register pins that can be digital I/Os, analog inputs/outputs, serial buss signals, or other things that relate directly to hardware interfacing. These are typically used in embedded control applications not for general purpose computing. The PIC line from Microchip is a typical example (16F88).
The PIC family of microcontrollers uses the Harvard architecture (Wiki) where there are separate memories for data and instructions. This not only prevents reading data as instructions or storing data in locations that are for instructions but also makes for faster operation.
This was my first personal computer. It came as a kit and there was no software available when I got it. It came with the Motorola 6800 pocket hex instruction card.
The 6800 has a Von Newman architecture (Wiki) both in terms of software and hardware. That's to say the RAM contains both instructions and data and the hardware uses memory mapping for the hardware interfacing. This is different than the early Intel microprocessor chips that had separate electrical terminals for external hardware. It's also different from the Harvard architecture (Wiki) used with the PIC micro controllers (PC6, LED1PC2, PICpkg, PIC16F88, PClock, Precicion Clock #4).
The 7 SWTP mother board slots each have the same 50 buss lines. The mother board includes address decoding for the 8 I/O slots. This means that the I/O boards do not need address decoding since they are already memory mapped. Note the early Intel based home computers, like the Altair 8800 (Wiki) used the "S-100" buss that had twice the number of connections and no address decoding so all the cards had 100 connections making them much more expensive.
I started with the Motorola 6800 in a SWTP (South West Technical Products) kit. The kit came with NO software and there was no software on the open market.
Fig 1 Shown with front and back trip strips just sitting in place.
The expanded metal top/side cover is not shown.
Fig 2 The silver can cap on the right with white line cord
wiring reasonates with a transformer winding.
Fig 3 MP-B Motherboard
Fig 4 50-Pin RAM
Notice that the2102 static memory chips are soldered
directly to the board. Sockets were not reliable and so
I had a similar problem with plug-in hard drives.
i.e. the socket caused a disk crash.
Fig 5 50-Pin RAM
Fig 6 50-Pin RAM
This is the SWTP RAM board,
the others are after market.
Fig 7 50-Pin MP-A CPU
Fig 8 50-Pin DMAF1 Dual Drive DS Floppy Disk I/O
Fig 9 MP-S Serial
Fig 10 MP-T Timer
Fig 11 MP-LA
Fig 12 Sound (resistor ladder & LM380)
Fig 13 MP-L Parallel Printer
Fig 14 Dual YE-Data 8" Floppy Drives
Fig 15 Audio Cassette Data Interface
Fig 16 Works with two cassette drives,
one for writing & one for reading.
It did come with the folding Motorola wallet size machine language instruction list. I learned how to program directly in hex machine code. This was difficult because if you added or subtracted an instruction inside a loop you need to recompute the loop jump distance.
Motorola folding Pocket 6800 Instruction Set Card (Issue B):
Teletype Pocket Card with 8-level punched tape data format - you can read paper tape by eye Front Side - Table Side (at 2X magnification)
- Special Operations
- Hex & Decimal Conversion, Powers of 2, ASCII Characters
- Register Programming Model
- Accumulator and Memory Instructions
- imaIndex Register & Stack, Jump & Branch, Conditions Code Register Instructions
- Operation Code Numerical Listing -
Between bits 3 and 4 there is a row of small sprocket holes. The special USASCII (X3.4-1967) characters are:
Motorola published the M6800 Microprocessor Applications Manual, an 8.5 x 11" book about 1.5" thick. It contained sample code for many applications that may have been parts of a point of sale terminal. This was a handy reference to learn many "tricks of the trade". My copy has seen a lot of use.
- NULL - no holes punched the same as reading no tape (RUBOUT = all holes punched)
- SOH - Start of Heading
- ETX - End Of Text
- EOT - End Of Transmission
- ENQ - ENQuiry
- ACK - ACKnoldege
- BELL - rings the bell
- HT - Horizontal Tab a long string
- BS - Back Space, can be used with rubout to fix a typing error.
- LF - Line Feed only rotates the platen one line (does NOT move carriage)
- VT - Vertical Tab
- FF - Form Feed
- CR - Carriage Return. This command takes the most time to complete. Therefore send CR followed by LF and maybe a couple of rubouts to be sure the carriage has returned. People that didn't know would send LF CR and the first letter of the next sentence would be printed in the middle of the page.
- SO - Shift Out
- SI - Shift In
- DLE - Data Link Escape
- DC1 - Device Control 1
- DC2 - Device Control 2
- DC3 - Device Control 3
- DC4 - Device COntrol 4
- NAK - Not AcKnoledge - a handshake method where either NAK or ACK is always returned
- SYN - Synchronous Idle
- ETB - End of Transmission Block
- CAN - Cancel
- EM - End of Medium
- SUB - Substitute
- ESC - ESCape
- FS - File Seperator
- GS - Group Seperator
- RS - Record Seperator
- US - Unit Seperator
21 Aug 2004 - Shortly after getting my SWTP 6800 kit and building it I started learning Motorola assembly language from the pocket card and the 81/2 x 11 x 2" book that included a lot of source code and schematics. Note there are only 2 buttons on the front of the SWTP 6800 On-Off and Reset. When either of them is activated the 6800 either goes to a cold or warm start address in the operating system ROM and boots itself. The 6800 has an instruction that is a relative 8 bit jump and it was this instruction that allowed Microware to create their Real Time operating system ROM chip to replace the stock Motorola ROM used in the SWTP 6800. Motorola, AMI and other vendors were big on the idea that you could write code that could be:
The big advantage of Re-locatable Recursive code is that the routine does not need to be re-written when it's used in a different location allowing a library of routines to be built and called as needed. When the 6800 uP came out it was common to write self modifying code (it is a Von Newman architecture where code and data share the same address space). The PIC uC chips use a Harvard architecture where code and data spaces are separated thereby forbidding self modifying code.
- Relocated anywhere in the address space. This could NOT be done with the intel chips. The idea of
- Recursive execution of code was also needed, that is to say that the variables associated with some routine would not be stored at some hard memory address, but would be stored using a stack. This way the same routine can be called time after time without corrupting that data. The calls would be from different routines.
- Re-entrant - means that the code can call itself. For example a factorial routine.
This RT68 operating system evolved into OS-9 which was a very sophisticated op system with features that even today (OS-9000) are great. It depends on the ability to have Relocatable Recursive code.
I remember when the 6809 came out in the Color Computer and I went to a local Silicon Valley meeting to see what some hackers had found. One of the most interesting things about the 6809 as implemented in the CoCo was that although the operating system/Basic language was stored in ROM, it was moved into RAM for execution. This means that other operating systems, I used OS-9 on my COlor Compugter, could be loaded and run. The demo was to display on the TV screen the machine code in a dynamic way, page after page. A Motorola app note for the 6809 contained the schematic for the CoCo.
Motorola had a program where if you contributed some 6800 assembly code to a pool of code you would be allowed to get code for the pool for free. This pool of code was analyzed by Motorola and the 6809 had a more orthogonal instruction set as a result. The 68000 also had a long relative jump making it easier to write relocatable code. The 6809 probably had the long jump.
The Altair kit had a front panel with a lot of switches and lights that were used to manually define a loader program so that the computer could be started, very time consuming. The SWTP front panel has just two buttons: Power on/off and Reset. It contains a ROM chip with the bootstrap program, a simple debugger, and a way to enter programs in Motorola "S9" format.
The Altair kit has a mother board that has a 100 pin buss (with a hard to get connector) and no chips. Each plug-in board needs to decode the full buss making the boards cost more than needed. The SWTP has two buss structures, one "SS-50" 50-pin for RAM, DMA (Direct Memory Access), etc. (that used easy to get Molex type connectors) and one narrow I/O buss where the motherboard has already decoded some addresses to allow a simple I/O card to be used. Many years later the IBM PC followed the SWTP lead using a separate I/O buss.
Operating SystemI replaced the Motorola ROM with the first product from Microware called RTOS (Real Time Operating System). The key to this was that the 6800 had instructions to allow jumping to an address RELATIVE to the current program counter. The Intel chips only had instructions that pointed to fixed addresses. The availability of a relative address instruction allows code to be written in modules that could be relocated in the address space. Relocatable code is much easier to use than code that must be loaded in a fixed location. Reentrant, Recursive, and some other R words characterize much of the code written for Motorola chips at that time.
Later there was a Flex Disk Operating System. I think it supported a flavor of Basic so you could write programs in a much easier way than using hex or assembly.
FLEX User Group -
ASR33 TTY (Automatic Send Receive)This is a Teletype (brand name) machine that is 8 level (meaning that it worked with 8 bit data). There were a lot of surplus 5 level machines available that would not work with 8 bit microcomputers. The neat thing about the ASR33 was that it could do four things:
The interface was 20 mA current loop with ASCII data format. There was an RS-232 I/O card for those who could afford an acoustic coupled modem. (At that time AT&T had all of the phone system and it was a crime to connect directly to the phone lines.)
- Print on paper (this was before CRT displays existed)
- Keyboard for data entry
- Punch paper tape for data storage (this was before magnetic tape & disk storage)
- Read paper tape (some programs may take 30 minutes to load, so you leave the computer turned on all the time)
It could use pin drive or friction feed paper. Friction feed allows the use of lower cost paper in rolls with no sprocket holes. The nicer paper that has a perforation every 11 inches needs to have sprocket holes so that you can do a "Form Feed" to get to the top of a page. You could get multipart paper for the ASR33 since it was an impact printer. The printing head is a cylinder that moves up and down and rotates to get to the character needed.
100 Words per minute is 500 characters per minute or 8.333 characters per second. In 30 minutes you could read 15,000 characters and the tape would about about 125 feet long. If wound on a 1" core the paper tape spool would be about 5" in diameter. I had a drafting 115VAC powered electric eraser and an attachment with a flat face and some pins that would wind up a 100 foot tape in under a minute. Some care was needed to not tangle the tape and avoid a paper cut.
The one illustrated at http://www.nadcomm.com/33asr.htm has a rotary dial and built in modem that was not present on mine.
TTYPUNCH: punch a perforated ITA2 TTY tape -
BROOKE CLARKE HTTP://WWW.PRC68.COMThere's something wrong with the TTY Punch program. When a character that's not in it's alphabet something strange happens. The input was 34 characters and the output is 40 characters.
B R O O K E C L A R K E H T T P :// W W W . P R C 6 8 . C O M
Sirus Cybernetics VGA-1 50-Pin Printed Circuit BoardThis was part of a kit to add a VGA color display instead of using an I/O board to drive a TTY machine (real or glass).
The PCB is dated 1980 and is raw, i.e. no parts have been installed. Maybe it required an expensive chip.
Ferro Resonant Power TransformerI replaced the stock power transformer with a ferro resonant model. This involved also adding an oil filled cap that connects to an extra winding on the transformer. The idea is that the resonant circuit rejects narrow spikes and dropouts and also supplies some energy for short brown outs.
Intel 2102 Static RAM MemoryThe large type card for the SWTP computer could be purchased that were all covered with 2102 memory chips. They made a point of NOT using sockets because the reliability of the socket was lower than the chip.
2 pins for power, 4 control pins (DO, DI, /CD and R/W) and 10 address pins for a total of 16 pins. It has a capacity of 1 bit x 1024 = 1k bits.
Audio Cassette Tape Data StorageThe next innovation was a box make by SWTP that allowed storing data on audio cassettes by means of tones, very similar to the 1200/2400 Hz modems that were starting to appear.
8" Floppy disk DMAF1This was a big improvement on the cassette tape system. The data transfer rate was too high for the microcontroller to bit-bang (Wiki) the data, so a wide card with DMA (Wiki: Direct Memory Access) was used to move data directly to/from RAM to the floppy disk. Motorola has a chip (6844?) just for doing the DMA operations that could also be programmed to move data in the RAM space.
The early 8" disks were single sided and later there was a double sided 8" disk and SWTP packaged two of these side by side. You need a way to copy from disk to disk and using two drives is much easier than buffering the data and manually installing and removing disks. The same applies today to DVD and Blueray disks.
AFAICR the data rate was 500 k bits per second or 2 microseconds between bits or 16 microseconds between bytes after a serial to parallel chip converted the data.
My next door neighbor was Reed Anderson (Wiki) founder and president of Information Terminals Corp (formerly Anderson Jacobson Inc (Patents 1971 - 1984) (Wiki)), maker of telephone modems and floppy disks (later renamed Verbatim). He told me about the 8" double sided YE-Data floppy drives. I bought his 8" disks and talked to him about what drives were available. One day he brought Victor Borge (Wiki) to my house so that he could see a home application of the floppy disks. Later Victor did commercials for Verbatim disks. Reed Anderson was a very class act and gentleman.
5 1/4" Floppy DiskReplaced the 8" disk with a pair of 5-1/4" disks because they were smaller and ran at half the speed allowing for bit-banging, thus greatly lowering the cost. These had a slower data rate so the microcontroller could handle the data without needing the complexity of DMA. At 250 k bits per second or 32 microseconds between bytes there's enough time to bang bytes with a 6800 chip.
3.5" Floppy Disk SSSDReplaced the 5-1/4" disks because of even smaller size and more rugged because of the hard plastic shell. Replaced the use of tape for write protection on the 8" and 5-1/4" disks and instead used a sliding plastic door that could be read by an optical sensor.
These started as Single Sided Single Density and had the same interface as the 5 1/4" Floppy disks. They progressed through Double Sided and finally Double Density. (I paid $50 for a box of 10 DSDD disks from HP when they were introduced.)
Don Lancaster TV Typewriter KitThis is a way to use a standard NTSC TV monitor as a display device. The problem is that with a TV bandwidth you can not display a line of 80 characters. I have the book but didn't make it. Prior to this the main interface was a Teletype ASR 33.
Lear Siegler ADM-3A Dumb Terminal (Glass TTY) KitThis is just a keyboard and CRT to replace the TTY keyboard and paper printer (but not the paper tape punch & reader). 24 Rows by 80 Columns. Punched cards have 80 columns so the display works for input and output of data that may have been formatted for cards. It has no graphics capability, only alphanumeric text. Came as a kit that uses what seems like a hundred ICs. Later Glass TTY terminals used only a handful of custom IC chips and cost much less.
TI 810 Dot Matrix PrinterThis floor standing dot matrix text only printer takes fan folded 132 column paper and has pin drive. A later version had graphics capability. I seem to remember that is cost something like $2,000 back when a dollar was worth something.
Epson FX80 Dot Matrix PrinterThis pin drive printer takes 8.5" wide paper and has graphics capability. Mine has a special add on chip that increases it's capability.
Home Brew Computer Club (Wiki)The meetings were held at the auditorium at the Stanford Linear Accelerator Center (SLAC) on Page Mill Rd. in Palo Alto, a few minutes drive from where I lived in Los Altos Hills.
The auditorium had each row of seats about 1 foot higher than the row in front so that everyone could easily see the black boards, speaker, etc. I think it's built on the side of a hill.
The format would be:
At one of the meetings a couple of kids with greasy hair had a card table at the auditorium door showing off their computer on a board that had a built in video display, built in basic as well as a tape interface, they called it the Apple. Many of the Silicon Valley microcomputer types were attending these meetings.
- General Announcements (Lee Felsenstein Wiki)
- Guest speaker or speakers
- audience members would pose questions or offer things
- Random Access where we would interact.
It was here that Tom Pitmam (Wiki, Itty Bitty Computers) found me. I had a SWTP 6800 computer and a Model 33 Teletype. At the meeting I got two paper tapes, one for a 6800 editor program and the other for a 6800 assembler. I had already coded a hex a disassembler that would read Motorola 6800 machine code and print out a pseudo assembly listing. This allowed Tom and myself to figure out how to use the undocumented paper tapes. This allowed Tom to write Tiny Basic (Wiki) based on an article in the Computer Journal about a basic language with a metaphor about layers of a onion. Because I was interested in using my SWTP 6800 computer to interface hardware one of the things I asked for were instructions for PEEK and POKE to allow looking at or modifying any memory location. This was a capability of the HP RMB language.
At this time I was going to the Home Brew Computer Club meeting at the Stanford Linear Accelerator Center (SLAC) auditorium on Page Mill Road in Palo Alto. Inside they would have a guest lecturer, and time for questions, wants, etc. then a Random Access time when you could go to someone with a question, want, etc. and talk one (or many) to one.
Computer called the AppleThere would be an exhibit in the front lobby. One time it was a couple of kids showing their computer, on a card table, that was all on one board, included a basic language in ROM and had a TV interface, they were calling it the "Apple". I think it used the 6502 chip that was very similar to the 6800 but with some enhancements. This was a raw board, no cabinet.
Motorola Assembler and EditorAt another one of the Home Brew Computer Club meetings someone had the paper tapes for the Motorola Editor and Assembler (that's 2 separate programs). And I got the tapes, no documentation or anything else. By this time I had written a source code generator program. It would read a machine language paper tape and print out the source code and machine language mnemonics. This allowed me to reverse engineer the editor and assembler to find out how they were handling the I/O. It turned out they were written by a professional and had a header where the I/O ports were defined. It was a simple matter to reassign the ports to match the SWTP TTY I/O port. This was a great tool, now you could write code without worrying about recomputing loop jump addresses.
Later a generic assembly language became popular called "C". "C" is a low level language it's just a little bit removed form assembly language where the language is very closely tied to the registers of the target chip.
A very high level language is LabVIEW by National Instruments.
San Francisco Computer Fair (Wiki)There was an annual show that was for small home type computers in SF. Jim Warren (Wiki) put it on and used roller skates to cover the large area of the show floor. There were papers given and exhibits. Those two kids with their Apple computer had a booth.
Tiny BasicTom Pittman wanted to develop a version of Tiny Basic as written up in Doctor Dobbs Journal. He used my computer by working into the wee hours for a number of days. When he was done I got a copy. I also asked him to include hooks to allow the language to bang bits so that it could be used to control hardware, not just be used as software.
Radio Shack Color Computer (Wiki)
This was based on the Motorola 6809E Chip. The Microware OS9 operating system was available for this computer. It used a color TV as an output device and can be used to make titles for video tape. Motorola has an app note on the 6809 chip with the design of the COCO. This was a low cost computer with a lot of capability.
Multi Port Adapter
The way the CoCo was made the operating system is stored in ROM, but at power on it is transferred into RAM. This means that you can write code to replace the operating system. Since the standard TV display is just a part of memory you can change the start address of the display map and that allows you to look at any RAM address dynamically.
There was a company in Sunnyvale that was buying the COCO from Radio Shack, removing the case and embedding it into a commercial product that was involved in routing telephone calls (like to a doctor's office after hours).
When the 6800 chip came out Motorola had a firmware program where if you donated some code you could access their 6800 library of other donated code. They analyzed that code and based on what they found improved the orthogonality of the 6809 code as well as that for the 68000 series.
Multiport AdapterBy plugging this into the game slot, you could have 4 game slots available. There were a number of after market products that fit the game slots, like a Glass TTY type display that would drive a wide bandwidth monitor to allow 80 characters per line which is more that you can get with a TV display.
One of the cards in the display adapter is to drive a CRT monitor so that I can display 80 characters in one line (way more than the TV display allows).
One of the first solid state display devices was the Light Emitting Diode. A relative had a Bulova Accutron (Wiki) watch with an LED display, but the problem was that it took a lot of power and used up batteries quickly. Later TI sold an LED wristwatch and when the battery went dead it was cheaper to buy another watch than have someone replace the battery which required special tools and skill.
The Liquid Crystal Display consumes a very small amount of power and there is a type that only consumes power when changes are made (see Kent below).
Kent Displays - Zero Power LCD display
HP came up with a way to calculate hyperbolic functions digitally to many decimal places of precision. This was the first time that could be done and made books of tables obsolete.
3766370 Elementary floating point cordic function processor and shifter, J Walther, HP Inc, 1973-10-16, - "Three arithmetic units including three shifters are operated in parallel and controlled by a microprogram stored in a read-only memory to provide an improved elementary function floating-point processor. The microprogram includes a set of routines for calculating 20 elementary functions including arithmetic, exponential, hyperbolic, logarithmic, square root, and trigonometric functions. Each shifter is capable of reading a fixed plural number of consecutive bits, beginning with any bit position, from an associated data storage register."
Cordic Functions (Wiki).
3839630 Programmable calculator employing algebraic language, E Olander, R James, I Larson, R Watson, F Yockey, W Covington, J Walden, F Wenninger, H Russell, HP Inc, 1974-10-01, - HP 9810A
3859635 Programmable calculator, Robert E Watson, Jack M Walden, Charles W Near, HP Inc, 1975-01-07, - HP 9810A
HP 9100 (Wiki)
This was the first calculator that worked with things like logs, trig functions, unlike the prior calculators that only did add or subtract (and some could do multiply and divide or square root based on adding and/or subtracting). The next generation was the HP 35 (Wiki) calculator. It had the same computing power but would fit into a shirt pocket.
At Aertech in Mountain View, California we hand made tunnel diodes. After the key electrical parameters were measured on each diode the cutoff frequency and another calculated parameters were needed. The 9100 could do the calculations using a program that was loaded into the calculator. Since it used core memory the program was always there. We made a plywood top for a typewriter cart that had countersunk holes for the feet of the 9100 and there was a strap holding the 9100 to the cart. This way we could wheel it to the test station where it was needed in a safe way. This calculator was made before ICs were available. It was about this time that a start up company called Fairchild, located in the same city, was offering RTL logic in round plastic packages that ran on 3.3 Volts.
The display was a CRT which showed 4 lines of the stack (as far as I can remember). This made using reverse polish notation much easier for a beginner.
About this time the sports car magazines were carrying ads for the Curta Calculator (Wiki) that was a mechanical device that looked a lot like a pepper mill. This was used for Time & Distance Rallies.
HP 35 (Wiki)This was the first hand held calculator that would do scientific calculations and as an engineer working on microwave products, some of which were bound for the Vietnam conflict, I ordered an HP 35 with a DX-A2 priority, which meant HP had to ship my calculator prior to any shipped for civilian use. This calculator does not have any programming ability, you can only use the canned functions. The LED numeric display was a battery eater.
3855461 Calculator with key code association and display features, R Stockwell, HP Inc, 1974-12-17 -
3863060 General purpose calculator with capability for performing interdisciplinary business calculations, France Rode, Jr William L Crowley, Alexander D R Walker, David S Cochran, HP Inc,1975-01-28 - HP 35
3892958 Inverse/complementary function prefix key, Chung C Tung, HP Inc, 1975-07-01 -
HP 41 (Wiki)
The 41 uses an LCD alphanumeric display and can be programmed or can use plug in ROM modules. Someone found a bug in the HP 41 that would allow getting into the native machine code. This allowed writing code in machine language and the creation of the "Zen Rom" that has a huge number of new routines. Printers, mag card readers and barcode readers can also be plugged into the module slots. The alpha aspect of the display make this a very powerful pocket computer.
HP 48G (Wiki)
This is a later version HP scientific calculator that also has an RS-232 port that I interfaced to a Motorola GPS receiver. Has a graphic LCD display.
HP 80 Series CalculatorsThese were being sold during the time when the first models of the IBM PC were being sold. The "C" in PC means computer and there were a number of government contractors that had strict rules about who could buy "computers". By calling the 80 series machines "calculators" the purchasing process was greatly simplified. These calculators have the ability to control instruments using the HP-IB interface allowing test automation. Had a CRT display but I don't remember if it did graphics.
These came long before the PC and were typically used to control instruments using HP-IB, although some Computer Aided Drafting (CAD) packages were written for them as well as other scientific uses. Based on the Motorola 68000 series uP.
Delay Lines (Wiki) date to the 1920s (Wiki). Mercury delay lines were developed for RADAR in W.W. II (Wiki)
2629827 Memory system, Jr John Presper Eckert, John W Mauchly, Eckert Mauchly Comp Corp, Oct 31, 1947 - digital data in Mercury
Magnetic Drum Memory dates to 1932 (Wiki).
2611813 Magnetic data storage system (disk drive), Jr Edwin S Eichert, Thomas K Sharpless, Technitrol Engineering Company, May 26, 1948, 360/49, 192/84.1, 360/72.1, 360/98.1 - first disk drive patent?
Back to Brooke's Electronics, home - page