Professional Documents
Culture Documents
M Eng 8086
M Eng 8086
MANUAL
A n Inte grate d D e ve lo pm e nt E nviro nm e nt kit
User's Manual
D o cum e ntatio n V e rsio n 9.1
PREFACE
The first 50 years of the 20th century witnessed the invention of the
internal combustion engine, which greatly extended the physical strength of
the human body.
In the second half of the century, the birth of the microprocessor further
extended our mental capabilities. Applications of this amazing product in
various industries have introduced so much impact on our lives, hence, it is
called the second industrial Revolution.
Microcomputers represent a total change in designing systems. Both
industrial and academic institutions are active in the development and search
for new applications for microcomputers.
This book is designed to be used in conjunction with the "multi tech"
MDA-8086 Microcomputers as part of a one-year laboratory class on
microcomputers. With the aid of this book, students will be able to learn the
fundamentals of microcomputers, from basic CPU instructions to practical
applications.
The first part of this book is an introduction to the basic concepts of
microcomputer programming. It lays the foundation for year studies, the
second part of this book is the microcomputer hardware, such as ,
input/output, interrupt, timer and counter experiment, and experiments using
microcomputer instructions, such as, data transfers, arithmetic and logic
operations, jump and subroutine and memory address allocation in simple
program. Experiments involving more complicated arithmetic operations, such
as, binary to decimal conversion, decimal to binary conversion, multiplication,
division are presented.
There are various experiments in this book which are designed to
familiarize the student with the fundamentals of input/output programming.
These programs are centered around the keyboard and display. These
experiments establish the foundation for later experiments involving a simple
monitor program, which leads to more complicated MDA-8086 programs.
PART I :
MDA-8086 USER'S MANUAL
TABLE OF CONTENTS
1. MDA-8086 SYSTEM CONFIGURATION 1
2. OPERATION INTRODUCTION 4
2-1. KIND & FUNCTION OF KEY 4
2-2. BASIC OPERATION 5
3. EXAMPLE PROGRAM 10
4. Serial Monitor 18
4-1.
4-2.
4-3.
4-4.
4-5.
7. 8253 INTERFACE 40
PART II :
MDA-8086 EXPERIMENTS
(SOFTWARE/HARDWARE)
TABLE OF CONTENTS
Experiment 1. 8255A Interface 49
1-1. LED & 7-Segment 49
EXPERIMENT 9. C LANGUAGE 99
9-1. LED.C 99
9-2. FND.C 100
9-3. MATRIX.C 102
9-4. DAC.C 103
9-5. ADC.C 104
9-6. LCD.C 106
9-7. D8251A.C 108
9-8. D8253.C 110
9-9. I8259.C 112
9-10. STEPMO.C 114
APPENDIX
MDA-8086 APPENDIX
TABLE OF CONTENTS
1. MDA-8086 Memory Circuit. 119
2. MDA-8086 Connector(CON10) CIRCUIT. 120
3. 8086 Pin configuration. 121
4. 8086 Instruction Set Summary. 122
MDA-8086 Manual
- 1 -
- 2 -
MDA-8086 Manual
MEMORY
DESCRIPTION
00000H ~ 0FFFFH
RAM
F0000H ~ FFFFFH
ROM
MONITOR ROM
10000H ~ EFFFFH
USER'S RANGE
I/O PORT
LCD & KEYBOARD
DESCRIPTION
LCD Display
00H : INSTRUCTION REGISTER
02H : STATUS REGISTER
04H : DATA REGISTER
KEYBOARD
01H : KEYBOARD REGISTER (Only read)
01H : KEYBOARD FLAG (Only write)
8251(Using to data communication)
08H ~ 0FH
8251 / 8253
10H ~ 17H
8259/SPEAKER
18H ~ 1FH
8255A-CS1/
8255A-CS2
20H ~ 2FH
30H ~ FFH
USER'S RANGE
MDA-8086 Manual
- 3 -
2. OPERATION INTRODUCTION
2. OPERATION INTRODUCTION
2-1. KIND & FUNCTION OF KEY
MDA-8086 has high performance 64K-byte monitor program. It is designed
for easy function. After power is on , the monitor begins to work. In addition
to all the key function the monitor has a memory checking routine.
The following is a simple description of the key functions.
FUNCTION
KEY
DATA KEY
MON
RES
GO
STP
REG
DA
AD
system reset
STP
AD
GO
DA
Offset set.
REG
RES
- 4 -
monitor functions
Register Display.
MDA-8086 Manual
Or
Serial monitor!
Midas 2109-5964
Figure 1-2.
So as to use serial monitor, move jumper P1 which located on the PCB like
this.
P1
P1
KEYBOARD
KEYBOARD
Machine code
Serial monitor
RES
Whenever RES is pressed, the display becomes FIGURE 1-1 and user can
operate keyboard only in this situation.
MDA-8086 Manual
- 5 -
2. OPERATION INTRODUCTION
AD
EXAMPLE 1 )
KEY
AD
LCD
Seg.
0000
0set
1000
data
FF
Seg.
000F
0set
1000
data
FF
Seg.
00F0
0set
1000
data
FF
Seg.
0F00
0set
1000
data
FF
Seg.
F000
0set
1000
data
FF
- 6 -
MDA-8086 Manual
Seg.
F000
0set
1000
data
FF
segment offset
[The contents of memory F000:1000
( It may be different)]
Seg.
F000
0set
0000
data
FF
AD
AD
LCD
Seg.
0000
0set
1000
data
FF
Seg.
0001
0set
1000
data
FF
segment +1 increment
[The contents of memory 0001:1000
( It may be different)]
MDA-8086 Manual
- 7 -
2. OPERATION INTRODUCTION
Seg.
0002
0set
1000
data
FF
segment +1 increment
[The contents of memory
0002:1000( It may be different)]
Seg.
0001
0set
1000
data
FF
segment -1 increment
[The contents of memory
0001:1000 ( It may be different)]
AD ,
< ADDRESS
DATA>
01000
AB
01001
CD
01002
EF
01003
34
KEY
RES
AD
LCD
MDA-8086 Kit ! !
Midas 2109-5964
Seg.
0000
0set
1000
data
FF
segment offset
[The contents of memory 0000:1000]
DA
Seg.
0000
0set
1000
data
FF
segment offset
[The contents of memory 0000:1000
(It may be different)]
- 8 -
MDA-8086 Manual
Seg.
0000
0set
1000
data
AB
Seg.
0000
0set
1001
data
FF
Offset increment
Seg.
0000
0set
1001
data
CD
Seg.
0000
0set
1002
data
FF
Offset increment
Seg.
0000
0set
1002
data
EF
Seg.
0000
0set
1003
data
FF
Offset increment
Seg.
0000
0set
1003
data
34
Seg.
0000
0set
1004
data
FF
Offset increment
REG
KEY
LCD
AX=0000
CX=0000
RES
BX=0000
DX=0000
MDA-8086 Manual
- 9 -
3. EXAMPLE PROGRAM
SP=0540
SI=0000
BP=0000
DI=0000
DS=0000
SS=0000
ES=0000
CS=0000
IP=1000
FL=0000
=....................
DS=0000
SS=0000
ES=0000
CS=0000
SP=0540
SI=0000
BP=0000
DI=0000
3. EXAMPLE PROGRAM
STP
Single Step
ADDRESS
MACHINE CODE
MNEMONIC
1000
1003
1004
1007
100A
100C
B8
9E
05
15
04
80
8947
8864
88
D4 33
100F
1012
1015
1017
2D
1D
2C
80
6735
0080
45
DC 78
MOV
SAHF
ADD
ADC
ADD
ADC
;
101A
101C
101E
1020
1021
B0
FE
FE
98
F6
FF
C0
C8
- 10 -
0000
D8
SUB
SBB
;
MOV
INC
DEC
CBW
NEG
;
AX ,0
AX, 4789H
AX, 6488H
AL, 88H
AH, 33H
SUB
AX, 3567H
SBB
AX, 8000H
AL, 45H
AH, 78H
AL, FFH
AL
AL
AL
MDA-8086 Manual
3. EXAMPLE PROGRAM
1023
1025
1027
B0 F0
B3 11
F6 E3
1029
102C
102F
B8 00F0
BB 3412
F7 EB
1031
1034
1036
B8 F000
B3 10
F6 F3
1038
103B
103E
1041
BA
B8
BB
F7
1043
CC
MOV
MOV
MUL
;
AL, F0H
BL, 11H
BL
MOV
MOV
BX
IMUL
;
MOV
AX, 00F0H
BL, 10H
BL
MOV
DIV
;
FFFF
FFFF
0100
FB
AX, F000H
BX, 1234H
MOV
MOV
MOV
BX
IDIV
;
INT
DX, 1
AX, 1
BX, 1
It is valid only when the display is in current Flag form. Pressing "STP"
key causes the CPU to execute one instruction point according to the user's
PC. After execution, the monitor regains control and displays the new PC and
its contents. The user may examine and modify registers and memory
contents after each step.
KEY
LCD
RES
MDA-8086 Kit ! !
Midas 2109-5964
AD
Seg.
0000
0set
1000
data
B8
segment offset
[The contents of memory 0000:1000]
1) MOV AX, 0
(Next address)
STP
IP=1003
=. . . t . . . . . .
FL=0100
MDA-8086 Manual
- 11 -
3. EXAMPLE PROGRAM
Result verify
!
+
AX=0000
CX=0000
BX=0000
DX=0000
2) SHAF
(Next address)
STP
3) ADD AX, 4789H
STP
Result verify
IP=1004
=. . . t . . . . . .
FL=0100
(Next address)
IP=1007
=. . . t . . . . . .
FL=0100
!
+
AX=4789
CX=0000
BX=0000
DX=0000
(Next address)
IP=100A
FL=0994
=o . . t s . a p .
(overflag set, alternate carry set,
sign flag set, parity flag set)
Result verify
!
+
AX=AC11
CX=0000
BX=0000
DX=0000
(Next address)
STP
IP=100C
FL=0184
=o . . t s . . p .
(sign flag set, parity flag set)
Result verify
!
+
- 12 -
AX=AC99
CX=0000
BX=0000
DX=0000
(Next address)
IP=100F
=. . . t s . . . .
FL=0184
MDA-8086 Manual
3. EXAMPLE PROGRAM
Result verify
!
+
(Next address)
IP=1012
=. . . t s . . . .
FL=0180
AX=AA32
CX=0000
BX=0000
DX=0000
(Next address)
IP=1015
=. . . t . . . . .
FL=0100
AX=2A32
CX=0000
BX=0000
DX=0000
!
+
(Next address)
STP
IP=1017
FL=0195
=. . . t s . a p c
!
+
BX=0000
DX=0000
!
+
Result verify
AX=DF99
CX=0000
AX=2AED
CX=0000
BX=0000
DX=0000
(Next address)
IP=101A
=. . . t s . . p c
FL=0185
AX=B1ED
CX=0000
BX=0000
DX=0000
!
+
(Next address)
IP=101C
=. . . t s . . p c
MDA-8086 Manual
FL=0185
- 13 -
3. EXAMPLE PROGRAM
Result verify
!
+
12) INC AL
13) DEC AL
14) CBW
IP=1020
FL=0195
=. . . t s . a p c
AX=B1FF
CX=0000
BX=0000
DX=0000
(Next address)
STP
IP=1021
FL=0195
=. . . t s . a p c
!
+
15) NEG AL
AX=FFFF
CX=0000
BX=0000
DX=0000
(Next address)
STP
IP=1023
FL=0111
=. . . t . . a . c
!
+
- 14 -
BX=0000
DX=0000
!
+
Result verify
AX=B100
CX=0000
(Next address)
STP
Result verify
IP=101E
FL=0155
=. . . t . z a p c
!
+
Result verify
BX=0000
DX=0000
(Next address)
STP
Result verify
AX=B1FF
CX=0000
AX=FF01
CX=0000
BX=0000
DX=0000
(Next address)
IP=1025
=. . . t . . a . c
MDA-8086 Manual
FL=0111
3. EXAMPLE PROGRAM
Result verify
!
+
18) MUL BL
IP=1027
=. . . t . . a . c
FL=0111
AX=FFF0
CX=0000
BX=0011
DX=0000
IP=1029
=o. . t . . . p c
FL=0905
AX=0FF0
CX=0000
BX=0011
DX=0000
!
+
(Next address)
IP=102C
=o. . t . . . p c
FL=0905
AX=F000
CX=0000
BX=0011
DX=0000
!
+
(Next address)
(Next address)
STP
Result verify
BX=0000
DX=0000
!
+
Result verify
AX=FFF0
CX=0000
(Next address)
IP=102F
FL=0905
=o. . t . . . p c
!
+
21) IMUL BX
AX=F000
CX=0000
BX=1234
DX=0000
(Next address)
STP
IP=1031
FL=0985
=o. . t s . . p c
MDA-8086 Manual
- 15 -
3. EXAMPLE PROGRAM
Result verify
!
+
BX=1234
DX=FEDC
(Next address)
IP=1034
FL=0985
=o. . t s . . p c
!
+
AX=00F0
CX=0000
BX=1234
DX=FEDC
(Next address)
IP=1036
FL=0985
=o. . t s . . p c
!
+
24) DIV BL
AX=00F0
CX=0000
BX=1210
DX=FEDC
(Next address)
STP
Result verify
IP=1038
=.. . t . z . p c
FL=0145
AX=000F
CX=0000
BX=1210
DX=FEDC
!
+
(Next address)
STP
Result verify
IP=103B
FL=0145
=.. . t . z . p c
!
+
- 16 -
AX=C000
CX=0000
AX=000F
CX=0000
BX=1210
DX=FFFF
(Next address)
IP=103E
=.. . t . z . p c
MDA-8086 Manual
FL=0145
3. EXAMPLE PROGRAM
Result verify
AX=FFFF
CX=0000
+
27) MOV BX, 1
(Next address)
IP=1041
FL=0145
=. . . t . z . p c
STP
Result verify
AX=FFFF
CX=0000
+
28) IDIV BX
BX=0001
DX=FFFF
(Next address)
IP=1043
FL=0144
=. . . t . z . p .
STP
Result verify
BX=1210
DX=FFFF
AX=FFFF
CX=0000
MDA-8086 Manual
BX=0001
DX=0000
- 17 -
4. SERIAL MONITOR
4. Serial Monitor
Serial monitor is the basic monitor program to do data communicate between
MDA-8086 and computer.
P1
P1
KEYBOARD
KEYBOARD
Machine code
Serial monitor
- 18 -
MDA-8086 Manual
3. EXAMPLE PROGRAM
INSTALLING A: TO C:\8086
MIDAS Eng. 2005year
copy now..
Wait...
( Later the screen will be clear and following message will be appeared )
Install OK.
Following message will be displayed at destination drive.(In case of C: drive)
C:\8086>
Check total 10 files likes COMM.EXE, MASM.EXE, LOD186.EXE, Etc.
Serial Monitor !
Midas 2109-5964
MDA-8086 Manual
- 19 -
4. SERIAL MONITOR
: Return Key.
or
C:\8086>COMM
Later following message will be displayed.
- 20 -
MDA-8086 Manual
F1 Help
Terminal
F2 Cls
Options
Print Off
Terminal
Options
Print Off
<Line setting>
Serial port (1/2) : 2 ==> 2
Serial baud rate set
1200 = 1
2400 = 2
4800 = 3
9600 = 4
19.2k = 5
38.4k = 6
Baud rate select (1--6) : 4 ==> 4
Parity bit NP = 0
Po = 1 Pe = 2 : 0 ==> 0
Word size
7bit = 2
8bit = 3 : 3 ==> 3
Stop bit
1bit = 0
2bit = 1 : 0 ==> 0
Change OK (Y/N) ? y
F1 Help
F2 Cls
MDA-8086 Manual
- 21 -
4. SERIAL MONITOR
When on a power-up, following message will be displayed. This message
is displayed only when on a power-up, and does not displayed when
press RES key.
File
Terminal
Options
Print Off
F1 Help
F2 Cls
- 22 -
Carriage Return
MDA-8086 Manual
Offset
(Offset decrement)
(Escaping command)
Offset
."3DU...........
0000:1010 FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF
0000:1020 FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF
0000:1030 FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF
................
................
................
0000:1040 FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF
0000:1050 FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF
0000:1060 FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF
................
................
................
0000:1070 FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF
................
8086 >
Display the ASCII code to data
MDA-8086 Manual
- 23 -
4. SERIAL MONITOR
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
0000:1030 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:1040 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:1050 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
0000:1060 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
0000:1070 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
8086 >D
0000:1080 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
0000:1090 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:10A0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:10B0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
0000:10C0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:10D0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:10E0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
0000:10F0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
The M command is used to move blocks of memory from one area to another.
Segment
Length
Data
- 24 -
MDA-8086 Manual
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
0000:2050 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:2060 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:2070 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
8086 >D
0000:2080 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:2090 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:20A0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
0000:20B0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:20C0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:20D0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
0000:20E0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
0000:20F0 12 34 12 34 12 34 12 34 - 12 34 12 34 12 34 12 34
.4.4.4.4.4.4.4.4
.4.4.4.4.4.4.4.4
BX=0000
BP=0000
ES=0000
FL=0000
CX=0000
SI=0000
SS=0000
= . . . .
DX=0000
DI=0000
CS=0000
. . . . .
MDA-8086 Manual
- 25 -
4. SERIAL MONITOR
Resulting ?
8086 >R
AX=1234 BX=4567 CX=7788 DX=1111
SP=0540 BP=0000 SI=0000 DI=0000
DS=0000 ES=0000 SS=0000 CS=0000
IP=1000 FL=0000 = . . . . . . . . .
8086 >R IP
IP=1000
8086 >
The L command moves object data in hexa format from an external devices to
memory.
8086 >L
Down load start !!
:14100000B83412BB7856B90010BA00208BF08BFBBD0030BC08
:0910140000408EDA8ED18EC0CCB2
:00
OK Completed !!
8086 >
Set IP
8086 >R IP
IP=1000
- 26 -
MDA-8086 Manual
DX=1111
DI=0000
CS=0000
. . . .
Next address
8086 >T
AX=1234 BX=5678 CX=7788
SP=0540 BP=0000 SI=0000
DS=0000 ES=0000 SS=0000
IP=1006 FL=0100 = . . . t .
DX=1111
DI=0000
CS=0000
. . . .
8086 >T
AX=1234 BX=5678 CX=1000
SP=0540 BP=0000 SI=0000
DS=0000 ES=0000 SS=0000
IP=1009 FL=0100 = . . . t .
DX=1111
DI=0000
CS=0000
. . . .
Next address
8086 >T
AX=1234
SP=0540
DS=0000
IP=100C
BX=5678
BP=0000
ES=0000
FL=0100
CX=1000
SI=0000
SS=0000
= . . . t .
DX=2000
DI=0000
CS=0000
. . . .
8086 >
8086 >
MDA-8086 Manual
- 27 -
CODE
SEGMENT
Define the segment
ASSUME
CS:CODE, DS:CODE, ES:CODE, SS:CODE
;
SEG_D EQU
0000H ; Define the constant
; Start address
ORG
1000H
MOV
AX, SEG_D
MOV
DS, AX
MOV
ES, AX
;
MOV
BX, OFFSET DATA
MOV
AX, [BX]
MOV
CH, [BX+2]
MOV
CL, [ BX+3]
;
MOV
BP, BX
MOV
DX, DS:[BP+4]
;
MOV
SI, ES:[BP+6]
MOV
DI, [BP+8]
;
MOV
BX, WORD PTR DATA+10
INT
3
;
ORG
2000H
DATA DW
3412H
- 28 -
MDA-8086 Manual
CODE
DW
DW
DW
DW
DW
DW
;
ENDS
END
7856H
0CDABH
14F0H
5368H
0C4B1H
2010H
.
C:\8086>MASM
Microsoft (R) Macro Assembler Version 5.10
Copyright (C) Misrosoft Corp 1981, 1988. All right reserved.
Source filename [.ASM]:EX2
Object filename [C:EX2.OBJ]:
Source listing [NUL.LST]:EX2
Cross reference [NUL.CRF]:
47838 + 452253 Bytes symbol space free
0 Warning Errors
0 Severe Errors
C:\8086>
MDA-8086 Manual
- 29 -
[.OBJ]:EX2
[C:EX2.ABS]:
[C:NUL.MAP]:
**LOAD COMPLETE
C:\8086>
4
File
Terminal
Options
Print Off
F1 Help
- 30 -
F2 Cls
MDA-8086 Manual
File
Terminal
Options
Print Off
F1 Help
F2 Cls
Using T command
8086 >
Set IP
8086 >R IP
IP=1000
8086 >T MOV AX, SEG_D
AX=0000 BX=0000 CX=0000
SP=0540 BP=0000 SI=0000
DS=0000 ES=0000 SS=0000
IP=1003 FL=0100 = . . . t .
DX=0000
DI=0000
CS=0000
. . . .
Next address
MDA-8086 Manual
- 31 -
8086 >T
DI=0000
FL=0100 = . . . t . . . . .
AX=1234
DI=0000
FL=0100 = . . . t . . . . .
DI=0000
FL=0100 = . . . t . . . . .
DX=0000
DI=0000
FL=0100 = . . . t . . . . .
MOV BP, BX
SI=0000
DI=0000
FL=0100 = . . . t . . . . .
DI=0000
- 32 -
FL=0100 = . . . t . . . . .
MDA-8086 Manual
DX=ABCD
DI=0000
CS=0000
. . . .
DX=ABCD
DI=6853
CS=0000
. . . .
MDA-8086 Manual
- 33 -
- 34 -
MDA-8086 Manual
IP
CS
IP
CS
0
1
2
255
IP
CS
00000H
00002H
00004H
00006H
00008H
0000AH
003FEH
00400H
MDA-8086 Manual
- 35 -
; Save flags
; Move [SP] [BP]
; Clear TF
Note that in the above [BP+0] rather than [BP] is used since BP cannot be
used without displacement. Now, to set TF, the AND instruction in the above
should be replaced by OR [BP+0], 0100H.
Once TF is set to one, the 8086 automatically generates a TYPE 1 interrupt
after execution of each instruction. The user can write a service routine at the
interrupt address vector to display memory locations and/or register to debug a
program. Single step is nonmaskable and cannot be enabled by STI (enable
interrupt) or CLI (disable interrupt) instruction. The nonmaskable interrupt is
initiated via the 8086 NMI pin.
It is edge triggered (LOW to HIGH) and must be active for two clock cycles
to guarantee recognition. It is normally used for catastrophic failures such as
power failure. The 8086 obtains the interrupt vector address by automatically
executing the INT2(type 2) instruction internally.
Type 3 interrupt is used for breakpoint and is nonmaskable. The user inserts
the one-byte instruction INT3 into a program by replacing an instruction.
Breakpoints are useful for program debugging.
The INTERRUPT ON OVERFLOW is a type 4 interrupt. This interrupt occurs
if the overflow flag(OF) is set and the INT0 instruction is expected. The
overflow flag is affected, for example, after execution of signed arithmetic such
as MULS (signed multiplication) instruction. The user can execute the INTO
instruction after the MULS. If there is an overflow, an error service routine
written by the user at the type 4 interrupt address vector is executed.
- 36 -
MDA-8086 Manual
MNEMONIC
CODE
SEGMENT
CS:CODE,DS:CODE,ES:CODE,SS:CODE
1000
ASSUME
;
ORG
1000 B8 1234
1003 B3 00
1005 F6 F3
MOV
MOV
DIV
AX,1234H
BL,00H
BL
1007 90
1008 90
NOP
NOP
1009 CC
INT
100A
CODE
1000H
;
ENDS
END
MNEMONIC
CODE
SEGMENT
CS:CODE,DS:CODE,ES:CODE,SS:CODE
1000
ASSUME
;
ORG
1000 B8 1234
1003 BB 7234
1006 03 C3
MOV
MOV
ADD
AX,1234H
BX,7234H
AX,BX
1008 CE
1009 90
100A 90
INTO
NOP
NOP
100B CC
INT
;
ENDS
100C
CODE
1000H
END
MDA-8086 Manual
- 37 -
MNEMONIC
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
EQU
EQU
21H*4
0000H
1000
1000 B8 0000
;
ORG
MOV
1000H
AX,SEG_D
1003 8E D8
1005 BB 0084
1008 B8 101F R
MOV
DS,AX
MOV
BX,V_TAB
AX,OFFSET INT_SER
= 0084
= 0000
100B 89 07
100D 43
100E 43
V_TAB
SEG_D
MOV
MOV
;
INC
INC
;
MOV
BX
1014 B8 1234
MOV
;
MOV
1017 BB 6789
101A CD 21
101C 90
MOV
INT
NOP
BX,6789H
21H
100F BA 0000
1012 89 17
- 38 -
DX,0
AX,1234H
MDA-8086 Manual
NOP
INT
;
101F 03 C3
1021 CF
INT_SER: ADD
IRET
;
1022
CODE
3
AX,BX
ENDS
END
MDA-8086 Manual
- 39 -
7. 8253 INTERFACE
7. 8253 INTERFACE
The 8253 is programmable interval timer/counter specifically designed for use
with the Intel Micro-computer systems. Its function is that of a gernal purpose,
multi-timing element that can be treated as an array of I/O ports in the system
software.
The 8253 solves one of the most common problems in any microcomputer
system, the generation of accurate time delays under software control. Instead
of setting up timing loops in systems software, the programmer configures the
8253 to match his requirements, initialize one of the counters of the 8253 with
the desired quantity, then upon command the 8253 will count out the delay and
interrupt the CPU when it has completed its tasks. It is easy to see that the
software overhead is finial and that multiple delays can easily be maintained by
assignment of priority levels.
Other counter/timer functions that are non-delay in nature but also common
to most microcomputers can be implemented with the 8253.
- 40 -
MDA-8086 Manual
7. 8253 INTERFACE
The 8253 and MDA-8086 interface is shown in figure 7-1.
MNEMONIC
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
MDA-8086 Manual
- 41 -
7. 8253 INTERFACE
= 001F
= 001D
= 001B
PPIC_C
PPIC
PPIB
EQU
EQU
EQU
1FH
1DH
1BH
= 0019
PPIA
19H
= 000B
CTC1
EQU
;
EQU
= 000F
CTCC
0FH
= 0010
INTA
EQU
;
EQU
= 0012
INTA2
INTA+2
= 0100
INT_V
EQU
;
EQU
;
ORG
;
1000
0BH
10H
40H*4
1000H
1000 33 DB
1002 8E C3
XOR
MOV
;
BX,BX
ES,BX
1004 B8 1030 R
1007 BB 0100
100A 26: 89 07
MOV
MOV
MOV
AX,OFFSET INT_SER
BX,INT_V
WORD PTR ES:[BX],AX
100D 33 C0
100F 26: 89 47 02
;
XOR
MOV
AX,AX
WORD PTR ES:[BX+2],AX
1013 E8 1064 R
1016 E8 1054 R
;
CALL
CALL
INIT
P_INIT
1019 B0 80
101B E6 1F
;
MOV
OUT
AL,10000000B
PPIC_C,AL
101D B0 FF
101F E6 19
;
MOV
OUT
AL,11111111B
PPIA,AL
1021 B0 00
1023 E6 1D
;
MOV
OUT
AL,00000000B
PPIC,AL
1025 B4 F1
1027 8A C4
;
MOV
MOV
AH,11110001B
AL,AH
1029 E6 1B
102B FB
OUT
STI
102C 90
- 42 -
L2:
PPIB,AL
NOP
MDA-8086 Manual
7. 8253 INTERFACE
102D EB FD
JMP
;
INT
102F CC
L2
3
;
;
1030
INT_SER:
1030 D0 E4
1032 F6 C4 10
1035 75 06
SHL
TEST
JNZ
1037 80 CC F0
103A EB 03 90
OR
AH,11110000B
JMP
L3
; LED out
103D B4 F1
103F 8A C4
1041 E6 1B
MOV
MOV
OUT
AH,11110001B
AL,AH
PPIB,AL
1043 50
1044 B8 FFFF
;
PUSH
MOV
AX
AX,0FFFFH
1047 E6 0B
1049 8A C4
104B E6 0B
OUT
MOV
OUT
CTC1,AL
AL,AH
CTC1,AL
104D 58
104E B0 20
POP
AX
; EOI command
MOV
AL,00100000B
1050 E6 10
1052 FB
1053 CF
OUT
STI
IRET
1054
1054 50
L1:
L3:
AH,1
AH,00010000B
L1
;
P_INIT PROC
PUSH
INTA,AL
NEAR
AX
1055 B0 70
1057 E6 0F
MOV
OUT
;
AL,01110000B
CTCC,AL
1059 B8 FFFF
105C E6 0B
105E 8A C4
MOV
OUT
MOV
AX,0FFFFH
CTC1,AL
AL,AH
1060 E6 0B
1062 58
1063 C3
OUT
POP
RET
CTC1,AL
AX
1064
P_INIT
1064
INIT
ENDP
;
PROC
NEAR
; ICW1
MDA-8086 Manual
- 43 -
7. 8253 INTERFACE
1064 B0 13
1066 E6 10
MOV
AL,00010011B
OUT
INTA,AL
;ICW2 interrupt vector
1068 B0 40
106A E6 12
MOV
OUT
;ICW4
106C B0 01
106E E6 12
MOV
AL,00000001B
OUT
INTA2,AL
;interrupt mask
1070 B0 FE
MOV
AL,11111110B
1072 E6 12
OUT
INTA2,AL
1074 C3
1075
INIT
1075
CODE
- 44 -
AL,40H
INTA2,AL
RET
ENDP
;
ENDS
END
MDA-8086 Manual
PART II :
MDA-8086 EXPERIMENTS
(SOFTWARE/HARDWARE)
TABLE OF CONTENTS
Experiment 1. 8255A Interface 49
1-1. LED & 7-Segment 49
EXPERIMENT 9. C LANGUAGE 99
9-1. LED.C 99
9-2. FND.C 100
9-3. MATRIX.C 102
9-4. DAC.C 103
9-5. ADC.C 104
9-6. LCD.C 106
9-7. D8251A.C 108
9-8. D8253.C 110
9-9. I8259.C 112
9-10. STEPMO.C 114
MDA-8086 Manual
- 49 -
MNEMONIC
0000
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
= 001F
= 001D
= 001B
PPIC_C
PPIC
PPIB
EQU
EQU
EQU
1FH
1DH
1BH
= 0019
PPIA
EQU
;
ORG
19H
1000
1000H
1000 B0 80
1002 E6 1F
MOV
OUT
;
AL,10000000B
PPIC_C,AL
1004 B0 FF
1006 E6 19
MOV
OUT
;
AL,11111111B
PPIA,AL
1008 B0 00
100A E6 1D
MOV
OUT
;
AL,00000000B
PPIC,AL
MOV
OUT
CALL
AL,11110001B
PPIB,AL
TIMER
1013 D0 E0
1015 A8 10
1017 75 F3
SHL
TEST
JNZ
AL,1
AL,00010000B
L1
1019 0C F0
101B EB F1
OR
JMP
;
AL,11110000B
L2
101D CC
INT
;
MOV
100C B0 F1
100E E6 1B
1010 E8 101E R
L1:
L2:
101E B9 0001
TIMER:
1021 51
1022 B9 0000
1025 90
TIMER2: PUSH
MOV
TIMER1: NOP
1026 90
1027 90
1028 90
NOP
NOP
NOP
1029 E2 FA
LOOP
- 50 -
CX,1
CX
CX,0
TIMER1
MDA-8086 Manual
POP
LOOP
RET
102F
;
ENDS
END
CODE
MDA-8086 Manual
CX
TIMER2
- 51 -
- 52 -
MDA-8086 Manual
MDA-8086 Manual
- 53 -
=
=
=
=
001E
001C
001A
0018
1000
1000 BC 0540
1003 B0 80
1005 E6 1E
1007 B0 FF
1009 E6 18
- 54 -
CODE
PPIC_C
PPIC
PPIB
PPIA
MNEMONIC
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
EQU
1EH ; control register
EQU
1CH
EQU
1AH
EQU
18H
;
ORG
1000H
MOV
sp,0540H
MOV
AL,10000000B
OUT
PPIC_C,AL
;
MOV
AL,11111111B
OUT
PPIA,AL
MDA-8086 Manual
100B B0 00
100D E6 1A
100F
1011
1013
1016
1017
1019
101B
B0
E6
E8
F8
D0
73
EB
01
1C
101E R
C0
F6
F2
101D CC
101E
1021
1022
1023
1024
1025
1027
1028
B9 FFFF
90
90
90
90
E2 FA
C3
;
MOV
OUT
;
L1:
MOV
L2:
OUT
CALL
CLC
ROL
JNC
JMP
;
INT
;
TIMER: MOV
TIMER1: NOP
NOP
NOP
NOP
LOOP
RET
;
CODE
ENDS
END
AL,00000000B
PPIB,AL
AL,00000001B
PPIC,AL
TIMER
AL,1
L2
L1
3
CX,0FFFFH
TIMER1
MDA-8086 Manual
- 55 -
MNEMONIC
CODE
SEGMENT
CS:CODE,DS:CODE,ES:CODE,SS:CODE
= 0017
SPK
ASSUME
;
EQU
= 000C
PER
EQU
;
ORG
0CH
1000H
L1:
L2:
MOV
MOV
SI,OFFSET FREQ_TAB
DH,BYTE PTR CS:[SI]
1006 FE C6
INC
DH
1008 74 F6
100A FE CE
JZ
DEC
;
L1
DH
100C B2 0C
DL,PER
100E B0 FF
MOV
;
MOV
1010 E6 17
1012 8A CE
L3:
;
OUT
MOV
1014 81 E1 00FF
1018 E2 FE
101A 34 01
AND
1000
1000 BE 1023 R
1003 2E: 8A 34
17H
AL,0FFH
SPK,AL
CL,DH
CX,00FFH
LOOP
$
XOR
AL,01H
101C FE CA
101E 75 F0
1020 46
DEC
JNZ
INC
DL
L3
SI
1021 EB E0
JMP
;
FREQ_TAB:
L2
1023
;0EH
1023 25
1024 27
1025 29
DB
DB
DB
25H
27H
29H
;85H
;7EH
;77H
1026 2C
1027 2E
1028 31
DB
DB
DB
2CH
2EH
31H
;70H
;6AH
;64H
1029 34
102A 37
102B 3B
DB
DB
DB
34H
37H
3BH
;5EH
;59H
;54H
- 56 -
MDA-8086 Manual
DB
DB
DB
3EH
42H
46H
;4FH
;4AH
;46H
102F 4A
1030 4F
1031 54
DB
DB
DB
4AH
4FH
54H
;42H
;3EH
;3BH
1032 59
1033 5E
1034 64
DB
DB
DB
59H
5EH
64H
;37H
;34H
;31H
1035 6A
1036 70
1037 77
DB
DB
DB
6AH
70H
77H
;2EH
;2CH
;29H
1038 7E
1039 85
103A FF
DB
DB
DB
7EH
85H
0FFH
;27H
;25H
103B
;
;
ENDS
CODE
END
MDA-8086 Manual
- 57 -
- 58 -
MDA-8086 Manual
MNEMONIC
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
EQU
EQU
= 0008
= 000A
SIO_D
SIO_C
= 004E
= 0027
SIO_MODE
SIO_COMMAND
EQU
EQU
;
4EH
27H
= 0009
PCT
EQU
09H
MDA-8086 Manual
08H
0AH
- 59 -
PCTCTL
EQU
;
EQU
= 0540
STACK
540H
1000
1000 33 C0
;
ORG
XOR
1000H
AX,AX
1002 8E D0
1004 BC 0540
1007 E8 1019 R
MOV
MOV
CALL
SS,AX
SP,STACK
I8253
100A E8 1027 R
CALL
;
CALL
I8251
MOV
CALL
MOV
AH,AL
OUT8251
AL,AH
JMP
MOV
OUT
ECHO
AL,36H
PCTCTL,AL
101D B8 0010
1020 E6 09
1022 8A C4
MOV
OUT
MOV
AX,16
PCT,AL
AL,AH
1024 E6 09
1026 C3
1027 B0 40
PCT,AL
I8251:
OUT
RET
MOV
DEL1:
OUT
MOV
LOOP
SIO_C,AL
CX,10
DEL1
DEL3:
;
MOV
MOV
AH,3
AL,0
DEL2:
OUT
MOV
LOOP
SIO_C,AL
CX,10
DEL2
103B FE CC
103D 75 F3
DEC
JNZ
;
AH
DEL3
103F B0 40
1041 E6 0A
1043 B9 000A
MOV
OUT
MOV
AL,40H
SIO_C,AL
CX,10
DEL5
1048 B0 4E
LOOP
;
MOV
AL,SIO_MODE
104A E6 0A
OUT
SIO_C,AL
100D E8 1066 R
ECHO:
1010 8A E0
1012 E8 105B R
1015 8A C4
1017 EB F4
1019 B0 36
101B E6 0F
1029 E6 0A
102B B9 000A
102E E2 FE
1030 B4 03
1032 B0 00
1034 E6 0A
1036 B9 000A
1039 E2 FE
1046 E2 FE
- 60 -
I8253:
DEL5:
0FH
IN8251
AL,40H
MDA-8086 Manual
MOV
LOOP
;
CX,10
DEL6
1051 B0 27
command to 8251
1053 E6 0A
MOV
AL,SIO_COMMAND
OUT
SIO_C,AL
1055 B9 000A
1058 E2 FE
DEL7:
MOV
LOOP
;
CX,10
DEL7
OUT8251:
RET
IN
AND
AL,SIO_C
AL,01H
JZ
MOV
OUT
OUT8251
AL,AH
SIO_D,AL
RET
IN
AND
AL,SIO_C
AL,02H
106A 74 FA
106C E4 08
106E 24 7F
JZ
IN
AND
IN8251
AL,SIO_D
AL,7FH
1070 C3
RET
;
ENDS
105A C3
105B E4 0A
105D 24 01
DEL6:
105F 74 FA
1061 8A C4
1063 E6 08
1065 C3
1066 E4 0A
1068 24 02
1071
IN8251:
CODE
END
MDA-8086 Manual
- 61 -
1) PHYSICAL DATA
Module size
Min. view area
Character construction
Character size
Character Pitch
Dot size
2) Pin Connections
Pin NO.
1
2
3
- 62 -
Symbol
Vss
Vdd
VL
Level
-
RS
H/L
R/W
H/L
6
7
8
9
10
11
12
13
14
E
D0
D1
D2
D3
D4
D5
D6
D7
Function
H. HL
H/L
H/L
H/L
H/L
H/L
H/L
H/L
H/L
0V
5V
Power supply
H : Data input
L : Instruction input
H : Data read
L : Data write
Enable signal
MDA-8086 Manual
4-1. LCD
3) INSTRUCTION
Execution
CODE
Instruction
Clear display
Return
Home
Entry
Mode set
Display
ON/OFF
Description
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
0 0
0 0 0 0 0 0 0 1 Clears entire display
Returns display being
0
Display Shift
Function Set
Set CGRAM
Set DD
RAM Addr.
Read Busy
Flag & Addr
Write Data
CG or DD
Read Data
from CG
or DD RAM
Remark
1.64
40
D : Display ON/OFF
0
S /R /
*
C L
1 DL N F *
ACG
BF
Control
Cursor or
* shifted to original
position
time(max)
fosc is
250 KHz
1.64
ADD
AC
Write data
Read data
B C : Cursor ON/OFF
B : Cursor Blink/Not
*
Shifts display
* Refer to Remark
Sets CG RAM Addr.
Sets DD RAM
Address
BF : Busy flag
Reads AC contents.
Writes data into DD
RAM or CG RAM
Reads data from DD
RAM or CG RAM
40
40
40
40
40
40
40
40
RAM
ACG : CG RAM address
ADD : DD RAM address
N = 1 : 2 lines
0 : 1 lines
F = 1 : 510dots 0 : 57dots
BF = 1: Internally operating
Corresponds to cursor
address
AC : Address counter used
MDA-8086 Manual
- 63 -
RS = 0, WRITE 38H
*1
( Execution time : 40 )
RS = 0, WRITE 0EH
( Execution time : 40 )
RS = 0, WRITE 08H
( Execution time : 40 )
RS = 0, WRITE 02H
RS = 0, WRITE 01H
RS = 0, WRITE ADDR.
*2
( Execution time : 40 )
RS = 1, WRITE DATA
*3
( Execution time : 40 )
- 64 -
MDA-8086 Manual
4-1. LCD
5) CHARACTER FONT TABLE
NOTE
MDA-8086 Manual
- 65 -
MNEMONIC
0000
CODE
= 0540
STACK
;
EQU
;
0540H
= 0000
= 0002
= 0004
LCDC
LCDC_S
LCDD
EQU
EQU
EQU
00H
02H
04H
;
ORG
1000H
1000
- 66 -
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
MDA-8086 Manual
1000 33 C0
1002 8E D0
1004 BC 0540
AX,AX
SS,AX
1007 E8 1031 R
MOV
;
CALL
100A E8 1036 R
100D E8 103B R
;
CALL
CALL
ENTMODE
CUSOR1
MOV
CALL
JMP
SI,OFFSET DATA
STRING
L1
;
DB
L1:
1010 BE 1018 R
1013 E8 1054 R
1016 EB F5
1018 38 30 38 36 20 54
72 61 69 6E 69 6E
DATA
SP,STACK
ALLCLR
67 20 4B 69 74 20
47 6F 6F 64 20 21
00
1031 B4 01
;
; LCD instruction
ALLCLR: MOV
AH,01H
1033 EB 08 90
1036
JMP
;
ENTMODE:
1036 B4 07
1038 EB 03 90
103B B4 90
103D E8 1045 R
MOV
JMP
;
CUSOR1: MOV
;
LNXX:
CALL
1040 8A C4
1042 E6 00
1044 C3
1045 E4 02
1047 24 80
LNXX
MOV
OUT
RET
BUSY:
1049 75 FA
104B C3
AH,00000111B
LNXX
AH,90H
BUSY
AL,AH
LCDC,AL
BUSY
CHAROUT:
CALL
MDA-8086 Manual
BUSY
- 67 -
104F 8A C4
1051 E6 04
1053 C3
1054 2E: 8A 24
RET
;
STRING: MOV
AL,AH
LCDD,AL
1057 80 FC 00
105A 74 0C
CMP
JE
; out
AH,00H
STRING1
105C E8 1045 R
105F E8 104C R
1062 46
CALL
CALL
INC
BUSY
CHAROUT
SI
1063 E8 1069 R
1066 EB EC
1068
CALL
JMP
TIMER
STRING
STRING1:
1068 C3
RET
1069 B9 0001
;
TIMER:
106C 51
106D B9 0000
1070 90
TIMER2: PUSH
MOV
TIMER1: NOP
MOV
1071 90
1072 90
1073 90
NOP
NOP
NOP
1074 E2 FA
1076 59
1077 E2 F3
LOOP
POP
LOOP
1079 C3
RET
;
ENDS
107A
CODE
CX,1
CX
CX,0
TIMER1
CX
TIMER2
END
- 68 -
MDA-8086 Manual
0
00
8
08
:
10
1
01
9
09
STP
11
2
02
A
0A
GO
12
3
03
B
0B
REG
13
4
04
C
0C
14
5
05
D
0D
15
6
06
E
0E
DA
16
7
07
F
0F
AD
17
AL ( )
Flag port
NO
Flag ON?
YES
AL ( )
Keyboard
END
MDA-8086 Manual
- 69 -
IN
TEST
JNZ
AL,KEY
AL,10000000B
SCAN
- 70 -
MDA-8086 Manual
AL,00011111B
BX,0
DS,BX
MOV
BYTE PTR K_BUF,AL
; KEY CLEAR
OUT
KEY,AL
; SPEAKER AND LED ON?
CALL
TONE
RET
TONE:
TONE2:
TONE1:
;
PUSH
PUSH
CX
AX
;
MOV
MOV
AH,50
AL,1
MOV
OUT
LOOP
CX,200
SPK,AL
TONE1
XOR
DEC
JNZ
AL,1
AH
TONE2
;
XOR
OUT
AL,AL
SPK,AL
;
POP
POP
AX
CX
RET
MDA-8086 Manual
- 71 -
- 72 -
MDA-8086 Manual
MDA-8086 Manual
- 73 -
- 74 -
MDA-8086 Manual
P8
P6
; FILENAME : DAC.ASM
; PROCESSOR : I8086
< Sample Program 6-1. Level meter control >
ADDRESS MACHINE CODE
MNEMONIC
0000
CODE
= 001F
= 001D
PPIC_C
PPIC
= 001B
= 0019
PPIB
PPIA
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
EQU
EQU
1FH
1DH
EQU
EQU
;
1BH
19H
1000
1000 B0 80
1002 E6 1F
ORG
MOV
OUT
1000H
AL,10000000B
PPIC_C,AL
1004 B0 FF
1006 E6 19
;
MOV
OUT
AL,11111111B
PPIA,AL
1008 B0 F0
100A E6 1B
MOV
OUT
;
AL,11110000B
PPIB,AL
MOV
OUT
CALL
AL,00000000B
PPIC,AL
TIMER
1013 FE C0
1015 3C 64
1017 75 F5
INC
CMP
JNE
AL
AL,64H
L1
1019 EB F1
JMP
;
INT
L2
100C B0 00
100E E6 1D
1010 E8 101C R
101B CC
L2:
L1:
MDA-8086 Manual
- 75 -
101C B9 0001
101F 51
;
TIMER: MOV
TIMER2: PUSH
1020 B9 0000
1023 90
1024 90
MOV
TIMER1: NOP
NOP
1025 90
1026 90
1027 E2 FA
NOP
NOP
LOOP
1029 59
102A E2 F3
102C C3
POP
LOOP
RET
102D
- 76 -
CODE
CX,1
CX
CX,0
TIMER1
CX
TIMER2
;
ENDS
END
MDA-8086 Manual
MDA-8086 Manual
- 77 -
- 78 -
MDA-8086 Manual
DIP2
Move to jumper, like following;
P6
Turn volume resister(VR2)
Execute to following program.
MDA-8086 Manual
- 79 -
MNEMONIC
0000
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
= 0018
= 0000
= 0002
AD_C
LCDC
LCDC_S
EQU
EQU
EQU
18H
00H
02H
= 0004
LCDD
EQU
;
04H
1000
ORG
1000H
1000 E8 10DA R
1003 BE 10CD R
1006 E8 10F8 R
CALL
MOV
CALL
ALLCLR
SI,OFFSET DATA
STRING
;
XOR
OUT
AL,AL
AD_C,AL
100D E8 113A R
1010 E4 18
;
CALL
IN
TIMER
AL,AD_C
1012 E8 1052 R
1015 E8 101A R
1018 EB EF
CALL
CALL
JMP
CON_VOLT
DISP_V
L2
101A B4 C4
101C E8 10E1 R
;
DISP_V: MOV
CALL
1009 32 C0
100B E6 18
L2:
AH,0C0H+4
LNXX
101F 8A E6
1021 80 E4 F0
;
MOV
AND
AH,DH
AH,0F0H
1024 B1 04
1026 D2 EC
1028 E8 111B R
MOV
SHR
CALL
CL,4
AH,CL
H_A1
102B B4 2E
102D E8 10F0 R
;
MOV
CALL
AH,'.'
CHAROUT
1030 8A E6
1032 80 E4 0F
;
MOV
AND
AH,DH
AH,0FH
- 80 -
MDA-8086 Manual
CALL
;
MOV
CALL
;
MOV
CALL
;
MOV
CALL
;
MOV
CALL
;
MOV
CALL
RET
;
CON_VOLT:
PUSH
AND
MOV
;
MOV
H_A1
AH,DL
H_A
AH,' '
CHAROUT
AH,'['
CHAROUT
AH,'V'
CHAROUT
AH,']'
CHAROUT
AX
AX,00F0H
DI,OFFSET H_TAB
CL,4
AL,CL
105D 02 C0
SHR
;
ADD
105F 80 D4 00
1062 03 F8
1064 2E: 8A 35
ADC
ADD
MOV
AH,0
DI,AX
DH,BYTE PTR CS:[DI]
1067 47
1068 2E: 8A 15
INC
MOV
;
DI
DL,BYTE PTR CS:[DI]
106B 58
106C 25 000F
106F BF 108D R
POP
AND
MOV
AX
AX,000FH
DI,OFFSET L_TAB
1072 02 C0
1074 80 D4 00
;
ADD
ADC
AL,AL
AH,0
1077 03 F8
1079 2E: 8A 25
107C 47
ADD
MOV
INC
DI,AX
AH,BYTE PTR CS:[DI]
DI
107D 2E: 8A 05
MOV
MDA-8086 Manual
AL,AL
- 81 -
1080 02 C2
1082 27
1083 8A D0
AL,DL
DL,AL
1085 8A C4
MOV
;
MOV
1087 02 C6
1089 27
108A 8A F0
ADD
DAA
MOV
AL,DH
108C C3
RET
;
DB
00H,00H
108F 00 20
1091 00 40
1093 00 60
DB
DB
DB
0,20H
0,40H
0,60H
1095 00 80
1097 01 00
1099 01 20
DB
DB
DB
0,80H
01H,00H
01H,20H
109B 01 40
109D 01 60
109F 01 80
DB
DB
DB
01H,40H
01H,60H
01H,80H
10A1 02 00
10A3 02 20
10A5 02 40
DB
DB
DB
02H,00H
02H,20H
02H,40H
10A7 02 60
10A9 02 80
10AB 03 00
DB
DB
DB
02H,60H
02H,80H
03H,00H
10AD 00 00
10AF 03 20
;
DB
DB
0,0
03H,20H ;0.320V
10B1 06 40
10B3 09 60
10B5 12 80
DB
DB
DB
06H,40H
09H,60H
12H,80H
10B7 16 00
10B9 19 20
10BB 22 40
DB
DB
DB
16H,00H
19H,20H
22H,40H
10BD 25 60
10BF 28 80
10C1 32 00
DB
DB
DB
25H,60H
28H,80H
32H,00H
10C3 35 20
10C5 38 40
10C7 41 60
DB
DB
DB
35H,20H
38H,40H
41H,60H
10C9 44 80
DB
44H,80H
108D 00 00
- 82 -
L_TAB:
H_TAB:
AL,AH
DH,AL
MDA-8086 Manual
DB
;
DB
DATA:
48H,00H
; 4.8V
20 4D 65 74 65 72
00
;
10DA B4 01
10DC EB 03 90
ALLCLR: MOV
JMP
;
AH,01H
LNXX
10DF B4 C0
10E1 E8 10E9 R
10E4 8A C4
LN21:
LNXX:
MOV
CALL
MOV
AH,0C0H
BUSY
AL,AH
OUT
RET
;
LCDC,AL
IN
AND
JNZ
AL,LCDC_S
AL,10000000B
BUSY
10E6 E6 00
10E8 C3
10E9 E4 02
10EB 24 80
10ED 75 FA
BUSY:
10EF C3
10F0
RET
;
CHAROUT:
10F0 E8 10E9 R
CALL
;
MOV
10F3 8A C4
10F5 E6 04
10F7 C3
10F8 2E: 8A 24
10FB 80 FC 00
10FE 74 09
OUT
RET
;
STRING: MOV
CMP
JE
1100 E8 10E9 R
1103 E8 10F0 R
1106 46
1107 EB EF
1109
AL,AH
LCDD,AL
;
CALL
CALL
BUSY
CHAROUT
INC
JMP
SI
STRING
STRING1:
1109 C3
110A
BUSY
H_A
RET
;
PROC
NEAR
110A 50
110B D0 CC
110D D0 CC
PUSH
ROR
ROR
AX
AH,1
AH,1
110F D0 CC
ROR
AH,1
MDA-8086 Manual
- 83 -
ROR
CALL
POP
AH,1
H_A1
AX
1117 E8 111B R
111A C3
111B
CALL
RET
ENDP
H_A1
111B
111B 53
H_A
;
PROC
PUSH
H_A1
NEAR
BX
111C BB 1130 R
111F 80 E4 0F
1122 02 DC
MOV
AND
ADD
BX,OFFSET ASCTBL
AH,0FH
BL,AH
1124 73 02
1126 FE C7
1128 2E: 8A 27
JNC
INC
MOV
H_A2
BH
AH,CS:[BX]
CALL
POP
RET
CHAROUT
BX
H_A2:
112B E8 10F0 R
112E 5B
112F C3
1130 30 31 32 33 34 35
36 37 38 39
ASCTBL
;
DB
113A
H_A1
ENDP
113A B9 0000
TIMER:
MOV
113D 90
113E 90
113F 90
TIMER1: NOP
NOP
NOP
1140 90
1141 E2 FA
1143 C3
1144
- 84 -
NOP
LOOP
RET
CODE
'0123456789'
CX,0
TIMER1
;
ENDS
END
MDA-8086 Manual
into
PM
High
High
High
Fair
High
Good
1.8
15
30
VR
Low
Low
High
Low
Low
Poor
7.5
15
30
MDA-8086 Manual
Hybrid
High
Low
Low
High
Low
Poor
0.18
0.45
- 85 -
- 86 -
MDA-8086 Manual
STEP
1
2
3
4
5
6
7
8
A_
B_
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
STEP
1
2
3
4
5
6
7
8
A_
B_
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
STEP
1
2
3
4
5
6
7
8
A_
B_
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
CCV CV
MDA-8086 Manual
- 87 -
- 88 -
MDA-8086 Manual
MNEMONIC
CODE
SEGMENT
ASSUME
;
;
CS:CODE,DS:CODE,ES:CODE,SS:CODE
= 0001
KEY
EQU
01H
= 0000
= 0002
LCDC
LCDC_S
EQU
EQU
00H
02H
= 0004
LCDD
EQU
;
;
04H
= 001F
= 001D
= 001B
PPIC_C
PPIC
PPIB
EQU
EQU
EQU
1FH
1DH
1BH
= 0019
PPIA
19H
= 000B
CTC1
EQU
;
EQU
= 000F
CTCC
0FH
= 0010
INTA
EQU
;
EQU
= 0012
INTA2
INTA+2
= 0100
INT_V
EQU
;
EQU
0BH
10H
40H*4
1000
;
ORG
;
1000H
1000 33 DB
1002 8E C3
1004 8E DB
XOR
MOV
MOV
BX,BX
ES,BX
DS,BX
1006 B8 11E7 R
1009 BB 0100
;
MOV
MOV
AX,OFFSET INT_SER
BX,INT_V
100C 26: 89 07
MOV
MDA-8086 Manual
- 89 -
100F 33 C0
1011 26: 89 47 02
;
XOR
MOV
AX,AX
WORD PTR ES:[BX+2],AX
1015 E8 125B R
1018 E8 124B R
;
CALL
CALL
INIT
P_INIT
101B B0 80
101D E6 1F
;
MOV
OUT
AL,10000000B
PPIC_C,AL
101F B0 FF
1021 E6 19
;
MOV
OUT
AL,11111111B
PPIA,AL
1023 B0 00
1025 E6 1D
MOV
OUT
;
AL,00000000B
PPIC,AL
1027 E8 126C R
CALL
;
;
ALLCLR
102A BE 11C5 R
102D E8 128A R
MOV
CALL
;
SI,OFFSET DATA
STRING
1030 E8 1271 R
1033 BE 11D6 R
1036 E8 128A R
CALL
MOV
CALL
LN21
SI,OFFSET DATA1
STRING
1039 BB 0000
103C 89 1E 12B4 R
; CLEAR
MOV
MOV
BX,0
WORD PTR SPD_BUF,BX
1040 88 1E 12B1 R
1044 88 1E 12B2 R
1048 E6 01
104A FB
104B E8 129C R
MAIN:
MOV
MOV
;
OUT
STI
CALL
KEY,AL
SCAN
104E FA
104F A0 12B0 R
CLI
MOV
;
1052 3C 00
1054 75 03
1056 E9 1122 R
CMP
JNE
JMP
AL,0
MAIN1
L_45
;
CMP
JE
AL,1
R_45
1059 3C 01
105B 74 23
MAIN1:
- 90 -
MDA-8086 Manual
MAIN2:
CMP
JNE
JMP
AL,2
MAIN3
L_90
MAIN3:
;
CMP
JE
AL,3
R_90
MAIN4:
;
CMP
JNE
AL,4
MAIN5
106C E9 1174 R
106F 3C 05
L_180
MAIN5:
JMP
;
CMP
R_180
MAIN6:
JE
;
CMP
JNE
JMP
;
MAIN7
L_REV
CMP
JE
JMP
AL,7
R_REV
MAIN
1071 74 5D
1073 3C 06
1075 75 03
1077 E9 119D R
107A 3C 07
107C 74 7B
107E EB C8
1080 FA
MAIN7:
R_45:
AL,5
AL,6
;
;
CLI
1081 B0 19
1083 A2 12B1 R
1086 32 C0
MOV
MOV
XOR
AL,25
BYTE PTR P_CONT,AL
AL,AL
1088 A2 12B3 R
108B E8 1271 R
MOV
;
CALL
108E BE 1097 R
1091 E8 128A R
1094 FB
MOV
CALL
STI
SI,OFFSET R_45D
STRING
1095 EB B1
JMP
;
DB
MAIN
1097 52 69 67 68 74 20
R_45D:
LN21
'Right 45 degree!',00H
34 35 20 64 65 67
72 65 65 21 00
;
10A8 FA
10A9 B0 32
10AB A2 12B1 R
10AE 32 C0
R_90:
CLI
MOV
MOV
XOR
MDA-8086 Manual
AL,50
BYTE PTR P_CONT,AL
AL,AL
- 91 -
10B3 E8 1271 R
MOV
;
CALL
10B6 BE 10BF R
10B9 E8 128A R
10BC FB
MOV
CALL
STI
SI,OFFSET R_90D
STRING
10BD EB 89
JMP
;
DB
MAIN
10BF 52 69 67 68 74 20
R_90D:
LN21
'Right 90 degree!',00H
39 30 20 64 65 67
72 65 65 21 00
;
10D0 FA
10D1 B0 64
10D3 A2 12B1 R
R_180:
CLI
MOV
MOV
AL,100
BYTE PTR P_CONT,AL
10D6 32 C0
10D8 A2 12B3 R
XOR
MOV
;
AL,AL
BYTE PTR LR_FLAG,AL
10DB E8 1271 R
10DE BE 10E8 R
10E1 E8 128A R
CALL
MOV
CALL
LN21
SI,OFFSET R_180D
STRING
10E4 FB
10E5 E9 1048 R
STI
JMP
;
MAIN
10E8 52 69 67 68 74 20
31 38 30 20 64 65
67 72 65 65 00
R_180D: DB
10F9 FA
10FA B0 FF
R_REV:
CLI
MOV
AL,0FFH
10FC A2 12B1 R
10FF 32 C0
1101 A2 12B3 R
MOV
XOR
MOV
1104 E8 1271 R
;
CALL
;
LN21
1107 BE 1111 R
110A E8 128A R
110D FB
MOV
CALL
STI
SI,OFFSET R_MSG
STRING
110E E9 1048 R
JMP
;
DB
MAIN
1111 52 69 67 68 74 20
R_MSG:
'Right Revolution',00H
52 65 76 6F 6C 75
- 92 -
MDA-8086 Manual
L_45:
CLI
MOV
MOV
AL,25
BYTE PTR P_CONT,AL
1128 B0 01
112A A2 12B3 R
MOV
MOV
;
AL,1
BYTE PTR LR_FLAG,AL
112D E8 1271 R
1130 BE 113A R
1133 E8 128A R
CALL
MOV
CALL
LN21
SI,OFFSET L_45D
STRING
1136 FB
1137 E9 1048 R
STI
JMP
;
MAIN
DB
113A 4C 65 66 74 20 34
35 20 64 65 67 72
65 65 20 21 00
L_45D:
114B FA
114C B0 32
L_90:
;
CLI
MOV
AL,50
114E A2 12B1 R
1151 B0 01
1153 A2 12B3 R
MOV
MOV
MOV
1156 E8 1271 R
1159 BE 1163 R
;
CALL
MOV
LN21
SI,OFFSET L_90D
115C E8 128A R
115F FB
1160 E9 1048 R
CALL
STI
JMP
MAIN
L_90D:
;
DB
L_180:
;
CLI
1163 4C 65 66 74 20 39
30 20 64 65 67 72
STRING
65 65 20 21 00
1174 FA
1175 B0 64
1177 A2 12B1 R
117A B0 01
MOV
MOV
MOV
AL,100
BYTE PTR P_CONT,AL
AL,1
117C A2 12B3 R
117F E8 1271 R
MOV
;
CALL
1182 BE 118C R
MOV
SI,OFFSET L_180D
MDA-8086 Manual
LN21
- 93 -
CALL
STI
JMP
;
L_180D: DB
STRING
MAIN
'Left 180 degree!',00H
72 65 65 21 00
119D FA
L_REV:
;
CLI
119E B0 FF
11A0 A2 12B1 R
11A3 B0 01
MOV
MOV
MOV
AL,0FFH
BYTE PTR P_CONT,AL
AL,1
11A5 A2 12B3 R
11A8 E8 1271 R
MOV
;
CALL
11AB BE 11B5 R
11AE E8 128A R
;
MOV
CALL
11B1 FB
11B2 E9 1048 R
11B5 4C 65 66 74 20 52
65 76 6F 6C 75 74
69 6F 6E 00
11C5 53 74 65 70 70 69
6E 67 20 43 6F 6E
74 72 6F 6C 00
11D6 50 72 65 73 73 20
30 20 2D 20 37 20
LN21
SI,OFFSET L_MSG
STRING
STI
JMP
;
MAIN
L_MSG:
DB
'Left Revolution',00H
DATA
;
DB
'Stepping Control',00H
DATA1:
DB
4B 65 79 20 00
11E7 50
;
INT_SER:PUSH
AX
11E8 BE 12B1 R
11EB 2E: 8A 24
11EE 0A E4
MOV
MOV
OR
SI,OFFSET P_CONT
AH,BYTE PTR CS:[SI]
AH,AH
11F0 74 45
JZ
;
CMP
OUT_INT
JE
DEC
;
CHK_RL
BYTE PTR CS:[SI]
11F2 80 FC FF
11F5 74 03
11F7 2E: FE 0C
11FA A0 12B3 R
- 94 -
CHK_RL: MOV
AH,0FFH
MDA-8086 Manual
CMP
JE
;
AL,1
LEFT
1201 BF 12B2 R
1204 2E: 8A 05
1207 3C 04
MOV
MOV
CMP
DI,OFFSET FULS_STR
AL,BYTE PTR CS:[DI]
AL,4
1209 75 05
120B 32 C0
120D 2E: 88 05
JNE
XOR
MOV
STEP0
AL,AL
BYTE PTR CS:[DI],AL
STEP0:
;
INC
LEFT:
JMP
;
MOV
1219 2E: 8A 05
121C 3C FF
121E 75 05
MOV
CMP
JNE
1220 B0 04
1222 2E: 88 05
MOV
MOV
;
AL,4
BYTE PTR CS:[DI],AL
1210 2E: FE 05
1213 EB 13 90
1216 BF 12B2 R
1225 2E: FE 0D
1228
STEP1:
DEC
;
OUT_PULSE:
DI,OFFSET FULS_STR
1228 BE 1247 R
122B 25 00FF
122E 03 F0
MOV
AND
ADD
SI,OFFSET PULSE_TBL
AX,00FFH
SI,AX
1230 2E: 8A 04
1233 24 F0
;
MOV
AND
1235 E6 1B
OUT
;
PPIB,AL
1237 A1 12B4 R
123A E6 0B
123C 8A C4
MOV
OUT
MOV
123E E6 0B
CTC1,AL
1240 B0 20
OUT
;
MOV
1242 E6 10
1244 FB
1245 58
OUT
STI
POP
INTA,AL
1246 CF
IRET
1237
OUT_INT:
MDA-8086 Manual
AL,00100000B
AX
- 95 -
1247
1247 66
;
PULSE_TBL:
DB
01100110B
1248 33
1249 99
124A CC
DB
DB
DB
00110011B
10011001B
11001100B
124B
124B 50
;
P_INIT PROC
PUSH
124C B0 70
124E E6 0F
1250 A1 12B4 R
1253 E6 0B
1255 8A C4
MOV
OUT
;
P_INIT1: MOV
OUT
MOV
1257 E6 0B
1259 58
125A C3
OUT
POP
RET
125B
P_INIT
125B
INIT
NEAR
AX
AL,01110000B
CTCC,AL
AX,WORD PTR SPD_BUF
CTC1,AL
AL,AH
CTC1,AL
AX
ENDP
;
PROC
NEAR
125B B0 13
125D E6 10
; ICW1
MOV
OUT
AL,00010011B
INTA,AL
125F B0 40
1261 E6 12
1263 B0 01
1265 E6 12
;ICW4
MOV
OUT
AL,00000001B
INTA2,AL
1267 B0 FE
1269 E6 12
;
MOV
OUT
AL,11111110B
INTA2,AL
126B C3
126C
RET
ENDP
;
INIT
126C B4 01
126E EB 03 90
ALLCLR: MOV
JMP
;
AH,01H
LNXX
1271 B4 C0
LN21:
AH,0C0H
1273 E8 127B R
LNXX:
1276 8A C4
- 96 -
MOV
;
CALL
MOV
BUSY
AL,AH
MDA-8086 Manual
BUSY:
1281 C3
OUT
RET
;
LCDC,AL
IN
AND
JNZ
AL,LCDC_S
AL,10000000B
BUSY
RET
;
; 1 char. LCD OUT
; AH = out data
1282
1282 E8 127B R
CHAROUT:
1285 8A C4
1287 E6 04
1289 C3
128A 2E: 8A 24
CALL
BUSY
;
MOV
OUT
AL,AH
LCDD,AL
RET
;
STRING: MOV
128D 80 FC 00
1290 74 09
CMP
JE
;
AH,00H
STRING1
1292 E8 127B R
1295 E8 1282 R
1298 46
CALL
CALL
INC
BUSY
CHAROUT
SI
1299 EB EF
129B
129B C3
JMP
STRING
129C E4 01
STRING1:
RET
SCAN
;
PROC
IN
NEAR
AL,KEY
129E A8 80
12A0 75 FA
TEST
JNZ
;
AL,10000000B
SCAN
12A2 E6 01
12A4 A8 18
AND
MOV
;
AL,00000111B
BYTE PTR K_BUF,AL
12A6 75 F4
OUT
KEY,AL
12A8 24 07
RET
12AA A2 12B0 R
12AD E6 01
12AF C3
;
MDA-8086 Manual
- 97 -
12B0 0001
12B1 0001
SCAN
ENDP
K_BUF
DB
P_CONT: DB
1
1
12B2 0001
12B3 0001
12B4 0002
FULS_STR: DB
LR_FLAG: DB
SPD_BUF: DW
1
1
1
12B8
CODE
;
ENDS
END
- 98 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
EXPERIMENT 9. C LANGUAGE
9-1. LED.C
MDA-8086 Manual
- 99 -
EXPERIMENT 9, C LANGUAGE
9-2. FND.C
- 100 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
MDA-8086 Manual
- 101 -
EXPERIMENT 9, C LANGUAGE
9-3. MATRIX.C
- 102 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
9-4. DAC.C
MDA-8086 Manual
- 103 -
EXPERIMENT 9, C LANGUAGE
9-5. ADC.C
- 104 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
MDA-8086 Manual
- 105 -
EXPERIMENT 9, C LANGUAGE
9-6. LCD.C
- 106 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
MDA-8086 Manual
- 107 -
EXPERIMENT 9, C LANGUAGE
9-7. D8251A.C
- 108 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
MDA-8086 Manual
- 109 -
EXPERIMENT 9, C LANGUAGE
9-8. D8253.C
- 110 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
MDA-8086 Manual
- 111 -
EXPERIMENT 9, C LANGUAGE
9-9. I8259.C
- 112 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
MDA-8086 Manual
- 113 -
EXPERIMENT 9, C LANGUAGE
9-10. STEPMO.C
- 114 -
MDA-8086 Manual
EXPERIMENT 9. C LANGUAGE
MDA-8086 Manual
- 115 -
APPENDIX
MDA-8086 APPENDIX
TABLE OF CONTENTS
1. MDA-8086 Memory Circuit. 119
2. MDA-8086 Connector(CON10) CIRCUIT. 120
3. 8086 Pin configuration. 121
4. 8086 Instruction Set Summary. 122
Appendix
1. MDA-8086 Memory Circuit.
MDA-8086 Manual
- 119 -
8255A ADDRESS
20H
22H
24H
26H
- 120 -
MDA-8086 Manual
(a) 8086
(b) 8088
MDA-8086 Manual
- 121 -
8086
REGISTER MODEL
- 122 -
MDA-8086 Manual
xxx
r/m
mod Displacement
00
01
10
11
MDA-8086 Manual
- 123 -
- 124 -
MDA-8086 Manual
MDA-8086 Manual
- 125 -
- 126 -
MDA-8086 Manual
MDA-8086 Manual
- 127 -
RAM
10000H~FFFFFH
USER AREA
F0000H~FFFFFH
ROM
MONITOR
PROGRAM
LCD
Even address
01H
Key
Odd address
08H, 0AH
8251
8253
10H, 12H
8259
11H
Speaker
8255
IO
8255
DOT LED
Serial
Communication
Programerable
Timer
Interrupt
Controlor
8255 Connect
PA0 -- PA7
PB0 -- PA7
PC0 -- PC7
* Reference
:
:
:
:
8255 Port A
8255 Port B
8255 Port C
8255.PDF
MDA-8086 SCHEMATIC
Tel : 82-2-2109-5964
Fax ; 82-2-2109-5968
E-mail ; midas1@midaseng.com
Web ; www.midaseng.com