My Projects

Cone icon by Fornax, CC-BY-SA 3.0, wikimedia commons 1)

Published 21 Apr 2018

Scamp


Overview

Once upon a time, a time before personal computers, someone (IntelTexas Instruments2)) invented single chip microprocessors. These were really designed as controllers for printers, washing machines etc. But of course the electronics hobbyists thought it'd be great to use these to make home computers. When I first saw these things in electronic magazines I had a hard time working out what you'd actually use them for, but they seemed interesting. But most of the hobby circuits published seemed to require a preprogrammed ROM to make them work, and that just seemed a bit hard to get hold of from the other end of the earth. But there was one project that didn't require a ROM - the Electronics Australia, May 1977, Mini Scamp computer based on the National Semiconductor SC/MP chip.

Mini Scamp
Mini Scamp implemented on Vero board and 3 ply plywood.

Hardware description

SC/MP II processorThe processor was the National Semiconductor ISP-8A/500D Simple Cost-effective Micro Processor (SC/MP, pronounced “Scamp”) PMOS chip, which ran at 1MHz. And the board had 2x 2112 256 nybble (256 x 4 bits) static RAMs, giving it a grand total of 256 bytes of memory. As it turned out I could only get hold of the INS8060N, ISP-8A/600N N-channel, 4MHz version of the processor so had to redesign the published circuit a bit for the reversed polarity power supply. I implemented it on a large piece of “Vero” board, and added a hex keypad to the front panel layout.
Mini Scamp schematic (original circuit for P-channel CPU)Mini Scamp layout

Mini Scamp Veroboard front Mini Scamp Veroboard rear

Mini Scamp front panel Mini Scamp rear view

I can't remember the total cost, but I used recycled components where possible, so the front panel data and address switches, main board capacitors, and the crystal (missing in the photo) for the CPU clock were all scavenged from old equipment. The hex data entry panel was the keyboard and display from an old calculator, with a bit of discrete logic tacked on to decode the switches (the switch label panel has got lost in the intervening 40 years).

Operation

Control panel So no ROM, no BIOS, no built in programs, how do you get it to do anything? - the answer is simple; DMA. Not exactly high speed, well actually ultra low speed, it was manual DMA. First you flipped the switches to halt the processor and set DMA mode. You then turned on the power, toggled the address switches to the binary value of the address you wanted to load, then toggled the switches to setup the data byte to be stored there. Finally hit the “deposit” button to store the value. Then toggle in the next address, next data, deposit, toggle in the next address, next data, deposit … Once you had deposited all the program code, you would flip the “run” switch, probably had to hit 'reset' too. There was also a single step mode for debugging.

No assembler, compiler or interpreter involved here, you designed the code in assembly language and translated that into binary machine code with the help of tables in the printed manual for the processor.

Program output was displayed on the 8 data LEDs by writing data to a fixed memory address. Data input could be requested by reading from another address, which would light the “data request” LED on the front panel and put the CPU into a wait state until the user set the data switches and pressed the “deposit” button.

Programs

What you could write programs to do was a bit limited, no screen, no keyboard, no mouse, no sound. no printer, no floppy disk, no harddisk, no USB, no network … you could turn the 8 LEDs on and off though. The chip did have serial I/O pins so you could write routines to send and receive serial data and talk to a serial terminal or old teletype machine.

You could get sound by putting a transistor radio next to it, and listen to the RF interference. By programming delay loops, you could then 'play' notes!

It turned out that one of the locations, in my 256 bytes of ram, had a single bit error - the bit stuck high. So you would either have to jump around it, or design the program to have an instruction stored at that location that had that bit high anyway.

References and Additional Resources

Webpages about the commercial kit

SC/MP microprocesor info

Other SC/MP Projects

If any referenced page no longer exists, try looking for its URL on http://archive.org.