"IDIOT" monitor, serial interface, for 1802 Membership Card


Serial, ROM, and RAM for 1802 Membership Card

[serial kit parts]

[rev G with IDIOT, serial dongle]

Last updated Nov 16 2019. I don't offer the full kit at this time, but you can ask me for the cost of an IDIOT ROM, with postage and packing. Contact info at the end of this Web page. - Herb

This Web page describes serial and ROM and RAM hardware upgrades for the COSMAC 1802 Membership Card (M/S Card for short). Parts are shown on the left. This Web page documents the upgrades and has links to other support Web pages. The IDIOT ROM monitor is useful for testing and diagnosis. RAM and ROM together are useful. A classic RS-232 interface for an old PC-compatible DB-9 serial port is described. This Note supports most "recent" M/S Card front-panels and CPU boards. I recommend you read, the Web pages on the most-recent versions of the M/S card. There's a list of links at the end of the "home page" for the 1802 M/S Card. Of course, read the support page for YOUR version.

What is the Membership Card?

The COSMAC 1802 Membership Card is shown on the left. It's a kit for a toggle-up handheld version of a 1970's vintage computer. Follow this Web link to the 1802 Membership Card support "home" Web page, and to ordering and other information. This page describes a serial link for that computer.

What is described on this Web page?

This page is about configuring Rev G or later 1802 Membership Cards with the parts described on this Web page: an IDIOT ROM monitor, a .3-inch wide RAM, and a serial "RS-232" interface to a traditional personal-computer (PC) DB-9 serial "port". The ROM with IDIOT as described here, will run at LO or HI address, with "write enabled", and with any serial interface "inverted / noninverted" settings. You'll need a way to test a serial interface. Either use a serial-based terminal or PC with "serial ports", or obtain and add a USB/serial dongle to a USB-based PC. The PC will need a serial "terminal" program. You can serially operate the Membership Card from its ROM monitor, or serial toggle-in test programs. Details are of course on the rest of this Web page.

My computer doesn't have serial, it has USB

Here's a link to a document, about operating the Rev J 1802 Membership Card with a USB adapter. Parts on that page are: BASIC 3 & monitor in ROM (code available from Lee Hart's site) and an FTDI-chipped USB-to-TTL serial adapter for communications and power. General information about USB adapters and other ROM monitors, is also in this document.

What parts are needed for a ROM monitor and serial interface?

[serial kit parts]

The photo on the left are the parts for an RS-232 interface and a ROM monitor. The photo on the right shows a Rev G board set with these parts installed. You can obtain the parts yourself, program your own PROM with IDIOT or another monitor, and follow the information here.

The suggested ROM monitor in the PROM, is called "IDIOT" - Interactive Digital Input/Output Terminal - and is documented briefly described below. There's a 32K byte narrow RAM with optional board-insert socket pins for that RAM, and a bypass cap for RAM and ROM. There's a DB-9 connector and a DB-25 connector for the "RS-232" serial interface from the M/S Card I/O connector. Referenced parts are shown in the photo on left. Or....scrounge the parts, program a PROM yourself.

Can I buy these parts from you?

As of Sept 6 2017, we no longer offer a kit of RS-232 serial parts and programmed IDIOT EPROM. YOu can ask me about a ROM only or other parts - contact info for me at the end of this Web page The IDIOT PROM code is available on my site. . Lee Hart offers a number of PROM images, for IDIOT and for another ROM monitor, on his M/S Card ordering site. PC board socket pins for the narrow RAM, as I provided, are too expensive to stock and resell. The other parts are common enough. - Herb


A short version of this Web page

PARTS as shown in this photo. These are the additional parts you'll need to add the IDIOT ROM, SRAM, and a DB-9 dongle; for a "RS-232" type serial interface. Also, go to the support Web page for your version of the 1802 Membership Card . You may want to look at other version's Web pages,1for ideas and fixes.

BRIEF HOW-TO for Rev G or later Membership Cards and RS-232 serial operation. 1) Install or jumper serial interface circuits for "inverted" operation (but there are other options). 2) Adjust wide RAM/ROM socket for space for narrow RAM and for a ROM stacked above it; set HI/LO jumpers to address RAM and ROM. 3) Install C6 (axial .1uF capacitor), narrow RAM socket pins (your option), the narrow RAM, then wide ROM on top. 4) Construct DB-25 / DB-9 adapter. 5) Set CPU trimpot to max freq. 6) Serial "terminal" at 7M1 or 7M2, 1200 or 300 baud. 7) Connect DB-9 to old IBM-PC serial inteface and run a "terminal" program. 8)run the IDIOT ROM, with "write enabled", press "CR" on the PC "terminal", and see IDIOT "prompt" on terminal. This document provides details - read it before work.

BRIEF HOW-TO for USB-TTL serial operation, rev I or later. 1) Install or jumper serial interface circuits for "inverted" operation (but there are other options). 2) Adjust wide RAM/ROM socket for space for narrow RAM and for a ROM stacked above it; set HI/LO jumpers to address RAM and ROM. 3) Install C6 (axial .1uF capacitor), narrow RAM socket pins (your option), the narrow RAM, then wide ROM on top. 4) Obtain USB to TTL adapter, install "device driver" and adapter on your personal computer. 5) Set CPU trimpot to max freq. 6) Serial "terminal" at 7N1 or 7N2, "strip 8th bit on recieve", 1200 or 300 baud. 7) Connect your USB/TTL dongle to your computer and the M/S Card. 8)run the IDIOT ROM, with "write enabled", press "CR" on the PC "terminal", and see IDIOT "prompt" on terminal. This document provides details - read it before work. Also read about the operation of a Rev J M/S card with BASIC 3 and an FTDI-chipped USB serial adapter.

LINKS: More details about serial operation for older 1802 M/S Card kits (Rev G and earlier) are in this linked Tech Note. Also, the Rev G support Web page has many links and much discussion about the features of this set of parts. But also check the support Web page for your version of Membership Card front panel. The IDIOT Web page discusses the ROM monitor and has sources and ROMable hexf files. The Membership Card "home page" has links to all these.

USB: An alternative to RS-232 type serial operation of the 1802 M/S Card, is a "TTL to USB" or "RS-232 DB-9 to USB" adapter for your Windows or Linux or OS/X computer. But, they are not all the same. And, they don't manage flow-control very well at low baud rates, without adjusting USB-based operating conditions. Lee Hart doesn't provide that adapter as of 2018, but he and other 1802 M/S card owners have tried a number of them, with mixed results. See my USB notes in this document for current details.

NO-ROM solution: If you build the hardware without the ROM, you can toggle-in a serial loader, then "download" a ROM image. Here's a note with code for a small serial loader. This code lets you download a monitor or other program in a RAM-only 1802 M/S card.

Other ROM monitors are available or around, or can be found. Here's some notes in the section "Other ROM monitors".

Assembly of RAM and ROM, C6

[rev G CPU] [rev G CPU]

The .3-inch narrow RAM chip at U8, sits under the .6-inch wide ROM chip at U2. So the RAM needs very low height socket "pins" to sit as low as possible; or, you can solder it in if you are sure it works. The ROM uses a conventional height socket, but you must "chop out" the plastic structures between the rows of pins, so the RAM will fit in-between. refer to your Rev G or later Membership Card manual for construction details. (Read below for how you MIGHT install C6.)

On the narrow RAM. Most of these are old 80386 or 486 cache memory, 32K by 8 bits. Some may be 8K X 8 or 2K by 8, so be sure you identify yours. If you don't use socket pins, solder in the chip lightly in case you need to remove it. Solder wick is reasonably effective in removing solder. I make no guarantees whatsoever on these matters.

The image on the left, shows the two empty RAM and ROM sockets on the Rev G CPU. Note how "low" the RAM pins are, how high the ROM pins. The RAM pins are on a plastic film in this photo. The image on the right, shows a ROM in a socket. Under the ROM there's a .3-wide RAM, installed in the RAM socket under the ROM.

[rev G CPU]

[rev h2 CPU] To the left is a photo of the IDIOTX4 ROM removed from the Rev G board. A similar image for the Rev H2 CPU board is on the right. On the Rev G board, you can also see the jumpers installed for P2 and P3 for a 27C128. P2 has jumpers on 2-3 and 4-5; P3 has jumpers at 1-3 and 4-6. See your Rev G or later CPU schematic for a table, for other ROMs & RAMs. There's similar hardware on the Rev H2 on the right. The Rev H2 and later kits provide the cut-down large socket for the ROM as shown, and to make room for the resistor and capacitor as shown.

Warning: rev G Q1 FET issue. The older version of Rev G CPU, used a FET for Q1 and part of R5 SIP 100K ohms, to drive /A15 which selects ROM or RAM. Running ROM and RAM may produce conflicting selection; especially if you run at 1.8Mhz or faster. A field fix is to add a 10K or smaller resistor to overlap the pullup resistor and speed-up the transistor. Go to the Rev G FET support page for details.

CPU clock at max: The clock circuit trimpot must be set at almost the fastest end of its range. (In the Rev G image, it's the blue rectangle.) Turn the trimppot counter-clockwise until you here a "click". You can turn past it a few times, to find the point just when it clicks. Then, turn it clockwise about 3/4 of a turn, or 7/8 of a turn. That gives you both the highest frequency and a more square clock waveform.

[rev G CPU] [rev G CPU] HI-LO addressing:There's two pairs of holes under the rev G CPU board, or available as jumpers on the Rev H board, to control addressing of RAM and ROM. These select either A15 or inverted A15 (/A15) to chip select the ROM and RAM. As sold the board connects "LO" to "U2" the wide ROM, and "HI" to "U8" the narrow RAM. Thus ROM starts at 0000H and RAM at 8000H. To change this for RAM at 0000H and ROM at 8000H, 1) cut the traces between LO-U2 and HI-U8 and 2) solder wires (rev G) or add jumpers (rev H) between LO-U8 and HI-U2.

Note the yellow capacitor in the image. That's C6, a 0.1uFd X7R axial-lead ceramic cap, which is added when RAM U8 is added, to Rev G or later CPU boards. The cap is "axial", a cylinder with leads at either end. I installed it on the BOTTOM of the CPU board, for more space around the U2 socket. The Membership Card manual's CPU assembly instructions, says to install it between the RAM and ROM sockets. You can see a place for C6 around pins 20-28 - use those holes but install it on the bottom of the board, not the top. Lee Hart chose that capacitor "with X7R dielectric; not Zxx or Yxx series dielectrics. You need a good fast capacitor to properly bypass those dammed-fast 0.3" RAMs."

CPU board Rev H2, has a resistor R7 that's also near the ROM/RAM socket. Like cap C6 above, you may have to relocate that resistor under the CPU board if you need more space.

With ROM at 0000H, RAM at 8000H (LO-HI default), to start IDIOT you simply reset and start in ROM at 0000H. See your assembly manual for details on front-panel operation. With ROM at 8000H, RAM at 0000H (LO-HI rejumpered), with "write enabled"; to start IDIOT you must "toggle in" a JUMP 8000H in low memory - the 1802 codes are C0 80 00. "C0" is the long-jump instruction. "80" is the high-order address; "00" the low order address. (Instructions for entering and running toggled programs are in your 1802 Membership Card manual.) You will read later, with the RAM at 0000H and ROM at 8000H, you can select one of four IDIOT versions, for the four serial interface types, by changing the jump address.

IDIOT monitor and the 1802

The IDIOT Web page discusses the ROM monitor and has sources and ROMable hex files.

Lee Hart's "IDIOT" monitor in 1982 was based on the COSMAC UT4 ROM monitor. In 512 bytes, it provides serial support, memory read and write, register modification, jump-to, and interrupt-based debugging. The code has no "long jumps" and can run without modification at any memory page. Therefore the monitor ROM can be addressed as "LO" 0000H or "HI" 8000H and with "write enabled", it will find RAM at startup. On startup, IDIOT looks for a "CR" character from a "terminal" configured at SEVEN (not 8) bit data, MARK parity, ONE stop bit; baud rates of 110, 300, or 1200 will work. IDIOT responds with "IDIOT" and a prompt. [Note: an alternative terminal/serial setting may be 8 bit, no parity, but ignore the 8th bit on terminal recieve.]

The command "?Maaaa xx" dumps xx hex bytes of memory at aaaa hex. "!Maaaa dd..dd" writes bytes to memory. IDIOT is described in detail, with source code, with utilities, on the IDIOT Web page. Also on that Web page is a link to the IDIOT source and hex files; and that includes the "4X" version of IDIOT.

NO-ROM solution: If you build the hardware without the ROM, you can toggle-in a serial loader. Here's a note with code for a small serial loader. This code lets you download a monitor or other program into a RAM-only 1802 M/S card.

The version of IDIOT on the IDIOT Web page, includes source code as well as an assembled hex file which can be programmed into a PROM. IDIOT uses software to operate /EF3 and Q as a software UART; it is up to software AND hardware to interpret or produce the highs and lows for serial data. The ROM provided offers two ways to run IDIOT. Or, you can test the serial interface a third way, with toggled-in test programs. 1) IDIOT in ROM will work with the Rev G or later serial hardware set up as "INVERTED data" and you can execute the IDIOT monitor from 0000H or 8000H. The Membership Card starts at reset at 0000H; if you have RAM there, you can toggle in a jump to 8000H where the ROM will reside in memory. Details of setting up the serial interface, depends on the version of the front-panel; and what KIND of serial connection you make to your computer.

Serial interface, ROM and RAM construction

1) Versions of the front panel

For Rev I and later front-panel owners: There's two connectors available for serial connections. One is part of the power connector, it's useful for USB-to-serial adapters. Some of those adapters can power the 1802 M/S card; see the USB notes for details. The other serial connector is part of the DB-25 interface, and is useful for RS-232 type connections.

Lee Hart told me, Feb 21 2017: "I tested [the IDIOT ROM on Rev I] with an RS-232 terminal, connected to the DB25, with the inverting transistors Q3 and Q5 installed. It should be the same with a USB-TTL interface, since rev.I inverts the TTL signals compared to RS-232." On March 6th he added, "The FIRST version of IDIOT works with the TTL and RS-232 ports on the rev.I board.". Lee addressed the IDIOT ROM at 8000H, so toggle in a C0 80 00 in RAM with "write enabled" to jump to 8000H. - Herb

Read the Rev I support Web page for the Rev I manual and for details about its serial ports, and operation of IDIOT. You may also find useful information about the DB-25 serial interface, in the previous front-panel versions described below. Use of USB-to-serial adapters is discussed elsewhere on this page.

[rev G CPU]

For Rev H, H2 front-panel owners: Ref H and H2 front-panels has different means to set up the serial interface. Please refer to the Rev H or H2 manuals, and set up the serial interface for inverted serial in and out. Also: the Rev H front-panel board, may call for a jumper between pins 2 and 3 of P6 for recieve control. That revision lacks a 3.3K series resistor between the emitter of Q5 and Pin 3. (Rev H2 has that resistor.) The result is that Q5 (only if used that way) limits the negative voltage for TXD to a few volts. I believe, if you use a 3.3K resistor as the jumper, negative voltage for TXD should increase to several volts. See the Rev H/H2 support page for details. - Herb

For Rev G owners: set up the serial interface as described in the Rev G Manual on the Rev G support Web page. That is: Q2 is installed; R15 is NOT installed; Q3 is installed in the "I" position. Also, C8 is installed to provide a negative voltage source for the Q serial output. Construction details are in your Rev G assembly manual. Starting the ROM code at 8000H or 0000H (see HI-LO) will operate the IDIOT monitor as provided, with an inverted interface for serial in and out.

For Rev F and earlier owners: Read these pages for suggestions, but you don't have seperate ROM and RAM. You can solder-up a stacked pair of wide ROM and RAM, and take some advice from serial notes on this Web page. More details about serial operation for older 1802 M/S Card kits (Rev G and earlier) are in this linked Tech Note.

2) Different variations of the IDIOT monitor on ROM

The IDIOT Web page discusses the ROM monitor and has sources and ROMable hexf files.

A version of IDIOT, includes "4X" variations of IDIOT. The FOUR variations of IDIOT in the ROM image, are at 8000H, 8400H, 8800H, 8C00H (or 0000H, 0400H, 0800H, 0C00H). The "first" operates as described above. The other versions "assume" the serial input, or output, or both, are "not inverted". Now STOP HERE...think this through.

Either the serial "input" is active high, or active low - that's TWO. And the serial output is either active high or low - that's TWO MORE. Two plus two is four. OK? Your serial interface, to whatever device you connect it to, has to work one of those four ways - try EACH if necessary. If this doesn't make sense, follow the descriptions given above - invert the transmit or invert the recieve - and try IDIOT at 0000H or 8000H. If you want more explanation, look at discussion on the IDIOT Web page, links found above; and on the Web page and manual for your version of the Membership Card.

3) Testing the serial port without ROM

Testing the serial port: There are simple toggle-in test programs to operate Q and EF3, just to test the serial hardware. These test programs are part of the general 1802 Membership Card test programs at this link.

Connection to "traditional" DB-9 PC serial port

[rev G CPU] Here's an image of the Front Panel at the DB-25 (25-pin) connector. You see a MALE DB-25 plugged into the Front Panel. There are three wires from that connector, going to the back of a female DB-9 (9-pin) connector. That DB-9 is plugged into a "straight through" DB-9 cable to a PC laptop with a DB-9 serial interface. So the DB-9 I've wired up, "matches" the PC serial connection. OK? See the schematic above, but here's the wiring: DB25 pin 15 is TXD to DB-9 pin 2. DB25 pin 19 is GND to DB-9 pin 5. DB25 20 is RXD to DB-9 pin 3.

The virtue of a hardware UART PC serial port

As revealed in discussions of USB-to-serial devices, the software and hardware in and around those USB devices may complicate their use for the low-baud-rate and delayed-response 1802 Membership Card. Traditional PC hardware UARTs, are under direct control of Windows and MS-DOS based programs. Those programs provide simple (or old-school) controls for baud rates, character delays, hardware and software flow control. Particularly for old-school owners of the 1802 M/S Card, unfamiliar with Windows or Linux drivers, a PC with hardware UART (and tht 9-pin serial connector) may be a simpler way to "talk" to the Card.

Option: DC power for the Membership Card from the serial port

In April 2016, Lee Hart described how to power the M/S card from a DB-9 serial port through the DB-25 interface. "Traditional" serial ports on PC's include operation of the DTR or RTS lines of the RS-232 port. Lee connects diodes to route that positive DC voltage to the DC power pin of DB-25 connector on the Membership Card; it charges the supercap and may provide enough current. Here's a link to a Web page with the details.

With the Rev I and later front-panel board, it has a power/serial connector which may be used to power the M/S card if connected to some "USB to serial" interfaces. Read the Rev I (or later) Membership Card manual and notes below for details.

USB to serial adapters

Here's operation of the Rev J M/S card with BASIC 3 and an FTDI-chipped USB serial adapter. Operation of that device with the IDIOT monitor is similar. I found the best serial-terminal settings for a personal-computer's communications program, is 8 bit, no partity, one or two stop bits, 300 or 1200 baud; and tell the recieve-side of the comm program to strip or ignore the 8th bit. IDIOT ignores the 8th bit but transmits and "echos" it in an inconsistent way. Depending on your choice of USB/TTL device, one of the four versions of IDIOT "should" work. Be sure, by the way, the 1802 MC is "write enabled". Also: try seven-bit settings if 8-bit doesn't work.

Earlier efforts and discussion, is on this linked Web page on USB-serial adapters for the 1802 Membership Card. It's a complicated subject. The short version is this. You have to determine how to connect one of these puppies - either a "RS-232 to USB" or a "TTL to USB" adapter. You have to determine how to set up YOUR version of the 1802 M/S card. You MAY have to adjust, whatever "device driver" is used by your adapter - and be sure you have the device driver for your adapter's specific brand and model of "chip" inside. and - the device driver will "choke" if you have delays in processing characters by the 1802.

Why is this complicated? You are trying to use 21st century technology, with a 1975 2Mhz 1802 microprocessor with a software-driven serial port. USB doesn't expect serial ports; old serial communications programs don't expect USB. Software-based UARTs can change their logic by changing software. Lotsa choices, OK?

Other ROM monitors

Aug 2017: Lee Hart and Chuck Yakym now provide a BASIC, a Tiny BASIC, and a ROM monitor; as binary images for ROMS or binary download. See Lee Hart's 1802 M/S card sales page under "BASIC for the 1802". Details are in the ZIP files and on his site. There may be copies in "The Eagle" folder by Chuck, on the cosmacelf Yahoo Web site; as noted below.

Jan 2017: Lee Hart says "So far, I have tested [the 1802 Membership Card] with the following ROM monitor programs:
- Herb Johnson's IDIOT monitor
– Chuck Yakym's monitor + Tiny BASIC at cosmacelf Yahoo
– Spare Time Gizmo's Elf2K EPROM. Check current versions of the Membership Card manual and Web pages for more information.

There are other ROM monitors of course. Check the software Web page for the 1802 Membership Card. and of course search the Web and cosmacelf.com and cosmacelf Yahoo, and other COSMAC support Web sites.

Feb 24 2017: Lee Hart found that some ROM monitors, examine /EF3 before sending on Q, or connect the 1802 interrupt to /EF3. For versions D through I of the front-panel, the /EF3 input circuits use a 4.7uF capacitor to establish a negative voltage. It's possible that /EF3 will be held low (active), unless a reverse diode is put across that capacitor. Anode to the junction of C8-D13-R14; cathode to ground. The Rev I support Web page has the Rev I manual and schematic, which describes the diode D15 and capacitor C8. Older versions of the front panel will have a 4.7uF cap on the serial circuit, and can be fixed the same way if necessary.

Later, Chuck Yakym and Lee Hart responded to a problem or feature with the use of some BASIC monitors, such as Chuck's. They monitor the /EF4 line for a "break" (grounded or low briefly) that's used to interrupt BASIC. If the /EF4 line is held low, BASIC may "stall" while waiting for it to go high (disabled) again. Review documentation for any BASIC you have for this feature.

Here's a note Lee Hart wrote about the /EF3 problem and his fix; and comments from Chuck Yakym on the /EF4 problem.


Contact information:
Herb Johnson
New Jersey, USA

This page and edited content is copyright Herb Johnson (c) 2019. Contact Herb at www.retrotechnology.com, an email address is available on that page..