120
8080 Microprocessor Kit User's Manual Rev 1.0, December 2017

8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

  • Upload
    vandung

  • View
    241

  • Download
    7

Embed Size (px)

Citation preview

Page 1: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

8080 Microprocessor KitUser's Manual

Rev 1.0, December 2017

Page 2: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

8080 MICROPROCESSOR KIT

CONTENTS

OVERVIEW...........................................................................................4

FUNCTIONAL BLOCK DIAGRAM........................................................4

HARDWARE LAYOUT...........................................................................5

KEYBOARD LAYOUT............................................................................7

HARDWARE FEATURES......................................................................9

MONITOR PROGRAM FEATURES.......................................................9

MEMORY AND I/O MAPS......................................................................10

GETTING STARTED..............................................................................11

HOW TO ENTER PROGRAM USING HEX CODE................................13

USER REGISTERS DISPLAY................................................................14

TEST CODE RUNNING…………………………..…................................15 GPIO1 LED............................................................................................16

RS232C PORT......................................................................................17

DATA FRAME for UART COMMUNICATION......................................17

CONNECTING KIT TO TERMINAL.......................................................18

EXPANSION BUS HEADER.................................................................22

10ms TICK GENERATOR....................................................................23

RST 7 STROBING by 8228 BUS CONTROLLER……………………...24

CONNECTING LCD MODULE.............................................................25

+12V, -5V POWER SUPPLY……………………………………………….26

Page 3: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

LOGIC PROBE POWER SUPPLY........................................................27

HARDWARE SCHEMATIC, BOM

MONITOR PROGRAM LISTINGS

Page 4: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

OVERVIEW

The 8080 Microprocessor kit is the educational kit designed for self learning the Intel8080 microprocessor coding. The microcomputer is built with three chips system, 8080 CPU, 8288 bus controller and 8284 clock generator. The kit has 32kB user RAM and 32kB monitor ROM. The kit provides hex display and hex keys. It can display memory contents with 64kB logical locations. The hex key can use for entering the 8080 instructions. The kit also has serial port for Intel hex file downloading. The 10ms tick generator is for time triggering experiment.

FUNCTIONAL BLOCK DIAGRAM

Notes

1. UART is software control for low speed asynchronous communication.2. The kit has 8-bit LCD module interfacing bus.3. 100Hz Tick generator is for interrupt experiment.4. Ports for display and keypad interfacing were built with discrete logic IC chips.5. Memory and Port decoders are made with Programmable Logic Device, PLD.6. The CPU, bus controller, clock generator are hot under operation. 4

Page 5: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

HARDWARE LAYOUT

5

GPIO1 LED, 8-bit binary display (address is 00H)

16-pin Text LCD header. Selector for 10ms tick or INTR key

DC jack, +9VDC

RS232C connector, DB9 male

Page 6: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

Important Notes

1. Plugging or removing the LCD module must be done when the kit is powered off!

2. AC adapter should provide approx. +9VDC, higher voltage will cause the voltage regulator chip becomes hot.

3. The kit has diode protection for wrong polarity of adapter jack. If the center pin is not the positive (+), the diode will be reverse bias, preventing wrong polarity feeding to voltage regulator.

6

Page 7: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

KEYBOARD LAYOUT

HEX keys Hexadecimal number 0 to F with associated user registers, AF, BC, DE, HL, SP, PC, flag display and alternate functions (use with ALT key). CPU control keys

RESET Reset the CPU, the 8080 will JUMP to location 0000.

INTR Make INTR pin to logic low, used for experimenting with interrupt process

Monitor function keys

HOME Return current address to location 8100.

DATA Set entry mode of hex keys to Data field

ADDR Set entry mode of hex keys to Address field

GO Jump from monitor program to user code

- Decrement current display address by one

+ Increment current display address by one

MOD Modify user registers, after a given user register was selected.

7

Page 8: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

ALT Alternate functions, used with HEX key. 0 display AF user register

1 display BC user register2 display DE user register3 display HL user register4 display SP user register5 display PC user register6 display carry flag7 display Zero flag8 display Sign flag9 display AC flagA display Parity flagB set Break locationC clear Break locationD Delete byteE Insert byte

F Turn ON/OFF beep

USER CPU will jump to location 8050, pre-loaded with HALT instruction, 76. User may add the code for USER key.

TEST Write the text to LCD if connected and test gpio1 LED

8

Page 9: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

HARDWARE FEATURES Hardware features:

CPU: 8080 Microprocessor, 2.048MHz (18.432MHz/9) Oscillator: 8224 Bus controller: 8228 with RST 7 strobing for interrupt vector Memory: 32kB RAM, 32kB EPROM Memory and I/O Decoder chip: Programmable Logic Device GAL16V8D Display: high brightness 6-digit 7-segment LED Keyboard: 28 keys RS232 port: software controlled UART 2400 bit/s 8n1 Debugging LED: 8-bit GPIO1 LED at location 00H Tick: 10ms tick produced by 89C2051 for time trigger experiment Text LCD interface: direct CPU bus interface text LCD Brownout reset: KIA7042 reset chip for power brownout reset HALT and INTE bit indicator LEDs. +12V and -5V power supply: MC34063 DC-to-DC converter and Intersil

ICL7660. Power consumption: 500mA @7.5V AC adapter Expansion header: 40-pin header

MONITOR PROGRAM FEATURES MONITOR program features:

Enter 8080 instructions using hex code directly Test code running with break point User registers for status capturing, direct status flag display Insert/delete byte Beep ON/OFF Simple terminal connecting with 2400 bit/s RS232 port.

9

Page 10: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

MEMORY AND I/O MAPS The kit provides two spaces of memory, i.e. 1) RAM, 2) monitor ROM and space for I/O ports.

Monitor ROM is placed from location 0000H to 7FFFH. RAM starts at 8000H to FFFFH

I/O ports are located from 00H to FFH.

GPIO1 LED is located at 0. User can use instruction that write 8-bit data with 8-bit address easily, e.g.

3E 01 MVI A,1D3 00 OUT 0

DF RST 3

10

FFFFH

00H

LCD command write

20H40H

LCD data write

80H

81H82H

GPIO1 LED

PORT1

PORT2

PORT0

64kB Memory I/O ports

8000H

60H

32kB User RAM

32kB MonitorROM

0

7FFFH

LCD command read

83H LCD data writeA0H

FFH

Page 11: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

GETTING STARTED

The kit accepts DC power supply with minimum voltage of +7.5V. It draws DC current approx. 250mA. However we can use +9VDC from any AC adapter. The example of AC adapter is shown below.

The center pin is positive. The outer is GND.

11

Page 12: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

If your adapter is adjustable output voltage, try with approx. +9V. Higher voltage will make higher power loss at the voltage regulator, 7805. Dropping voltage across 7805 is approx. +2V. To get +5VDC for the kit, we thus need DC input >+7.5V.

When power up, we will see the cold boot message 8080 running.

8080Then the display will show HOME location at 8100. The data field will show its content.

8100 30. 12

Page 13: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

HOW TO ENTER PROGRAM USING HEX CODE Let us try enter HEX CODE of the example program to the memory and test it. We write the program with 8080 instuction. Address Hex code Label Instruction comment

8100 3E 01 MAIN MVI A,1 Load A with 1

8102 D3 00 OUT 0 Write A to GPIO1 @ 00

8104 DF RST 3 Return to monitor

Our test program has only three instructions.

The first instruction is

MVI A,1

Load A register with the 8-bit constant, 01.

This instruction has two bytes hex code i.e., 3E, and 01. 3E is instruction MVI A,n and 01 isn.

The 2nd instruction is

OUT 0 Copy A register to output port, gpio1 LED at location 00.

The instruction's machine code is D3. The location of GPIO1 is 00.

The last instruction is RST 3, hex code DF jump back to monitor program at 0018H.

This test code has only 5 bytes, 3E, 01, D3, 00, DF. The first byte will be entered to location 8100. And the following bytes will be entered at 8101, 8102, 8103, 8104.

Let us see how to enter these codes into the memory.

Step 1 Press RESET the display will show current memory address and its contents.

8100 00. Shown the location 8100 has data 00. There are small dots at the data field indicating the active field, ready for modifying the hex contents.

13

Page 14: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

Step 2 Press key 3 and key E. The new hex code 3E will be entered to the location 8100.

8100 3E. Step 3 Press key + to increment the location from 8100 to 8101. Then enter hex key 1.

8101 01.

Repeat Step 3 until completed for the last location. We can verify the hex code with key + or key -.

To change the display location, press key ADDR. The dots will move to Address field. Any hex key pressed will change the display address.

USER REGISTERS DISPLAY Before we test the code running, let us see how to examine user registers. User registers are the memory block in RAM that used to save the contents of CPU registers after completed a given program running. We can examine the user registers for checking our code running then.

Press key ALT, then press key 0, it will show 16-bit contents of register AF.

0397 AF

Press key Reg, 1, 2, 3, for BC, DE, HL register.

Fe00 BC

14

Page 15: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

TEST CODE RUNNING

We can test above code running by pressing key GO. The last instruction RST 3 will return the CPU to monitor program to save CPU registers to user registers that we canexamine the program operation.

Location hex code instruction

8100 3E 01 MVI A,18102 D3 00 OUT 08104 DF RST 3

Now let us enter code, when completed, press key HOME then GO.

What is happening?

The GPIO1 LED will be 0000 0001.

Can you change the display from 0000 0001 to another value? How?

Another example for fun, making 8-bit binary counting at GPIO1.

Location hex code instruction

0001 8100 .ORG 8100H0002 8100 0003 8100 D3 00 LOOP OUT 00004 8102 3C INR A0005 8103 CD 09 81 CALL DELAY0006 8106 C3 00 81 JMP LOOP0007 8109 0008 8109 11 FF FF DELAY LXI D,-10009 810C 21 00 30 LXI H,3000H0010 810F 19 LOOP2 DAD D ; HL=HL+DE0011 8110 DA 0F 81 JC LOOP20012 8113 C9 RET0013 8114 0014 8114 .ENDtasm: Number of errors = 0

Now let us enter code, when completed, press key HOME then GO.

What is happening? Can you change speed? How?

15

Page 16: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

GPIO1 LED The kit provides a useful 8-bit binary display. It can be used to debug the program or code running demonstration. The I/O address is 00. The output port is 8-bit data flip-flop. Logic 1 at the output will make LED lit.

This debug LED is memory location at 00. We can use instruction OUT 0 that writes 8-bit data to it. The LED will be turned on for bit ‘1’ and turned off for bit ‘0’.

The hex code for OUT 0 is D3, 00. Only two bytes and easy to remember!

Anytime we need to check the 8-bit contents, we can copy it to register A then use this instruction to write it to the gpio1 LED easily.

16

Page 17: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

RS232C PORT

The RS232C port is for serial communication. We can use a cross cable or null MODEM cable to connect between the kit and terminal. The connector for both sides are DB9 female. We may build it or buying fromcomputer stores.

For new PC or laptop computer without the RS232 port.It has only USB port, we may have the RS232C port byusing the USB to RS232 converter.

DATA FRAME for UART COMMUNICATION

Serial data that communicated between kit and terminalis asynchronous format. The 68008 kit has no UART chip, instead it uses software controlled to produce bit rate of 2400 bit/s. The data frame is composed of start bit, 8-data bit and stop bit. For our kit, period = 1/2400 = 417 microseconds.

Since bit period is provided by machine cycle delay. Thus to send/receive serial data correctly, all interrupts must be disabled.

17

Page 18: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

CONNECTING 8080 KIT TO TERMINAL We can connect the 8080 kit to a terminal by RS232C cross cable. You may download free terminal program, teraterm from this URL, http://ttssh2.sourceforge.jp/index.html.en

The example shows connecting laptop with COM1 port to the RS232C port of the 8080 kit. New laptop that has no COM port, we may use the USB-RS232 adapter for converting the USB port to RS232 port.

To download Intel hex file that generated from the assembler or c compiler, set serial port speed to 2400 bit/s, 8-data bit, no parity, no flow control, one stop bit.

Step 1 Run teraterm, then click at Serial connection.

18

VT100 Terminal

8080 Kit

RS232C cross cable

Page 19: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

Step 2 Click setup>Serial port.

Step 3 Set serial port speed to 2400 and format as shown below.

19

Page 20: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

Step 4 Press ENTER key on terminal. The kit will connect terminal automatically. Press key ? For help commands list.

Press key L for hex file downloading.

Step 5 On PC, Click file>Send File>TEST1.HEX.

20

Page 21: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

The kit will read the hex file, write to memory, when completed if no checksum error, the display will show no errors.

Press key J then ENTER, the CPU to jump to location 8100, running the code. More terminal commands are compatible with 8085 kit.

21

Page 22: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

EXPANSION BUS HEADER JP1, 40-pin header provides CPU bus signals for expansion or I/O interfacing. Students may learn how to make the simple I/O port, interfacing to Analog-to-Digital Converter, interfacing to stepper motor or AC power circuits.

22

Page 23: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

10ms TICK GENERATOR SW1 is a selector for interrupt source between key INTR or 10ms tick produced by 89C2051 microcontroller. Tick generator is software controlled using timer0 interruptin the 89C2051 chip. The active low tick signal is sent to P3.7. For tick running indicator, P1.7 drives D2 LED.

Tick is a 10ms periodic signal for triggering the 8080 INTR pin. When select SW1 to Tick, the 8080 CPU can be triggered by the external interrupt. The 100Hz tick or 10ms tick can be used to produce tasks that executed with multiple of tick.

NOTE: Key TEST, will use 10ms tick for making binary counting at 100Hz rate.

23

10ms 10ms 10ms 10ms

10ms tick

Page 24: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

RST 7 STROBING by 8228 BUS CONTROLLER The 8228 bus controller provides RST 7 instruction code (FF) on the data bus when itget interrupt recognition from CPU. Sample code for testing interrupt with RST 7 strobing by 8228 bus controller.

0002 8038 .ORG 8038H 0003 8038 C3 04 81 JMP SERVICE_RST7 0004 803B 0005 8100 .ORG 8100H 0006 8100 0007 8100 FB MAIN EI 0008 8101 C3 01 81 JMP $ 0009 8104 0010 8104 0011 8104 SERVICE_RST7 0012 8104 0013 8104 3C INR A 0014 8105 D3 00 OUT 0 0015 8107 FB EI 0016 8108 C9 RET 0017 8109 0018 8109 .END 0019 8109 0020 8109 tasm: Number of errors = 0

The interrupt vector for RST 7 instruction is located at 0038H in ROM, the kit has relocated it to 8038 in RAM. User can enter the service routine for RST 7 then.

To test this code, enter the instruction hex code to memory 8100 to 8108 and the codefor jump instruction at 8038.

Set SW1 to INTR. Press key HOME, then GO. The INTE led will be lit waiting for INTR signal. Try pressing the INTR key. What is happening at the GPIO1 LED?

Now if we set SW1 to 10ms tick signal, try run it again. We will see the binary counting with 100Hz rate.

24

Page 25: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

CONNECTING LCD MODULE

JR1 is 16-pin header for connecting the LCD module. The example shows connectingthe 20x2 line text LCD module. R6 is a current limit resistor for back-light. R10 is trimmer POT for contrast adjustment. The LCD module is interfaced to the 8080 bus directly. The command and data registers are located in I/O space having address from 80H to 83H.

Be advised that plugging or removing the LCD module must be done when the kit is powered off.

Text LCD module accepts ASCII codes for displaying the message on screen.

Without settings the LCD by software, no characters will be displayed. The first line will be black line by adjusting the R10 for contrast adjustment.

If the LCD module is connected, key TEST will write text to the LCD for testing.

Any text LCD with HD44780 compatible controller can be used.

25

Page 26: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

+12V, -5V POWER SUPPLY

The 8080 CPU requires +12V, -5V, +5V power supply. +5V is produced by 7805 voltage regulator. +12V is produced by DC-to-DC converter circuit using the MC34063 chip. R5 and R8 must be carefully selected for +12V output.

Negative -5V power supply is produced by ICL7660 circuit.

Importance note: use digital multimeter for checking +12V and -5V before insert the CPU!

26

Page 27: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

LOGIC PROBE POWER SUPPLY

The kit provides test points TP1(+5V) and TP2(GND) for using the logic probe. Students may learn digital logic signals with logic probe easily. Tick signal is indicated by D2 LED blinking. Red clip is for +5V and Black clip for GND.

27

+ 5V at TP1

GND at TP2

Page 28: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

HARDWARE SCHEMATIC, PARTS LIST

Page 29: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

5

5

4

4

3

3

2

2

1

1

D D

C C

B B

A A

0x0000-0x0FFFmonitor ROM

0x1000-0x8FFF User RAM

16x2 text LCD interface

RSR/W

R2

R1

VPP = +1.25(1+R2/R1)

INTR test switch

10ms Tick

I/O expansion connector

IDD 12mA

ICC115mA

ICCmax 190mA

ICCmax 80mA

IDDmax 70mA

Designed by Wichit Sirichote, (C) 2016

RST7 opcode strobing

Xtal 18.432MHz

<Doc> 2

8080 Microprocessor Kit

B

1 3Friday, May 06, 2016

Title

Size Document Number Rev

Date: Sheet of

D3_HALT

D4

A2

A7 A7

A4

A14

A0

A10

D5

D2

D7 A7

A14

A6 A6

ROMCE

A11

D2

A8

D1

A12

A0 A0

A11

MRD

D4

MWR

A13

A1

A3

A10

MRD

A12

RAMCE

A3 A3

A13

A2 A2A1 A1

D6

D3

A5A5 A5A4 A4

A6

A9A9A8

D0

D6

D0

D5

D1

D4D3

D7

D2

D6

D0

D5

D1

D3

D7

INTROMCE

GPIO1

INTR

A6

IORD

A12

A14

A7

A13

RAMCE

A5

INTAIORDIOWRMWRMRD

IOWR

STSTB

SYNC

A15

A15

RESET

RESET

D1

D7

VLED

D6

D2D3

D2

D5

D4

D0

D0

D6D7

D5

D1

D4D3

GPIO1

D2D1

A0

D7

D3

D5

D0

D4

A1

D6

DC2

VH

INT

TICKINTR

CLK

D3

D5

D0

A6A7

D1

INTR

IOWR

A0

A5

A3

IORD

A1

D6

RESET_HI

D7

D2

D4

A4

A2

INTE

RDYIN

D3_HALT

STSTB

VLED

STSTB

INTE VLED

LCD_EPORT0PORT1PORT2

D5D6

D4

D1D0

D3D2

D7

LCD_E

RESET_HI CLK

VCC

TICK

+5V

+5V

+5V

+12V

+12V

+5V

+5V

+5V

-5V

VCC

+5V

+5V

+5V

VCC

+12V

+12V

+5V

-5V

+5V

+5V

VCC+5V

+5V

+12V

+5V

+5V

+5V

+5V

D5

R310K

D4

SW2

INTU7

AM8224

1514

32157

13

9

11106

124

XTAL1XTAL2

RDYINRESINRSTSYNCSTSTBTANK

VDD

ø1ø2

ø2TTL

OSCRDY

D3

LED 3mm

C170.1uF

D2

D9

1N5236A

D1

U5

AM8228

28

15171210

61921

8

1316119518207

2325272624

224213

VCC

D0D1D2D3D4D5D6D7

DB0DB1DB2DB3DB4DB5DB6DB7

INTAI/OR

I/OWMEMWMEMR

BUSENDBINHLDASSTBWR

C150.1uF

JP1HEADER 20X2

1 23 45 67 89 1011 1213 1415 1617 1819 2021 2223 2425 2627 2829 3031 3233 3435 3637 3839 40

L1100uH

R82.2k

D12

1N4007

12

Q1

KIA7042

1

2

3

Y112MHz

+C11

10uF 16V

+ C310uF

U8

MC34063A

5378

12

64

COMPTCAPIPKIDC

ISWCISWE

VC

CG

ND

R520k

D18

HALT LED (RED)

U1

8080

20

28 2

24

23

2526272930313233343514037383936

10987345616

11

17

18

21

13

22 15

19

12

14

VCC

VD

D

GN

D

WAIT

READY

A0A1A2A3A4A5A6A7A8A9

A10A11A12A13A14A15

D0D1D2D3D4D5D6D7INTE

VBB

DBIN

WR

HDLA

HOLD

CLK

1

CLK

2

SYNC

RESET

INT

C2410pF

D10

1N4148

R210k

+ C910uF

C140.1uF

+ C1010uF

C5220pF

C180.1uF

+ C1

22uF

C160.1uF

J1DC input

1

2

D19

INTE LED (Yellow)

JR1

CONN RECT 16

12345678910111213141516

123456789

10111213141516

U2HM62256B

109876543

25242123

226

1

202227

1112131516171819

A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14

CEOEWE

D0D1D2D3D4D5D6D7

R6 10

U27A

74HC74

2

3

5

6

41

D

CLK

Q

Q

PR

CL

U27B

74HC74

12

11

9

8

1013

D

CLK

Q

Q

PR

CL

C190.1uF

D14

1N4148

D15

TVS15V DO-214AC

TP1

+5V1

+ C610uF 10V

+

C8 100uF35V

U327C256

109876543

25242123

22627

2022

1

1112131516171819

A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14

CEOEVPP

O0O1O2O3O4O5O6O7

R1010K

1 3

2

R14.7k

+ C410uF

D11

POWER

U9

ICL7660

24

5

6

7

8

CAP+CAP-

VOUT

LV

OSC

VC

C

U6

GAL16V8B

111

1213141516171819

23456789

I/CLKI/OE

I/O/QI/O/QI/O/QI/O/QI/O/QI/O/QI/O/QI/O/Q

IIIIIIII

R171k

C13

0.1uF

R7

220

C7100nF

TP2

GND 1

+C12

1000uF 16V

SW1

ESP switch

21

3

U10LM2940/TO

1

2

3 VIN

GN

D

VOUT

S1 RESET R4 0.5

C2100nF

D8D7

U4

74HC573

111

20

1918171615141312

23456789

OELE

VCC

1Q2Q3Q4Q5Q6Q7Q8Q

1D2D3D4D5D6D7D8D

D6

R9

4.7k

Page 30: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

5

5

4

4

3

3

2

2

1

1

D D

C C

B B

A A

0x01

7-segment test

Programmable system tick

RESET

INTR

USER

REP

<Doc> 1

8080 Microprocessor Kit

B

2 3Friday, May 06, 2016

Title

Size Document Number Rev

Date: Sheet of

D1

D5

C

D7

PA5

D4

PC2

D0 PA0

D4

G

PC5

PC3

PC3

E

D6

D3

D4

G

D3EF

PC1

D

PA1

D0

F

DP

PC0

PC1

PA0

A

PC3

D2

PA2

E

PA3

B

PC0

SPEAKER

F

D5

D

PC4

D0

PC0

D3

PA2

PA4

PA6

D6

D0

DP

G

D2

A

PA4

D5

PA7

PC1

B

D7

D6

PC4

D

D6

C

PA1

D4

D1

D1

PC4D5

A

D7 D1

D2

B

PC5

PC5

PA3

D7

SPEAKERPC7

D3

C

DP

PC2

PC2D2

TICK

TICK/2 PA6PA7

PA5

D3

PORT0

VCC

D6

RESET_HI

D7

D0

PORT1

D2

PORT2

D1

D4D5

RESET_HI TICK

CLKRXD

TXD

TXD

RXD

VCC

VCC

VCC

VCC+5V

VCC

VCC

+5V

+5V

+5V

+5V

S21

S24

S22

U12

LTC-4727JR

141613

35

1115

7

1 2 6 8

4

ABCDEFGDP

DIG

IT1

DIG

IT2

DIG

IT3

DIG

IT4

L1L2L3

S23

S25

S17

U16

AT89C2051

1

1213141516171819

20

236789

11

54

RST/VPP

P1.0/AIN0P1.1/AIN1

P1.2P1.3P1.4P1.5P1.6P1.7

VCC

P3.0/RXDP3.1/TXDP3.2/INTOP3.3/INT1P3.4/T0P3.5/T1

P3.7

XTAL1XTAL2

S26

LS1

SPEAKER

R13

10

VB1

SUB-D 9, Male (cross cable)

594837261

+

C2110uF

U13

74HC573

111

20

1918171615141312

23456789

OELE

VCC

1Q2Q3Q4Q5Q6Q7Q8Q

1D2D3D4D5D6D7D8D

+ C2010uF 10V

+ C22

10uF

S2 S3 S4 S5

C

R1410k RESISTOR SIP 912

3456789

S6

C

R1110k RESISTOR SIP 912

3456789

R12

4.7k

S27

+

C23

10uF

S7 S8 S9

TP3

TEST POINT

1

S10 S11

D13

LED

U14

74HC573

111

20

1918171615141312

23456789

OELE

VCC

1Q2Q3Q4Q5Q6Q7Q8Q

1D2D3D4D5D6D7D8D

U15

74HC541

23456789

119

1817161514131211

20

A1A2A3A4A5A6A7A8

G1G2

Y1Y2Y3Y4Y5Y6Y7Y8

VCC

S12

U17

MAX232A

138

1110

1345

2

6

129

147

R1INR2IN

T1INT2IN

C+C1-C2+C2-

V+

V-

R1OUTR2OUT

T1OUTT2OUT

S13

R15680

S14 S15 S16

S18

J2

CON3

123

Q2BC557

1

2

3

S19 S20

U11

LTC-4727JR

141613

35

1115

7

1 2 6 8

4

ABCDEFGDP

DIG

IT1

DIG

IT2

DIG

IT3

DIG

IT4

L1L2L3

Page 31: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

PARTS LIST

Semiconductors

U1 8080AP, 8-bit MicroprocessorU2 HM62256B, 32kB SRAMU3 27C256, 32kB EPROMU5 AM8228, BUS controllerU4,U13,U14 74HC573, 8-bit data latchU6 GAL16V8B, PLDU7 AM8224, oscillatorU8 MC34063A, DC-to-DC converter for +12V generationU9 ICL7660, voltage converter for -5V generationU10 LM7805U12,U11 LTC-4727JF, 7-segment LEDU15 74HC541, 8-bit tri-state bufferU16 AT89C2051, microcontrollerU17 MAX232A, rs232 converterU27 74HC74, dual data latch for HALT and INTE indicators.

D1,D2,D4,D5,D6,D7,D8,D13 LEDD3 LED 3mmD9 1N5236AD10,D14 1N4148D11 POWERD12 1N4007D15 TVS15V DO-214ACD18 HALT LED (RED)D19 INTE LED (Yellow)Q1 KIA7042, voltage detectorQ2 BC557, PNP transistor Resistors (all resistors are 1/8W +/-5%)

R1,R9,R12 4.7kR2,R3,R10 10KR4 0.5R5 20kR13,R6 10R7 220R8 2.2kR14,R11 10k RESISTOR SIP 9

R15 680R17 1k

Capacitors

C1 22uFC7,C2 100nFC3,C4,C9,C10,C21,C22,C23 10uFC5 220pFC20,C6 10uF 10VC8 100uF35VC11 10uF 16VC12 1000uF 16VC13,C14,C15,C16,C17 0.1uFC18,C19 0.1uF C24 10pF

Additional parts

JP1 HEADER 20X2JR1 CONN RECT 16J1 DC inputJ2 CON3LS1 SPEAKERL1 100uH

SW1 ESP switchSW2 INTS1 RESETS2,S3,S4,S5,S6,S7,S8,S9, SW PUSH BUTTONS10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27TP1 +5VTP2 GNDTP3 TEST POINT

VB1 SUB-D 9, Male (cross cable)Y1 XTAL 18.432MHz

Page 32: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

PCB double side plate through holeLED cover Clear RED color acrylic plasticKeyboard sticker printable SVG file

Page 33: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

MONITOR PROGRAM LISTINGS

Page 34: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960

;-----------------------------------------------------------------; B8080.ASM; monitor program for 8080 MICROPROCESSOT TRAINING KIT; COPYTIGHT (C) 2016 BY WICHIT SIRICHOTE, wichit.sirichote;; source file was assembled with C32 Cross Assembler V3.;; 18 May 2007 add insert byte, ALT E; delete byte, ALT D; click sound when key pressed;; 8 March 2015 remove repeat key; modified address and data entry mode; 3 April 2016 replace buzzer with small speaker for tone ; add beep/no beep with ALT F press; 16 April 2016 add delay after no beep

; 24 April 2016 modify the source code for 8080 kit; 27 April 2016 test 1200 bit/s software UART; 30 April 2016 change Xtal to 18.432MHz; 2 May 2016 test serial commands via 2400 bit/s terminal; 8 May 2016 add test key for LCD, GPIO led, beep and 10; USER key press will jump to 8050h; put 76 code on cold boot; 15 Jan 2017 adjust brightness for Amber LED LTC4727JF;;-----------------------------------------------------------------

0000 CPU "8085.TBL" ;CPU TABLE0000 HOF "INT8" ;HEX FORMAT

; ---------- onboard GPIO --------------------------------------

0000 = gpio equ 0 ; D0-D3 is 4-bit output port, D4-D7 is 4-bit

;---------- 8255 PPI system port I/O address ----------------------

0020 = port0: equ 20h0060 = port2: equ 60h0040 = port1: equ 40h

0060 = segment: equ 60h0040 = digit: equ 40h0020 = port0: equ 20h

;-------------------- 8254 counter/timer --------------------------

0020 = counter0_8254 equ 20h0021 = counter1_8254 equ 21h0022 = counter2_8254 equ 22h0023 = control_8254 equ 23h

0034 = control_word_8254 equ 00110100B ; mode 0, counter0

;---------- 8255 PPI user port I/O address ------------------------

B8080.LST 3/12/2560 20:42

Page 1 of 86

Page 35: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120

0030 = user_port_a: equ 30h0031 = user_port_b: equ 31h0032 = user_port_c: equ 32h0033 = user_port_control: equ 33h

;---------- 16C550 compatible UART I/O address --------------------; e.g., UM8250B, 16C450, 16C550

0040 = uart_buffer: equ 40h0045 = uart_line_status: equ 45h0042 = uart_fifo: equ 42h0043 = uart_lcr: equ 43h0040 = uart_divisor_lsb: equ 40h0041 = uart_divisor_msb: equ 41h0047 = uart_scr: equ 47h

;------------------- onboard LCD registers ------------------------

0080 = command_write equ 80h0082 = command_read equ 82h0081 = data_write equ 81h0083 = data_read equ 83h0080 = busy equ 80h

0009 = TAB EQU 9 ; ASCII TAB0000 = RS EQU 0 ; terminator

000D = cr: equ 0dh000A = lf: equ 0ah0020 = sp: equ 20h

F000 = system_ram equ 0f000h

;system_stack equ 0ffffh

8100 = home_address equ 8100h

0000 = rom equ 0 ; 8000h ; change to 8000 for ; change to 0000 for rom programming

8000 = my_rom equ 8000h

0000 ORG rom0000 C30001 JMP START ; reset vector

0008 ORG rom+8 ; RST 1 opcode is CF0008 C34402 jmp monitor_call

0010 ORG rom+10h ; RST 2 used for testing RST ; jmp service_rst2

0010 C31080 jmp my_rom+10h

0018 ORG rom+18h ; DF RST 3 for testing monitor ; jmp my_rom+18h

0018 C37602 jmp service_rst7 ; use RST 3, DF to return to

B8080.LST 3/12/2560 20:42

Page 2 of 86

Page 36: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180

; jmp monitor_call

0020 ORG rom+20h ; RST 40020 C32080 jmp my_rom+20h

0024 ORG rom+24h; jmp my_rom+24h

0024 C3BD02 jmp service_trap ; sing step running service

0028 ORG rom+28h ; RST 50028 C32880 jmp my_rom+28h

002C ORG rom+2ch ; relocate RST5.5 to external 002C C32C80 jmp my_rom+2ch

0030 ORG rom+30h ; relocate RST 60030 C33080 jmp my_rom+30h

0034 ORG rom+34h ; relocate RST6.5 to external 0034 C33480 jmp my_rom+34h

; test hardware interrupt with FF on the bus

0038 ORG ROM+38H0038 C33880 jmp my_rom+38h ;service_rst7 ; RST 7 service

003C ORG rom+3ch ; relocate RST7.5 to external 003C C33C80 jmp my_rom+3ch

0100 ORG rom+100h

0100 F3 START di0101 3179F0 lxi sp,system_stack+32 ; point to top of system 0104 2199F0 lxi h,user_stack+32 ; point to top of user stack0107 2234F0 shld user_SP

010A 3E00 mvi a,0010C D360 out segment ; turn off display

; NVRAM booting; if location 8000H has C3 opcode then jump to 8000H; if user press USER1 with RESET put 00 to 8000H; ans skip booting

010E DB20 in port00110 E680 ani 80h0112 CA2201 jz skip_boot

0115 3A0080 lda 8000H0118 FEC3 cpi 0c3h011A C22201 jnz skip_boot011D 210080 lxi h,8000h0120 E5 push h0121 C9 ret ; jump to NVRAM

B8080.LST 3/12/2560 20:42

Page 3 of 86

Page 37: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240

0122 AF skip_boot: xra a ; write 00 to 8000H0123 320080 sta 8000H

; sta counter1 ; clear counter1

0126 3A29F0 lda warm_code0129 FE24 cpi "$"012B CA4701 jz skip_cold_boot

012E 3E24 mvi a,"$"0130 3229F0 sta warm_code

0133 CD2306 call test_buzzer

0136 3EFF mvi a,0ffh0138 D300 out gpio ; make GPIO LED on

013A CD6C0B call cold_boot

013D 3E00 mvi a, 0013F 3224F0 sta beep_flag

0142 3E76 mvi a,76h0144 325080 sta 8050h ; put HALT to location 8050h,

0147 skip_cold_boot:

0147 210081 lxi h,home_address014A 222AF0 shld user_PC014D 223CF0 shld pointer

0150 3A25F0 lda uart_found0153 FE00 cpi 00155 CA5E01 jz skip_send_prompt

0158 CDFD12 call send_prompt3

015B CD920D call send_prompt

015E skip_send_prompt:

015E AF xra a015F D300 out gpio ; turn LED off

0161 3E00 mvi a,00163 3226F0 sta entry_mode ; set data entry mode0166 CDB40A call read_memory

0169 CD7C0C main: call scan_key016C CD6105 call key_execute016F F26901 jp main

;---------------- initialize counter0 for RST7.5 interrupt

0172 3E34 init_8254: mvi a, control_word_8254

B8080.LST 3/12/2560 20:42

Page 4 of 86

Page 38: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300

0174 D323 out control_82540176 AF xra a0177 D320 out counter0_82540179 D320 out counter0_8254017B C9 ret

; convert 8-bit unsigned in A to ASCII string in line_buffer; entry: A

017C bin2ascii:017C 1E00 mvi e,0

017E FE64 bin1 cpi 1000180 DA8901 jc bin20183 D664 sui 1000185 1C inr e0186 C37E01 jmp bin1

0189 57 bin2: mov d,a018A 7B mov a,e018B C630 adi "0"018D 3247F0 sta line_buffer0190 7A mov a,d0191 1E00 mvi e,0

0193 FE0A bin3: cpi 100195 DA9E01 jc bin40198 D60A sui 10019A 1C inr e019B C39301 jmp bin3

019E 57 bin4: mov d,a019F 7B mov a,e01A0 C630 adi "0"01A2 3248F0 sta line_buffer+101A5 7A mov a,d01A6 C630 adi "0"01A8 3249F0 sta line_buffer+201AB C9 ret

; print 8-bit unsigned decimal to terminal; entry: A

01AC CD7C01 pint8u: call bin2ascii01AF 3A47F0 lda line_buffer01B2 FE30 cpi "0"01B4 CAC701 jz pint101B7 CD8712 call cout01BA 3A48F0 lda line_buffer+101BD CD8712 call cout01C0 3A49F0 lda line_buffer+201C3 CD8712 call cout01C6 C9 ret

01C7 3A48F0 pint1: lda line_buffer+101CA FE30 cpi "0"01CC CAD201 jz pint201CF CD8712 call cout

B8080.LST 3/12/2560 20:42

Page 5 of 86

Page 39: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360

01D2 3A49F0 pint2: lda line_buffer+201D5 CD8712 call cout01D8 C9 ret

; convert 16-bit unsigned integer to ASCII code stored in ; entry: HL

;--------------------- LCD driver routines --------------------------------

01D9 F5 lcd_ready: push psw

01DA DB82 lcd_ready1: in command_read01DC E680 ani 80h01DE C2DA01 jnz lcd_ready101E1 ready2:01E1 F1 pop psw

01E2 C9 ret

01E3 CDD901 clear_lcd: call lcd_ready01E6 3E01 mvi a,101E8 D380 out command_write01EA C9 exit_clear: ret

01EB CDD901 init_lcd: call lcd_ready01EE 3E38 mvi a,38h01F0 D380 out command_write01F2 CDD901 call lcd_ready01F5 3E0C mvi a, 0ch01F7 D380 out command_write01F9 CDE301 call clear_lcd

01FC C9 ret

; print ASCII text on LCD; entry: HL pointer with 0 for end of string

01FD 7E put_str_lcd: mov a,m ; get A from [HL]01FE FE00 cpi 00200 C20402 jnz put_str_lcd10203 C9 ret

0204 put_str_lcd1:

0204 CDD901 call lcd_ready0207 D381 out data_write0209 23 inx h020A F2FD01 jp put_str_lcd

; goto_xy set cursor location on lcd

B8080.LST 3/12/2560 20:42

Page 6 of 86

Page 40: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420

; entry: HL: H = x, L = y

020D CDD901 goto_xy: call lcd_ready0210 7D mov a,l0211 FE00 cpi 00213 C21C02 jnz goto_xy10216 7C mov a,h0217 C680 adi 80h0219 D380 out command_write021B C9 ret

021C FE01 goto_xy1: cpi 1021E C22702 jnz goto_xy20221 7C mov a,h0222 C6C0 adi 0c0h0224 D380 out command_write0226 C9 ret

0227 FE02 goto_xy2: cpi 20229 C23202 jnz goto_xy3022C 7C mov a,h022D C694 adi 094h022F D380 out command_write0231 C9 ret

0232 FE03 goto_xy3: cpi 30234 C23D02 jnz goto_xy40237 7C mov a,h0238 C6D4 adi 0d4h023A D380 out command_write023C C9 ret

023D C9 goto_xy4: ret

; put_ch_lcd put character to lcd; entry: A

023E CDD901 put_ch_lcd: call lcd_ready0241 D381 out data_write0243 C9 ret

;--------------------------------------------------------------------

; monitor call entry; entry: E = monitor call number 0-255; calling monitor function is made with RST 1 command after ; regsiter E with call number; destroy: BC user must save it in stack memory

0244 E5 monitor_call: push h0245 F5 push psw0246 D5 push d

0247 7B mov a,e ; get call number0248 07 rlc ; x20249 5F mov e,a ; put it back

024A 215802 lxi h,vector_table024D 1600 mvi d,0024F 19 dad d ; get location in jump table

B8080.LST 3/12/2560 20:42

Page 7 of 86

Page 41: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480

0250 4E mov c,m0251 23 inx h0252 46 mov b,m

0253 D1 pop d0254 F1 pop psw0255 E1 pop h

0256 C5 push b ; push address into top of stack

0257 C9 ret ; jump to monitor call function

0258 vector_table:0258 960B dwl demo ; #0 running LED with HL pointer 025A F605 dwl delay ; #1 simple delay routine025C 6C0B dwl cold_boot ; #2 show 8085 running025E AC0C dwl scan ; #3 scan display one cycle0260 8F12 dwl cin ; #4 get byte from console0262 8712 dwl cout ; #5 print byte to console0264 AD12 dwl put_str ; #6 print string with 0 terminator 0266 EB01 dwl init_lcd ; #7 initialize lcd0268 D901 dwl lcd_ready ; #8 wait until lcd is ready026A E301 dwl clear_lcd ; #9 clear lcd display026C 0D02 dwl goto_xy ; #10 set lcd cursor position026E FD01 dwl put_str_lcd ; #11 print ASCII string 0270 3E02 dwl put_ch_lcd ; #12 print ASCII letter 0272 E805 dwl test_led ; #13 run LED onboard0274 AC01 dwl pint8u ; #14 print 8-bit unsigned

; save CPU registers to stack and write them to user registers;

0276 service_rst7:0276 F5 push psw0277 C5 push b0278 D5 push d

0279 E1 pop h027A 2230F0 shld user_DE027D E1 pop h027E 222EF0 shld user_BC0281 E1 pop h0282 222CF0 shld user_AF0285 E1 pop h

0286 222AF0 shld user_PC ; store next PC

0289 210000 lxi h,0000h028C 39 dad sp ; get SP028D 2234F0 shld user_SP ; save user SP

0290 CDB40A call read_memory; call register_display1

0293 2A57F0 lhld save_stack

0296 F9 sphl ; restore system stack

B8080.LST 3/12/2560 20:42

Page 8 of 86

Page 42: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540

0297 C9 ret

; test diplay register after break; RST 2 opcode is D7; later will be changed to RST 7

0298 service_rst2:0298 F5 push psw0299 C5 push b029A D5 push d

029B E1 pop h029C 2230F0 shld user_DE029F E1 pop h02A0 222EF0 shld user_BC02A3 E1 pop h02A4 222CF0 shld user_AF02A7 E1 pop h

02A8 222AF0 shld user_PC ; store next PC

02AB 210000 lxi h,0000h02AE 39 dad sp ; get content of SP

02AF 2234F0 shld user_SP ; save user SP

02B2 CDB40A call read_memory02B5 CDAC0F call register_display1

02B8 2A57F0 lhld save_stack

02BB F9 sphl ; restore system stack

02BC C9 ret

; service trap for single step running; disable trap input by setting system port c.6; save CPU registers to user registers

02BD service_trap:02BD F5 push psw ; save A and Flag

02BE 3EFF mvi a,0ffh02C0 D340 out port1 ; turn trap off by clearing shift

02C2 C5 push b02C3 D5 push d02C4 E5 push h

02C5 E1 pop h02C6 2232F0 shld user_HL ; save HL02C9 E1 pop h02CA 2230F0 shld user_DE02CD E1 pop h02CE 222EF0 shld user_BC02D1 E1 pop h

B8080.LST 3/12/2560 20:42

Page 9 of 86

Page 43: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600

02D2 222CF0 shld user_AF

02D5 E1 pop h ; store next PC02D6 222AF0 shld user_PC

02D9 210000 lxi h,002DC 39 dad sp02DD 2234F0 shld user_SP ; save user SP

02E0 CDB40A call read_memory

02E3 3A25F0 lda uart_found02E6 FE00 cpi 002E8 CAEE02 jz skip1 02EB CDAC0F call register_display1

02EE skip1:02EE 2A57F0 lhld save_stack

02F1 F9 sphl ; restore system stack

02F2 C9 ret ; jump back to main body

; disassemble machine code into mnemonic

02F3 disassemble1:02F3 3A22F0 lda command02F6 FE64 cpi "d"02F8 C21903 jnz exit_disassemble

02FB 21B01F lxi h,disassemble_text02FE CDAD12 call put_str

0301 CD2413 call new_line0304 0E10 mvi c,16 ; 16 lines

0306 C5 dis2: push b

0307 CD2413 call new_line

030A CD9003 call d_disassemble

030D C1 pop b030E 0D dcr c030F C20603 jnz dis2

0312 CD2413 call new_Line0315 CD920D call send_prompt0318 C9 ret

0319 C9 exit_disassemble: ret

; disassemble opcode to mnemonic; entry: user_PC ; exit: user_PC = next address

B8080.LST 3/12/2560 20:42

Page 10 of 86

Page 44: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660

031A 2A2AF0 disassemble: lhld user_PC

031D E5 push h

031E 7C mov a,h031F CD1513 call out2x0322 7D mov a,l0323 CD1513 call out2x0326 CD2F13 call space

0329 7E mov a,m ; get opcode032A CD0604 call get_number_of_byte032D 4F mov c,a

032E 7E disassem3: mov a,m032F CD1513 call out2x0332 23 inx h0333 0D dcr c0334 C22E03 jnz disassem3

0337 E1 pop h

0338 7E mov a,m0339 CD0604 call get_number_of_byte033C FE01 cpi 1033E C24603 jnz one_tab

0341 3E09 mvi a,tab ; print two tabs for one 0343 CD8712 call cout

0346 3E09 one_tab: mvi a,tab ; else only one tab0348 CD8712 call cout

034B E5 push h

034C 7E mov a,m ; get opcode

034D F5 push psw

034E 210000 lxi h,0000h ; clear HL0351 6F mov l,a

0352 29 dad h ; HL = HLx2

0353 5D mov e,l0354 54 mov d,h

0355 212B16 lxi h,ins_table0358 19 dad d ; ADD HL,DE0359 5E mov e,m035A 23 inx h035B 56 mov d,m

035C 6B mov l,e035D 62 mov h,d

035E CDAD12 call put_str

0361 F1 pop psw0362 E1 pop h

B8080.LST 3/12/2560 20:42

Page 11 of 86

Page 45: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720

0363 CD0604 call get_number_of_byte0366 FE01 cpi 10368 C27003 jnz disassem1036B 23 inx h036C 222AF0 shld user_PC036F C9 ret

0370 FE02 disassem1: cpi 20372 C27F03 jnz disassem20375 23 inx h0376 7E mov a,m0377 CD1513 call out2x037A 23 inx h037B 222AF0 shld user_PC037E C9 ret

037F 23 disassem2: inx h0380 23 inx h0381 7E mov a,m0382 CD1513 call out2x0385 2B dcx h0386 7E mov a,m0387 CD1513 call out2x038A 23 inx h038B 23 inx h038C 222AF0 shld user_PC038F C9 ret

; disassemble opcode to mnemonic with command 'd'; entry: pointer; exit: pointer = next address

0390 2A3CF0 d_disassemble: lhld pointer

0393 E5 push h

0394 7C mov a,h0395 CD1513 call out2x0398 7D mov a,l0399 CD1513 call out2x039C CD2F13 call space

039F 7E mov a,m ; get opcode03A0 CD0604 call get_number_of_byte03A3 4F mov c,a

03A4 7E d_disassem3: mov a,m03A5 CD1513 call out2x03A8 23 inx h03A9 0D dcr c03AA C2A403 jnz d_disassem3

03AD E1 pop h

03AE 7E mov a,m03AF CD0604 call get_number_of_byte03B2 FE01 cpi 103B4 C2BC03 jnz d_one_tab

B8080.LST 3/12/2560 20:42

Page 12 of 86

Page 46: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780

03B7 3E09 mvi a,tab ; print two tabs for one 03B9 CD8712 call cout

03BC 3E09 d_one_tab: mvi a,tab ; else only one tab03BE CD8712 call cout

03C1 E5 push h

03C2 7E mov a,m ; get opcode

03C3 F5 push psw

03C4 210000 lxi h,0000h ; clear HL03C7 6F mov l,a

03C8 29 dad h ; HL = HLx2

03C9 5D mov e,l03CA 54 mov d,h

03CB 212B16 lxi h,ins_table03CE 19 dad d ; ADD HL,DE03CF 5E mov e,m03D0 23 inx h03D1 56 mov d,m

03D2 6B mov l,e03D3 62 mov h,d

03D4 CDAD12 call put_str

03D7 F1 pop psw03D8 E1 pop h

03D9 CD0604 call get_number_of_byte03DC FE01 cpi 103DE C2E603 jnz d_disassem103E1 23 inx h03E2 223CF0 shld pointer03E5 C9 ret

03E6 FE02 d_disassem1: cpi 203E8 C2F503 jnz d_disassem203EB 23 inx h03EC 7E mov a,m03ED CD1513 call out2x03F0 23 inx h03F1 223CF0 shld pointer03F4 C9 ret

03F5 23 d_disassem2: inx h03F6 23 inx h03F7 7E mov a,m03F8 CD1513 call out2x03FB 2B dcx h03FC 7E mov a,m03FD CD1513 call out2x0400 23 inx h0401 23 inx h0402 223CF0 shld pointer

B8080.LST 3/12/2560 20:42

Page 13 of 86

Page 47: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840

0405 C9 ret

; get number of byte; entry: A = OPCODE; exit: A = number of byte, 1,2,3; 0 = undefined opcode

0406 get_number_of_byte:

0406 FE01 cpi 010408 C20E04 jnz number1040B 3E03 mvi a,3040D C9 ret

040E FE06 number1: cpi 60410 C21604 jnz number20413 3E02 mvi a,20415 C9 ret

0416 FE0E number2: cpi 0eh0418 C21E04 jnz number3041B 3E02 mvi a,2041D C9 ret

041E FE11 number3: cpi 11h0420 C22604 jnz number40423 3E03 mvi a,30425 C9 ret

0426 FE16 number4: cpi 16h0428 C22E04 jnz number5042B 3E02 mvi a,2042D C9 ret

042E FE1E number5: cpi 1eh0430 C23604 jnz number60433 3E02 mvi a,20435 C9 ret

0436 FE21 number6: cpi 21h0438 C23E04 jnz number7043B 3E03 mvi a,3043D C9 ret

043E FE22 number7: cpi 22h0440 C24604 jnz number80443 3E03 mvi a,30445 C9 ret

0446 FE26 number8: cpi 26h0448 C24E04 jnz number9044B 3E02 mvi a,2044D C9 ret

044E FE2A number9: cpi 2ah0450 C25604 jnz number100453 3E03 mvi a,30455 C9 ret

B8080.LST 3/12/2560 20:42

Page 14 of 86

Page 48: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900

0456 FE2E number10: cpi 2eh0458 C25E04 jnz number11045B 3E02 mvi a,2045D C9 ret

045E FE31 number11: cpi 31h0460 C26604 jnz number120463 3E03 mvi a,30465 C9 ret

0466 FE32 number12: cpi 32h0468 C26E04 jnz number13046B 3E03 mvi a,3046D C9 ret

046E FE36 number13: cpi 36h0470 C27604 jnz number140473 3E03 mvi a,30475 C9 ret

0476 FE3A number14: cpi 3ah0478 C27E04 jnz number15047B 3E03 mvi a,3047D C9 ret

047E FE3E number15: cpi 3eh0480 C28604 jnz number160483 3E02 mvi a,20485 C9 ret

0486 FEC2 number16: cpi 0c2h0488 C28E04 jnz number17048B 3E03 mvi a,3048D C9 ret

048E FEC3 number17: cpi 0c3h0490 C29604 jnz number180493 3E03 mvi a,30495 C9 ret

0496 FEC4 number18: cpi 0c4h0498 C29E04 jnz number19049B 3E03 mvi a,3049D C9 ret

049E FEC6 number19: cpi 0c6h04A0 C2A604 jnz number2004A3 3E02 mvi a,204A5 C9 ret

04A6 FECA number20: cpi 0cah04A8 C2AE04 jnz number2104AB 3E03 mvi a,304AD C9 ret

04AE FECC number21: cpi 0cch04B0 C2B604 jnz number2204B3 3E03 mvi a,304B5 C9 ret

B8080.LST 3/12/2560 20:42

Page 15 of 86

Page 49: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960

04B6 FECD number22: cpi 0cdh04B8 C2BE04 jnz number2304BB 3E03 mvi a,304BD C9 ret

04BE FECE number23: cpi 0ceh04C0 C2C604 jnz number2404C3 3E02 mvi a,204C5 C9 ret

04C6 FED2 number24: cpi 0d2h04C8 C2CE04 jnz number2504CB 3E03 mvi a,304CD C9 ret

04CE FED3 number25: cpi 0d3h04D0 C2D604 jnz number2604D3 3E02 mvi a,204D5 C9 ret

04D6 FED4 number26: cpi 0d4h04D8 C2DE04 jnz number2704DB 3E03 mvi a,304DD C9 ret

04DE FED6 number27: cpi 0d6h04E0 C2E604 jnz number2804E3 3E02 mvi a,204E5 C9 ret

04E6 FEDA number28: cpi 0dah04E8 C2EE04 jnz number2904EB 3E03 mvi a,304ED C9 ret

04EE FEDB number29: cpi 0dbh04F0 C2F604 jnz number3004F3 3E02 mvi a,204F5 C9 ret

04F6 FEDC number30: cpi 0dch04F8 C2FE04 jnz number3104FB 3E03 mvi a,304FD C9 ret

04FE FEE2 number31: cpi 0e2h0500 C20605 jnz number320503 3E03 mvi a,30505 C9 ret

0506 FEE4 number32: cpi 0e4h0508 C20E05 jnz number33050B 3E03 mvi a,3050D C9 ret

050E FEE6 number33: cpi 0e6h0510 C21605 jnz number340513 3E02 mvi a,20515 C9 ret

B8080.LST 3/12/2560 20:42

Page 16 of 86

Page 50: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020

0516 FEEA number34: cpi 0eah0518 C21E05 jnz number35051B 3E03 mvi a,3051D C9 ret

051E FEEC number35: cpi 0ech0520 C22605 jnz number360523 3E03 mvi a,30525 C9 ret

0526 FEEE number36: cpi 0eeh0528 C22E05 jnz number37052B 3E02 mvi a,2052D C9 ret

052E FEF2 number37: cpi 0f2h0530 C23605 jnz number380533 3E03 mvi a,30535 C9 ret

0536 FEF4 number38: cpi 0f4h0538 C23E05 jnz number39053B 3E03 mvi a,3053D C9 ret

053E FEF6 number39: cpi 0f6h0540 C24605 jnz number400543 3E02 mvi a,20545 C9 ret

0546 FEFA number40: cpi 0fah0548 C24E05 jnz number41054B 3E03 mvi a,3054D C9 ret

054E FEFC number41: cpi 0fch0550 C25605 jnz number420553 3E03 mvi a,30555 C9 ret

0556 FEFE number42: cpi 0feh0558 C25E05 jnz number43055B 3E02 mvi a,2055D C9 ret

055E 3E01 number43: mvi a,10560 C9 ret

; execute key 0-F or 10H-19H

0561 FE10 key_execute: cpi 10h0563 D26D05 jnc function_key ; 0-9 jump to data key0566 57 mov d,a

B8080.LST 3/12/2560 20:42

Page 17 of 86

Page 51: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080

0567 CD2706 call buzzer056A F2FF05 jp data_key

056D FE12 function_key: cpi 12h056F C27805 jnz function10572 CD2706 call buzzer0575 F25B0A jp increment

0578 FE15 function1: cpi 15h057A C28305 jnz function2057D CD2706 call buzzer0580 F26E0A jp decrement

0583 FE10 function2: cpi 10h0585 C28E05 jnz function30588 CD2706 call buzzer058B F2F709 jp address_mode

058E FE11 function3: cpi 11h0590 C29905 jnz function40593 CD2706 call buzzer0596 F2040A jp data_mode

0599 FE13 function4: cpi 13h059B C2A505 jnz function5059E CD2706 call buzzer05A1 F29109 jp go05A4 C9 ret

05A5 FE14 function5: cpi 14h05A7 C2B005 jnz function605AA CD2706 call buzzer05AD F20F0A jp function_2nd

05B0 FE16 function6: cpi 16h05B2 C2BB05 jnz function705B5 CD2706 call buzzer05B8 F2BB15 jp test_kit ; test key

05BB FE17 function7: cpi 17h05BD C2C605 jnz function805C0 CD2706 call buzzer05C3 F27709 jp home

05C6 FE18 function8: cpi 18h05C8 C2D105 jnz function905CB CD2706 call buzzer05CE F2330A jp modify_register

05D1 FE20 function9: cpi 20h05D3 C2DC05 jnz function1005D6 CD2706 call buzzer05D9 F24D0D jp connect_terminal

05DC FE19 function10 cpi 19h05DE C2E705 jnz function1105E1 CD2706 call buzzer ; with key USER pressed05E4 F25080 jp 8050h ; user can put service routine

B8080.LST 3/12/2560 20:42

Page 18 of 86

Page 52: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140

05E7 function1105E7 C9 ret

; test running onboard led

05E8 3E01 test_led: mvi a,1

05EA D300 test_led1: out gpio05EC 115010 lxi d,1050h05EF CDF605 call delay05F2 07 rlc05F3 C3EA05 jmp test_led1

; delay subroutine; entry: D= outer loop E=inner loop (should be 0 for long ; exit: none

05F6 1D delay: dcr e05F7 C2F605 jnz delay05FA 15 dcr d05FB C2F605 jnz delay05FE C9 ret

05FF 3A26F0 data_key: lda entry_mode0602 FE00 cpi 00604 C20A06 jnz data_key10607 F2C506 jp enter_data

060A FE01 data_key1: cpi 1060C C21206 jnz data_key2060F F2FF06 jp enter_address

0612 FE02 data_key2: cpi 20614 C21A06 jnz data_key30617 F23907 jp select_register

061A FE03 data_key3: cpi 3061C C22206 jnz data_key4061F F26506 jp enter_register

0622 data_key4:

0622 C9 ret

0623 CD3606 test_buzzer: call beep_on0626 C9 ret

;mvi a,7fh;out port1;lxi d,1000h;call delay;mvi a,0ffh;out port1;ret

; produce beep output at system port c.7

B8080.LST 3/12/2560 20:42

Page 19 of 86

Page 53: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200

; click when key pressed

0627 3A24F0 buzzer: lda beep_flag062A E601 ani 1062C CA3606 jz beep_on

062F 0600 mvi b,00631 05 delay_nobeep: dcr b0632 C23106 jnz delay_nobeep0635 C9 ret0636 beep_on:0636 0E30 mvi c,30h

0638 3E7F buzzer1: mvi a,7fh063A D340 out port1 ;nop ;out port1063C CD4F06 call delay_us063F 3EFF mvi a,0ffh0641 D340 out port1 ;nop ;out port10643 CD4F06 call delay_us

0646 0D dcr c0647 C23806 jnz buzzer1

064A 3EFF mvi a,0ffh064C D340 out port1

064E C9 ret

064F 0635 delay_us: mvi b,35h ; 25h0651 05 delay_us1: dcr b0652 C25106 jnz delay_us10655 C9 ret

;----- turn display off while key has been pressing ------------------; useful for no function accepted

0656 21B51E display_off: lxi h,off_display0659 CDAC0C off_display1: call scan065C 3A21F0 lda key065F FEFF cpi 0ffh0661 C25906 jnz off_display1 ; loop if key still pressed0664 C9 ret

;************* modify current displayed register **********************; entry: current user register displayed;

0665 enter_register:

0665 2A38F0 lhld current_register

0668 4E mov c,m0669 23 inx h066A 46 mov b,m066B 210000 lxi h,0

066E 09 dad b ; MOV HL,BC

B8080.LST 3/12/2560 20:42

Page 20 of 86

Page 54: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260

066F 5A mov e,d ; save key code to E

0670 shift_register:0670 7D mov a,l0671 07 rlc0672 6F mov l,a0673 7C mov a,h0674 17 ral0675 67 mov h,a

0676 7D mov a,l0677 07 rlc0678 6F mov l,a0679 7C mov a,h067A 17 ral067B 67 mov h,a

067C 7D mov a,l067D 07 rlc067E 6F mov l,a067F 7C mov a,h0680 17 ral0681 67 mov h,a

0682 7D mov a,l0683 07 rlc0684 6F mov l,a0685 7C mov a,h0686 17 ral0687 67 mov h,a

0688 7D mov a,l

0689 E6F0 ani 0f0h068B 82 add d068C 6F mov l,a

068D 44 mov b,h068E 4D mov c,l

068F 2A38F0 lhld current_register0692 71 mov m,c0693 23 inx h0694 70 mov m,b

0695 2A38F0 lhld current_register

0698 4E mov c,m0699 23 inx h069A 46 mov b,m069B 210000 lxi h,0

069E 09 dad b ; MOV HL,BC

069F CD890A call read_register

06A2 F5 push psw

06A3 3A13F0 lda buffer+306A6 F640 ori 40h

B8080.LST 3/12/2560 20:42

Page 21 of 86

Page 55: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320

06A8 3213F0 sta buffer+3

06AB 3A12F0 lda buffer+206AE F640 ori 40h06B0 3212F0 sta buffer+2

06B3 3A11F0 lda buffer+106B6 F640 ori 40h06B8 3211F0 sta buffer+1

06BB 3A10F0 lda buffer06BE F640 ori 40h06C0 3210F0 sta buffer

06C3 F1 pop psw

06C4 C9 ret

; enter nibble into current location

06C5 2A2AF0 enter_data: lhld user_PC

06C8 5A mov e,d ; save key code to E

06C9 3A27F0 lda counter106CC FE00 cpi 006CE C2D806 jnz shift_data06D1 3C inr a06D2 3227F0 sta counter106D5 3E00 mvi a,006D7 77 mov m,a

06D8 7E shift_data: mov a,m

06D9 07 rlc06DA 07 rlc06DB 07 rlc06DC 07 rlc06DD E6F0 ani 0f0h ; make low nibble to 0 before 06DF 83 add e ; insert low nibble to A06E0 77 mov m,a06E1 57 mov d,a06E2 7E mov a,m ; check if the space is ram 06E3 BA cmp d06E4 CAFB06 jz it_is_ram

; if it was rom them turn of led while key has been pressed

06E7 21B51E lxi h,off_display06EA CDAC0C enter_data1: call scan06ED 3A21F0 lda key06F0 FEFF cpi 0ffh06F2 C2EA06 jnz enter_data1 ; loop if key still pressed

06F5 CDA50C call debounce ; debounce after key was

B8080.LST 3/12/2560 20:42

Page 22 of 86

Page 56: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380

06F8 2110F0 lxi h,buffer ; back to show display again

06FB it_is_ram:06FB CDB40A call read_memory06FE C9 ret

; enter nibble into current pointer

06FF 2A2AF0 enter_address: lhld user_PC0702 5A mov e,d ; save key code to E

0703 3A28F0 lda counter20706 FE00 cpi 00708 C21507 jnz shift_address070B 3C inr a070C 3228F0 sta counter2070F 210000 lxi h,00712 222AF0 shld user_PC

0715 shift_address:0715 7D mov a,l0716 07 rlc0717 6F mov l,a0718 7C mov a,h0719 17 ral071A 67 mov h,a

071B 7D mov a,l071C 07 rlc071D 6F mov l,a071E 7C mov a,h071F 17 ral0720 67 mov h,a

0721 7D mov a,l0722 07 rlc0723 6F mov l,a0724 7C mov a,h0725 17 ral0726 67 mov h,a

0727 7D mov a,l0728 07 rlc0729 6F mov l,a072A 7C mov a,h072B 17 ral072C 67 mov h,a

072D 7D mov a,l

072E E6F0 ani 0f0h0730 82 add d0731 6F mov l,a

0732 222AF0 shld user_PC ; store new pointer

0735 CDB40A call read_memory

0738 C9 ret

B8080.LST 3/12/2560 20:42

Page 23 of 86

Page 57: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440

;****************** ALT register display ******************************

0739 5A select_register: mov e,d ; save key for selecting user

073A 7A mov a,d073B FE00 cpi 0073D C25707 jnz register1

0740 3E3F mvi a,3fh ; AF register pair0742 3214F0 sta buffer+40745 3E0F mvi a,0fh0747 3215F0 sta buffer+5

074A 212CF0 lxi h,user_AF074D 2238F0 shld current_register

0750 2A2CF0 lhld user_AF0753 CD890A call read_register0756 C9 ret

0757 register1:0757 FE01 cpi 10759 C27307 jnz register2

075C 3EA7 mvi a,0a7h ; BC register pair075E 3214F0 sta buffer+40761 3E8D mvi a,8dh0763 3215F0 sta buffer+5

0766 212EF0 lxi h,user_BC0769 2238F0 shld current_register

076C 2A2EF0 lhld user_BC076F CD890A call read_register

0772 C9 ret

0773 register2:0773 FE02 cpi 20775 C28F07 jnz register3

0778 3EB3 mvi a,0b3h ; DE register pair077A 3214F0 sta buffer+4077D 3E8F mvi a,8fh077F 3215F0 sta buffer+5

0782 2130F0 lxi h,user_DE0785 2238F0 shld current_register

0788 2A30F0 lhld user_DE078B CD890A call read_register

078E C9 ret

078F register3:078F FE03 cpi 30791 C2AB07 jnz register4

B8080.LST 3/12/2560 20:42

Page 24 of 86

Page 58: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500

0794 3E37 mvi a,37h ; HL register pair0796 3214F0 sta buffer+40799 3E85 mvi a,85h079B 3215F0 sta buffer+5

079E 2132F0 lxi h,user_HL07A1 2238F0 shld current_register

07A4 2A32F0 lhld user_HL07A7 CD890A call read_register

07AA C9 ret07AB register4:07AB FE04 cpi 407AD C2C707 jnz register5

07B0 3EAE mvi a,0aeh ; user SP07B2 3214F0 sta buffer+407B5 3E1F mvi a,1fh07B7 3215F0 sta buffer+5

07BA 2134F0 lxi h,user_SP07BD 2238F0 shld current_register

07C0 2A34F0 lhld user_SP07C3 CD890A call read_register

07C6 C9 ret

07C7 register5:07C7 FE05 cpi 507C9 C2EE07 jnz register6

07CC 3E1F mvi a,1fh ; user PC07CE 3214F0 sta buffer+407D1 3E8D mvi a,8dh07D3 3215F0 sta buffer+5

07D6 212AF0 lxi h,user_PC07D9 2238F0 shld current_register

07DC 2A2AF0 lhld user_PC07DF CD890A call read_register

07E2 C9 ret

;---- display carry flag -------------------------------------------------

07E3 C2EB07 put_flag: jnz put_high107E6 3EBD mvi a,0bdh07E8 C3ED07 jmp skip_put_high1

07EB 3E30 put_high1: mvi a,30h

07ED skip_put_high1:07ED C9 ret

07EE register6:07EE FE06 cpi 607F0 C21608 jnz register7

B8080.LST 3/12/2560 20:42

Page 25 of 86

Page 59: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560

07F3 3E8D mvi a,8dh ; carry flag07F5 3210F0 sta buffer07F8 3EB6 mvi a,0b6h07FA 3211F0 sta buffer+107FD 3E00 mvi a,00h07FF 3212F0 sta buffer+2

0802 2A2CF0 lhld user_AF0805 7D mov a,l

0806 E601 ani 10808 CDE307 call put_flag080B 3213F0 sta buffer+3

080E AF xra a080F 3214F0 sta buffer+40812 3215F0 sta buffer+5

0815 C9 ret

0816 register7:0816 FE07 cpi 70818 C24108 jnz register8

081B 3E8A mvi a,8ah ; zero flag081D 3210F0 sta buffer0820 3E8F mvi a,8fh0822 3211F0 sta buffer+10825 3E03 mvi a,03h0827 3212F0 sta buffer+2082A 3EA3 mvi a,0a3h082C 3213F0 sta buffer+3082F 3E00 mvi a,00h0831 3214F0 sta buffer+4

0834 2A2CF0 lhld user_AF0837 7D mov a,l

0838 E640 ani 40h083A CDE307 call put_flag083D 3215F0 sta buffer+5

0840 C9 ret

0841 register8:0841 FE08 cpi 80843 C27208 jnz register9

0846 3EAE mvi a,0aeh ; sign flag0848 3210F0 sta buffer084B 3E89 mvi a,89h084D 3211F0 sta buffer+10850 3EAD mvi a,0adh0852 3212F0 sta buffer+20855 3E23 mvi a,23h0857 3213F0 sta buffer+3085A 3E00 mvi a,00h

B8080.LST 3/12/2560 20:42

Page 26 of 86

Page 60: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620

085C 3214F0 sta buffer+4

085F 2A2CF0 lhld user_AF0862 7D mov a,l

0863 17 ral 0864 DA6C08 jc put_high20867 3EBD mvi a,0bdh0869 C36E08 jmp skip_put_high2

086C 3E30 put_high2: mvi a,30h086E skip_put_high2:086E 3215F0 sta buffer+5

0871 C9 ret

0872 register9:0872 FE09 cpi 90874 C29A08 jnz register10

0877 3E3F mvi a,3fh ; AC flag0879 3210F0 sta buffer087C 3E8D mvi a,8dh087E 3211F0 sta buffer+10881 3E00 mvi a,00h0883 3212F0 sta buffer+2

0886 2A2CF0 lhld user_AF0889 7D mov a,l

088A E610 ani 10h088C CDE307 call put_flag088F 3213F0 sta buffer+30892 AF xra a0893 3214F0 sta buffer+40896 3215F0 sta buffer+5

0899 C9 ret

089A register10:089A FE0A cpi 10089C C2C008 jnz break

089F 3E1F mvi a,1fh ; Parity flag08A1 3210F0 sta buffer08A4 3E00 mvi a,00h08A6 3211F0 sta buffer+1

08A9 2A2CF0 lhld user_AF08AC 7D mov a,l

08AD E604 ani 408AF CDE307 call put_flag08B2 3212F0 sta buffer+208B5 AF xra a08B6 3213F0 sta buffer+308B9 3214F0 sta buffer+408BC 3215F0 sta buffer+5

B8080.LST 3/12/2560 20:42

Page 27 of 86

Page 61: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680

08BF C9 ret

; ------------------ ALT B SET BREAK POINT ---------------------------08C0 FE0B break: cpi 1108C2 C2FA08 jnz clear_break

08C5 2A2AF0 lhld user_PC ; save user PC08C8 223EF0 shld break_address

08CB 7E mov a,m ; get user code08CC 3240F0 sta break_opcode ; save it

08CF E5 push h08D0 CDB40A call read_memory08D3 E1 pop h08D4 3EDF mvi a,0DFh ; RST 3 opcode08D6 77 mov m,a ; replace user code with RST

08D7 F5 push psw

08D8 3A10F0 lda buffer08DB F640 ori 40h08DD 3210F0 sta buffer

08E0 3A11F0 lda buffer+108E3 F640 ori 40h08E5 3211F0 sta buffer+1

08E8 3A12F0 lda buffer+208EB F640 ori 40h08ED 3212F0 sta buffer+2

08F0 3A13F0 lda buffer+308F3 F640 ori 40h08F5 3213F0 sta buffer+308F8 F1 pop psw

08F9 C9 ret

;----------------- ALT C CLEAR BREAK POINT ---------------------------

08FA FE0C clear_break: cpi 1208FC C21509 jnz insert_byte

08FF 2140F0 lxi h,break_opcode ; restore user code0902 7E mov a,m

0903 2A3EF0 lhld break_address0906 77 mov m,a0907 222AF0 shld user_PC090A CDB40A call read_memory090D AF xra a090E 3226F0 sta entry_mode0911 CDF80A call mode_indicator

0914 C9 ret

;--------------- ALT E insert byte ---------------------------------; insert byte within 512 bytes from current location

B8080.LST 3/12/2560 20:42

Page 28 of 86

Page 62: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740

0915 FE0E insert_byte: cpi 14 ; test with key E0917 C24009 jnz delete_byte

091A 2A2AF0 lhld user_PC091D E5 push h ; save PC to stack

091E 110002 lxi d,5120921 19 dad d0922 E5 push h0923 C1 pop b ; copy HL to BC0924 0B dcx b

0925 110002 lxi d,512 ; load counter with 512 bytes

0928 insert_byte1: 0928 0A ldax b0929 77 mov m,a 092A 2B dcx h092B 0B dcx b092C 1B dcx d092D 7B mov a,e092E B2 ora d ; check DE ==0 092F C22809 jnz insert_byte1

0932 E1 pop h ; restore user PC0933 AF xra a0934 77 mov m,a ; store 00 at insert byte0935 CDB40A call read_memory0938 AF xra a0939 3226F0 sta entry_mode093C CDF80A call mode_indicator

093F C9 ret

;--------------- ALT D delete byte ---------------------------------; delete byte within 512 bytes

0940 FE0D delete_byte: cpi 130942 C26509 jnz beep_chk

0945 2A2AF0 lhld user_PC 0948 E5 push h0949 E5 push h094A C1 pop b

094B 03 inx b094C 110002 lxi d,512

094F delete_byte1:094F 0A ldax b0950 77 mov m,a0951 23 inx h0952 03 inx b0953 1B dcx d0954 7B mov a,e0955 B2 ora d ; check if DE ==00956 C24F09 jnz delete_byte1

B8080.LST 3/12/2560 20:42

Page 29 of 86

Page 63: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800

0959 E1 pop h095A CDB40A call read_memory095D AF xra a095E 3226F0 sta entry_mode0961 CDF80A call mode_indicator

0964 C9 ret

;--------------- ALT F BEEP/NO BEEP ---------------------------------0965 FE0F beep_chk: cpi 150967 C27309 jnz option1

096A 3A24F0 lda beep_flag096D EE01 xri 1096F 3224F0 sta beep_flag0972 C9 ret

0973 option1:0973 CD5606 call display_off ; no service key0976 C9 ret

0977 210081 home: lxi h,home_address097A 222AF0 shld user_PC097D 2110F0 lxi h,buffer0980 CDB40A call read_memory0983 AF xra a0984 3226F0 sta entry_mode0987 CDF80A call mode_indicator098A C9 ret

098B 3E2A debug: mvi a,"*"098D CD8712 call cout0990 C9 ret

; go function, jump from monitor program to user program; save system stack and load user stack; load CPU registers with user registers before jump

0991 go:0991 210000 lxi h,0

0994 39 dad sp ; save system stack0995 2257F0 shld save_stack

0998 2A34F0 lhld user_SP ; get user stack099B F9 sphl ; load user stack

099C 2A2AF0 lhld user_PC099F E5 push h09A0 2A2CF0 lhld user_AF09A3 E5 push h09A4 2A2EF0 lhld user_BC09A7 E5 push h09A8 2A30F0 lhld user_DE09AB E5 push h09AC 2A32F0 lhld user_HL

B8080.LST 3/12/2560 20:42

Page 30 of 86

Page 64: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860

09AF E5 push h

09B0 E1 pop h09B1 D1 pop d09B2 C1 pop b09B3 F1 pop psw

09B4 C9 ret ; jump to user program

; single step; load CPU registers with user registers, enable trap signal ; program; disassemble line to be executed

09B5 single_step:09B5 210000 lxi h,0

09B8 39 dad sp ; save system stack09B9 2257F0 shld save_stack

09BC 2A34F0 lhld user_SP09BF F9 sphl ; load user stack

09C0 2A2AF0 lhld user_PC ; get address to be executed09C3 E5 push h ; save to stack

09C4 3A25F0 lda uart_found09C7 FE00 cpi 009C9 CAD509 jz skip2 ; if no uart, skip disassemble

09CC CD2413 call new_line09CF CD3513 call send_tab09D2 CD1A03 call disassemble

09D5 skip2:

09D5 E1 pop h09D6 222AF0 shld user_PC

09D9 2A2AF0 lhld user_PC09DC E5 push h09DD 2A2CF0 lhld user_AF09E0 E5 push h09E1 2A2EF0 lhld user_BC09E4 E5 push h09E5 2A30F0 lhld user_DE09E8 E5 push h09E9 2A32F0 lhld user_HL09EC E5 push h

09ED E1 pop h09EE D1 pop d09EF C1 pop b

09F0 3EBF mvi a,0bfh ; make port_c.6 low to enable 09F2 D340 out port1 ;

; now the shift register 74LS164 is running

B8080.LST 3/12/2560 20:42

Page 31 of 86

Page 65: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920

; within 8 ALE, trap will be high, trap will be recorgnized ; followed RET was executed

09F4 00 nop ; 1 cycles09F5 F1 pop psw ; 5 cycles09F6 C9 ret ; 3 cycles

; set mode to 1

09F7 3E01 address_mode: mvi a,109F9 3226F0 sta entry_mode09FC CDB40A call read_memory09FF AF xra a0A00 3228F0 sta counter20A03 C9 ret

0A04 AF data_mode: xra a0A05 3226F0 sta entry_mode0A08 3227F0 sta counter10A0B CDB40A call read_memory0A0E C9 ret

0A0F 3E02 function_2nd: mvi a,20A11 3226F0 sta entry_mode0A14 3E3F mvi a,3fh0A16 3210F0 sta buffer0A19 3E85 mvi a,85h0A1B 3211F0 sta buffer+10A1E 3E87 mvi a,87h0A20 3212F0 sta buffer+20A23 3E00 mvi a,00A25 3213F0 sta buffer+30A28 3E00 mvi a,00A2A 3214F0 sta buffer+40A2D 3E00 mvi a,00A2F 3215F0 sta buffer+50A32 C9 ret

; set entry mode to 3; hex data will be used for register modifying

0A33 modify_register:

0A33 F5 push psw

0A34 3E03 mvi a,30A36 3226F0 sta entry_mode

0A39 3A13F0 lda buffer+30A3C F640 ori 40h0A3E 3213F0 sta buffer+3

0A41 3A12F0 lda buffer+20A44 F640 ori 40h0A46 3212F0 sta buffer+2

0A49 3A11F0 lda buffer+10A4C F640 ori 40h

B8080.LST 3/12/2560 20:42

Page 32 of 86

Page 66: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980

0A4E 3211F0 sta buffer+1

0A51 3A10F0 lda buffer0A54 F640 ori 40h0A56 3210F0 sta buffer

0A59 F1 pop psw

0A5A C9 ret

; increment key works with mode0 or mode1 display

0A5B 3E00 increment: mvi a,00A5D 3226F0 sta entry_mode ; switch to data mode0A60 3227F0 sta counter1 ; clear event counter1

0A63 2A2AF0 lhld user_PC0A66 23 inx h0A67 222AF0 shld user_PC0A6A CDB40A call read_memory0A6D C9 ret

; decrement key works with mode0 or mode1 display

0A6E 3E00 decrement: mvi a,00A70 3226F0 sta entry_mode ; switch to data mode0A73 2A2AF0 lhld user_PC0A76 2B dcx h0A77 222AF0 shld user_PC0A7A CDB40A call read_memory0A7D C9 ret

; convert nibble 0-F to 8-bit seven segment code; entry: A; exit: A

0A7E to_seven_segment:

0A7E E60F ani 0fh ; get only low nibble as the index0A80 21A51E lxi h,convert0A83 5F mov e,a0A84 1600 mvi d,00A86 19 dad d 0A87 7E mov a,m ; get code0A88 C9 ret

; convert [HL] to display buffer 0-3; for register display; entry: HL

0A89 read_register: 0A89 E5 push h

B8080.LST 3/12/2560 20:42

Page 33 of 86

Page 67: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040

0A8A 7C mov a,h0A8B F5 push psw0A8C 0F rrc0A8D 0F rrc0A8E 0F rrc0A8F 0F rrc0A90 CD7E0A call to_seven_segment0A93 3210F0 sta buffer

0A96 F1 pop psw0A97 CD7E0A call to_seven_segment0A9A 3211F0 sta buffer+1

0A9D E1 pop h

0A9E E5 push h

0A9F 7D mov a,l0AA0 F5 push psw0AA1 0F rrc0AA2 0F rrc0AA3 0F rrc0AA4 0F rrc0AA5 CD7E0A call to_seven_segment0AA8 3212F0 sta buffer+20AAB F1 pop psw0AAC CD7E0A call to_seven_segment0AAF 3213F0 sta buffer+3

0AB2 E1 pop h0AB3 C9 ret

; convert current address and data to display buffer;

0AB4 2A2AF0 read_memory: lhld user_PC0AB7 E5 push h0AB8 7C mov a,h0AB9 F5 push psw0ABA 0F rrc0ABB 0F rrc0ABC 0F rrc0ABD 0F rrc0ABE CD7E0A call to_seven_segment0AC1 3210F0 sta buffer

0AC4 F1 pop psw0AC5 CD7E0A call to_seven_segment0AC8 3211F0 sta buffer+1

0ACB E1 pop h

0ACC E5 push h

0ACD 7D mov a,l0ACE F5 push psw0ACF 0F rrc0AD0 0F rrc

B8080.LST 3/12/2560 20:42

Page 34 of 86

Page 68: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100

0AD1 0F rrc0AD2 0F rrc0AD3 CD7E0A call to_seven_segment0AD6 3212F0 sta buffer+20AD9 F1 pop psw0ADA CD7E0A call to_seven_segment0ADD 3213F0 sta buffer+3

0AE0 E1 pop h0AE1 7E mov a,m ; read from memory

0AE2 F5 push psw0AE3 0F rrc0AE4 0F rrc0AE5 0F rrc0AE6 0F rrc0AE7 CD7E0A call to_seven_segment0AEA 3214F0 sta buffer+40AED F1 pop psw

0AEE CD7E0A call to_seven_segment0AF1 3215F0 sta buffer+5

0AF4 CDF80A call mode_indicator

0AF7 C9 ret

0AF8 mode_indicator:

0AF8 F5 push psw

0AF9 3A26F0 lda entry_mode0AFC FE00 cpi 00AFE C2330B jnz mode1

0B01 3A15F0 lda buffer+5 ; mode 0 indicator0B04 F640 ori 40h0B06 3215F0 sta buffer+5

0B09 3A14F0 lda buffer+40B0C F640 ori 40h0B0E 3214F0 sta buffer+4

0B11 3A13F0 lda buffer+30B14 E6BF ani 0bfh0B16 3213F0 sta buffer+3

0B19 3A12F0 lda buffer+20B1C E6BF ani 0bfh0B1E 3212F0 sta buffer+2

0B21 3A11F0 lda buffer+10B24 E6BF ani 0bfh0B26 3211F0 sta buffer+1

0B29 3A10F0 lda buffer0B2C E6BF ani 0bfh0B2E 3210F0 sta buffer

B8080.LST 3/12/2560 20:42

Page 35 of 86

Page 69: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160

0B31 F1 pop psw0B32 C9 ret

0B33 FE01 mode1: cpi 10B35 C26A0B jnz mode2

0B38 3A15F0 lda buffer+5 ; mode 1 indicator0B3B E6BF ani 0bfh0B3D 3215F0 sta buffer+5

0B40 3A14F0 lda buffer+40B43 E6BF ani 0bfh0B45 3214F0 sta buffer+4

0B48 3A13F0 lda buffer+30B4B F640 ori 40h0B4D 3213F0 sta buffer+3

0B50 3A12F0 lda buffer+20B53 F640 ori 40h0B55 3212F0 sta buffer+2

0B58 3A11F0 lda buffer+10B5B F640 ori 40h0B5D 3211F0 sta buffer+1

0B60 3A10F0 lda buffer0B63 F640 ori 40h0B65 3210F0 sta buffer

0B68 F1 pop psw0B69 C9 ret

0B6A F1 mode2: pop psw0B6B C9 ret

0B6C 0E07 cold_boot: mvi c,70B6E 218A0B lxi h,title

0B71 1650 cold2: mvi d,50h

0B73 CDAC0C cold1: call scan0B76 15 dcr d0B77 C2730B jnz cold1

0B7A 23 inx h0B7B 0D dcr c0B7C C2710B jnz cold2

0B7F 2B dcx h

B8080.LST 3/12/2560 20:42

Page 36 of 86

Page 70: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220

0B80 0E00 mvi c,00B82 CDAC0C cold3: call scan0B85 0D dcr c0B86 C2820B jnz cold3

0B89 C9 ret

0B8A 0000000000title: dfb 0,0,0,0,0,0,0bfh,0bdh,0bfh,0bdh,0,0

; display data read from memory pointed to by HL on LED; entry: HL;

0B96 1605 demo: mvi d,5

0B98 CDAC0C demo1_2: call scan0B9B 15 dcr d0B9C C2980B jnz demo1_20B9F 23 inx h0BA0 C9 ret

; convert position key to internal key code 0-F for data ; function keys; entry: A = scan code; exit: A = internal code

0BA1 get_key_code: ; out gpio ; check key position

0BA1 FE02 cpi 20BA3 C2A90B jnz code10BA6 3E04 mvi a,40BA8 C9 ret

0BA9 FE0A code1: cpi 0ah0BAB C2B10B jnz code20BAE 3E06 mvi a,60BB0 C9 ret

0BB1 FE07 code2: cpi 70BB3 C2B90B jnz code30BB6 3E01 mvi a,10BB8 C9 ret

0BB9 FE06 code3: cpi 60BBB C2C10B jnz code40BBE 3E05 mvi a,50BC0 C9 ret

0BC1 FE03 code4: cpi 30BC3 C2C90B jnz code50BC6 3E00 mvi a,00BC8 C9 ret

0BC9 FE0B code5: cpi 0bh0BCB C2D10B jnz code60BCE 3E02 mvi a,20BD0 C9 ret

B8080.LST 3/12/2560 20:42

Page 37 of 86

Page 71: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280

0BD1 FE13 code6: cpi 13h0BD3 C2D90B jnz code70BD6 3E10 mvi a,10h ; addr0BD8 C9 ret

0BD9 FE0E code7: cpi 0eh0BDB C2E10B jnz code80BDE 3E07 mvi a,7 0BE0 C9 ret

0BE1 FE04 code8: cpi 40BE3 C2E90B jnz code90BE6 3E0D mvi a,0dh0BE8 C9 ret

0BE9 FE0C code9: cpi 0ch0BEB C2F10B jnz code100BEE 3E0F mvi a,0fh0BF0 C9 ret

0BF1 FE14 code10: cpi 14h0BF3 C2F90B jnz code110BF6 3E19 mvi a,19h ; user0BF8 C9 ret

0BF9 FE0F code11: cpi 0fh0BFB C2010C jnz code120BFE 3E03 mvi a,3 0C00 C9 ret

0C01 FE05 code12: cpi 50C03 C2090C jnz code130C06 3E09 mvi a,90C08 C9 ret

0C09 FE0D code13: cpi 0dh0C0B C2110C jnz code140C0E 3E0B mvi a,0bh0C10 C9 ret

0C11 FE15 code14: cpi 15h0C13 C2190C jnz code150C16 3E17 mvi a,17h ; home0C18 C9 ret

0C19 FE17 code15: cpi 17h0C1B C2210C jnz code160C1E 3E11 mvi a,11h ; data0C20 C9 ret

0C21 FE10 code16: cpi 10h0C23 C2290C jnz code170C26 3E18 mvi a,18h ; modify0C28 C9 ret

0C29 FE18 code17: cpi 18h0C2B C2310C jnz code180C2E 3E15 mvi a,15h ; dec0C30 C9 ret

B8080.LST 3/12/2560 20:42

Page 38 of 86

Page 72: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340

0C31 FE01 code18: cpi 10C33 C2390C jnz code190C36 3E08 mvi a,80C38 C9 ret

0C39 FE00 code19: cpi 00C3B C2410C jnz code200C3E 3E0C mvi a,0ch0C40 C9 ret

0C41 FE08 code20: cpi 80C43 C2490C jnz code210C46 3E0E mvi a,0eh0C48 C9 ret

0C49 FE09 code21: cpi 90C4B C2510C jnz code220C4E 3E0A mvi a,0ah0C50 C9 ret

0C51 FE11 code22: cpi 11h0C53 C2590C jnz code230C56 3E16 mvi a,16h ; step0C58 C9 ret

0C59 FE19 code23: cpi 19h0C5B C2610C jnz code240C5E 3E12 mvi a,12h ; inc0C60 C9 ret

0C61 FE16 code24: cpi 16h0C63 C2690C jnz code250C66 3E14 mvi a,14h ;ALT0C68 C9 ret

0C69 FE12 code25: cpi 12h0C6B C2710C jnz code260C6E 3E13 mvi a,13h ; GO0C70 C9 ret

0C71 FE20 code26: cpi 20h0C73 C2790C jnz code270C76 3E20 mvi a,20h ; RXD 0C78 C9 ret

0C79 code27

0C79 3EFF mvi a,0ffh0C7B C9 ret

; scan display and keyboard unitl key was pressed

0C7C scan_key: ; mvi d,50 ; number of loop for timeout

0C7C scan_key4: ;push d ; save d

0C7C 2110F0 lxi h,buffer0C7F CDAC0C call scan

B8080.LST 3/12/2560 20:42

Page 39 of 86

Page 73: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400

0C82 3A21F0 lda key0C85 FEFF cpi 0ffh0C87 C27C0C jnz scan_key4 ; loop if key still pressed

;pop d

0C8A F28D0C jp scan_key3

0C8D scan_key2: ;pop d

; dcr d

; jp scan_key4 ; no repeat function

; repeat if still pressed when

0C8D CDA50C scan_key3: call debounce ; debounce after released

0C90 2110F0 lxi h,buffer0C93 CDAC0C scan_key1: call scan0C96 3A21F0 lda key0C99 FEFF cpi 0ffh0C9B CA930C jz scan_key1 ; loop until key will be pressed

0C9E CDA50C call debounce

0CA1 CDA10B call get_key_code

; call out2x0CA4 C9 ret

0CA5 0600 debounce: mvi b,00CA7 05 debounce1: dcr b0CA8 C2A70C jnz debounce10CAB C9 ret

; subroutine scan keyboard and display; input: hl pointer to buffer; exit: key = scan code; -1 no key pressed;

0CAC E5 scan: push h0CAD C5 push b0CAE D5 push d

0CAF 0E06 mvi c,6 ; for 6-digit LED0CB1 1E20 mvi e,20h ; digit scan code appears at 4-to-0CB3 1600 mvi d,0 ; key position0CB5 3EFF mvi a,0ffh ; put -1 to key0CB7 3221F0 sta key ; key = -1

0CBA 7B scan1: mov a,e0CBB 2F cma ; complement it0CBC F6C0 ori 0c0h ; high nibble must be 1100 00000CBE D340 out port1 ; active digit first

B8080.LST 3/12/2560 20:42

Page 40 of 86

Page 74: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460

0CC0 7E mov a,m ; load a with [hl]0CC1 D360 out port2 ; then turn segment on

0CC3 FE30 cpi 30h ; check for 10CC5 C2CD0C jnz checkmore0CC8 00 nop0CC9 00 nop0CCA C3DE0C jmp skip230CCD checkmore ; check for 1.0CCD FE70 cpi 70h0CCF C2D80C jnz long_delay0CD2 00 nop0CD3 00 nop0CD4 00 nop0CD5 C3DE0C jmp skip23

0CD8 long_delay

0CD8 0603 mvi b,3 ; time ON 0CDA 05 wait1: dcr b0CDB C2DA0C jnz wait1

0CDE AF skip23 xra a0CDF D360 out port2 ; turn off segment

0CE1 0605 mvi b,5 ; time OFF 0CE3 05 wait2: dcr b0CE4 C2E30C jnz wait2

0CE7 DB20 in port0 ; read input port

0CE9 0604 mvi b,4 ; check all 8-row0CEB 1F shift_key: rar ; rotate right through carry0CEC DAF50C jc next_key ; if carry = 1 then no key pressed

0CEF F5 push psw0CF0 7A mov a,d0CF1 3221F0 sta key ; save key position0CF4 F1 pop psw

0CF5 next_key:0CF5 14 inr d ; next key position

0CF6 05 dcr b ; until 8-bit was shifted0CF7 C2EB0C jnz shift_key

0CFA 7B mov a,e ; next digit0CFB 0F rrc0CFC 5F mov e,a

0CFD 23 inx h ; next location

0CFE 0D dcr c ; next column0CFF C2BA0C jnz scan1

; call serial_command

B8080.LST 3/12/2560 20:42

Page 41 of 86

Page 75: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520

; check the rest keys at PA6 and PA7

0D02 DB20 in port00D04 E680 ani 80h ; check S170D06 C2110D jnz check_S27

0D09 3E18 mvi a,18h ; if pressed next key code will be 0D0B 3221F0 sta key0D0E C3290D jmp skip_check_S27

0D11 check_S27:

0D11 DB20 in port00D13 E640 ani 40h0D15 C21D0D jnz check_RXD

0D18 3E19 mvi a,19h0D1A 3221F0 sta key

0D1D DB20 check_RXD in port00D1F E620 ani 20h ; test RXD pin0D21 C2290D jnz skip_check_s27

0D24 3E20 mvi a,20h0D26 3221F0 sta key

0D29 skip_check_S27:

; check range of scan code, must be 00-20h

0D29 3A21F0 lda key0D2C FEFF cpi 0ffh0D2E CA490D jz no_key_pressed

; check accept only 00 to 20H

0D31 FE21 cpi 21h0D33 FA3E0D jm check_lowest

0D36 3EFF mvi a,0ffh0D38 3221F0 sta key0D3B C3490D jmp no_key_pressed

0D3E check_lowest0D3E FE00 cpi 00D40 F2480D jp valid_key

0D43 3EFF mvi a,0ffh0D45 3221F0 sta key

0D48 00 valid_key: nop

0D49 no_key_pressed:

0D49 D1 pop d0D4A C1 pop b0D4B E1 pop h0D4C C9 ret

B8080.LST 3/12/2560 20:42

Page 42 of 86

Page 76: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580

;----------- serial commands with 9600 8n1 terminal --------------------; check if serial buffer has command;

0D4D connect_terminal:

0D4D F1 pop psw ; dummy pop remove return address

0D4E serial_command:;lda uart_found;cpi 0;jz skip_serial

0D4E CD9312 call get_command0D51 CDA80D call download0D54 CD8A0D call prompting0D57 CD3B13 call hex_dump0D5A CD4612 call help0D5D CD1F12 call quick_home0D60 CD3412 call io_address0D63 CD0212 call new_location0D66 CD7F11 call edit_location0D69 CD3511 call jump_to_user_pgm0D6C CD1C11 call monitor_function0D6F CDCA0D call ascii_print0D72 CDD810 call fill_memory0D75 CDA40F call register_display0D78 CD640F call stack_display0D7B CDF302 call disassemble1

; call single_step_ ; 8080 kit has no single step ; 8085 kit use trap pin for

0D7E CD490F call print_watch0D81 CD2E0F call clear_watch0D84 CDFC0D call set_user_register

0D87 skip_serial:

0D87 C34E0D jmp serial_command ; now repeat until RESET

0D8A 3A22F0 prompting: lda command0D8D FE0D cpi cr0D8F C2A70D jnz exit_prompting

0D92 send_prompt:

0D92 CD2413 call new_line0D95 2A3CF0 lhld pointer ; user_PC0D98 7C mov a,h0D99 CD1513 call out2x0D9C 7D mov a,l0D9D CD1513 call out2x0DA0 21F31E lxi h,prompt_text

B8080.LST 3/12/2560 20:42

Page 43 of 86

Page 77: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640

0DA3 CDAD12 call put_str0DA6 C9 ret

0DA7 C9 exit_prompting: ret

; command execute; get command from serial port

0DA8 3A22F0 download: lda command0DAB FE6C cpi "l"0DAD C2C90D jnz exit_download

0DB0 CD8515 call clear_bcd1 ; reset bcd counter10DB3 3E01 mvi a,10DB5 323AF0 sta temp

0DB8 AF xra a0DB9 3220F0 sta bcs ; clear byte chekc sum error

0DBC 21DC1E lxi h,download_text0DBF CDAD12 call put_str0DC2 CD4D14 call get_record0DC5 CD920D call send_prompt0DC8 C9 ret

0DC9 C9 exit_download ret

; display printable ASCII code, 20H-7FH

0DCA 3A22F0 ascii_print: lda command0DCD FE61 cpi "a"0DCF C2FB0D jnz exit_ascii_print

0DD2 216D1F lxi h, ascii_text0DD5 CDAD12 call put_str

0DD8 CD2413 call new_line0DDB CD2413 call new_line

0DDE 2E20 mvi l,20h0DE0 0E60 mvi c,96

0DE2 ascii_print1:

0DE2 7D mov a,l0DE3 CD8712 call cout

0DE6 3E3D mvi a,"="0DE8 CD8712 call cout0DEB 7D mov a,l0DEC CD1513 call out2x0DEF CD2F13 call space0DF2 2C inr l0DF3 0D dcr c0DF4 C2E20D jnz ascii_print1

0DF7 CD920D call send_prompt

B8080.LST 3/12/2560 20:42

Page 44 of 86

Page 78: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700

0DFA C9 ret

0DFB exit_ascii_print:

0DFB C9 ret

;------------------- set value to user registers ---------------------; set value to user register AF, BC, DE, HL, SP, PC

0DFC set_user_register:

0DFC 3A22F0 lda command0DFF FE73 cpi "s"0E01 C2100F jnz exit_set_user

0E04 211B20 lxi h, set_register_text0E07 CDAD12 call put_str

0E0A CD8F12 call cin0E0D FE61 cpi "a"0E0F C2380E jnz set_user1

0E12 CD2413 call new_line0E15 21BF1F lxi h,af_text0E18 CDAD12 call put_str0E1B 2A2CF0 lhld user_AF0E1E 7C mov a,h0E1F CD1513 call out2x0E22 7D mov a,l0E23 CD1513 call out2x0E26 CD3513 call send_tab0E29 CDE813 call get_hex20E2C 67 mov h,a0E2D CDE813 call get_hex20E30 6F mov l,a0E31 222CF0 shld user_AF

0E34 CD920D call send_prompt0E37 C9 ret

0E38 set_user1:0E38 FE62 cpi "b"0E3A C2630E jnz set_user2

0E3D CD2413 call new_line0E40 21C31F lxi h,bc_text0E43 CDAD12 call put_str0E46 2A2EF0 lhld user_BC0E49 7C mov a,h0E4A CD1513 call out2x0E4D 7D mov a,l0E4E CD1513 call out2x0E51 CD3513 call send_tab0E54 CDE813 call get_hex20E57 67 mov h,a0E58 CDE813 call get_hex20E5B 6F mov l,a0E5C 222EF0 shld user_BC

0E5F CD920D call send_prompt

B8080.LST 3/12/2560 20:42

Page 45 of 86

Page 79: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760

0E62 C9 ret

0E63 set_user2:0E63 FE64 cpi "d"0E65 C28E0E jnz set_user3

0E68 CD2413 call new_line0E6B 21C71F lxi h,de_text0E6E CDAD12 call put_str0E71 2A30F0 lhld user_DE0E74 7C mov a,h0E75 CD1513 call out2x0E78 7D mov a,l0E79 CD1513 call out2x0E7C CD3513 call send_tab0E7F CDE813 call get_hex20E82 67 mov h,a0E83 CDE813 call get_hex20E86 6F mov l,a0E87 2230F0 shld user_DE

0E8A CD920D call send_prompt0E8D C9 ret

0E8E set_user3:0E8E FE68 cpi "h"0E90 C2B90E jnz set_user4

0E93 CD2413 call new_line0E96 21CB1F lxi h,hl_text0E99 CDAD12 call put_str0E9C 2A32F0 lhld user_HL0E9F 7C mov a,h0EA0 CD1513 call out2x0EA3 7D mov a,l0EA4 CD1513 call out2x0EA7 CD3513 call send_tab0EAA CDE813 call get_hex20EAD 67 mov h,a0EAE CDE813 call get_hex20EB1 6F mov l,a0EB2 2232F0 shld user_HL

0EB5 CD920D call send_prompt0EB8 C9 ret

0EB9 set_user4:0EB9 FE73 cpi "s"0EBB C2E40E jnz set_user5

0EBE CD2413 call new_line0EC1 21CF1F lxi h,sp_text0EC4 CDAD12 call put_str0EC7 2A34F0 lhld user_SP0ECA 7C mov a,h0ECB CD1513 call out2x0ECE 7D mov a,l0ECF CD1513 call out2x0ED2 CD3513 call send_tab0ED5 CDE813 call get_hex2

B8080.LST 3/12/2560 20:42

Page 46 of 86

Page 80: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820

0ED8 67 mov h,a0ED9 CDE813 call get_hex20EDC 6F mov l,a0EDD 2234F0 shld user_SP

0EE0 CD920D call send_prompt0EE3 C9 ret

0EE4 set_user5:0EE4 FE70 cpi "p"0EE6 C20F0F jnz set_user6

0EE9 CD2413 call new_line0EEC 21D81F lxi h,pc_text0EEF CDAD12 call put_str0EF2 2A2AF0 lhld user_PC0EF5 7C mov a,h0EF6 CD1513 call out2x0EF9 7D mov a,l0EFA CD1513 call out2x0EFD CD3513 call send_tab0F00 CDE813 call get_hex20F03 67 mov h,a0F04 CDE813 call get_hex20F07 6F mov l,a0F08 222AF0 shld user_PC

0F0B CD920D call send_prompt0F0E C9 ret

0F0F C9 set_user6: ret

0F10 exit_set_user:

0F10 C9 ret

0F11 print_watch_ram:

0F11 CD2413 call new_line0F14 2100F0 lxi h, watch_ram0F17 0E10 mvi c,160F19 7C mov a,h0F1A CD1513 call out2x0F1D 7D mov a,l0F1E CD1513 call out2x0F21 watch1:0F21 CD2F13 call space0F24 7E mov a,m0F25 CD1513 call out2x0F28 23 inx h0F29 0D dcr c

B8080.LST 3/12/2560 20:42

Page 47 of 86

Page 81: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880

0F2A C2210F jnz watch10F2D C9 ret

;----------- clear watch variables------------------------------------

0F2E 3A22F0 clear_watch: lda command0F31 FE63 cpi "c"0F33 C2480F jnz exit_clear_watch0F36 2100F0 lxi h, watch_ram0F39 0E10 mvi c,16

0F3B AF clear1: xra a0F3C 77 mov m,a0F3D 23 inx h0F3E 0D dcr c0F3F C23B0F jnz clear1

0F42 CD110F call print_watch_ram0F45 CD920D call send_prompt

0F48 C9 exit_clear_watch: ret

;----------- print watch variables ------------------------------------

0F49 print_watch:

0F49 3A22F0 lda command0F4C FE77 cpi "w"0F4E C2570F jnz exit_watch

0F51 CD110F call print_watch_ram0F54 CD920D call send_prompt

0F57 C9 exit_watch: ret

;---------- single step running with key space -----------------------0F58 single_step_:

0F58 3A22F0 lda command0F5B FE20 cpi " "0F5D C2630F jnz exit_step0F60 CDB509 call single_step

0F63 exit_step:0F63 C9 ret

;------- display stack area from top of stack to initial

0F64 stack_display:0F64 3A22F0 lda command0F67 FE6B cpi "k"0F69 C2A30F jnz exit_stack

B8080.LST 3/12/2560 20:42

Page 48 of 86

Page 82: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940

; lxi h,stack_text; call put_str

0F6C 21481F lxi h,edit_text20F6F CDAD12 call put_str0F72 CD2413 call new_line

0F75 2A34F0 lhld user_SP

0F78 stack_display1:

0F78 7C mov a,h0F79 CD1513 call out2x0F7C 7D mov a,l0F7D CD1513 call out2x

0F80 CD2F13 call space0F83 CD2F13 call space0F86 3E5B mvi a,"["0F88 CD8712 call cout

0F8B 7E mov a,m0F8C CD1513 call out2x

0F8F 3E5D mvi a,"]"0F91 CD8712 call cout

0F94 CD2413 call new_line

0F97 23 inx h

0F98 119AF0 lxi d, user_stack+32+1 ; load base of user stack

0F9B 7D mov a,l0F9C AB xra e0F9D C2780F jnz stack_display1

0FA0 CD920D call send_prompt

0FA3 exit_stack:0FA3 C9 ret

;---------------- registers display ----------------------------------

0FA4 register_display:

0FA4 3A22F0 lda command0FA7 FE72 cpi "r"0FA9 C2C910 jnz exit_register

0FAC register_display1:

; lda uart_found; cpi 0; jz exit_register ; exit of no uart

B8080.LST 3/12/2560 20:42

Page 49 of 86

Page 83: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000

0FAC CD2413 call new_line

0FAF register_display2:0FAF CD2413 call new_line

0FB2 21BF1F lxi h,af_text0FB5 CDAD12 call put_str0FB8 2A2CF0 lhld user_AF0FBB 7C mov a,h0FBC CD1513 call out2x0FBF 7D mov a,l0FC0 CD1513 call out2x0FC3 CD2F13 call space

0FC6 21C31F lxi h,bc_text0FC9 CDAD12 call put_str0FCC 2A2EF0 lhld user_BC0FCF 7C mov a,h0FD0 CD1513 call out2x0FD3 7D mov a,l0FD4 CD1513 call out2x

0FD7 CD2F13 call space

0FDA 21C71F lxi h,de_text0FDD CDAD12 call put_str0FE0 2A30F0 lhld user_DE0FE3 7C mov a,h0FE4 CD1513 call out2x0FE7 7D mov a,l0FE8 CD1513 call out2x0FEB CD2F13 call space

0FEE 21CB1F lxi h,hl_text0FF1 CDAD12 call put_str0FF4 2A32F0 lhld user_HL0FF7 7C mov a,h0FF8 CD1513 call out2x0FFB 7D mov a,l0FFC CD1513 call out2x

0FFF CD2F13 call space

1002 21CF1F lxi h,sp_text1005 CDAD12 call put_str1008 2A34F0 lhld user_SP100B 7C mov a,h100C CD1513 call out2x100F 7D mov a,l1010 CD1513 call out2x

1013 CD2F13 call space

; lxi h,tos_text; call put_str; lhld tos; mov a,h; call out2x; mov a,l; call out2x

B8080.LST 3/12/2560 20:42

Page 50 of 86

Page 84: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060

; call space

1016 21D81F lxi h,pc_text1019 CDAD12 call put_str101C 2A2AF0 lhld user_PC101F 7C mov a,h1020 CD1513 call out2x1023 7D mov a,l1024 CD1513 call out2x

1027 CD2F13 call space

102A 21F21F lxi h,sign_text102D CDAD12 call put_str1030 2A2CF0 lhld user_AF1033 7D mov a,l1034 E680 ani 80h1036 C24110 jnz register_flag11039 3E30 mvi a,"0"103B CD8712 call cout103E C34610 jmp register_flag2

1041 register_flag1:1041 3E31 mvi a,"1"1043 CD8712 call cout

1046 register_flag2:1046 CD2F13 call space

1049 21CA10 lxi h,zero_text104C CDAD12 call put_str104F 2A2CF0 lhld user_AF1052 7D mov a,l1053 E640 ani 40h1055 C26010 jnz register_flag31058 3E30 mvi a,"0"105A CD8712 call cout105D C36510 jmp register_flag4

1060 register_flag3:1060 3E31 mvi a,"1"1062 CD8712 call cout

1065 register_flag4:1065 CD2F13 call space

1068 21CD10 lxi h,AC_text106B CDAD12 call put_str106E 2A2CF0 lhld user_AF1071 7D mov a,l1072 E610 ani 10h1074 C27F10 jnz register_flag51077 3E30 mvi a,"0"1079 CD8712 call cout107C C38410 jmp register_flag6

107F register_flag5:107F 3E31 mvi a,"1"1081 CD8712 call cout

B8080.LST 3/12/2560 20:42

Page 51 of 86

Page 85: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120

1084 register_flag6:1084 CD2F13 call space

1087 21D110 lxi h,P_text108A CDAD12 call put_str108D 2A2CF0 lhld user_AF1090 7D mov a,l1091 E604 ani 41093 C29E10 jnz register_flag71096 3E30 mvi a,"0"1098 CD8712 call cout109B C3A310 jmp register_flag8

109E register_flag7:109E 3E31 mvi a,"1"10A0 CD8712 call cout

10A3 register_flag8:10A3 CD2F13 call space

10A6 21D410 lxi h,CY_text10A9 CDAD12 call put_str10AC 2A2CF0 lhld user_AF10AF 7D mov a,l10B0 E601 ani 110B2 C2BD10 jnz register_flag910B5 3E30 mvi a,"0"10B7 CD8712 call cout10BA C3C210 jmp register_flag10

10BD register_flag9:10BD 3E31 mvi a,"1"10BF CD8712 call cout

10C2 register_flag10:10C2 CD2F13 call space

10C5 CD920D call send_prompt10C8 C9 ret

10C9 exit_register:10C9 C9 ret

10CA 5A3D00 zero_text dfb "Z=",010CD 41433D00 AC_text dfb "AC=",010D1 503D00 P_text dfb "P=",010D4 43593D00 CY_text dfb "CY=",0

;----------------- fill constant to memory ---------------------------

10D8 fill_memory:

10D8 3A22F0 lda command10DB FE66 cpi "f"10DD C21B11 jnz exit_fill10E0 217E1F lxi h,fill_text110E3 CDAD12 call put_str

10E6 CDCF13 call get_hex1

B8080.LST 3/12/2560 20:42

Page 52 of 86

Page 86: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180

10E9 67 mov h,a10EA CDCF13 call get_hex110ED 6F mov l,a10EE E5 push h ; save begin address to stack

10EF 218F1F lxi h,fill_text210F2 CDAD12 call put_str

10F5 CDCF13 call get_hex110F8 67 mov h,a10F9 CDCF13 call get_hex110FC 6F mov l,a10FD E5 push h ; save end address to stack

10FE 219F1F lxi h,fill_text31101 CDAD12 call put_str1104 CDCF13 call get_hex1

1107 47 mov b,a ; byte save to B

1108 D1 pop d ; end address in DE

1109 E1 pop h ; begin address in HL

110A fill_memory1:

110A 78 mov a,b110B 77 mov m,a110C 23 inx h

110D 7D mov a,l110E BB cmp e110F C20A11 jnz fill_memory1

1112 7C mov a,h1113 BA cmp d1114 C20A11 jnz fill_memory1

1117 CD920D call send_prompt111A C9 ret

111B exit_fill:

111B C9 ret

;---------------- monitor function list -------------------------------

111C monitor_function:

111C 3A22F0 lda command111F FE6D cpi "m"1121 C23411 jnz exit_monitor

1124 CD2413 call new_line1127 212A23 lxi h,monitor_text112A CDAD12 call put_str

B8080.LST 3/12/2560 20:42

Page 53 of 86

Page 87: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240

112D CD2413 call new_line1130 CD920D call send_prompt1133 C9 ret

1134 exit_monitor:1134 C9 ret

;----------------------- jump to user program --------------------

1135 3A22F0 jump_to_user_pgm: lda command1138 FE6A cpi "j"113A C27E11 jnz exit_jump

113D 21561F lxi h, jump_text11140 CDAD12 call put_str

1143 2A2AF0 lhld user_PC1146 7C mov a,h1147 CD1513 call out2x114A 7D mov a,l114B CD1513 call out2x

114E 21681F lxi h,jump_text21151 CDAD12 call put_str

1154 CDE813 call get_hex2

1157 F5 push psw

1158 3A23F0 lda flag1115B E601 ani 1115D C26F11 jnz skip_load_PC

1160 F1 pop psw

1161 67 mov h,a1162 CDE813 call get_hex21165 6F mov l,a1166 222AF0 shld user_PC1169 CD2413 call new_line116C C39109 jmp go

116F skip_load_PC:116F F1 pop psw1170 3A23F0 lda flag11173 E6FE ani 0feh1175 3223F0 sta flag11178 CD2413 call new_line117B C39109 jmp go

117E C9 exit_jump: ret

;------------ edit memory -----------------------------------------

117F 3A22F0 edit_location: lda command1182 FE65 cpi "e"1184 C20112 jnz exit_edit

1187 21051F lxi h, edit_text

B8080.LST 3/12/2560 20:42

Page 54 of 86

Page 88: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300

118A CDAD12 call put_str118D CDCF13 call get_hex11190 67 mov h,a1191 CDCF13 call get_hex11194 6F mov l,a1195 223CF0 shld pointer ;user_PC

1198 211D1F lxi h, edit_text1119B CDAD12 call put_str

119E 21481F lxi h, edit_text211A1 CDAD12 call put_str

11A4 CD2413 edit1: call new_line

11A7 2A3CF0 lhld pointer ;user_PC11AA 7C mov a,h11AB CD1513 call out2x11AE 7D mov a,l11AF CD1513 call out2x11B2 CD2F13 call space11B5 CD2F13 call space11B8 3E5B mvi a,"["11BA CD8712 call cout11BD 7E mov a,m11BE CD1513 call out2x11C1 3E5D mvi a,"]"11C3 CD8712 call cout

11C6 CD2F13 call space

11C9 CDE813 call get_hex2

11CC F5 push psw

11CD 3A23F0 lda flag111D0 E601 ani 111D2 C2F211 jnz exit_edit1 ; Enter key?

11D5 3A23F0 lda flag111D8 E602 ani 211DA C2E211 jnz skip_edit1 ; SPACE key?

11DD F1 pop psw

11DE 77 mov m,a11DF C3EB11 jmp skip_edit2

11E2 F1 skip_edit1: pop psw

11E3 3A23F0 lda flag111E6 E6FD ani 0fdh11E8 3223F0 sta flag1

11EB skip_edit2:11EB 23 inx h11EC 223CF0 shld pointer ;user_PC11EF C3A411 jmp edit1

11F2 F1 exit_edit1: pop psw

B8080.LST 3/12/2560 20:42

Page 55 of 86

Page 89: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360

11F3 3A23F0 lda flag111F6 E6FE ani 0feh11F8 3223F0 sta flag1

11FB CD2413 call new_line11FE CD920D call send_prompt

1201 C9 exit_edit: ret

1202 3A22F0 new_location: lda command1205 FE6E cpi "n"1207 C21E12 jnz exit_new_location120A 21F51E lxi h,new_text120D CDAD12 call put_str1210 CDCF13 call get_hex11213 67 mov h,a1214 CDCF13 call get_hex11217 6F mov l,a1218 223CF0 shld pointer ; user_PC121B CD920D call send_prompt

121E exit_new_location:

121E C9 ret

121F quick_home:121F 3A22F0 lda command1222 FE71 cpi "q"1224 C23312 jnz exit_quick_home

1227 210081 lxi h,home_address122A 222AF0 shld user_PC122D 223CF0 shld pointer1230 CD920D call send_prompt

1233 exit_quick_home:1233 C9 ret

; i/o address map

1234 3A22F0 io_address: lda command1237 FE69 cpi "i"1239 C24512 jnz exit_io

123C 21F921 lxi h,io_text123F CDAD12 call put_str1242 CD920D call send_prompt

1245 C9 exit_io: ret

; help listing

1246 3A22F0 help: lda command1249 FE3F cpi "?"

B8080.LST 3/12/2560 20:42

Page 56 of 86

Page 90: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420

124B C25D12 jnz exit_help

124E 21C212 lxi h,prompt31251 CDBB12 call alt_put_str1254 216D20 lxi h,help_text11257 CDAD12 call put_str125A CD920D call send_prompt

125D C9 exit_help: ret

; initialize 16C550 uart to 9600 8n1 with 2MHz clock; 2MHz/13 = 153846Hz

125E init_uart:

125E 3E83 mvi a,83h1260 D343 out uart_lcr ; set DLAB bit to access divider

1262 3E0D mvi a,131264 D340 out uart_divisor_lsb1266 3E00 mvi a,01268 D341 out uart_divisor_msb ; 2MHz/13 = 153846 Hz

; 153846Hz/16 = 9615Hz126A 3E07 mvi a,7126C D342 out uart_fifo ; init fifo and clear all buffers126E 3E03 mvi a,03h1270 D343 out uart_lcr ; clar DLAB

; check uart line status, if the byte is FF then no uart;;

1272 AF xra a1273 D347 out uart_scr ; check if there is uart1275 DB47 in uart_scr1277 FE00 cpi 01279 CA8112 jz found127C AF xra a127D 3225F0 sta uart_found1280 C9 ret

1281 3E01 found mvi a,11283 3225F0 sta uart_found1286 C9 ret

;cout: mov b,a ; save a

;cout1: in uart_line_status; ani 20h ; transmitter ready?; jz cout1

; mov a,b ; restore a; out uart_buffer; ret

1287 F5 cout: push psw ; save Accumulator1288 D5 push d1289 CDC714 call send_byte ; use software UART 2400 bit128C D1 pop d128D F1 pop psw ; restore Accumulator

B8080.LST 3/12/2560 20:42

Page 57 of 86

Page 91: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480

128E C9 ret

128F CD0515 cin: CALL GET_BYTE ; USE SOFTWARE UART 2400 BIT1292 C9 ret

1293 CD8F12 get_command: call cin1296 3222F0 sta command1299 C9 ret

129A DB45 in uart_line_status129C E601 ani 1129E CAA712 jz no_data12A1 DB40 in uart_buffer12A3 3222F0 sta command ; command = ASCII code12A6 C9 ret

12A7 3EFF no_data: mvi a,0ffh ; command == -112A9 3222F0 sta command12AC C9 ret

; print string terminated by 0; input: HL

12AD 7E put_str: mov a,m ; get A from [HL]12AE FE00 cpi 012B0 C2B412 jnz put_str112B3 C9 ret

12B4 CD8712 put_str1: call cout12B7 23 inx h12B8 F2AD12 jp put_str

12BB 7E alt_put_str: mov a,m ; get A from [HL]; xri 0aah

12BC FE00 cpi 012BE C2EF12 jnz put_str212C1 C9 ret

12C2 0D0A0A3830prompt3: dfb cr,lf,lf,"8080 MICROPROCESSOR KIT [2016]

12EF CD8712 put_str2: call cout12F2 23 inx h12F3 F2BB12 jp alt_put_str

12F6 21781E send_prompt1: lxi h,prompt112F9 CDAD12 call put_str12FC C9 ret

12FD 21C212 send_prompt3: lxi h,prompt31300 CDBB12 call alt_put_str1303 C9 ret

B8080.LST 3/12/2560 20:42

Page 58 of 86

Page 92: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540

1304 F5 out1x: push psw1305 E60F ani 0fh1307 C630 adi "0"1309 FE3A cpi 3Ah130B DA1013 jc out1x1130E C607 adi 7

1310 CD8712 out1x1: call cout1313 F1 pop psw1314 C9 ret

1315 out2x:1315 0F rrc1316 0F rrc1317 0F rrc1318 0F rrc1319 CD0413 call out1x131C 07 rlc131D 07 rlc131E 07 rlc131F 07 rlc1320 CD0413 call out1x1323 C9 ret

; new_line

1324 3E0D new_line: mvi a,cr1326 CD8712 call cout1329 3E0A mvi a,lf132B CD8712 call cout132E C9 ret

132F 3E20 space: mvi a," "1331 CD8712 call cout1334 C9 ret

1335 3E09 send_tab: mvi a,91337 CD8712 call cout133A C9 ret

133B 3A22F0 hex_dump: lda command133E FE68 cpi "h"1340 C29A13 jnz exit_hex_dump

1343 CD2413 call new_line

1346 0E08 mvi c,8 ; 8 lines

1348 C5 hex_dump2: push b1349 CD2413 call new_line134C 2A3CF0 lhld pointer ;user_PC134F 7C mov a,h1350 CD1513 call out2x1353 7D mov a,l1354 CD1513 call out2x1357 CD2F13 call space

135A 0E10 mvi c,16

B8080.LST 3/12/2560 20:42

Page 59 of 86

Page 93: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600

135C CD2F13 hex_dump1: call space135F 7E mov a,m1360 CD1513 call out2x1363 23 inx h1364 0D dcr c1365 C25C13 jnz hex_dump1

1368 CD2F13 call space136B CD2F13 call space136E CD2F13 call space

; print ASCII representation 20H-7FH; outside such range, print . instead

1371 11F0FF lxi d,0FFF0h ; load DE with -161374 19 dad d ; ADD HL,DE

1375 0E10 mvi c,16

1377 7E hex_dump5: mov a,m

1378 FE20 cpi 20h ; <20H?137A DA8213 jc hex_dump3137D FE80 cpi 80h137F DA8413 jc hex_dump4 1382 3E2E hex_dump3: mvi a,"."1384 CD8712 hex_dump4: call cout

1387 23 inx h1388 0D dcr c1389 C27713 jnz hex_dump5

138C 223CF0 shld pointer ;user_PC

138F C1 pop b1390 0D dcr c1391 C24813 jnz hex_dump2

1394 CD2413 call new_line1397 CD920D call send_prompt

139A C9 exit_hex_dump: ret

139B 210081 dump_memory: lxi h,8100h139E 0E64 mvi c,100 ; 100 bytes display

13A0 CD2413 call new_line13A3 7E dump1: mov a,m13A4 CD1513 call out2x13A7 CD2F13 call space13AA 23 inx h13AB 0D dcr c13AC C2A313 jnz dump113AF C9 ret

; convert ASCII letter to one nibble 0-F; 0-9 -> al-30; A-F -> al-7

B8080.LST 3/12/2560 20:42

Page 60 of 86

Page 94: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660

; entry: A; exit: A

13B0 D630 to_hex: sui "0"13B2 FE0A cpi 1013B4 DABB13 jc zero_nine13B7 E6DF ani 11011111b13B9 D607 sui 7 ; convert to A-F13BB zero_nine:

13BB C9 ret

; read two ASCII bytes and convert them to one bye 8-bit ; exit: A; used: A, E

13BC CD8F12 get_hex: call cin13BF CDB013 call to_hex13C2 0F rrc13C3 0F rrc13C4 0F rrc13C5 0F rrc13C6 5F mov e,a13C7 CD8F12 call cin13CA CDB013 call to_hex13CD 83 add e13CE C9 ret

; read two ASCII bytes echo to screen and convert them to ; exit: A

13CF CD8F12 get_hex1: call cin13D2 CD8712 call cout13D5 CDB013 call to_hex13D8 0F rrc13D9 0F rrc13DA 0F rrc13DB 0F rrc13DC 5F mov e,a13DD CD8F12 call cin13E0 CD8712 call cout13E3 CDB013 call to_hex13E6 83 add e13E7 C9 ret

; read two ASCII bytes echo to screen and convert them to ; exit: A

13E8 3A23F0 get_hex2: lda flag113EB E6FC ani 0fch ; clear flag1.1 and flag1.013ED 3223F0 sta flag1

13F0 CD8F12 call cin13F3 FE0D cpi cr13F5 CA3B14 jz exit_get_hex2

13F8 FE20 cpi " "13FA CA4414 jz exit_get_hex3

13FD FE30 cpi 30h ; hex must be 0-9 and A-F

B8080.LST 3/12/2560 20:42

Page 61 of 86

Page 95: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720

13FF DAE813 jc get_hex2

1402 FE40 cpi 40h1404 DA1114 jc ascii_0_9

1407 FE61 cpi 97 ; < 97?1409 DAE813 jc get_hex2

140C FE67 cpi 103 ; >= 103?140E D2E813 jnc get_hex2

1411 ascii_0_9:

1411 CD8712 call cout1414 CDB013 call to_hex1417 0F rrc1418 0F rrc1419 0F rrc141A 0F rrc141B 5F mov e,a

141C get_2nd_hex:

141C CD8F12 call cin

141F FE30 cpi 30h ; hex must be 0-9 and A-F1421 DA1C14 jc get_2nd_hex

1424 FE40 cpi 40h1426 DA3314 jc ok_0_9

1429 FE61 cpi 97 ; < 97?142B DA1C14 jc get_2nd_hex

142E FE67 cpi 103 ; >= 103?1430 D21C14 jnc get_2nd_hex

1433 ok_0_9:1433 CD8712 call cout1436 CDB013 call to_hex1439 83 add e143A C9 ret

143B exit_get_hex2:

143B 3A23F0 lda flag1143E F601 ori 11440 3223F0 sta flag1 ; Q key has been pressed1443 C9 ret

1444 exit_get_hex3:

1444 3A23F0 lda flag11447 F602 ori 21449 3223F0 sta flag1 ; SPACE key has been pressed144C C9 ret

; add check sum

B8080.LST 3/12/2560 20:42

Page 62 of 86

Page 96: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780

; get record, write to SRAM and jump to 8000h; entry: A= byte received, B= byte check sum

add_bcs: macro ; add accumulator with byte check sum push pswadd bmov b,apop pswendm

001B = esc equ 1bh

144D CD8F12 get_record: call cin1450 FE1B cpi 271452 CA9814 jz esc_quit

1455 FE3A cpi ":"1457 C24D14 jnz get_record ; wait until begin of record

145A 0600 mvi b,0 ; byte check sum

145C CDBC13 call get_hex ; get number of byte145F 4F mov c,a ; put to c

1460 add_bcs1460 F5 push psw1461 80 add b1462 47 mov b,a1463 F1 pop psw1464 endm

1464 CDBC13 call get_hex ; get destination address, put to bx 1467 67 mov h,a ; save high byte

1468 add_bcs1468 F5 push psw1469 80 add b146A 47 mov b,a146B F1 pop psw146C endm

146C CDBC13 call get_hex146F 6F mov l,a ; and low byte

1470 add_bcs1470 F5 push psw1471 80 add b1472 47 mov b,a1473 F1 pop psw1474 endm

1474 CDBC13 call get_hex

1477 add_bcs1477 F5 push psw1478 80 add b1479 47 mov b,a147A F1 pop psw147B endm

B8080.LST 3/12/2560 20:43

Page 63 of 86

Page 97: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840

147B FE01 cpi 1 ; end of record type is 147D C29914 jnz data_record ; jump if not 01

1480 CD8F12 wait_cr: call cin1483 FE0D cpi cr1485 C28014 jnz wait_cr ; until end of record sending

1488 3EFF mvi a, 0ffh ; turn speaker off148A D340 out port1148C AF xra a148D D300 out 0 ; turn off GPIO

148F CD6915 call print_bcd11492 CD2F13 call space

; lda bcs; call pint8u; lxi h,error_text; call put_str

1495 CD2413 call new_line

1498 C9 esc_quit: ret

1499 CDBC13 data_record: call get_hex ; get data byte149C 77 mov m,a ; save to SRAM at [HL]

149D add_bcs149D F5 push psw149E 80 add b149F 47 mov b,a14A0 F1 pop psw14A1 endm

14A1 CD3915 call inc_bcd1

; ori 7fh; out port1 ; make buzzer sound

14A4 23 inx h ; next location

14A5 0D dcr c14A6 C29914 jnz data_record ; until c = 0

14A9 78 mov a,b14AA 2F cma14AB 47 mov b,a14AC 04 inr b ; compute two's complement

14AD CDBC13 call get_hex ; get check sum

14B0 B8 cmp b14B1 CABB14 jz skip_error

14B4 3A20F0 lda bcs14B7 3C inr a14B8 3220F0 sta bcs

14BB skip_error:

B8080.LST 3/12/2560 20:43

Page 64 of 86

Page 98: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900

14BB 3A3AF0 lda temp ; then shift into temp814BE 07 rlc14BF 323AF0 sta temp14C2 D300 out 0 ; send to GPIO

14C4 C34D14 jmp get_record ; back to next record

;************************ software UART 2400 bit/s **********************************************

; SEND ASCII LETTER TO TERMINAL; ENTRY: A

14C7 5F SEND_BYTE: mov E,A

14C8 3EBF mvi a,0bFH14CA D340 OUT PORT114CC CDF714 CALL BIT_DELAY ; SEND START BIT

14CF 1608 mvi d,8

14D1 7B CHK_BIT: mov a,e14D2 E601 ani 114D4 CADE14 jz SEND_ZERO

14D7 3EFF mvi a,0FFH14D9 D340 OUT port114DB C3E514 JMP NEXT_BIT

14DE 3EBF SEND_ZERO: mvi a,0bFH14E0 D340 OUT port114E2 C3E514 JMP NEXT_BIT

14E5 CDF714 NEXT_BIT: CALL BIT_DELAY

14E8 7B mov a,e14E9 0F RRC 14EA 5F mov e,a14EB 15 DCR D14EC C2D114 JNZ CHK_BIT

14EF 3EFF mvi a,0FFH14F1 D340 OUT PORT114F3 CDF714 CALL BIT_DELAY ; SEND STOP BIT14F6 C9 RET

; BIT PERIOD FOR 2400 BIT/S

14F7 0626 BIT_DELAY: MVI B,26h14F9 05 delay_bit: dcr b14FA C2F914 jnz delay_bit14FD C9 ret

; 1.5 bit delay

14FE 063C delay_1_5: mvi b,3ch1500 05 delay_bit15: dcr b1501 C20015 jnz delay_bit151504 C9 ret

B8080.LST 3/12/2560 20:43

Page 65 of 86

Page 99: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960

; RECEIVE BYTE FROM 2400 BIT/S TERMINAL; EXIT: A

1505 D5 GET_BYTE PUSH D

1506 DB20 CIN1 IN PORT0; CHECK START BIT1508 E620 ANI 20H ; TEST RXD BIT150A C20615 JNZ CIN1 ; REPEAT IF HIGH

150D CDFE14 CALL delay_1_5

1510 1607 MVI D,71512 1E00 MVI E,0

1514 DB20 CHK_BIT_RX IN PORT01516 E620 ANI 20H1518 C22215 JNZ BIT_IS_ONE

151B 7B MOV A,E151C E67F ANI 01111111B151E 5F MOV E,A151F F22915 JP NEXT_BIT_RX

1522 7B BIT_IS_ONE MOV A,E1523 F680 ORI 10000000B1525 5F MOV E,A

1526 F22915 JP NEXT_BIT_RX

1529 CDF714 NEXT_BIT_RX CALL BIT_DELAY

152C 7B MOV A,E152D 0F RRC152E 5F MOV E,A

152F 15 DCR D1530 C21415 JNZ CHK_BIT_RX

1533 CDF714 CALL BIT_DELAY ; CENTER OF STOP BIT

1536 7B MOV A,E ; RETURN BYTE TO A

1537 D1 POP D

1538 C9 RET

;---------------- increment BCD counter1 -------------------------

1539 E5 inc_bcd1: push h

153A 2141F0 lxi h,bcd_counter1153D AF xra a

153E 7E mov a,m153F C601 adi 11541 27 daa1542 77 mov m,a1543 23 inx h

B8080.LST 3/12/2560 20:43

Page 66 of 86

Page 100: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020

1544 7E mov a,m1545 CE00 aci 01547 27 daa1548 77 mov m,a1549 23 inx h154A 7E mov a,m154B CE00 aci 0154D 27 daa154E 77 mov m,a

154F E1 pop h

1550 C9 ret

1551 E5 inc_bcd2: push h

1552 2144F0 lxi h,bcd_counter21555 AF xra a

1556 7E mov a,m1557 C601 adi 11559 27 daa155A 77 mov m,a155B 23 inx h

155C 7E mov a,m155D CE00 aci 0155F 27 daa1560 77 mov m,a1561 23 inx h1562 7E mov a,m1563 CE00 aci 01565 27 daa1566 77 mov m,a

1567 E1 pop h

1568 C9 ret

1569 print_bcd1:1569 2143F0 lxi h,bcd_counter1+2156C 7E mov a,m156D CD1513 call out2x1570 2142F0 lxi h,bcd_counter1+11573 7E mov a,m1574 CD1513 call out2x1577 2141F0 lxi h,bcd_counter1157A 7E mov a,m157B CD1513 call out2x157E 21F51F lxi h,byte_text1581 CDAD12 call put_str1584 C9 ret

1585 210000 clear_bcd1: lxi h,01588 2241F0 shld bcd_counter1158B 2242F0 shld bcd_counter1+1158E 2243F0 shld bcd_counter1+21591 C9 ret

B8080.LST 3/12/2560 20:43

Page 67 of 86

Page 101: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080

1592 print_bcd2:1592 2146F0 lxi h,bcd_counter2+21595 7E mov a,m1596 CD1513 call out2x1599 2145F0 lxi h,bcd_counter2+1159C 7E mov a,m159D CD1513 call out2x15A0 2144F0 lxi h,bcd_counter215A3 7E mov a,m15A4 CD1513 call out2x15A7 21F51F lxi h,byte_text15AA CDAD12 call put_str15AD C9 ret

15AE 210000 clear_bcd2: lxi h,015B1 2244F0 shld bcd_counter215B4 2245F0 shld bcd_counter2+115B7 2246F0 shld bcd_counter2+215BA C9 ret

; new function for key test

15BB 3EFF test_kit mvi a,0ffh15BD 3210F0 sta 0f010h15C0 3211F0 sta 0f011h15C3 3212F0 sta 0f012h15C6 3213F0 sta 0f013h15C9 3214F0 sta 0f014h15CC 3215F0 sta 0f015h

15CF 1600 mvi d,015D1 D5 loop1 push d

15D2 2110F0 lxi h,buffer ; display buffer15D5 CDAC0C call scan ; scan

15D8 D1 pop d15D9 15 dcr d15DA C2D115 jnz loop1

15DD 3EFF mvi a,0ffh15DF D300 out 0

15E1 CD3606 call beep_on ; call beep

15E4 3E00 mvi a,015E6 D300 out 0

; test if lcd connected

15E8 1600 chk_lcd mvi d,0

15EA repeat_chk_lcd

15EA DB82 in 82h ; command read LCD

15EC E680 ani 80h15EE CAF815 jz found_lcd

B8080.LST 3/12/2560 20:43

Page 68 of 86

Page 102: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140

15F1 15 dcr d15F2 C2EA15 jnz repeat_chk_lcd15F5 C30D16 jmp skip_test_lcd

15F8 found_lcd

15F8 1E07 mvi e,715FA CF rst 1 ; init lcd

15FB 21BB1E lxi h,prompt215FE 1E0B mvi e,0bh1600 CF rst 1 ; print lcd

1601 210100 lxi h,11604 1E0A mvi e,0ah1606 CF rst 11607 21D31E lxi h,text3160A 1E0B mvi e,0bh160C CF rst 1

160D skip_test_lcd

; test 10ms tick

160D 3EC3 mvi a,0c3h160F 323880 sta 8038h1612 3E20 mvi a,tick&0ffh1614 323980 sta 8039h1617 3E16 mvi a,tick>>81619 323A80 sta 803ah161C FB ei161D C31D16 jmp $

1620 3A00F0 tick lda 0f000h1623 3C inr a1624 3200F0 sta 0f000h1627 D300 out 01629 FB ei162A C9 ret

B8080.LST 3/12/2560 20:43

Page 69 of 86

Page 103: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200

; constants

162B INS_TABLE:

162B 2B18 DWL C0 ; "NOP",TAB,RS ; 00162D 3018 DWL C1 ; "LXI",TAB,"B,",RS ; 01162F 3718 DWL C2 ; "STAX",TAB,"B",RS ; 021631 3E18 DWL C3 ; "INX",TAB,"B",RS ; 031633 4418 DWL C4 ; "INR",TAB,"B",RS ; 041635 4A18 DWL C5 ; "DCR",TAB,"B",RS ; 051637 5018 DWL C6 ; "MVI",TAB,"B,",RS ; 061639 5718 DWL C7 ; "RLC",TAB,RS ; 07163B 5C18 DWL C8 ; "DFB",TAB,RS ; 08163D 6118 DWL C9 ; "DAD",TAB,"B",RS ; 09163F 6718 DWL CA ; "LDAX",TAB,"B",RS ; 0A1641 6E18 DWL CB ; "DCX",TAB,"B",RS ; 0B1643 7418 DWL CC ; "INR",TAB,"C",RS ; 0C1645 7A18 DWL CD ; "DCR",TAB,"C",RS ; 0D1647 8018 DWL CE ; "MVI",TAB,"C,",RS ; 0E1649 8718 DWL CF ; "RRC",TAB,RS ; 0F164B 8C18 DWL C10 ; "DFB",TAB,RS ; 10164D 9118 DWL C11 ; "LXI",TAB,"D,",RS ; 11164F 9818 DWL C12 ; "STAX",TAB,"D",RS ; 121651 9F18 DWL C13 ; "INX",TAB,"D",RS ; 131653 A518 DWL C14 ; "INR",TAB,"D",RS ; 141655 AB18 DWL C15 ; "DCR",TAB,"D",RS ; 151657 B118 DWL C16 ; "MVI",TAB,"D,",RS ; 161659 B818 DWL C17 ; "RAL",TAB,RS ; 17165B BD18 DWL C18 ; "DFB",TAB,RS ; 18165D C218 DWL C19 ; "DAD",TAB,"D",RS ; 19165F C818 DWL C1A ; "LDAX",TAB,"D",RS ; 1A1661 CF18 DWL C1B ; "DCX",TAB,"D",RS ; 1B1663 D518 DWL C1C ; "INR",TAB,"E",RS ; 1C1665 DB18 DWL C1D ; "DCR",TAB,"E",RS ; 1D1667 E118 DWL C1E ; "MVI",TAB,"E,",RS ; 1E1669 E818 DWL C1F ; "RAR",TAB,RS ; 1F166B ED18 DWL C20 ; "RIM",TAB,RS ; 20166D F218 DWL C21 ; "LXI",TAB,"H,",RS ; 21166F F918 DWL C22 ; "SHLD",TAB,RS ; 221671 FF18 DWL C23 ; "INX",TAB,"H",RS ; 231673 0519 DWL C24 ; "INR",TAB,"H",RS ; 241675 0B19 DWL C25 ; "DCR",TAB,"H",RS ; 251677 1119 DWL C26 ; "MVI",TAB,"H,",RS ; 261679 1819 DWL C27 ; "DAA",TAB,RS ; 27167B 1D19 DWL C28 ; "DFB",TAB,RS ; 28167D 2219 DWL C29 ; "DAD",TAB,"H",RS ; 29167F 2819 DWL C2A ; "LHLD",TAB,RS ; 2A1681 2E19 DWL C2B ; "DCX",TAB,"H",RS ; 2B1683 3419 DWL C2C ; "INR",TAB,"L",RS ; 2C1685 3A19 DWL C2D ; "DCR",TAB,"L",RS ; 2D1687 4019 DWL C2E ; "MVI",TAB,"L,",RS ; 2E

B8080.LST 3/12/2560 20:43

Page 70 of 86

Page 104: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260

1689 4719 DWL C2F ; "CMA",TAB,RS ; 2F168B 4C19 DWL C30 ; "SIM",TAB,RS ; 30168D 5119 DWL C31 ; "LXI",TAB,"SP,",RS ; 31168F 5919 DWL C32 ; "STA",TAB,RS ; 321691 5E19 DWL C33 ; "INX",TAB,"SP",RS ; 331693 6519 DWL C34 ; "INR",TAB,"M",RS ; 341695 6B19 DWL C35 ; "DCR",TAB,"M",RS ; 351697 7119 DWL C36 ; "MVI",TAB,"M,",RS ; 361699 7819 DWL C37 ; "STC",TAB,RS ; 37169B 7D19 DWL C38 ; "DFB",TAB,RS ; 38169D 8219 DWL C39 ; "DAD",TAB,"SP",RS ; 39169F 8919 DWL C3A ; "LDA",TAB,RS ; 3A16A1 8E19 DWL C3B ; "DCX",TAB,"SP",RS ; 3B16A3 9519 DWL C3C ; "INR",TAB,"A",RS ; 3C16A5 9B19 DWL C3D ; "DCR",TAB,"A",RS ; 3D16A7 A119 DWL C3E ; "MVI",TAB,"A,",RS ; 3E16A9 A819 DWL C3F ; "CMC",TAB,RS ; 3F16AB AD19 DWL C40 ; "MOV",TAB,"B,B",RS ; 4016AD B519 DWL C41 ; "MOV",TAB,"B,C",RS ; 4116AF BD19 DWL C42 ; "MOV",TAB,"B,D",RS ; 4216B1 C519 DWL C43 ; "MOV",TAB,"B,E",RS ; 4316B3 CD19 DWL C44 ; "MOV",TAB,"B,H",RS ; 4416B5 D519 DWL C45 ; "MOV",TAB,"B,L",RS ; 4516B7 DD19 DWL C46 ; "MOV",TAB,"B,M",RS ; 4616B9 E519 DWL C47 ; "MOV",TAB,"B,A",RS ; 4716BB ED19 DWL C48 ; "MOV",TAB,"C,B",RS ; 4816BD F519 DWL C49 ; "MOV",TAB,"C,C",RS ; 4916BF FD19 DWL C4A ; "MOV",TAB,"C,D",RS ; 4A16C1 051A DWL C4B ; "MOV",TAB,"C,E",RS ; 4B16C3 0D1A DWL C4C ; "MOV",TAB,"C,H",RS ; 4C16C5 151A DWL C4D ; "MOV",TAB,"C,L",RS ; 4D16C7 1D1A DWL C4E ; "MOV",TAB,"C,M",RS ; 4E16C9 251A DWL C4F ; "MOV",TAB,"C,A",RS ; 4F16CB 2D1A DWL C50 ; "MOV",TAB,"D,B",RS ; 5016CD 351A DWL C51 ; "MOV",TAB,"D,C",RS ; 5116CF 3D1A DWL C52 ; "MOV",TAB,"D,D",RS ; 5216D1 451A DWL C53 ; "MOV",TAB,"D,E",RS ; 5316D3 4D1A DWL C54 ; "MOV",TAB,"D,H",RS ; 5416D5 551A DWL C55 ; "MOV",TAB,"D,L",RS ; 5516D7 5D1A DWL C56 ; "MOV",TAB,"D,M",RS ; 5616D9 651A DWL C57 ; "MOV",TAB,"D,A",RS ; 5716DB 6D1A DWL C58 ; "MOV",TAB,"E,B",RS ; 5816DD 751A DWL C59 ; "MOV",TAB,"E,C",RS ; 5916DF 7D1A DWL C5A ; "MOV",TAB,"E,D",RS ; 5A16E1 851A DWL C5B ; "MOV",TAB,"E,E",RS ; 5B16E3 8D1A DWL C5C ; "MOV",TAB,"E,H",RS ; 5C16E5 951A DWL C5D ; "MOV",TAB,"E,L",RS ; 5D16E7 9D1A DWL C5E ; "MOV",TAB,"E,M",RS ; 5E16E9 A51A DWL C5F ; "MOV",TAB,"E,A",RS ; 5F16EB AD1A DWL C60 ; "MOV",TAB,"H,B",RS ; 6016ED B51A DWL C61 ; "MOV",TAB,"H,C",RS ; 6116EF BD1A DWL C62 ; "MOV",TAB,"H,D",RS ; 6216F1 C51A DWL C63 ; "MOV",TAB,"H,E",RS ; 6316F3 CD1A DWL C64 ; "MOV",TAB,"H,H",RS ; 6416F5 D51A DWL C65 ; "MOV",TAB,"H,L",RS ; 6516F7 DD1A DWL C66 ; "MOV",TAB,"H,M",RS ; 6616F9 E51A DWL C67 ; "MOV",TAB,"H,A",RS ; 6716FB ED1A DWL C68 ; "MOV",TAB,"L,B",RS ; 6816FD F51A DWL C69 ; "MOV",TAB,"L,C",RS ; 6916FF FD1A DWL C6A ; "MOV",TAB,"L,D",RS ; 6A

B8080.LST 3/12/2560 20:43

Page 71 of 86

Page 105: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320

1701 051B DWL C6B ; "MOV",TAB,"L,E",RS ; 6B1703 0D1B DWL C6C ; "MOV",TAB,"L,H",RS ; 6C1705 151B DWL C6D ; "MOV",TAB,"L,L",RS ; 6D1707 1D1B DWL C6E ; "MOV",TAB,"L,M",RS ; 6E1709 251B DWL C6F ; "MOV",TAB,"L,A",RS ; 6F170B 2D1B DWL C70 ; "MOV",TAB,"M,B",RS ; 70170D 351B DWL C71 ; "MOV",TAB,"M,C",RS ; 71170F 3D1B DWL C72 ; "MOV",TAB,"M,D",RS ; 721711 451B DWL C73 ; "MOV",TAB,"M,E",RS ; 731713 4D1B DWL C74 ; "MOV",TAB,"M,H",RS ; 741715 551B DWL C75 ; "MOV",TAB,"M,L",RS ; 751717 5D1B DWL C76 ; "HLT",TAB,RS ; 761719 621B DWL C77 ; "MOV",TAB,"M,A",RS ; 77171B 6A1B DWL C78 ; "MOV",TAB,"A,B",RS ; 78171D 721B DWL C79 ; "MOV",TAB,"A,C",RS ; 79171F 7A1B DWL C7A ; "MOV",TAB,"A,D",RS ; 7A1721 821B DWL C7B ; "MOV",TAB,"A,E",RS ; 7B1723 8A1B DWL C7C ; "MOV",TAB,"A,H",RS ; 7C1725 921B DWL C7D ; "MOV",TAB,"A,L",RS ; 7D1727 9A1B DWL C7E ; "MOV",TAB,"A,M",RS ; 7E1729 A21B DWL C7F ; "MOV",TAB,"A,A",RS ; 7F172B AA1B DWL C80 ; "ADD",TAB,"B",RS ; 80172D B01B DWL C81 ; "ADD",TAB,"C",RS ; 81172F B61B DWL C82 ; "ADD",TAB,"D",RS ; 821731 BC1B DWL C83 ; "ADD",TAB,"E",RS ; 831733 C21B DWL C84 ; "ADD",TAB,"H",RS ; 841735 C81B DWL C85 ; "ADD",TAB,"L",RS ; 851737 CE1B DWL C86 ; "ADD",TAB,"M",RS ; 861739 D41B DWL C87 ; "ADD",TAB,"A",RS ; 87173B DA1B DWL C88 ; "ADC",TAB,"B",RS ; 88173D E01B DWL C89 ; "ADC",TAB,"C",RS ; 89173F E61B DWL C8A ; "ADC",TAB,"D",RS ; 8A1741 EC1B DWL C8B ; "ADC",TAB,"E",RS ; 8B1743 F21B DWL C8C ; "ADC",TAB,"H",RS ; 8C1745 F81B DWL C8D ; "ADC",TAB,"L",RS ; 8D1747 FE1B DWL C8E ; "ADC",TAB,"M",RS ; 8E1749 041C DWL C8F ; "ADC",TAB,"A",RS ; 8F174B 0A1C DWL C90 ; "SUB",TAB,"B",RS ; 90174D 101C DWL C91 ; "SUB",TAB,"C",RS ; 91174F 161C DWL C92 ; "SUB",TAB,"D",RS ; 921751 1C1C DWL C93 ; "SUB",TAB,"E",RS ; 931753 221C DWL C94 ; "SUB",TAB,"H",RS ; 941755 281C DWL C95 ; "SUB",TAB,"L",RS ; 951757 2E1C DWL C96 ; "SUB",TAB,"M",RS ; 961759 341C DWL C97 ; "SUB",TAB,"A",RS ; 97175B 3A1C DWL C98 ; "SBB",TAB,"B",RS ; 98175D 401C DWL C99 ; "SBB",TAB,"C",RS ; 99175F 461C DWL C9A ; "SBB",TAB,"D",RS ; 9A1761 4C1C DWL C9B ; "SBB",TAB,"E",RS ; 9B1763 521C DWL C9C ; "SBB",TAB,"H",RS ; 9C1765 581C DWL C9D ; "SBB",TAB,"L",RS ; 9D1767 5E1C DWL C9E ; "SBB",TAB,"M",RS ; 9E1769 641C DWL C9F ; "SBB",TAB,"A",RS ; 9F176B 6A1C DWL CA0 ; "ANA",TAB,"B",RS ; A0176D 701C DWL CA1 ; "ANA",TAB,"C",RS ; A1176F 761C DWL CA2 ; "ANA",TAB,"D",RS ; A21771 7C1C DWL CA3 ; "ANA",TAB,"E",RS ; A31773 821C DWL CA4 ; "ANA",TAB,"H",RS ; A41775 881C DWL CA5 ; "ANA",TAB,"L",RS ; A51777 8E1C DWL CA6 ; "ANA",TAB,"M",RS ; A6

B8080.LST 3/12/2560 20:43

Page 72 of 86

Page 106: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380

1779 941C DWL CA7 ; "ANA",TAB,"A",RS ; A7177B 9A1C DWL CA8 ; "XRA",TAB,"B",RS ; A8177D A01C DWL CA9 ; "XRA",TAB,"C",RS ; A9177F A61C DWL CAA ; "XRA",TAB,"D",RS ; AA1781 AC1C DWL CAB ; "XRA",TAB,"E",RS ; AB1783 B21C DWL CAC ; "XRA",TAB,"H",RS ; AC1785 B81C DWL CAD ; "XRA",TAB,"L",RS ; AD1787 BE1C DWL CAE ; "XRA",TAB,"M",RS ; AE1789 C41C DWL CAF ; "XRA",TAB,"A",RS ; AF178B CA1C DWL CB0 ; "ORA",TAB,"B",RS ; B0178D D01C DWL CB1 ; "ORA",TAB,"C",RS ; B1178F D61C DWL CB2 ; "ORA",TAB,"D",RS ; B21791 DC1C DWL CB3 ; "ORA",TAB,"E",RS ; B31793 E21C DWL CB4 ; "ORA",TAB,"H",RS ; B41795 E81C DWL CB5 ; "ORA",TAB,"L",RS ; B51797 EE1C DWL CB6 ; "ORA",TAB,"M",RS ; B61799 F41C DWL CB7 ; "ORA",TAB,"A",RS ; B7179B FA1C DWL CB8 ; "CMP",TAB,"B",RS ; B8179D 001D DWL CB9 ; "CMP",TAB,"C",RS ; B9179F 061D DWL CBA ; "CMP",TAB,"D",RS ; BA17A1 0C1D DWL CBB ; "CMP",TAB,"E",RS ; BB17A3 121D DWL CBC ; "CMP",TAB,"H",RS ; BC17A5 181D DWL CBD ; "CMP",TAB,"L",RS ; BD17A7 1E1D DWL CBE ; "CMP",TAB,"M",RS ; BE17A9 241D DWL CBF ; "CMP",TAB,"A",RS ; BF17AB 2A1D DWL CC0 ; "RNZ",TAB,RS ; C017AD 2F1D DWL CC1 ; "POP",TAB,"B",RS ; C117AF 351D DWL CC2 ; "JNZ",TAB,RS ; C217B1 3A1D DWL CC3 ; "JMP",TAB,RS ; C317B3 3F1D DWL CC4 ; "CNZ",TAB,RS ; C417B5 441D DWL CC5 ; "PUSH",TAB,"B",RS ; C517B7 4B1D DWL CC6 ; "ADI",TAB,RS ; C617B9 501D DWL CC7 ; "RST",TAB,"0",RS ; C717BB 561D DWL CC8 ; "RZ",TAB,RS ; C817BD 5A1D DWL CC9 ; "RET",TAB,RS ; C917BF 5F1D DWL CCA ; "JZ",TAB,RS ; CA17C1 631D DWL CCB ; "DFB",TAB,RS ; CB17C3 681D DWL CCC ; "CZ",TAB,RS ; CC17C5 6C1D DWL CCD ; "CALL",TAB,RS ; CD17C7 721D DWL CCE ; "ACI",TAB,RS ; CE17C9 771D DWL CCF ; "RST",TAB,"1",RS ; CF17CB 7D1D DWL CD0 ; "RNC",TAB,RS ; D017CD 821D DWL CD1 ; "POP",TAB,"D",RS ; D117CF 881D DWL CD2 ; "JNC",TAB,RS ; D217D1 8D1D DWL CD3 ; "OUT",TAB,RS ; D317D3 921D DWL CD4 ; "CNC",TAB,RS ; D417D5 971D DWL CD5 ; "PUSH",TAB,"D",RS ; D517D7 9E1D DWL CD6 ; "SUI",TAB,RS ; D617D9 A31D DWL CD7 ; "RST",TAB,"2",RS ; D717DB A91D DWL CD8 ; "RC",TAB,RS ; D817DD AD1D DWL CD9 ; "DFB",TAB,RS ; D917DF B21D DWL CDA ; "JC",TAB,RS ; DA17E1 B61D DWL CDB ; "IN",TAB,RS ; DFB17E3 BA1D DWL CDC ; "CC",TAB,RS ; DC17E5 BE1D DWL CDD ; "DFB",TAB,RS ; DD17E7 C31D DWL CDE ; "SBI",TAB,RS ; DE17E9 C81D DWL CDF ; "RST",TAB,"3",RS ; DF17EB CE1D DWL CE0 ; "RPO",TAB,RS ; E017ED D31D DWL CE1 ; "POP",TAB,"H",RS ; E117EF D91D DWL CE2 ; "JPO",TAB,RS ; E2

B8080.LST 3/12/2560 20:43

Page 73 of 86

Page 107: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440

17F1 DE1D DWL CE3 ; "XTHL",TAB,RS ; E317F3 E41D DWL CE4 ; "CPO",TAB,RS ; E417F5 E91D DWL CE5 ; "PUSH",TAB,"H",RS ; E517F7 F01D DWL CE6 ; "ANI",TAB,RS ; E617F9 F51D DWL CE7 ; "RST",TAB,"4",RS ; E717FB FB1D DWL CE8 ; "RPE",TAB,RS ; E817FD 001E DWL CE9 ; "PCHL",TAB,RS ; E917FF 061E DWL CEA ; "JPE",TAB,RS ; EA1801 0B1E DWL CEB ; "XCHG",TAB,RS ; EB1803 111E DWL CEC ; "CPE",TAB,RS ; EC1805 161E DWL CED ; "DFB",TAB,RS ; ED1807 1B1E DWL CEE ; "XRI",TAB,RS ; EE1809 201E DWL CEF ; "RST",TAB,"5",RS ; EF180B 261E DWL CF0 ; "RP",TAB,RS ; F0180D 2A1E DWL CF1 ; "POP",TAB,"PSW",RS ; F1180F 321E DWL CF2 ; "JP",TAB,RS ; F21811 361E DWL CF3 ; "DI",TAB,RS ; F31813 3A1E DWL CF4 ; "CP",TAB,RS ; F41815 3E1E DWL CF5 ; "PUSH",TAB,"PSW",RS ; F51817 471E DWL CF6 ; "ORI",TAB,RS ; F61819 4C1E DWL CF7 ; "RST",TAB,"6",RS ; F7181B 521E DWL CF8 ; "RM",TAB,RS ; F8181D 561E DWL CF9 ; "SPHL",TAB,RS ; F9181F 5C1E DWL CFA ; "JM",TAB,RS ; FA1821 601E DWL CFB ; "EI",TAB,RS ; FB1823 641E DWL CFC ; "CM",TAB,RS ; FC1825 681E DWL CFD ; "DFB",TAB,RS ; FD1827 6D1E DWL CFE ; "CPI",TAB,RS ; FE1829 721E DWL CFF ; "RST",TAB,"7",RS, ; FF

; --------- mnemonic table ---------------------------------------

182B MNEM182B 4E4F500900C0 DFB "NOP",TAB,RS ; 001830 4C58490942C1 DFB "LXI",TAB,"B,",RS ; 011837 5354415809C2 DFB "STAX",TAB,"B",RS ; 02183E 494E580942C3 DFB "INX",TAB,"B",RS ; 031844 494E520942C4 DFB "INR",TAB,"B",RS ; 04184A 4443520942C5 DFB "DCR",TAB,"B",RS ; 051850 4D56490942C6 DFB "MVI",TAB,"B,",RS ; 061857 524C430900C7 DFB "RLC",TAB,RS ; 07185C 4446420900C8 DFB "DFB",TAB,RS ; 081861 4441440942C9 DFB "DAD",TAB,"B",RS ; 091867 4C44415809CA DFB "LDAX",TAB,"B",RS ; 0A186E 4443580942CB DFB "DCX",TAB,"B",RS ; 0B1874 494E520943CC DFB "INR",TAB,"C",RS ; 0C187A 4443520943CD DFB "DCR",TAB,"C",RS ; 0D1880 4D56490943CE DFB "MVI",TAB,"C,",RS ; 0E1887 5252430900CF DFB "RRC",TAB,RS ; 0F188C 4446420900C10 DFB "DFB",TAB,RS ; 101891 4C58490944C11 DFB "LXI",TAB,"D,",RS ; 111898 5354415809C12 DFB "STAX",TAB,"D",RS ; 12189F 494E580944C13 DFB "INX",TAB,"D",RS ; 1318A5 494E520944C14 DFB "INR",TAB,"D",RS ; 1418AB 4443520944C15 DFB "DCR",TAB,"D",RS ; 1518B1 4D56490944C16 DFB "MVI",TAB,"D,",RS ; 1618B8 52414C0900C17 DFB "RAL",TAB,RS ; 1718BD 4446420900C18 DFB "DFB",TAB,RS ; 1818C2 4441440944C19 DFB "DAD",TAB,"D",RS ; 19

B8080.LST 3/12/2560 20:43

Page 74 of 86

Page 108: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500

18C8 4C44415809C1A DFB "LDAX",TAB,"D",RS ; 1A18CF 4443580944C1B DFB "DCX",TAB,"D",RS ; 1B18D5 494E520945C1C DFB "INR",TAB,"E",RS ; 1C18DB 4443520945C1D DFB "DCR",TAB,"E",RS ; 1D18E1 4D56490945C1E DFB "MVI",TAB,"E,",RS ; 1E18E8 5241520900C1F DFB "RAR",TAB,RS ; 1F18ED 52494D0900C20 DFB "RIM",TAB,RS ; 2018F2 4C58490948C21 DFB "LXI",TAB,"H,",RS ; 2118F9 53484C4409C22 DFB "SHLD",TAB,RS ; 2218FF 494E580948C23 DFB "INX",TAB,"H",RS ; 231905 494E520948C24 DFB "INR",TAB,"H",RS ; 24190B 4443520948C25 DFB "DCR",TAB,"H",RS ; 251911 4D56490948C26 DFB "MVI",TAB,"H,",RS ; 261918 4441410900C27 DFB "DAA",TAB,RS ; 27191D 4446420900C28 DFB "DFB",TAB,RS ; 281922 4441440948C29 DFB "DAD",TAB,"H",RS ; 291928 4C484C4409C2A DFB "LHLD",TAB,RS ; 2A192E 4443580948C2B DFB "DCX",TAB,"H",RS ; 2B1934 494E52094CC2C DFB "INR",TAB,"L",RS ; 2C193A 444352094CC2D DFB "DCR",TAB,"L",RS ; 2D1940 4D5649094CC2E DFB "MVI",TAB,"L,",RS ; 2E1947 434D410900C2F DFB "CMA",TAB,RS ; 2F194C 53494D0900C30 DFB "SIM",TAB,RS ; 301951 4C58490953C31 DFB "LXI",TAB,"SP,",RS ; 311959 5354410900C32 DFB "STA",TAB,RS ; 32195E 494E580953C33 DFB "INX",TAB,"SP",RS ; 331965 494E52094DC34 DFB "INR",TAB,"M",RS ; 34196B 444352094DC35 DFB "DCR",TAB,"M",RS ; 351971 4D5649094DC36 DFB "MVI",TAB,"M,",RS ; 361978 5354430900C37 DFB "STC",TAB,RS ; 37197D 4446420900C38 DFB "DFB",TAB,RS ; 381982 4441440953C39 DFB "DAD",TAB,"SP",RS ; 391989 4C44410900C3A DFB "LDA",TAB,RS ; 3A198E 4443580953C3B DFB "DCX",TAB,"SP",RS ; 3B1995 494E520941C3C DFB "INR",TAB,"A",RS ; 3C199B 4443520941C3D DFB "DCR",TAB,"A",RS ; 3D19A1 4D56490941C3E DFB "MVI",TAB,"A,",RS ; 3E19A8 434D430900C3F DFB "CMC",TAB,RS ; 3F19AD 4D4F560942C40 DFB "MOV",TAB,"B,B",RS ; 4019B5 4D4F560942C41 DFB "MOV",TAB,"B,C",RS ; 4119BD 4D4F560942C42 DFB "MOV",TAB,"B,D",RS ; 4219C5 4D4F560942C43 DFB "MOV",TAB,"B,E",RS ; 4319CD 4D4F560942C44 DFB "MOV",TAB,"B,H",RS ; 4419D5 4D4F560942C45 DFB "MOV",TAB,"B,L",RS ; 4519DD 4D4F560942C46 DFB "MOV",TAB,"B,M",RS ; 4619E5 4D4F560942C47 DFB "MOV",TAB,"B,A",RS ; 4719ED 4D4F560943C48 DFB "MOV",TAB,"C,B",RS ; 4819F5 4D4F560943C49 DFB "MOV",TAB,"C,C",RS ; 4919FD 4D4F560943C4A DFB "MOV",TAB,"C,D",RS ; 4A1A05 4D4F560943C4B DFB "MOV",TAB,"C,E",RS ; 4B1A0D 4D4F560943C4C DFB "MOV",TAB,"C,H",RS ; 4C1A15 4D4F560943C4D DFB "MOV",TAB,"C,L",RS ; 4D1A1D 4D4F560943C4E DFB "MOV",TAB,"C,M",RS ; 4E1A25 4D4F560943C4F DFB "MOV",TAB,"C,A",RS ; 4F1A2D 4D4F560944C50 DFB "MOV",TAB,"D,B",RS ; 501A35 4D4F560944C51 DFB "MOV",TAB,"D,C",RS ; 511A3D 4D4F560944C52 DFB "MOV",TAB,"D,D",RS ; 521A45 4D4F560944C53 DFB "MOV",TAB,"D,E",RS ; 531A4D 4D4F560944C54 DFB "MOV",TAB,"D,H",RS ; 541A55 4D4F560944C55 DFB "MOV",TAB,"D,L",RS ; 55

B8080.LST 3/12/2560 20:43

Page 75 of 86

Page 109: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560

1A5D 4D4F560944C56 DFB "MOV",TAB,"D,M",RS ; 561A65 4D4F560944C57 DFB "MOV",TAB,"D,A",RS ; 571A6D 4D4F560945C58 DFB "MOV",TAB,"E,B",RS ; 581A75 4D4F560945C59 DFB "MOV",TAB,"E,C",RS ; 591A7D 4D4F560945C5A DFB "MOV",TAB,"E,D",RS ; 5A1A85 4D4F560945C5B DFB "MOV",TAB,"E,E",RS ; 5B1A8D 4D4F560945C5C DFB "MOV",TAB,"E,H",RS ; 5C1A95 4D4F560945C5D DFB "MOV",TAB,"E,L",RS ; 5D1A9D 4D4F560945C5E DFB "MOV",TAB,"E,M",RS ; 5E1AA5 4D4F560945C5F DFB "MOV",TAB,"E,A",RS ; 5F1AAD 4D4F560948C60 DFB "MOV",TAB,"H,B",RS ; 601AB5 4D4F560948C61 DFB "MOV",TAB,"H,C",RS ; 611ABD 4D4F560948C62 DFB "MOV",TAB,"H,D",RS ; 621AC5 4D4F560948C63 DFB "MOV",TAB,"H,E",RS ; 631ACD 4D4F560948C64 DFB "MOV",TAB,"H,H",RS ; 641AD5 4D4F560948C65 DFB "MOV",TAB,"H,L",RS ; 651ADD 4D4F560948C66 DFB "MOV",TAB,"H,M",RS ; 661AE5 4D4F560948C67 DFB "MOV",TAB,"H,A",RS ; 671AED 4D4F56094CC68 DFB "MOV",TAB,"L,B",RS ; 681AF5 4D4F56094CC69 DFB "MOV",TAB,"L,C",RS ; 691AFD 4D4F56094CC6A DFB "MOV",TAB,"L,D",RS ; 6A1B05 4D4F56094CC6B DFB "MOV",TAB,"L,E",RS ; 6B1B0D 4D4F56094CC6C DFB "MOV",TAB,"L,H",RS ; 6C1B15 4D4F56094CC6D DFB "MOV",TAB,"L,L",RS ; 6D1B1D 4D4F56094CC6E DFB "MOV",TAB,"L,M",RS ; 6E1B25 4D4F56094CC6F DFB "MOV",TAB,"L,A",RS ; 6F1B2D 4D4F56094DC70 DFB "MOV",TAB,"M,B",RS ; 701B35 4D4F56094DC71 DFB "MOV",TAB,"M,C",RS ; 711B3D 4D4F56094DC72 DFB "MOV",TAB,"M,D",RS ; 721B45 4D4F56094DC73 DFB "MOV",TAB,"M,E",RS ; 731B4D 4D4F56094DC74 DFB "MOV",TAB,"M,H",RS ; 741B55 4D4F56094DC75 DFB "MOV",TAB,"M,L",RS ; 751B5D 484C540900C76 DFB "HLT",TAB,RS ; 761B62 4D4F56094DC77 DFB "MOV",TAB,"M,A",RS ; 771B6A 4D4F560941C78 DFB "MOV",TAB,"A,B",RS ; 781B72 4D4F560941C79 DFB "MOV",TAB,"A,C",RS ; 791B7A 4D4F560941C7A DFB "MOV",TAB,"A,D",RS ; 7A1B82 4D4F560941C7B DFB "MOV",TAB,"A,E",RS ; 7B1B8A 4D4F560941C7C DFB "MOV",TAB,"A,H",RS ; 7C1B92 4D4F560941C7D DFB "MOV",TAB,"A,L",RS ; 7D1B9A 4D4F560941C7E DFB "MOV",TAB,"A,M",RS ; 7E1BA2 4D4F560941C7F DFB "MOV",TAB,"A,A",RS ; 7F1BAA 4144440942C80 DFB "ADD",TAB,"B",RS ; 801BB0 4144440943C81 DFB "ADD",TAB,"C",RS ; 811BB6 4144440944C82 DFB "ADD",TAB,"D",RS ; 821BBC 4144440945C83 DFB "ADD",TAB,"E",RS ; 831BC2 4144440948C84 DFB "ADD",TAB,"H",RS ; 841BC8 414444094CC85 DFB "ADD",TAB,"L",RS ; 851BCE 414444094DC86 DFB "ADD",TAB,"M",RS ; 861BD4 4144440941C87 DFB "ADD",TAB,"A",RS ; 871BDA 4144430942C88 DFB "ADC",TAB,"B",RS ; 881BE0 4144430943C89 DFB "ADC",TAB,"C",RS ; 891BE6 4144430944C8A DFB "ADC",TAB,"D",RS ; 8A1BEC 4144430945C8B DFB "ADC",TAB,"E",RS ; 8B1BF2 4144430948C8C DFB "ADC",TAB,"H",RS ; 8C1BF8 414443094CC8D DFB "ADC",TAB,"L",RS ; 8D1BFE 414443094DC8E DFB "ADC",TAB,"M",RS ; 8E1C04 4144430941C8F DFB "ADC",TAB,"A",RS ; 8F1C0A 5355420942C90 DFB "SUB",TAB,"B",RS ; 901C10 5355420943C91 DFB "SUB",TAB,"C",RS ; 91

B8080.LST 3/12/2560 20:43

Page 76 of 86

Page 110: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620

1C16 5355420944C92 DFB "SUB",TAB,"D",RS ; 921C1C 5355420945C93 DFB "SUB",TAB,"E",RS ; 931C22 5355420948C94 DFB "SUB",TAB,"H",RS ; 941C28 535542094CC95 DFB "SUB",TAB,"L",RS ; 951C2E 535542094DC96 DFB "SUB",TAB,"M",RS ; 961C34 5355420941C97 DFB "SUB",TAB,"A",RS ; 971C3A 5342420942C98 DFB "SBB",TAB,"B",RS ; 981C40 5342420943C99 DFB "SBB",TAB,"C",RS ; 991C46 5342420944C9A DFB "SBB",TAB,"D",RS ; 9A1C4C 5342420945C9B DFB "SBB",TAB,"E",RS ; 9B1C52 5342420948C9C DFB "SBB",TAB,"H",RS ; 9C1C58 534242094CC9D DFB "SBB",TAB,"L",RS ; 9D1C5E 534242094DC9E DFB "SBB",TAB,"M",RS ; 9E1C64 5342420941C9F DFB "SBB",TAB,"A",RS ; 9F1C6A 414E410942CA0 DFB "ANA",TAB,"B",RS ; A01C70 414E410943CA1 DFB "ANA",TAB,"C",RS ; A11C76 414E410944CA2 DFB "ANA",TAB,"D",RS ; A21C7C 414E410945CA3 DFB "ANA",TAB,"E",RS ; A31C82 414E410948CA4 DFB "ANA",TAB,"H",RS ; A41C88 414E41094CCA5 DFB "ANA",TAB,"L",RS ; A51C8E 414E41094DCA6 DFB "ANA",TAB,"M",RS ; A61C94 414E410941CA7 DFB "ANA",TAB,"A",RS ; A71C9A 5852410942CA8 DFB "XRA",TAB,"B",RS ; A81CA0 5852410943CA9 DFB "XRA",TAB,"C",RS ; A91CA6 5852410944CAA DFB "XRA",TAB,"D",RS ; AA1CAC 5852410945CAB DFB "XRA",TAB,"E",RS ; AB1CB2 5852410948CAC DFB "XRA",TAB,"H",RS ; AC1CB8 585241094CCAD DFB "XRA",TAB,"L",RS ; AD1CBE 585241094DCAE DFB "XRA",TAB,"M",RS ; AE1CC4 5852410941CAF DFB "XRA",TAB,"A",RS ; AF1CCA 4F52410942CB0 DFB "ORA",TAB,"B",RS ; B01CD0 4F52410943CB1 DFB "ORA",TAB,"C",RS ; B11CD6 4F52410944CB2 DFB "ORA",TAB,"D",RS ; B21CDC 4F52410945CB3 DFB "ORA",TAB,"E",RS ; B31CE2 4F52410948CB4 DFB "ORA",TAB,"H",RS ; B41CE8 4F5241094CCB5 DFB "ORA",TAB,"L",RS ; B51CEE 4F5241094DCB6 DFB "ORA",TAB,"M",RS ; B61CF4 4F52410941CB7 DFB "ORA",TAB,"A",RS ; B71CFA 434D500942CB8 DFB "CMP",TAB,"B",RS ; B81D00 434D500943CB9 DFB "CMP",TAB,"C",RS ; B91D06 434D500944CBA DFB "CMP",TAB,"D",RS ; BA1D0C 434D500945CBB DFB "CMP",TAB,"E",RS ; BB1D12 434D500948CBC DFB "CMP",TAB,"H",RS ; BC1D18 434D50094CCBD DFB "CMP",TAB,"L",RS ; BD1D1E 434D50094DCBE DFB "CMP",TAB,"M",RS ; BE1D24 434D500941CBF DFB "CMP",TAB,"A",RS ; BF1D2A 524E5A0900CC0 DFB "RNZ",TAB,RS ; C01D2F 504F500942CC1 DFB "POP",TAB,"B",RS ; C11D35 4A4E5A0900CC2 DFB "JNZ",TAB,RS ; C21D3A 4A4D500900CC3 DFB "JMP",TAB,RS ; C31D3F 434E5A0900CC4 DFB "CNZ",TAB,RS ; C41D44 5055534809CC5 DFB "PUSH",TAB,"B",RS ; C51D4B 4144490900CC6 DFB "ADI",TAB,RS ; C61D50 5253540930CC7 DFB "RST",TAB,"0",RS ; C71D56 525A0900 CC8 DFB "RZ",TAB,RS ; C81D5A 5245540900CC9 DFB "RET",TAB,RS ; C91D5F 4A5A0900 CCA DFB "JZ",TAB,RS ; CA1D63 4446420900CCB DFB "DFB",TAB,RS ; CB1D68 435A0900 CCC DFB "CZ",TAB,RS ; CC1D6C 43414C4C09CCD DFB "CALL",TAB,RS ; CD

B8080.LST 3/12/2560 20:43

Page 77 of 86

Page 111: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680

1D72 4143490900CCE DFB "ACI",TAB,RS ; CE1D77 5253540931CCF DFB "RST",TAB,"1",RS ; CF1D7D 524E430900CD0 DFB "RNC",TAB,RS ; D01D82 504F500944CD1 DFB "POP",TAB,"D",RS ; D11D88 4A4E430900CD2 DFB "JNC",TAB,RS ; D21D8D 4F55540900CD3 DFB "OUT",TAB,RS ; D31D92 434E430900CD4 DFB "CNC",TAB,RS ; D41D97 5055534809CD5 DFB "PUSH",TAB,"D",RS ; D51D9E 5355490900CD6 DFB "SUI",TAB,RS ; D61DA3 5253540932CD7 DFB "RST",TAB,"2",RS ; D71DA9 52430900 CD8 DFB "RC",TAB,RS ; D81DAD 4446420900CD9 DFB "DFB",TAB,RS ; D91DB2 4A430900 CDA DFB "JC",TAB,RS ; DA1DB6 494E0900 CDB DFB "IN",TAB,RS ; DFB1DBA 43430900 CDC DFB "CC",TAB,RS ; DC1DBE 4446420900CDD DFB "DFB",TAB,RS ; DD1DC3 5342490900CDE DFB "SBI",TAB,RS ; DE1DC8 5253540933CDF DFB "RST",TAB,"3",RS ; DF1DCE 52504F0900CE0 DFB "RPO",TAB,RS ; E01DD3 504F500948CE1 DFB "POP",TAB,"H",RS ; E11DD9 4A504F0900CE2 DFB "JPO",TAB,RS ; E21DDE 5854484C09CE3 DFB "XTHL",TAB,RS ; E31DE4 43504F0900CE4 DFB "CPO",TAB,RS ; E41DE9 5055534809CE5 DFB "PUSH",TAB,"H",RS ; E51DF0 414E490900CE6 DFB "ANI",TAB,RS ; E61DF5 5253540934CE7 DFB "RST",TAB,"4",RS ; E71DFB 5250450900CE8 DFB "RPE",TAB,RS ; E81E00 5043484C09CE9 DFB "PCHL",TAB,RS ; E91E06 4A50450900CEA DFB "JPE",TAB,RS ; EA1E0B 5843484709CEB DFB "XCHG",TAB,RS ; EB1E11 4350450900CEC DFB "CPE",TAB,RS ; EC1E16 4446420900CED DFB "DFB",TAB,RS ; ED1E1B 5852490900CEE DFB "XRI",TAB,RS ; EE1E20 5253540935CEF DFB "RST",TAB,"5",RS ; EF1E26 52500900 CF0 DFB "RP",TAB,RS ; F01E2A 504F500950CF1 DFB "POP",TAB,"PSW",RS ; F11E32 4A500900 CF2 DFB "JP",TAB,RS ; F21E36 44490900 CF3 DFB "DI",TAB,RS ; F31E3A 43500900 CF4 DFB "CP",TAB,RS ; F41E3E 5055534809CF5 DFB "PUSH",TAB,"PSW",RS ; F51E47 4F52490900CF6 DFB "ORI",TAB,RS ; F61E4C 5253540936CF7 DFB "RST",TAB,"6",RS ; F71E52 524D0900 CF8 DFB "RM",TAB,RS ; F81E56 5350484C09CF9 DFB "SPHL",TAB,RS ; F91E5C 4A4D0900 CFA DFB "JM",TAB,RS ; FA1E60 45490900 CFB DFB "EI",TAB,RS ; FB1E64 434D0900 CFC DFB "CM",TAB,RS ; FC1E68 4446420900CFD DFB "DFB",TAB,RS ; FD1E6D 4350490900CFE DFB "CPI",TAB,RS ; FE1E72 5253540937CFF DFB "RST",TAB,"7",RS, ; FF

1E78 0D0A0A3830prompt1: dfb cr,lf,lf,"8080 MICROPROCESSOR KIT [2016]

;convert dfb 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77

B8080.LST 3/12/2560 20:43

Page 78 of 86

Page 112: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740

1EA5 BD309BBA36convert: dfb 0bdh,30h,9bh,0bah,36h,0aeh,0afh,38h,0bfh,0

1EB5 0000000000off_display: dfb 0,0,0,0,0,0

; lcd message |--- 20 letters ---|1EBB 3830383020prompt2: dfb "8080 MICROPROCESSOR KIT",01ED3 33326B4220text3: dfb "32kB RAM",0

1EDC 6C6F616420download_text: dfb "load Intel hex file...",01EF3 3E00 prompt_text: dfb ">",01EF5 6E6577206Cnew_text: dfb "new location = ",01F05 6564697420edit_text: dfb "edit memory location = ",01F1D 0D0A456E74edit_text1: dfb cr,lf,"Enter to quit, SPACE key to view 1F48 0D0A0A4144edit_text2: dfb cr,lf,lf,"ADDR DATA",0

1F56 6A756D7020jump_text1: dfb "jump to address [",01F68 5D203D2000jump_text2: dfb "] = ",01F6D 7072696E74ascii_text: dfb "print ASCII code",0

1F7E 426567696Efill_text1: dfb "Begin address = ",01F8F 20456E6420fill_text2: dfb " End address = ",01F9F 2044617461fill_text3: dfb " Data = ",0

1FA8 206572726Ferror_text: dfb " errors",0

1FB0 6469736173disassemble_text: dfb "disassemble...",0

0000 = eos equ 0

1FBF 41463D00 af_text: dfb "AF=",eos1FC3 42433D00 bc_text: dfb "BC=",eos1FC7 44453D00 de_text: dfb "DE=",eos1FCB 484C3D00 hl_text: dfb "HL=",eos1FCF 53503D00 sp_text: dfb "SP=",eos1FD3 544F533D00tos_text: dfb "TOS=",eos

1FD8 50433D00 pc_text: dfb "PC=",eos1FDC 5B53205A20flag_text: dfb "[S Z - AC - P - CY]=",eos

1FF2 533D00 sign_text: dfb "S=",0

1FF5 2062797465byte_text: dfb " bytes loaded",0

2003 535441434Bstack_text: dfb "STACK Memory Contents..",0

201B 7365742076set_register_text: dfb "set value to user register (enter

204A 0D0A0A3830help_text: dfb cr,lf,lf,"8080 MICROPROCESSOR KIT (? HELP206D 0D0A41202Dhelp_text1: dfb cr,lf, "A - ASCII code"207D 0D0A43202D dfb cr,lf, "C - clear watch variables"2098 0D0A44202D dfb cr,lf, "D - disassemble"20A9 0D0A45202D dfb cr,lf, "E - edit memory"20BA 0D0A46202D dfb cr,lf, "F - fill constant"20CD 0D0A48202D dfb cr,lf, "H - hex dump"20DB 0D0A49202D dfb cr,lf, "I - i/o location and 7-segment 2100 0D0A4A202D dfb cr,lf, "J - jump to user program"211A 0D0A4B202D dfb cr,lf, "K - display user STACK"2132 0D0A4C202D dfb cr,lf, "L - load Intel hex file"

B8080.LST 3/12/2560 20:43

Page 79 of 86

Page 113: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800

214B 0D0A4D202D dfb cr,lf, "M - monitor call number"2164 0D0A4E202D dfb cr,lf, "N - new location pointer"217E 0D0A51202D dfb cr,lf, "Q - quick home location"2197 0D0A52202D dfb cr,lf, "R - user register display"21B2 0D0A53202D dfb cr,lf, "S - set value to user register21D2 0D0A57202D dfb cr,lf, "W - watch variables"

; dfb cr,lf, "SPACE BAR - single step"21E7 0D0A3F202D dfb cr,lf, "? - help menu",cr,lf,0

21F9 0D0A303048io_text dfb cr,lf,"00H 8-bit GPIO1 LED"220E 0D0A dfb cr,lf2210 0D0A504F52 dfb cr,lf,"PORT0 (input)=20H, PORT1(digit)=402249 0D0A dfb cr,lf224B 0D0A4C4344 dfb cr,lf,"LCD CMD WR=80H, CMD RD=82H, DATA 2281 0D0A dfb cr,lf2283 0D0A555345 dfb cr,lf,"USER = A0H-BFH, C0H-DFH, E0H-FFH"22A5 0D0A dfb cr,lf22A7 0D0A372D73 dfb cr,lf,"7-segment code for 0-F"22BF 0D0A303D30 dfb cr,lf,"0=0bdh,1=30h,2=9bh,3=0bah,4=36h,5=0aeh,22F4 0D0A383D30 dfb cr,lf,"8=0bfh,9=0beh,A=3fh,B=0a7h,C=8dh,D=0b3h

232A monitor_text:

232A 7365652069 dfb "see input parameters in user manual",cr234F 0D0A31456E dfb cr,lf,"1Enn MVI E,function_number"236B 0D0A434620 dfb cr,lf,"CF RST 1"2377 0D0A dfb cr,lf2379 0D0A303020 dfb cr,lf,"00 - demo" ; #0 running LED with 2384 0D0A303120 dfb cr,lf,"01 - delay" ; #1 simple delay routine2390 0D0A303220 dfb cr,lf,"02 - cold_boot" ; #2 show 8085 running23A0 0D0A303320 dfb cr,lf,"03 - scan" ; #3 scan display 23AB 0D0A303420 dfb cr,lf,"04 - cin" ; #4 get byte from 23B5 0D0A303520 dfb cr,lf,"05 - cout" ; #5 print byte to 23C0 0D0A303620 dfb cr,lf,"06 - put_str" ; #6 print string 23CE 0D0A303720 dfb cr,lf,"07 - init_lcd" ; #7 initialize lcd23DD 0D0A303820 dfb cr,lf,"08 - lcd_ready" ; #8 wait until 23ED 0D0A303920 dfb cr,lf,"09 - clear_lcd" ; #9 clear lcd display23FD 0D0A304120 dfb cr,lf,"0A - goto_xy" ; #10 set lcd cursor 240B 0D0A304220 dfb cr,lf,"0B - put_str_lcd" ; #11 print ASCII 241D 0D0A304320 dfb cr,lf,"0C - put_ch_lcd" ; #12 print ASCII 242E 0D0A304420 dfb cr,lf,"0D - demo2",0 ; #13 run GPIO LED243B 0D0A304520 dfb cr,lf,"0E - pint16u",0 ;#14 print 16-bit

; data segment

F000 org system_ram

F000 watch_ram dfs 16 ; watch variable F000-F00FF010 buffer dfs 16 ; buffer displayF020 bcs dfs 1 ; byte checksumF021 key dfs 1 ; key positionF022 command dfs 1 ; serial commandF023 flag1 dfs 1 ; user flag

; flag1.0 Space key was pressed; flag1.1 Enter key was pressed

B8080.LST 3/12/2560 20:43

Page 80 of 86

Page 114: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048404840484048404840484048404840484048404840484048404840484048404840484048404840

F024 beep_flag dfs 1 ; beep/no beep

F025 uart_found dfs 1 ; 0 = no uart, 1 uart found

F026 entry_mode dfs 1 ; 0 for data mode; 1 for address mode; 2 register display

F027 counter1 dfs 1 ; event counter1 for data entryF028 counter2 dfs 1 ; event counter2 for address entryF029 warm_code dfs 1 ; warm boot code

F02A user_PC dfs 2 ; user PCF02C user_AF dfs 2 ; user AFF02E user_BC dfs 2 ; user BCF030 user_DE dfs 2 ; user DEF032 user_HL dfs 2 ; user HLF034 user_SP dfs 2 ; user SPF036 tos dfs 2 ; Top of STACKF038 current_register dfs 2 ; stores current displayed register

F03A temp dfs 2 ; temporary 16-bit storage

F03C pointer dfs 2 ; for hex dump

F03E break_address dfs 2 ; break addressF040 break_opcode dfs 1 ; opcode that saved

F041 bcd_counter1 dfs 3 ; 6-digit BCD counter1F044 bcd_counter2 dfs 3 ; 6-digit BCD counter2

F047 line_buffer dfs 16 ; reserved for terminal printing

F057 save_stack dfs 2 ; for saving system stackF059 system_stack dfs 32F079 user_stack dfs 32

0000 END

B8080.LST 3/12/2560 20:43

Page 81 of 86

Page 115: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

484048404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898

10CD AC_TEXT 09F7 ADDRESS_MODE 1FBF AF_TEXT 12BB ALT_PUT_STR 1411 ASCII_0_9 0DCA ASCII_PRINT 0DE2 ASCII_PRINT1 1F6D ASCII_TEXT F041 BCD_COUNTER1 F044 BCD_COUNTER2 F020 BCS 1FC3 BC_TEXT 0965 BEEP_CHK F024 BEEP_FLAG 0636 BEEP_ON 017E BIN1 0189 BIN2 017C BIN2ASCII 0193 BIN3 019E BIN4 14F7 BIT_DELAY 1522 BIT_IS_ONE 08C0 BREAK F03E BREAK_ADDRESS F040 BREAK_OPCODE F010 BUFFER 0080 BUSY 0627 BUZZER 0638 BUZZER1 1FF5 BYTE_TEXT 182B C0 1830 C1 188C C10 1891 C11 1898 C12 189F C13 18A5 C14 18AB C15 18B1 C16 18B8 C17 18BD C18 18C2 C19 18C8 C1A 18CF C1B 18D5 C1C 18DB C1D 18E1 C1E 18E8 C1F 1837 C2 18ED C20 18F2 C21 18F9 C22 18FF C23 1905 C24 190B C25 1911 C26 1918 C27 191D C28 1922 C29 1928 C2A 192E C2B 1934 C2C 193A C2D 1940 C2E 1947 C2F 183E C3 194C C30 1951 C31 1959 C32 195E C33 1965 C34 196B C35 1971 C36 1978 C37 197D C38 1982 C39 1989 C3A 198E C3B 1995 C3C 199B C3D 19A1 C3E 19A8 C3F 1844 C4 19AD C40 19B5 C41 19BD C42 19C5 C43 19CD C44 19D5 C45 19DD C46 19E5 C47 19ED C48 19F5 C49 19FD C4A 1A05 C4B 1A0D C4C 1A15 C4D 1A1D C4E 1A25 C4F 184A C5 1A2D C50 1A35 C51 1A3D C52 1A45 C53 1A4D C54 1A55 C55 1A5D C56 1A65 C57 1A6D C58 1A75 C59 1A7D C5A 1A85 C5B 1A8D C5C 1A95 C5D 1A9D C5E 1AA5 C5F 1850 C6 1AAD C60 1AB5 C61 1ABD C62 1AC5 C63 1ACD C64 1AD5 C65 1ADD C66 1AE5 C67 1AED C68 1AF5 C69 1AFD C6A 1B05 C6B 1B0D C6C 1B15 C6D 1B1D C6E 1B25 C6F 1857 C7 1B2D C70 1B35 C71 1B3D C72 1B45 C73 1B4D C74 1B55 C75 1B5D C76 1B62 C77 1B6A C78 1B72 C79 1B7A C7A 1B82 C7B 1B8A C7C 1B92 C7D 1B9A C7E 1BA2 C7F 185C C8 1BAA C80 1BB0 C81 1BB6 C82 1BBC C83 1BC2 C84 1BC8 C85 1BCE C86 1BD4 C87 1BDA C88 1BE0 C89 1BE6 C8A 1BEC C8B 1BF2 C8C 1BF8 C8D 1BFE C8E 1C04 C8F 1861 C9 1C0A C90 1C10 C91 1C16 C92 1C1C C93 1C22 C94 1C28 C95 1C2E C96 1C34 C97 1C3A C98

B8080.LST 3/12/2560 20:43

Page 82 of 86

Page 116: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958

1C40 C99 1C46 C9A 1C4C C9B 1C52 C9C 1C58 C9D 1C5E C9E 1C64 C9F 1867 CA 1C6A CA0 1C70 CA1 1C76 CA2 1C7C CA3 1C82 CA4 1C88 CA5 1C8E CA6 1C94 CA7 1C9A CA8 1CA0 CA9 1CA6 CAA 1CAC CAB 1CB2 CAC 1CB8 CAD 1CBE CAE 1CC4 CAF 186E CB 1CCA CB0 1CD0 CB1 1CD6 CB2 1CDC CB3 1CE2 CB4 1CE8 CB5 1CEE CB6 1CF4 CB7 1CFA CB8 1D00 CB9 1D06 CBA 1D0C CBB 1D12 CBC 1D18 CBD 1D1E CBE 1D24 CBF 1874 CC 1D2A CC0 1D2F CC1 1D35 CC2 1D3A CC3 1D3F CC4 1D44 CC5 1D4B CC6 1D50 CC7 1D56 CC8 1D5A CC9 1D5F CCA 1D63 CCB 1D68 CCC 1D6C CCD 1D72 CCE 1D77 CCF 187A CD 1D7D CD0 1D82 CD1 1D88 CD2 1D8D CD3 1D92 CD4 1D97 CD5 1D9E CD6 1DA3 CD7 1DA9 CD8 1DAD CD9 1DB2 CDA 1DB6 CDB 1DBA CDC 1DBE CDD 1DC3 CDE 1DC8 CDF 1880 CE 1DCE CE0 1DD3 CE1 1DD9 CE2 1DDE CE3 1DE4 CE4 1DE9 CE5 1DF0 CE6 1DF5 CE7 1DFB CE8 1E00 CE9 1E06 CEA 1E0B CEB 1E11 CEC 1E16 CED 1E1B CEE 1E20 CEF 1887 CF 1E26 CF0 1E2A CF1 1E32 CF2 1E36 CF3 1E3A CF4 1E3E CF5 1E47 CF6 1E4C CF7 1E52 CF8 1E56 CF9 1E5C CFA 1E60 CFB 1E64 CFC 1E68 CFD 1E6D CFE 1E72 CFF 0CCD CHECKMORE 0D3E CHECK_LOWEST 0D1D CHECK_RXD 0D11 CHECK_S27 14D1 CHK_BIT 1514 CHK_BIT_RX 15E8 CHK_LCD 128F CIN 1506 CIN1 0F3B CLEAR1 1585 CLEAR_BCD1 15AE CLEAR_BCD2 08FA CLEAR_BREAK 01E3 CLEAR_LCD 0F2E CLEAR_WATCH 0BA9 CODE1 0BF1 CODE10 0BF9 CODE11 0C01 CODE12 0C09 CODE13 0C11 CODE14 0C19 CODE15 0C21 CODE16 0C29 CODE17 0C31 CODE18 0C39 CODE19 0BB1 CODE2 0C41 CODE20 0C49 CODE21 0C51 CODE22 0C59 CODE23 0C61 CODE24 0C69 CODE25 0C71 CODE26 0C79 CODE27 0BB9 CODE3 0BC1 CODE4 0BC9 CODE5 0BD1 CODE6 0BD9 CODE7 0BE1 CODE8 0BE9 CODE9 0B73 COLD1 0B71 COLD2 0B82 COLD3 0B6C COLD_BOOT F022 COMMAND 0082 COMMAND_READ 0080 COMMAND_WRITE 0D4D CONNECT_TERMINAL 0023 CONTROL_8254 0034 CONTROL_WORD_8254 1EA5 CONVERT 0020 COUNTER0_8254 F027 COUNTER1 0021 COUNTER1_8254 F028 COUNTER2 0022 COUNTER2_8254 1287 COUT 000D CR F038 CURRENT_REGISTER 10D4 CY_TEXT 05FF DATA_KEY 060A DATA_KEY1 0612 DATA_KEY2 061A DATA_KEY3 0622 DATA_KEY4 0A04 DATA_MODE 0083 DATA_READ 1499 DATA_RECORD 0081 DATA_WRITE

B8080.LST 3/12/2560 20:43

Page 83 of 86

Page 117: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018

0CA5 DEBOUNCE 0CA7 DEBOUNCE1 098B DEBUG 0A6E DECREMENT 05F6 DELAY 14FE DELAY_1_5 14F9 DELAY_BIT 1500 DELAY_BIT15 0631 DELAY_NOBEEP 064F DELAY_US 0651 DELAY_US1 0940 DELETE_BYTE 094F DELETE_BYTE1 0B96 DEMO 0B98 DEMO1_2 1FC7 DE_TEXT 0040 DIGIT 0306 DIS2 0370 DISASSEM1 037F DISASSEM2 032E DISASSEM3 031A DISASSEMBLE 02F3 DISASSEMBLE1 1FB0 DISASSEMBLE_TEXT 0656 DISPLAY_OFF 0DA8 DOWNLOAD 1EDC DOWNLOAD_TEXT 13A3 DUMP1 139B DUMP_MEMORY 03E6 D_DISASSEM1 03F5 D_DISASSEM2 03A4 D_DISASSEM3 0390 D_DISASSEMBLE 03BC D_ONE_TAB 11A4 EDIT1 117F EDIT_LOCATION 1F05 EDIT_TEXT 1F1D EDIT_TEXT1 1F48 EDIT_TEXT2 06FF ENTER_ADDRESS 06C5 ENTER_DATA 06EA ENTER_DATA1 0665 ENTER_REGISTER F026 ENTRY_MODE 0000 EOS 1FA8 ERROR_TEXT 001B ESC 1498 ESC_QUIT 0DFB EXIT_ASCII_PRINT 01EA EXIT_CLEAR 0F48 EXIT_CLEAR_WATCH 0319 EXIT_DISASSEMBLE 0DC9 EXIT_DOWNLOAD 1201 EXIT_EDIT 11F2 EXIT_EDIT1 111B EXIT_FILL 143B EXIT_GET_HEX2 1444 EXIT_GET_HEX3 125D EXIT_HELP 139A EXIT_HEX_DUMP 1245 EXIT_IO 117E EXIT_JUMP 1134 EXIT_MONITOR 121E EXIT_NEW_LOCATION 0DA7 EXIT_PROMPTING 1233 EXIT_QUICK_HOME 10C9 EXIT_REGISTER 0F10 EXIT_SET_USER 0FA3 EXIT_STACK 0F63 EXIT_STEP 0F57 EXIT_WATCH 10D8 FILL_MEMORY 110A FILL_MEMORY1 1F7E FILL_TEXT1 1F8F FILL_TEXT2 1F9F FILL_TEXT3 F023 FLAG1 1FDC FLAG_TEXT 1281 FOUND 15F8 FOUND_LCD 0578 FUNCTION1 05DC FUNCTION10 05E7 FUNCTION11 0583 FUNCTION2 058E FUNCTION3 0599 FUNCTION4 05A5 FUNCTION5 05B0 FUNCTION6 05BB FUNCTION7 05C6 FUNCTION8 05D1 FUNCTION9 0A0F FUNCTION_2ND 056D FUNCTION_KEY 141C GET_2ND_HEX 1505 GET_BYTE 1293 GET_COMMAND 13BC GET_HEX 13CF GET_HEX1 13E8 GET_HEX2 0BA1 GET_KEY_CODE 0406 GET_NUMBER_OF_BYTE 144D GET_RECORD 0991 GO 020D GOTO_XY 021C GOTO_XY1 0227 GOTO_XY2 0232 GOTO_XY3 023D GOTO_XY4 0000 GPIO 1246 HELP 204A HELP_TEXT 206D HELP_TEXT1 133B HEX_DUMP 135C HEX_DUMP1 1348 HEX_DUMP2 1382 HEX_DUMP3 1384 HEX_DUMP4 1377 HEX_DUMP5 1FCB HL_TEXT 0977 HOME 8100 HOME_ADDRESS 0A5B INCREMENT 1539 INC_BCD1 1551 INC_BCD2 0172 INIT_8254 01EB INIT_LCD 125E INIT_UART 0915 INSERT_BYTE 0928 INSERT_BYTE1 162B INS_TABLE 1234 IO_ADDRESS 21F9 IO_TEXT 06FB IT_IS_RAM 1F56 JUMP_TEXT1 1F68 JUMP_TEXT2 1135 JUMP_TO_USER_PGM F021 KEY 0561 KEY_EXECUTE 01D9 LCD_READY 01DA LCD_READY1 000A LF F047 LINE_BUFFER 0CD8 LONG_DELAY 15D1 LOOP1 0169 MAIN 182B MNEM 0B33 MODE1 0B6A MODE2 0AF8 MODE_INDICATOR 0A33 MODIFY_REGISTER 0244 MONITOR_CALL 111C MONITOR_FUNCTION 232A MONITOR_TEXT 8000 MY_ROM 1324 NEW_LINE 1202 NEW_LOCATION 1EF5 NEW_TEXT 14E5 NEXT_BIT 1529 NEXT_BIT_RX 0CF5 NEXT_KEY 12A7 NO_DATA 0D49 NO_KEY_PRESSED 040E NUMBER1 0456 NUMBER10 045E NUMBER11 0466 NUMBER12 046E NUMBER13 0476 NUMBER14 047E NUMBER15 0486 NUMBER16 048E NUMBER17 0496 NUMBER18 049E NUMBER19 0416 NUMBER2 04A6 NUMBER20 04AE NUMBER21 04B6 NUMBER22 04BE NUMBER23 04C6 NUMBER24 04CE NUMBER25

B8080.LST 3/12/2560 20:43

Page 84 of 86

Page 118: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078

04D6 NUMBER26 04DE NUMBER27 04E6 NUMBER28 04EE NUMBER29 041E NUMBER3 04F6 NUMBER30 04FE NUMBER31 0506 NUMBER32 050E NUMBER33 0516 NUMBER34 051E NUMBER35 0526 NUMBER36 052E NUMBER37 0536 NUMBER38 053E NUMBER39 0426 NUMBER4 0546 NUMBER40 054E NUMBER41 0556 NUMBER42 055E NUMBER43 042E NUMBER5 0436 NUMBER6 043E NUMBER7 0446 NUMBER8 044E NUMBER9 1EB5 OFF_DISPLAY 0659 OFF_DISPLAY1 1433 OK_0_9 0346 ONE_TAB 0973 OPTION1 1304 OUT1X 1310 OUT1X1 1315 OUT2X 1FD8 PC_TEXT 01C7 PINT1 01D2 PINT2 01AC PINT8U F03C POINTER 0020 PORT0 0040 PORT1 0060 PORT2 1569 PRINT_BCD1 1592 PRINT_BCD2 0F49 PRINT_WATCH 0F11 PRINT_WATCH_RAM 1E78 PROMPT1 1EBB PROMPT2 12C2 PROMPT3 0D8A PROMPTING 1EF3 PROMPT_TEXT 023E PUT_CH_LCD 07E3 PUT_FLAG 07EB PUT_HIGH1 086C PUT_HIGH2 12AD PUT_STR 12B4 PUT_STR1 12EF PUT_STR2 01FD PUT_STR_LCD 0204 PUT_STR_LCD1 10D1 P_TEXT 121F QUICK_HOME 01E1 READY2 0AB4 READ_MEMORY 0A89 READ_REGISTER 0757 REGISTER1 089A REGISTER10 0773 REGISTER2 078F REGISTER3 07AB REGISTER4 07C7 REGISTER5 07EE REGISTER6 0816 REGISTER7 0841 REGISTER8 0872 REGISTER9 0FA4 REGISTER_DISPLAY 0FAC REGISTER_DISPLAY1 0FAF REGISTER_DISPLAY2 1041 REGISTER_FLAG1 10C2 REGISTER_FLAG10 1046 REGISTER_FLAG2 1060 REGISTER_FLAG3 1065 REGISTER_FLAG4 107F REGISTER_FLAG5 1084 REGISTER_FLAG6 109E REGISTER_FLAG7 10A3 REGISTER_FLAG8 10BD REGISTER_FLAG9 15EA REPEAT_CHK_LCD 0000 ROM 0000 RS F057 SAVE_STACK 0CAC SCAN 0CBA SCAN1 0C7C SCAN_KEY 0C93 SCAN_KEY1 0C8D SCAN_KEY2 0C8D SCAN_KEY3 0C7C SCAN_KEY4 0060 SEGMENT 0739 SELECT_REGISTER 14C7 SEND_BYTE 0D92 SEND_PROMPT 12F6 SEND_PROMPT1 12FD SEND_PROMPT3 1335 SEND_TAB 14DE SEND_ZERO 0D4E SERIAL_COMMAND 0298 SERVICE_RST2 0276 SERVICE_RST7 02BD SERVICE_TRAP 201B SET_REGISTER_TEXT 0E38 SET_USER1 0E63 SET_USER2 0E8E SET_USER3 0EB9 SET_USER4 0EE4 SET_USER5 0F0F SET_USER6 0DFC SET_USER_REGISTER 0715 SHIFT_ADDRESS 06D8 SHIFT_DATA 0CEB SHIFT_KEY 0670 SHIFT_REGISTER 1FF2 SIGN_TEXT 09B5 SINGLE_STEP 0F58 SINGLE_STEP_ 02EE SKIP1 09D5 SKIP2 0CDE SKIP23 0122 SKIP_BOOT 0D29 SKIP_CHECK_S27 0147 SKIP_COLD_BOOT 11E2 SKIP_EDIT1 11EB SKIP_EDIT2 14BB SKIP_ERROR 116F SKIP_LOAD_PC 07ED SKIP_PUT_HIGH1 086E SKIP_PUT_HIGH2 015E SKIP_SEND_PROMPT 0D87 SKIP_SERIAL 160D SKIP_TEST_LCD 0020 SP 132F SPACE 1FCF SP_TEXT 0F64 STACK_DISPLAY 0F78 STACK_DISPLAY1 2003 STACK_TEXT 0100 START F000 SYSTEM_RAM F059 SYSTEM_STACK 0009 TAB F03A TEMP 0623 TEST_BUZZER 15BB TEST_KIT 05E8 TEST_LED 05EA TEST_LED1 1ED3 TEXT3 1620 TICK 0B8A TITLE F036 TOS 1FD3 TOS_TEXT 13B0 TO_HEX 0A7E TO_SEVEN_SEGMENT 0040 UART_BUFFER 0040 UART_DIVISOR_LSB 0041 UART_DIVISOR_MSB 0042 UART_FIFO F025 UART_FOUND 0043 UART_LCR 0045 UART_LINE_STATUS 0047 UART_SCR F02C USER_AF F02E USER_BC F030 USER_DE F032 USER_HL F02A USER_PC 0030 USER_PORT_A 0031 USER_PORT_B 0032 USER_PORT_C 0033 USER_PORT_CONTROL F034 USER_SP

B8080.LST 3/12/2560 20:43

Page 85 of 86

Page 119: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

507950805081508250835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083508350835083

F079 USER_STACK 0D48 VALID_KEY 0258 VECTOR_TABLE 0CDA WAIT1 0CE3 WAIT2 1480 WAIT_CR F029 WARM_CODE 0F21 WATCH1 F000 WATCH_RAM 13BB ZERO_NINE 10CA ZERO_TEXT

B8080.LST 3/12/2560 20:43

Page 86 of 86

Page 120: 8080 Microprocessor Kit User's Manual - · PDF fileThe 8080 Microprocessor kit is the educational kit designed for self learning the Intel ... Tick: 10ms tick produced by 89C2051 for

NOTE