The following information has been transcribed from Assembly Instructions, Motorola M6800 Microcomputer Systems Design Evaluation Kit published by Motorola Inc., 1975. I have expanded on certain sections.

Use the table of contents, below, to navigate through the page. As you go, a "Back to Top" arrow will appear on the right side of the page. Clicking on that arrow will bring you back to to the top of the page and this table of contents.

Note: In the documentation below, several different number systems are used. The default number type is Decimal, base 10, and are simply listed without any base designation. e.g. 1,000, 1,234. Numbers with other bases, like Hex, Octal, Binary, are listed as: Hex - 01AB16 || $01AB, Octal - 2778 || @277, Binary - 110001102 || %11000110.

Introduction

Motorola's M6800 Microcomputer Systems Design Evaluation Kit contains devices which, with the peripherals of your choice, will allow you to build a complete microcomputer system which meets your design goals at minimum cost in the shortest time.

QTYFunctionReference
1MPUMC6800L
2PIAMC6820L
1ACIAMC6850L
2♰RAMMCM6810L-1
1ROMMCM6830L-7
♰ Space is provided on the card for four
additional MCM6810L-1 RAMs if needed.

This Kit is composed of the following NMOS components:

  • CPU MC6800L or XC6800B (x1) 8-bit microprocessor. The prefix XC was used for engineering prototypes. This chip has a 1 MHz max clock frequency and, as the others in this board, is housed in a ceramic DIP, with a gold top and gold pins.
  • MCM6810L (x2) 128 Byte static RAM. There is space provided for up to 7 MCM6810L RAMs, but only two come with the kit. One, at address A00016 hex, is used by the MIKBUG control program as a temporary storage and stack area. The other, at address $000016 hex, is for user program storage. The other 5 MCM6810L RAMs are used to expand the user program storage. Their addresses expand the memory from $008016 to 027F16, for a toal of 640 Bytes.
  • MCM6830L7 (x1) 1024x8 Mask-Programmed ROM, located at E00016. Two resident control programs, MIKBUG and MINIBUG are firmwares allowing the loading, debugging, and controlling of the user programs.
  • MC6820 or XC6820 (x2) Peripheral Interface Adapters (PIA). XC prefix for engineering prototypes. This device is capable of interfacing the MPU to peripherals through two 8-bit bidirectional parallel ports and four control lines.
  • MC6850L (x1) Asynchronous Communication Interface Adapter (ACIA). Used to interface the MC6800 to asynchronous serial devices.

Additional components are used for interfacing and/or controlling these chips : CPU and UART clock generation, connection to the external world, etc.

The board needs 3 power supplies : +5 V (@ 1 A) for the M6800 chips and the logic glue, +12 and -12 V (@ 100 mA) for the RS232 interface. RS232 rates are 110 or 300 Bauds but only 110 Bauds is available on this module. In 1975, the 110 Bds ASR33 Teletype®, with automatic reader and punch options, was the most frequently used terminal (20 mA loop current or RS232 V24).

The MEK Board (MEC6800C) is specifically developed for assembly of the kit parts into a microcomputer system.

In order to help the systems designer evaluate a basic, working M6800 microcomputer system, a simplified evaluation kit was designed for easy construction. A complete interconnection schematic is also provided to assist in assembly and help give the designer a functional understanding of basic system integration and potential expansion capabilities.

1. Systems Overview

When assembled, the MEK Board provides a microcomputer system contained on a single printed ciruit board. The purpose of this system is to facilitate user evaluation of the individual Microcomputer Family parts: MPU, PIA, ACIA, RAM, and ROM.

This Motorola microcomputer systems design kit also provides the user with a totally functional system, obviating any need to debug the hardware before bringing up the system the first time.

It demonstrates the minimum system concept and illusstrates the ease of use and flexibility of the M6800 Family.

2. Main Features on MEK6800D1 Kit using the MEK Board

  • Single PC Board. (MEC6800C)
  • RS232 or TTY interface with 10 cps or 30 cps operation
  • Reset Switch
  • MIKBUG loader and dianostic control program
  • PIA and ACIA provided for user peripheral device interface.
  • May be adapted for Expnded Memory and Resident Software

3. User's Information

The complete system requires three power supplies: +5V, -12V, and +12 V. The +5V is for all logic on the card. The +/-12V is for the RS-232 and Teletype interface. The +5V supply requires approximately 1 Amp. The +12V and -12 V require approximately 100 ma and 50 ma, respectively.

3.1 P1 Connector

This is the connector at the bottom of the MEK Board. To use the Board, power must be connected to the appropriate pins on the connector.

3.2 P2 Connector

The PIA at location 8008 and the ACIA at location 8010 are connected to this connector. It is not necessary that this connector be connected for the Board to opertate.

3.3 P3 Connector

3.3.1 Teletype Terminal

This connector interfaces the Teletype or RS-232 type terminal to the Evaluation Kit. The Kit must be connected with a cable for interfacing to a Teetype (TTY), 20 ma current loop interface. The Serial Output and Serial Input should be connected to the appropriate points on the TTY. Refer to FIgure 4.

The return line is TTY Com. If the terminal has a reader relay, this may also be connected to Reader Control and Reader Control return. If this is not available, these two wires may be left open. In this case, the turn-on and turn-off of the reader must be done manually. the card will also operate with a TTY that has remote device control.

3.3.2 RS-232 Terminal

Evaluation Kit
Connector
RS-232 Connector
(DB-25S) 25 pin female
RS-232 Input P3-Pin2Pin2
RS-232 Sig. Gnd. P3-Pin10Pin 7
RS-232 Output P3-Pin3Pin 3
Jumper Pins
5,6,8, and 20

To use an RS-232 type device with the Evaluation Kit, the header must be wired as follows: ⇒

Note: The +/-12V power supply must be floating with respect to the MPU ground and the 5V power supply. It must be applied through connector P3 (pins 9, 10, 12).
THis is impoetant since the MPU system is isolated through optoelectronic devices between the system 5 Volts and the +/-12 Volts required for the terminal.

3.4 Jumper

Jumper E2 to C when using the MIKBUG program of the MCM6830L7 ROM.
Jumper U9-16 to +5V for 10 CPS.
Jumper U9-16 to GND for 30 CPS.

Warning: If the +5V and GND are connected backwards to the Board, all semiconductor devices will be destroyed.

3.5 Bit Rate Adjust

The bit rate must be set up for TTY operation (Potentiometer R23A). For 10 ch/s operation the zero level of the clock measured at test point TP4 should be adjusted to 9.1 msec for 10 ch/s. For 30 ch/s operation it should be set for 3.3 msec.

The bit rate is adjusted by the 50K pot (R23B). It is possible to select the speed putting an external switch through pin 4,6, and 8 of P3. If no switch is used, connect 4 with 8 for 30 characters/sec or 6 with 8 for 10 character/second on P3 according to the speed selected.

3.6 ∅1, ∅2 Clocks

The clock frequency that the system is operating at, may be set by adjustng R9 and R13. R9 adjust the ∅1 pulse width and R13 adjust the ∅2 pulse width. ∅1 should be set for a minimum of 450 nsec at the 90% point of VDD and ∅2 at 470 nsec minimum at the 90% points of VDD.

The puse widths of ∅1, ∅2 may be measured at TP1 and TP2.

3.7 Turn Power On

After turning power on first depress the reset button. Set MPU clocs for proper speed. Set bit rate clock for proper speed. Connect I/O device with header to Connector P3. (Reset button can be put on the Board or outside through pin 16, 14 and 1 of P3 connector.)

4.0 Software - MIKBUG General Description

MIKBUG is a loader and diagnostic control program that is supplied using firmware on the evaluation PC board. THe various routines within MIKBUG are called by keyboard entry using one of the following single character calls:

  • L - Memory Loader
  • P - PRINT/PUNCH Memory Dump
  • M - Memory Change
  • R - Display Contents of Target Registers
  • G - GO TO TARGET PROGRAM

Other features include the capability to set breakpoints with memory change and the use of interrupts which wil be described later in detail.

The MIKBUG Program requires either a Teletype or equivalent replacement such as the Silent 700 ASR for input/output.

4.1 Restart Function

The Reset switch, which can be located on the Board or outside through P3, should be pushed when power has firs beem applied. The terminal should respond with a carriage return, line feed and an asterisk. This indicates that the MIKBUG control program is now ready for input. Should control be lost during the execution of a user's program, control may be regained by pushing the reset.

4.2 Memory Loader

(To load Type L on the terminal)

The Memory Load function (L) of the MIKBUG loads formatted object tape information in the MEK6800D1 system. The tape format can be generated by the assembler or the punch dump function (P) of MIKBUG.

The paper tape format is shown in FIgure 5a. prior to the Start-of-Record character are ignored. Each record has a checksum which is verified as the data associated woith the record is stored to memory. If the checksum is in error, loading is stopped, and a question mark is printed. The operator now has the options to: abort the load, repositioning and rereading the record (entering an L), or continuing the load (entering an L), ignoring the checksum error. The continue option is not recommended since if the error is in the address field the data may destroy data in another area of memory.

Here a short tape has been loaded using the load (L) command. The "S9" has been entered from the keyboard to exit the loader.

4.3 Print/Punch Memory Dump

(To print or punch Type P on the terminal)

The PRINT/PUNCH Memory Dump (P) function of MIKBUG punches an absolute formatted object tape. The formatted object tape format is shown in Figure 5b. The beginning and ending address must be entered using memory change. The beginning address is to be entered at location A002 and A003 and the ending address at locations A004 and A005. All address and data will be in hexadecimal. THe beginning address is the address of the first byte to be punched and the ending address is the address of the last byte to be punched.

4.3.1 Tape Format

4.4 Memory Change

(To open a memory location Type M on the terminal and type the memory location in hexadecimal)

The memory is changed by using the following three step sequence:

  1. Opening the location which displays the contents,
  2. changing the location, and
  3. closing the location

An open location is one whose contents MIKBUG has printed on the teletype for examination, and whose contents are available for change. A closed location is one whose contents are no longer available for change. Any 8 bit byte may be opened. The contents of an open location may be changed by typing a space followed by two hex characters (new contents). MIKBUG will then open the next location. To end the sequence, and close a location without any change, a space should be typed followed by a CArriage Return (CR). Once a location has been opened, the next location may be opened by typing any character except a space. To open a location, respond to the asterisk with an "M." MIKBUG will then type a space. Next, type the hex address of the location to be opened; it must be 4 hex characters in length.

In the first example, location 1000 now contains FC and location 1001 is now open.

In the second example, location 0000 was opened followed by 0001-0005. No location or data was changed. If memory change does not caust the contents of a register to change, a question mark will be printed

4.5 Display Contents of Target Registers

(Type R on the terminal)

The target program registers can be displayed with the R command. After the registers have been displayed, they may be changed by using memory change. The Stack Pointer pints to the first unused location on the stac. The next location contains the condition codes (CC), followed by the B accumulator (B), the A accumulator (A), the Index Register (X), the Program counter (P) and the Stack Pinter (S). The registers are stored on the user's stack.

In the above example, display registers were used to print out the Registers. Memory change was then used to display the registers in the stack. The sequence ws ended by typing a space and a carriage return.

4.6 Go to Target Program

(To start a program use a key G on the terminal)

The go to target program function (G) causes the target program registers to be loaded from the user's stak and execution of the program starting at the address pointed to by the program counter on the stack. The beginning address of the user's program must therefore be loaded into the program counter from the stack address A048 (MS byte) and A049 (LS byte).

The target program will free run until:

  1. A wait (WAI) instruction is encountered where the program will wait for a non-maskable interrupt or an interrupt request.
  2. A Software interrupt (SWI) is encountered at which time control will jump back into MIKBUG, The user's register will be stored on the user's stack and they will also be displayed by MIKBUG. Therefore, SWI along with memory change may be used to set breakpoints.
  3. The target program blows (recovery is by Restart push-button).

The example shows how to use the different commands in executing the following program: (In the example, the registers are first set with a memory change)

4.7 Interrupt Request

(See Motorola Engineering Note 100)

The interrupt request line when pulled will cause a request for interupt to be input to the MPU. If interrupts are not masked, the MPU will jump to the interrupt service routine indirectly through locations A000 (high byte) and A002 (low byte). This is accomplished in MIKBUG by loading A000/A001 and then jumping to that address.

4.8 Non-Maskable Interrupt

(See Motorola Engineering Note 100)

When the interrupt occurs all the registers will be stored in the user's stack. In REV 0.8 (XCM44303) of MIKBUG the MPU will then wait for the Restart button to be pushed. After this has occured the user may examine the registers that have been saved on the stack. In REV 9 (MCM6830L7) of MIKBUG the MPU will go to locations A006 (high byte) and A007 (low byte) for the address of the NMI service routine.

4.9 Allowable Characters

At any time during the execution of MIKBUG, only hex characters and control characters (P, M, L, G, R, a space, and a Carriage Return) are allowed. If an invalid character is input, it will be echoed back to the terminal and the current function will be terminated.

5.0 System Operation

Figure 6 - Address Map
Address Line A15A14A13A12A11A10A9 A8A7A6A5A4A3A2A1A0
RAM U6
0000-007F
00 00XXXXXXX
RAM U5
0080-00FF
00 01XXXXXXX
RAM U4
0100-017F
00 10XXXXXXX
RAM U3
0180-017F
00 11XXXXXXX
RAM U2
0200-027F
01 00XXXXXXX
PIA U9
8004-8007
10 1XX
PIA U10
8008-800B
10 1XX
ACIA U11
8011-8011
10 1X
RAM U7
A000-A07F
1010
ROM U8
E000-E1FF
1110 XXXXXXXXX

The MEK6800D1 Evaluation Kit consists of 1 MPU, 2 PIAs, 1 ACIA, 2 RAMs, and 1 ROM. The memory address maps (Figures 6 and 7) show how these parts are located in the system.

The RAMs in hex location 0000 through 027F may be used by the user to program the MPU and PIAs to test evaluate these devices. The RAM at location A000 is used by the MIKBUG control program for temorary storage and stack area.

The ROM is located at location E000 and it is assumes that there are no devices in the system at a higher address.

The PIAs are located at 8004 and 8008. The PIA at location 8004 is used by the MIKBUG control program to interface the TTY and RS-232 device. It is also used with the Programmable Timer (MC14536) for serial interface timing. The PIA at location 8008 is available for use by the user for evaluation of PIA through the connector P2

The ACIA is located at address 8010 and is available at the user's peripheral device through connector P2. To provide the proper timing for serial data transmission or reception an external baud rate generator must be connected through connector P2 to pin 4 and 3 of the ACIA. The MC14411 bit rate generator can be used with a crystal of 1.843 MHz to obtain precise bit rates from 110-9600 bits/sec. Refer to Figure 8.

The interconnecting schematic provides for both serial and parallel data transmission with additional user's peripherals; this can be arranged using 1 ACIA and 1 PIA device. The second PIA is used to interface with TTY or the TI733, providing access to the MIKBUG program.

The MINIBUG program, also contained in the ROM MCM6830L7 and described in Motorola Entineering Note 100, may be used in conjunction with the ACIA to interface with the TTY instead of the MIKBUG program, using the PIA to interface with TTY. However, use of the MINIBUG program with the Evauation Kit is not recommended for the following reasons:

  • the MINIBUG program does not offer the possibility of PRINT/PUNCH;
  • the RAM used in conjunction with the MINIBUG must be located at FF00-FFFF, which means the implementation of a special address decoder to select this RAM. If a TTL circuit is used for the decoder, care must be taken to not overload the address bus;
  • to use the Restart vectoring address (FFFF and FFFE) of the MPU, a special hardware address converter (or ROM) must be used toload the Program COunter with the address of the first instruction (FED6).

To use MINIBUG, or some of its subroutines with this Evaluation Kit without using special decoders, the MINIBUG program must be relocated in RAMs U2 through U6 and the scratch pad RAM must be transferred from F000 to A000.

5.1 EVALUATION KIT CONNECTOR PIN ASSIGNMENT

* Note: The Data Bus and Address Bus are directly connected to the P1 connector.
** VUA is used to interface with external memory from EXORciser.

CONNECTOR P3
Pin Number Function Pin Number Function
1 MPU Signal Ground (5V Ground) 9 +12 VDC
2 RS232C Input 10 +RS232C common, Reader Control Return 0V (+/- 12V)
3 RS232C Output 11 Reader Control
4 Speed selected: 30 ch/sec. 12 -12VDC, used as TTY common
5 Not Used 13 TTY Serial In
6 Speed selected: 10 ch/sec. 14 External Reset Switch: N.O. contacts
7 Not Used 15 TTY Serial Out
8 Speed selected: 10/30 ch/sec. 16 External Reset Switch: N.C. contacts

5.2 Option A

5.2.1 Memory Expansion

The MEK Board memory may be expanded using either the MEX6812-1 2K static RAM module or the MEX6815-1 8K dynamic RAM module. When adding memory external to the Board, two precautions must be remembered. One, the Board has no buffering aand the user must be careful not to exceed the MC6800 drive capability (130 pf and one TTL load). Two, conflict with on Board addresses. This contention problem may be avoided by removing U2-U6 from the Board and constraining external memory between 000016 and 7FFF16.

The MEK Board is compatible with the EXORciser mother board and is therefore easily adaptable to the 2K and 8 K memory boards available with the EXORciser. Following is a description of memory expansion requirements using the MEX6812-1 2Kx8 static RAM module and the MEX6815-1 8Kx8 dynamic RAM boards.

5.2.2 Memory Expansion with MEX6812-1

The MEX6812-1 is a static memory board having the same functional pin out as the MEK Board. No alteratons are required to the MEK Board.

5.2.3 Memory Expansion with MEX6815-1

The MEK PC Board must be modified to allow periodic refreshing of the 8K Dynamic Memory Module. This may be accomplished by stretching the ∅1 and ∅2 clocks into the MPU in order to place it in a wait state (see Chapter 4 of the M6800 Applications Manual for additional detail).

Figure 9 shows the required interface and associated timing. The effect of the REF REQ from the memory module will be to stretch te MPU's ∅1 and ∅2 clocks while allowing the BUS ∅2 )(Pin J) to continue running. The REF GRANT signal allows the memory to do a refresh cycle. Note that an MC7479 flip-flop and a MC7400 Nand gate must be added to the MEK PC Board. Pin J on the MEK PC Board must be jumpered to Pin L in order to provide a memory clock for the memory module.

Figure 10 shows a portion of the MEK PC Board circuit schematic diagram highlighting this modification for operation with MEX6815-1.

5.3 Option B

5.3.1 Resident Software

A version of the resident editor and assembler is available for use with the MIKBUG ROM. The primary difference is seen in the I/O software drivers: the MIKBUG resident software assumes a PIA interface instead of a ACIA interface available on the EXORcisor. THe only operating distinction is that the editor command "Control H" (see resident software supplement for description) used by the EXORciser is replaced by "Control A" when using the MIKBUG version. The MIKBUG resident assembler/editor programs are available in either of three different media identifed by the following part numbers.

  1. M68EAE6812A - MIKBUG resident assembler/editor on cassette.
  2. M68EAE6812B - MIKBUG resident assembler/editor on paper tape.
  3. M68EAE6812D - MIKBUG resident assembler/editor on floppy disk.

5.3.2 Hardware Modification

To operate the resident software with the MEK Board, a modification is required at the I/O interface. Referring to the basic circuit schematic, all data received (through U17B) is echoed back to the output (through U17A). This transfers all input data back to the printer of the terminal

When using the resident assembler, this feature produces an undesirable printout. While reading the source tape during assembly, the source listing will be printed as it is read. The source listing will therefore be intermixed with the assembly listing/object listing being generated by the assembler and outputted through the PIA. A change to the MEK Board must be made to suppress the echo when loading data into the system. Figure 11 shows the required changes to suppress the echo during a data read (CB=1). Note that the MC1489 is replaced by the MC7400 at U17 and PC track must be cut between the following locations to implement the desired gating function: U9-2 to U9-9 U17-1 to U17-8

Note also that this change will suppress a printout when using the MIKBUG program "load" function. If a tape printout is desired, it must be done locally at the terminal.

5.3.3 Editor Initialization

From a power on condition, MIKBUG is entered by depressing the restart button. MIKBUG commands are then used as follows to access the resident editor.

  1. Load the resident editor program.
  2. Define the starting address of the resident editor. This is done by changing the program counter on the memory stack to a value of 010316 (Locations A048, A049).
  3. Start the resident editor program using the "G" command of the MIKBUG program.

Shown below in Figure 12 is a printout of the access procedure.

5.3.4 Assembler Initialization

Initializing the assembler follows the same procedure demonstrated above to initialize the editor. The only difference between the two is the starting address. Figure 13 shows a printout when accessing the resident assembler. Note the starting address is now 010016.
Further Notes:

  1. The resident software requires 8K of program. When using the MEX6815-1 8K dynamic board refer to "Memory Expansion", page 12, for information on memory expansion.
  2. The resident editor and assembler are loaded independent of one another. When both are loaded into the system, the programs are fully co-resident.

5.4 Parts List

Symbol Qty Description Supplier Part or Stock No. Symbol Qty Description Supplier Part or Stock No.
1 Printed Circuit Board Motorola MEC6800C U16 1 Programmable Timer Motorola MC14536P/L
P1 (External
to PC
Board
1 Connector 2x43 Pins,
0.156" centers
(Female)
Burndy
Amphenol
Alco
U17 1 Quad Line Receiver
RS232C
Motorola MC1489P/L
P2 1 Connector, 40 Pins, P2 3M 3432 U18 1 Quad Line Driver
RS232C
Motorola MC1488P/L
P3 1 Socket, Low Profile,
16 Pins
Barnes 121-20012-164FOR U19-U21 2 Opto-Coupler Motorola 4N33
5 Socket, Low Profile,
14 Pins
Barnes 121-20012-144 CR1-CR4 4 Diode Motorola 1N4001
2 Socket, Low Profile,
16 Pins
Barnes 121-20012-164FOR R4, R5 2 Resistor, 22Ω,
1/4W, 5%
4 Socket, Low Profile,
24 Pins
TI C934-402 R8, R12, R6,
R7, R29
5 Resistor, 1K,
1/4W, 5%
3 Socket, Low Profile,
40 Pins
TI C934-402 R9, R13, R23A,
R23B
4 Potentiometer, 50K,
1/4W, 5%
TRW, Bourns.
C1 1 Capacitor, 100µF
16VDC
R10, R14 2 Resistor, 5.1K,
1/4W, 5%
C2, C3 1 Capacitor, 33pF, 500 V
Dipped Mica
R18, R2 2 Resistor, 10K,
1/4W, 5%
C4 1 Capacitor, 680pF
500V, Dipped Mica
R19 1 Resistor, 100K,
1/4W, 5%
C5 thru C15 1 Capacitor, 0.1µF, 50V
+/-20% Tantalum
R20, R22 2 Resistor, 510Ω,
1/4W, 5%
U1 1 MPU Motorola MC6800L R24 1 Resistor, 820Ω,
1/4W, 5%
U6-U7 2 RAMs (possibility
to add 4 more
on the card
Motorola MCM6810L1 R25 1 Resistor, 1.1K,
1/4W, 5%
U8 1 ROM Motorola MCM6830L7 R26 1 Resistor, 150Ω,
1/4W, 5%
U9-U10 1 PIAs Motorola MC6820L R28 1 Resistor, 3.3K,
1/4W, 5%
U11 1 ACIA Motorola MC6850L R1, R3,
R11, R15,
R16, R17,
R21, R27,
R30, R31
1 Resistor, 2.2K,
1/4W, 5%
U12 1 Dual Monostble Motorola MC6802P/L
U13 1 Quad Driver Motorola MC3459P/L S1 1 Switch Control Switch
Circuit
B8600
U14 1 Quad 2 input
NAND Gate
Motorola MC7400P/L P3 Connector/
Cable
1 16 Pin Header with
10' Cable
Assembly Corp. CA-S16P02-
281-A0-120
U15 1 Quad 2 input
NAND Buffers
Motorola MC7437P/L

    The M6800 family chips used in the board are listed below :

  • CPU MC6800 or XC6800B 8-bit microprocessor. The prefix XC was used for engineering prototypes. This chip has a 1 MHz max clock frequency and, as the others in this board, is housed in a ceramic DIP, with a gold top and gold pins.
  • MCM6810L (x7) 128 Byte static RAM. The first six RAM, addresses from $000016 to 027F16, are the RAM program memories. The user has the huge amount of 640 Bytes for storing his program code. The 7th MCM6810L (address at A00016 hex) is used by the MIKBUG control program as a temporary storage and stack area.
  • MCM6830L7 (x1) This is a 1024x8 mask-programed ROM, located at E00016. Two resident control programs, MIKBUG and MINIBUG are firmwares allowing the loading, debugging, and controlling of the user programs.
  • MC6820 or XC6820 (x2) Peripheral Interface Adapters (PIA). XC prefix for engineering prototypes. This device is capable of interfacing the MPU to peripherals through two 8-bit bidirectional parallel ports and four control lines.
  • MC6850L (x1) Asynchronous Communication Interface Adapter (ACIA). Used to interface the MC6800 to asynchronous serial devices.

Additional components are used for interfacing and/or controlling these chips : CPU and UART clock generation, connection to the external world, etc.

The board needs 3 power supplies : +5 V (1 A) for the M6800 chips and the logic glue, +12 and -12 V (# 100 mA) for the RS232 interface. RS232 rates are 110 or 300 Bauds but only 110 Bauds is available on this module. In 1975, the 110 Bds ASR33 Teletype®, with automatic reader and punch options, was the most frequently used terminal (20 mA loop current or RS232 V24).

2. The first tests

After a thorough visual inspection and an ohmmeter check of the power supplies lines to detect any short-circuit, I connect the RS232 connector to my PC. I then run the Hyperterminal software (110 Bds, 8 bits, 1 Stop bit, No Parity, No Flux Control, VT100 emulation) and switch on the power supplies. After pushing the Board Reset switch, I can see a lot of weird characters on my PC screen : it seems that the RS232 bit rate is not correct.

The schematic shows that this speed is defined by a RC network connected to a MC14536 chip used as a timer : I try to adjust R (a 47kOhms potentiometer) to get a 9 ms half-period on TP4, as explained in the manual. No success !

I then suspect that C is the culprit : its value, according to my schematic, is 680 pF but the one on the board is a 1000 pF. A check with my capacitor meter says "300 pF""! I replace it with a new one, reconnect the board and push the Reset switch. I can now adjust R to read 9 ms on my scope. A "*" character is displayed on my PC screen showing that MIKBUG welcomes me and is ready to accept commands!

Before conducting more experiments, I put the evaluation module in a box to protect it against dust and shocks.

3. The first program

I'm now ready to write a short program and run it. In 1975, you had 3 ways to develop a program for this board:

  • - Use the Motorola Assembler on a GE Timeshared Service System or equivalent.
  • - Purchase an EXORCISER Motorola Development Tool.
  • - The simplest and cheapest way was to write M6800 assembly instructions on a sheet of paper, translate them into machine language hexadecimal bytes and then write these bytes into the RAM! There was not an assembler in the MIKBUG ROM, only RAM read and write commands and load, print and debug commands.
Nowadays, one can find several free assemblers accepting M6800 instructions and generating machine code in Motorola format, for instance: http://sourceforge.net/projects/asm68c/ http://www.hvrsoftware.com/6800emu.htm

However, I choose to play the game as I did 40 years ago and to write machine code the old way. Here is a copy of the paper sheet of one of my recently hand-assembled small program displaying "HELLO WORLD" :

This program makes use of the PDATA1 MIKBUG routine to display the ASCII string and of the CTRL routine to give control back to MIKBUG at the end.

The MIKBUG firmware enables the user to perform the following functions :

  • - M : Memory examine and change.
  • - R : Display contents of MPU Registers
  • - P : Print/Punch memory
  • - L : Memory Loader
  • - G : Go to User's Program

We use the M command to write the machine Hex code bytes into the memory, beginning at address 0010 hex and ending at 001E hex. The ASCII string is written in the same way (M command) from address 0100 hex to 010E hex.

Then we write the beginning address of our program (0010 hex) into the Stack addresses A048 hex and A049 hex and type G to run the program. The picture below is a copy of the PC screen :

The first 17 lines show the contents of the RAM obtained with the P command : from 0010 hex to 001E hex for the program and from 0100 hex to 010E for the text. Then you see the Stack A048, A049 hex where I write the beginning address of my program. The G command runs the program which prints "HELLO WORLD" then gives control back to MIKBUG.