You are on page 1of 45

Table of Contents

DISPLAY CLEAR COMMAND ............................................................. 46


DISPLAY/CURSOR HOME .................................................................. 46
ENTRY MODE SET ............................................................................. 46
DISPLAY ON/OFF ............................................................................... 47
DISPLAY/CURSOR SHIFT ................................................................... 47
FUNCTION SET ................................................................................... 47
C.G. RAM ADDRESS SET .................................................................. 47
D.D. RAM ADDRESS SET .................................................................. 47
READ BUSY FLAG/ADDRESS COUNTER ......................................... 48
SEND DATA INTO C.G. RAM/D.D. RAM ............................................. 48
READ DATA OUT OF C.G. RAM/D.D. RAM ........................................ 48
SUB-PROGRAM ........................................................................................ 49
OPERATION DESCRIPTION OF SUB-PROGRAM .............................. 49
Practical Examples of Subprogram: ..................................................... 55
DESCRIPTION OF USING PROGRAM OPERATION ................................ 59
SERIAL INTERFACE .................................................................................. 63
MASM MACRO-ASSEMBLER USES WITH VMC-8609 (Optional) ...................... 64
Serial Port Porgramming Examples ...................................................... 65
SAMPLE PROGRAMS ............................................................................... 66
8259 Interrupt Controller .......................................................................... 79
BEEP ......................................................................................................80
PROCEDURE OF HYPER TERMINAL ........................................................81

iiii

Users Manual

Users Manual

8086/88 MICROPROCESSOR TRAINER


WITH LCD DISPLAY

Users Manual

Table of Contents

Users Manual

INTRODUCTION .......................................................................................... 1
OPERATING COMMANDS .......................................................................... 3
COMMAND DESCRIPTION .......................................................................... 4
A - Assemble ......................................................................................... 4
D - Display or modify the RAM's Hexadecimal ....................................... 9
F - Fill data into the RAM ..................................................................... 11
G - Proceed to the address for execution ............................................. 12
I - Interrupt ............................................................................................ 13
Modify/Display Register ................................................................. 15
M - Moving Data ............................................................................. 16
P - Print ................................................................................................ 16
T - Trace Program (an N-step designed command) .............................. 19
U - Unassemble ................................................................................... 22
ADDRESS DIVISION ................................................................................. 28
MEMORY SECTION ............................................................................ 28
I/O ADDRESS ...................................................................................... 29
RAM MEMORY .................................................................................... 30
SYSTEM DATA OF RAM ..................................................................... 30
BIT .............................................................................................. .......30
CONTENTS OF ROM ........................................................................... 31
PRACTICAL USE OF SUBPROGRAM (ROM'S CONTENT) ................ 31
CODES TABLE .......................................................................................... 33
Character Code : (F000:FF60-FF83) .................................................... 33
Symbols Code : (F000:FF90-FFBF) ..................................................... 33
Functional key : (F000:FFBC-FF9B) .................................................... 34
Checking section of interrupt vector position ........................................ 34
DISPLAY .................................................................................................... 35
BUSY FLAG (B.F.) .............................................................................. 37
ADDRESS COUNTER (A.C.) ............................................................... 37
DISPLAY DATA RAM (D.D. RAM) ....................................................... 38
CHARACTER GENERATOR ROM (C.G. ROM) ................................... 38
CHARACTER GENERATOR RAM (C.G.RAM) ..................................... 38
TIMING GENERATOR .......................................................................... 38
FUNCTIONS OF RESET ............................................................................ 42
USING THE INTERNAL RESET CIRCUIT TO START ........................... 42
INITIALIZATION BY INSTRUCTIONS .................................................... 45
INSTRUCTION DESCRIPTION ............................................................. 46
i

Users Manual

Users Manual

COMMAND DESCRIPTION

SYSTEM INTRODUCTION

A - ASSEMBLE
This command is used to convert the input Assemble Language to the
Machine Language in the memory. Once under this command, first set the
address which is similar to the command D followed by an Enter or an
Arrow Down key to go to a new step. However, only a maximum of 35
words are allowed for input.
The following are some useful keys used to move the cursor around:
(Backspace)......Move one space to the left.

... Delete the character at the cursor in Assemble mode.

... Erase the content in Assemble mode.

................ Leave a space at the cursor.

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
Simply Press the key A. After the command, an A will appear on the
screen:

VMC - 8 6 0 9

. . 7FFF

A
Assemble language can be input at this time.

Only contains the Effective address but the Segment base in included A
400.

Input includes the segment base and the Effective address A 0000:400.

Totally depends on the built in Segment base and Effective address A.

GENERAL DESCRIPTION
VMC-8609 is a single board MICROPROCESSOR TRAINING/DEVELOPMENT KIT configured around the INTELs 16 bit Microprocessor 8086. This
kit can be used to train engineers, to control any industrial process and to
develop software for 8086 systems.
The kit has been designed to operate in the Max. or Min. mode. Coprocessor 8087 and I/O Processor 8089 can be added (VMC-8609). The
8086 CPU can also be replaced by 8088 CPU.
The Kit communicates with the outside world through a IBM PC compatible
keyboard and LCD display.
VMC-8609 is packed up with powerful monitor in 32K Bytes of factory
programmed EPROMS and 32K Bytes of RAM for user. These memory can
be expandable upto 256K Bytes each. The system has 72 programmable I/
O lines. The serial I/O Communication is made possible through 8251.
For control applications, three 16 bit Timer/Counters are available through
8253. For real time applications, the 8 level of interrupt are provided through
8259. VMC-8609 provides onboard battery back up for RAM. This saves the
users program in case of power failure.
The onboard resident system monitor software is very powerful. It provides
various software commands like BLOCK MOVE, INSERT, DELETE, FILL
etc. Which are helpful in debugging/developing software. An onboard Assembler/Disassembler is also provided on VMC-8609AD. This kit also supports MASM.
VMC-8609 also has onboard buzzer for self testing of hardware and software. This kit is provided with a Centronix Printer port to take out the prints
of the program written in the RAM of kit. A Real Time Clock is also provided
onbard for real time apllications (Optional).

Users Manual

Users Manual

COMMAND DESCRIPTION

SPECIFICATIONS FOR VMC-8609


Processor

EPROM

RAM
Parallel I/O lines
Addtional I/O Lines
Serial communications
Interrupts
Timer/Counter
Keyboard
Display

:
:
:
:
:
:
:
:

Sound
Assembler/Disassembler
BUS

:
:
:

Power Requirement
Operating Temp.

:
:

8086, 16 bit Microprocessor operating in


max. 8088, 8 bit Microprocessor.
128K Bytes of EPROM Loaded with monitor
64K Bytes expandable to 128K Bytes.
48 I/O lines using two nos. 8255
24 I/O lines using 8255 (Optional)
Through RS-232C port USING 8251.
8 different level interrupt through 8259.
Three 16 bit Timer/Counter through 8253.
IBM PC compatible ASCII keyboard.
20X2 Liquid Crystal Display(LCD) with backlight or 402 or 204.
Buzzer.
Provided onboard.
All address, data and control signals (TTL
Compatible) available at FRC connector.
5V, 800mA
0 to 50C.

VMC-8609AD

The operation of this device is similarly with the operation of IBM PCs
DEBUG system. For convenience, the operation instructions will be displayed when the device is being Switched on or RESET.
This device also has memory ability to preserve data for future use. There
is a memory indicator on the display once the data being kept after Reset.
The system program starts from 0000:0000 after reset, in order to check the
length of the RAM, there is a byte to be inverted and returned to the original
for every 4K in length, the verifying procedure will be repeated until none of
the byte can be inverted. During this period, avoid using the RESET to
prevent the data from unable to return to the original setting. The RAM
address is to be displayed by 4 positions and up to FFFFH, however, 5
positions will be used if it exceeds FFFFH.

Note :
KEY 1 (Reset Switch) is to be presses to initialize for ASCII
Keyboard, then it will accept following operating commands.

OPERATING COMMANDS:
After power ON the system, it will display as follows:

VMC - 8 6 0 9
E N T E R RE T U R N K E Y . . .

Optional Features
Display
Printer Interface
Real Time Clock
Programmer module Card
Relay & Opto Card
Audio Cassette Interface
Speaker Interface

:
:
:
:
:
:
:

40X2 Liquid Crystal Display(LCD) (Optional)


Centronix printerport (Optional).
Provided on board (Optional).
27c64 to 27c512. (Optional).
Provided on board (Optional).
Provided on board (Optional)
Provided on board (Optional)

After pressing Enter, the operating commands will be displayed:

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
ASSEMBLE

UNASSEMBLE

DUMP

TRACE

FILL

PRINT

GO

M OV E
INTERR UPT

Users Manual

Users Manual
3) Or user has entered the wrong instruction as follows:

0400

OVM B L , C 0

As user press the Enter key, then above instruction will not be converted into machine language. And the cursor will point left side of the
instruction as follows:

0400

OVM B L , C 0
Cursor position.

And user want to write whole instruction again, then by using the
SHIFT + F6 keys, the content at the location 400 will be erased as
follows:

0400

MOV B L , C 0

Press Enter key, then this input assemble language will be converted
into machine language in the memory and jump to the next memory
location.

Example
Clear second line, display DX value, and DX values are altered by key-in to
be displayed at LCD.
0:0400
0:0402
0:0407
0:040A
0:040F
0:0411
0:0413

MOV
CALL
MOV

JNZ
HLT

BL,C0
F000:F078
BX,00C2
CALL
F000:F068
CMP
AL,0D
040A

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
The following steps are to be taken:
1) Press the key

and the LCD display is as shown here:

VMC - 8 6 0 9

0402

. . 7FFF

Now write the next instruction as follows:

0400

A and U are the same commands, an ARROW UP sign can be used to


check the earlier procedure. F6 is used to delete the input and proceed to
U-Unassemble. F7 is used to proceed to another command.

Before entering the above program connect the system to the power supply
properly. Then the following menu will be displayed on LCD screen, if not,
switch off the power supply and re-check.

Now enter the instruction again.

0400

If one of the above is used, 0400 will appear on the screen and ready for
input data.

CAL L F 0 0 0 : F 0 7 8

2) Now the user enter the segment address and effective address simultaneously as follows:

VMC - 8 6 0 9
A 0000 : 0400

. . 7FFF

Users Manual
3) Now press Enter key, the effective address will appear.

0400

Users Manual
Press Enter key, then this input assemble language will be converted
into machine language in the memory and jump to the next memory
location.
2) Or user has entered the wrong instruction as follows:

From now onwards user can enter the program in assembly language. First
pick the first instruction.

0400

MOV B L , C 0

While entering this instruction, the following mistakes may happen:

0400

As user press the Enter key, then above instruction will not be converted into machine language. And the cursor will point left side of the
instruction as follows:

0400

1) If user has entered the wrong instruction as follows:

0400

MV B L , C 0

MOVC B L , C 0

As user press the Enter key, then above instruction will not be converted into machine language. And the cursor will point left side of the
instruction as follows:

0400

MV B L , C 0

Cursor position.
Now by using the Backspace key, user can move the cursor right side
and indicate at the below of V.

0400

MV B L , C 0

MOVC B L , C 0

Cursor position.
By using

F5

key, leave a space at the cursor as follows:

Cursor position.
Now by using the Backspace key, user can move the cursor left side
and indicate at the below of C.

0400

MOVC B L , C 0
Cursor position

Delete the character by using

0400

SHIFT + F5

M_ V B L , C 0
Cursor position.

Now insert the character O.

0400

MOV B L , C 0

keys.

MOV B L , C 0

0400

Press Enter key, then this input assemble language will be converted
into machine language in the memory and jump to the next memory
location.

Users Manual

Users Manual

In this way, user can enter the whole program, by pressing Enter key.

The ending position has to be bigger than or equal to the starting position,
otherwise the smaller user will become the ending position and the bigger
user is the starting position.

0407

MOV BX , 0 0 C 2

0 4 0A

CAL L F 0 0 0 : F 0 6 8

040F

CMP A L , 0 D

0411

JNZ 0 4 0A

0413

HL T

G - PROCEED TO THE ADDRESS FOR EXECUTION


The GO command, which causes the machine language statements to be
executed. This command executes the loaded program and allows the user
to specify the addresses at which program execution will stop. The syntax
is as followed:

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
Once the GO command has been executed, it will completely leave the
system and proceed to the users design.

Flowchart of G-Command

START

INPUT THE
STARTING
ADDRESS

CS, DS, ES
REGISTERS
HAVE THE
STARTING
ADDRESS
IN THE
SEGMENT
BASE

FOLLOW
THE INPUT
OF THE
USER TO
SET THE
FLAGS

PROCEED TO
A NEW
ADDRESS
FOR
EXECUTION
BEGINS AT
0000:0309
(USER CAN
SET A
SEGMENT
IN THE
PROGRAM

Now by using GO command, the machine language statements can be


executed and the value of DX will be displayed in the second line of the
LCD.

END

NOTE : When A and U are being used, the operation used:


0000:1E00
0000:1FFF as the buffer.

D - DISPLAY OR MODIFY THE RAMS HEXADECIMAL


A.D.U. are the important commands in the compiling. The effective address
or both the effective address and Segment base can be used during input.
When the cursor is placed at the beginning, the : key will immediately
show F000 as the Segment base and the Effective address next.

Syntax is as follows:

12

(If no input, press Enter key or ARROW UP/DOWN key would


allow the built-in address to be used)

D 0400

(Uses built-in Segment base but specify the Effective address)

Users Manual
D 0:0400 (Specify both the Segment base and Effective address)
If press the Enter or the ARROW DOWN key after specifying the address,
the memory will display the data. Press ARROW UP key will allowed the
address to subtract 8 and store in the memory as a whole number. otherwise, an ARROW DOWN key indicates an addition of 8 in the address and
this changes in the memory (as a machine language).

Users Manual
3) Press

Enter

key, then the following will be displayed:

0000 : 0400
B3 C0 9A
7 8 F 0 0 0 F 0 BB
Usekey

for further view.

Syntax is as followed:
Segment Base

0000 : 0408
C2
68 F0 00

Effective Address
Content of data total of
8 bytes

0000 : 0400
B3 C0 9A
7 8 F 0 0 0 F 0 BB

00
F0

9A
3C

0000 : 0410
0D 7 5 F 7
F4 FF FF FF FF

If address is not a whole number 8, the following will show:

0000 : 0400
B3 C0 9A
7 8 F 0 0 0 F 0 BB
The above datas shown at the location 400 are the arbitrary data.

Example
If the user want to see the codes of the above program, the following steps
are to be taken:
1) Press

F7

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
2) Press D key, and enter the effective address. The following will be
displayed:

10

By setting the starting, ending address and the details, an Enter key will
allow the data to enter the RAM.

Syntax

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .

key, the menu will display.

VMC - 8 6 0 9
D 0400

F - FILL DATA INTO THE RAM

Once F is entered, the command can be proceeded.

VMC - 8 6 0 9 . . 7 F F F
0000 : 0400 0400 57

. . 7FFF

Data to be filled
Ending Position
Starting Position
Segment Base
11

Users Manual

Users Manual

M - Moving Data

I - Interrupt

The command MOVE is used to move data in the memory from a specified
address to another address by input the starting address, the ending address and the desire address. A RETURN key is then used to execute the
changes.

Three INTERRUPTs (Effective address) can be set in for the program execution, the CPU will continuously make a single-step subprogram for checking
IP values. When the IP register has the same value as the INTERRUPTs
address, it will enter the INTERRUPTs subprogram. Enter command I will
interrupt the program.

Syntax:
The M key allows the data to be moved to another address:

Syntax:

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .

The I key allows interruption to be shown on the screen.

Ending Address (Effective Address


Starting address (Effective Address)
Segment Base
Source

M S - 0000 : 0000
T - 0000 : 0000

VMC - 8 6 0 9 . . 7 F F F
I NTP : 0 0 0 0 . 0 0 0 0 . 0 0 0 0
Third Interrupt Position (Effective Address)

8088

Second Interrupt Position (Effective Address)

Target
Segment Base
Destination Address

First Interrupt Position (Effective Address)

The ending address must be greater than or equal to the starting address.
The sum of the starting address in plus the corrected ending address in the
target can not exceed FFFF. Otherwise, it will cause an input error and
have to redo the whole procedure.

Notes :
1)

During interrupt setting, the address alternation register has commands


like POP ES, MOV DS, AS, etc. to execute with the next command.

P - Print

2)

This command allows the printer to print the output Connect the printer with
input/output system of 8255 (the connection is described at the back),
before turning on the printer.

The program will be delayed for due to the fact that CPU has to send
each command individually into the subprogram.

3)

During the interruption, the command GO would allow the program to


execute until the next INTERRUPT.

16

13

Users Manual

Users Manual

Example

This indicate the second break-point is at 0407. To proceed further,

To break point at 0402, 0407 and 0411 in the example given on Page-3, the
following steps are to be taken:

press G , Enter, and then

1) Press the key

F7

2) Now press the key

and the LCD display is as shown here:

VMC - 8 6 0 9 . . 7 F F F
I NTP : 0 0 0 0 . 0 0 0 0 . 0 0 0 0
Modify using

I NT
0411
>A . D . F . G . I . M . P . R . T . U

and the LCD display is as shown here:

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .

F7 .

This indicate the third break-point is at 0411. One can use any commands including Examine Register by pressing the key

Modify/Display Register
Command R display the content in the register. This command allows the
user to examine the content of the register in the CPU. Each time during
display, 4 registers will be shown. The following are some of the display
and criteria of the register:

, key as follows:

VMC - 8 6 0 9 . . 7 F F F
I NTP : 0 4 0 2 . 0 4 0 7 . 0 4 1 1
3) Press the key

F7

and then G . The display will be as follows:

VMC - 8 6 0 9
G 0000 : 0400

. . 7FFF

4) Press the Enter key and then F7 .

I NT
0402
>A . D . F . G . I . M . P . R . T . U

FIRST
GROUP

AX 0 1 0 0
CX 0 0 1 4

BX 0 5 C 0
DX F 1 0 2

SECOND
GROUP

SP 0 3 9 0
S I F114

BP 0 3 7 4
DI 0400

THIRD
GROUP

IP 0402
CS 0 0 0 0

FL F102
DS 0 0 0 0

FOURTH
GROUP

CS 0 0 0 0
SS 0 0 0 0

DS 0 0 0 0
ES 0 0 0 0

The first group register (AX, BX, CX, DX) will be shown first when enter the
command R. The key will jump to the second group; the fourth group
can return to the first group by using the SHIFT + key.

I NT
0407
>A . D . F . G . I . M . P . R . T . U

When the content in the register is displayed, the cursor will not appear, the
user therefore cannot change the content in the register. However, the key
F6 will cause the cursor the appear and the modifications of the
registers can be made at this time. The cursor can only move in one
particular register at one time by using the and SHIFT + keys.
However, it can be used to move forward or backward to another register.
The F6 key is again used to make the cursor disappear.

14

15

This indicate the first break-point is at 0402. To proceed further, press


G , Enter, and then

F7

Users Manual

Users Manual
Only 0-9 numerical keys are allowed to use to operate for this command but
not any other keys.

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
By pressing P key will allow the following to show on the screen:

Example
Enter the following program using A 0000:0400 and press Enter key.

0 : 0400

MOV A L , 9 0

0 :: 0
04
40
00
2
0

MOV
MOVBL,
A7
L 5, 3 0

00 :: 00 44 00 4
2

CMP
MOV A
BL
L ,, B
2L
0

PR E S S S / F F OR S P E ED
Here S/F indicates SLOW or FAST. Now according to the printer, press
S or F key, then following will be shown on the screen.

P R I N T ER ON
>B . D . U .

!
Unassemble
Dump

0 : 0406
0 : 0408

Buffer

J NC 0 4 0 B
S UB A L , B L

If the printer is not connected at this time, press key P so the LCD would
show PRINTER ERROR! on the second line.
D ........ command will allow the printer to print the machine code.

0 : 0 4 0A

I NT

0 : 0 4 0B

ADD A L , B L

0 : 0 4 0D

I NT

Now if user want to see the process of the above program, then the procedure is as follows:
1) After entering the above program, press F7 key, then the menu will be
displayed as follows:

20

U ........ command will allow the printer to print the assembly program.
B ........ command sends data of RAM directly to the printer without going
through any modification.

Example:
The address, 90, is used for printer code.

) Command B will send 90 directly to the printer.


) Command D will convert 90 into ASCII (39, 30) code before sending to
the printer.
) Command U will unassemble 90 to NOP, then to ASCII code (4E, 4F,
50) before sending to the printer.
The starting address and the ending address need to be entered first before
using commands B, D, U. Followed by an Enter or ARROW UP key in
order to print the output.
17

Users Manual

Example
U

F000:F750

E7FF

Enter

If input only the starting address, the UNASSEMBLE command is as followed.


U

400

Enter

only the UNASSEMBLE command.

Users Manual
Each time entering the command P, the CPU will send out 1B 40 as the
starting command. If the user doesnt change the model setting, the user
can use the usual model to print.
The command P will allow the 8255 to program as model 1 as the output.
The CPU will send the printed data into 8255s A-port, then the printer itself.
The connection between 8255 and the printer is:
8255

Command B can be used to print data or program the printer, if the ASCII
code is written into the printer and if the printer would allow the setting
instruction to alter the work model. However, the setting instruction model
can be assigned to the same address while the output in another address.
The setting instruction should first be sent to the printer before the data is
send to the printer. The designed setting command of different printers can
be obtained from their handbook. The following is an example of Printer
ESPON-800.

1B 40

41

42

43

44

45

A B C D E

Once the printer is connected, press the key P then B, followed by


the input of the starting address:
>B 0:400

0404

Enter

Use command B again to input the data address, then input the
necessary data as followed:
>B 0:600

603

Enter

DATA3
DATA4

PA5

DATA6

PA6

DATA7

PA7

DATA8

PC4

PE

PC5

BUSY

CONTROL PC6

ACKNLG

BUS PC7

STROBE

GND

Followed by storing the ASCII code of the printed data in 0:0600 starting
address:
0:0600

DATA2

PA2

DATA5

Starting command

DATA1

PA1

BUS PA4

1B 57 01
Set for twice enlargement

PA0

DATA PA3

When power on, the command D in the system will allow the model
setting of the printer to be saved as 0:0400
0:0400

PRINTER

GND

The PC4 to PC6 of 8255 are connected to a 510 ohms resistor to prevent
them from short circuit with the printer before the command P is used to
output the program. Each time 8255 leaves the command P, the system
will return to its original stage.

T - TRACE PROGRAM (AN N-STEP DESIGNED COMMAND)


This command is used for program execution. TRACE will enter the INTERRUPT subprogram every time the program execute. N has a decimal range
from 1-99 with 10 as the rounding off number, and only operate if N is not 0;
other-wise it will clear the function.

Syntax :

Output will be as follows :

00 - STEP
Decimal TRACE setting

ABCDE
18

19

Users Manual

Users Manual
to be modified. Press Enter key and write the correct instruction and again
press Enter key. Press key F7 another time would bring the instruction
back to the Unassemble.
The ARROW DOWN key is used to proceed to the next command after the
U. The ARROW UP key can be used to examine the program but not
more than 127 instructions in forward direction. When the program reaches
the end, the U command can be used to decode the program again or
forward.
During input program, instruction can be inserted by entering the desired
address, then press key F5. At this time, INS.....END ADDR: 0000" will
appear on the second line of the screen to allow the user to enter the ending
address. Press the F5 key again to return to the A command. The CPU
will move the address content from the present address until the ending
address, to a new instruction for each instruction entry. If leave the command A model, it will automatically clear the function.
Refer to the cursor operational keys in the DUMP command for the
UNASSEMBLE command.

2) Press the Key T. The screen displays as follows:

0 4 0E
>A . D . F . G . I . M . P . T . U .
3) Now the user can view the program after the one instruction, two instruction, and so on by defining the number which is to be entered
through keyboard.

Example:
01 -

The instruction pointer stops after every single instruction.

040E
T
00-STEP
After completion, press F7 for a menu display.

0 4 0E
T
0 1 - STEP
4) Press the key G, the menu will appear.

Example
The example entered earlier can be seen as follows:

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
1) Press U key, and enter the starting address of the program.

VMC - 8 6 0 9
0400

. . 7FFF

2) Press Enter key, the following will be displayed:

24

0 4 0E
>A . D . F . G . I . M . P . R . T . U
.
5) Press Enter key.
6) Press F7 key, the single stepping will start and the following menu will
be displayed:
1st
instrcution is
executed.
Press G key and next F7 key for further view, the following results will be
displayed:

0 4 0E
G
0000 : 0400

I NT
0402
>A . D . F . G . I . M . P . R . T . U

21

2nd
instrcution is
executed.

Users Manual
Press G key and next F7 key for further view, the following results will be
displayed:

Users Manual

VMC - 8 6 0 9
400

I NT
0404
3rd instrcution
> A . D . F . G . I . M . P . R . T . U is executed.
Press G key and next F7 key for further view, the following results will be
displayed:

. . 7FFF

or

0 : 400

I NT
0406
4th instrcution
> A . D . F . G . I . M . P . R . T . U is executed.
Press G key and next F7 key for further view, the following results will be
displayed:

I NT
0 4 0B
>A . D . F . G . I . M . P . R . T . U
Here user can observe the process of program execution, because data 30
is greater than 20 so that carry will not generate and the program execution
will jump to the desired label. Now again press G key and next F7
key

I NT
0 4 0D
>A . D . F . G . I . M . P . R . T . U

Anywhere during trace command, one can examine/modify the registers


using R command (refer Register Command Description).

Starting address
The content of the Unassemble 0400 will start if only the starting
address is entered. The built-in segment base is used here if it is not
entered.
The content of the Unassemble 0000:0400 will start if only the starting
address is entered with segment address as 0000:0400.
Press U key would enter the Unassemble design:
Segment Base
Effective Address
Machine Code

0000 : 0400
B0
MOV
AL , 3 0

NOTE : Refer to the INTERRUPT command for precaution.

U - UNASSEMBLE
The UNASSEMBLE command decodes the value of a group memory location mnemonics, and display on the displayed. Once enter this command,
input the proper design address. The following is the correct way to input
address:

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .

22

30

Assembly Language
Display the address first, then display the machine code (if the machine
code is too long, they will be continued on the second line). The second
line displays the assemble program and the process is completely done if
the cursor appears in the last address of second line. However, in case the
cursor doesnt show, that means there is another line. Press the Enter key
would display all the commands, then press ARROW UP/DOWN key would
display the next line back to the original stage.
If the user needs to modify the instruction, press key F7 will move to the
command Assemble (A). And write the address of the instruction which is

23

Users Manual

Users Manual
If the single-step is changed during the Interrupt subprogram, the user must
follow step by step of single-step hardware to execute the Interrupt subprogram in order to go back the original stage (separate example to demonstrate this feature is given in the next page).
The commands used for the Interrupt subprogram:
F000 : F7C6

WAIT

F000 : F7C7

POP DS

F000 : F7C8

POP BP

F000 : F7C9

IRET

0 0 0 0 : 0 4 0 0 B050
MOV
AL , BL
Note:

Use

3) Press

key to move upward, and

key to move downward.

key for further view.

0 0 0 0 : 0 4 0 2 B32 0
MOV
BL , 2 0

NOTES :
1)

The setting of interrupt subprogram cannot change SP and SS register


value but the user can change the value within the program.

0 0 0 0 : 0 4 0 4 3 8D3
CMP
AL , BL

2)

If TRACE counter value does not subtract 1 when it meet the command WAIT, instead changes the command WAIT in the interrupt
system to other command then subtract 1. Command WAIT will leave
the Interrupt system and stop at the exit of the command.

0000 : 0406 7303


J NB
0 4 0B
4) If the user want to modify at the address 0404, then following steps are
to be taken:

ADDRESS DIVISION

a) Press F7 key, the menu will display.

MEMORY SECTION

b) Press A key and enter the address 0404 as follows:

ADDRESS

PURPOSES

0000:0000

RAM AREA

0000:FFFF

(ODD & EVEN RAM)

0000 : 0406
>A 4 0 4

7303

c) Press Enter key and write the instruction again.


d) Press Enter key so that the modifications has been taken place.

F000:0000

ROM 27256 EXTENSION SECTION THAT HAS

F000:FFFF

(ODD & EVEN EPROM)

28

NOTE : When commands A and U are executed, the system program


uses 0000:1E00-1FFF as the buffer, therefore during the execution of A and U, this segment cannot be used.

25

Users Manual

DISPLAY SYSTEM OF INTERRUPT


TRACE is set in the program execution and INT3 is set in the Interrupt,
press F3 will enter the Interrupt sub-program. This enable the user to
examine the register or the memory content in the CPU. SHIFT + F7
keys or the G key would cause the program to execute.
When entering the displayed Interrupt subprogram, the following syntax can
be observed:
Interruption Address (Effective Address)

I NT 0 4 0 2
>A . D . F . G . I . M . P . R . T . U
Interrupt display subprogram will compare with the program input, and there
is another display register command R. Other than the commands D
and R, the operation and input program of the other commands are the
same.
Under any command, if press G or SHIFT + F7 would clear the
display, then proceed downward for execution. The following are the description of commands D and R:
To prevent making any the input error, the user cannot directly change
the address content once in the command D. The cursor will not show
at this time, therefore the user can only examine address content. If
the address content needs to be corrected, F6 key would allow the
cursor to appear. Any correction can be made at this time as it is in
the program input. Press F6 another time would cause the cursor to
disappear.
Command R display the content in the register. This command allows
the user to examine the content of the register in the CPU. Each time
during display, 4 registers will be shown. The following are some of the
display and criteria of the register:
(a) FIRST GROUP

AX
CX

0000
0000

BX
DX

0000
0000

(b) SECOND GROUP

SP
SI

0000
0000

BP
DI

0000
0000

26

Users Manual
(c) THIRD GROUP

IP
CS

0000
0000

FL
DS

0000
0000

(d) FOURTH GROUP

CS
SS

0000
0000

DS
ES

0000
0000

The first group register (AX, BX, CX, DX) will be shown first when enter the
command R. The key will jump to the second group; the fourth group
can return to the first group by using the SHIFT + key.
When the content in the register is displayed, the cursor will not appear, the
user therefore cannot change the content in the register. However, the key
F6 will cause the cursor the appear and the modifications of the
registers can be made at this time. The cursor can only move in one
particular register at one time by using the
and SHIFT + keys.
However, it can be used to move forward or backward to another register.
The F6 key is again used to make the cursor disappear.
The GO or G key would allow the program to execute.
The instruction INT3 (CC) is used to set the position of Interrupt in the
8088. When the setting of system program enter the subprogram, it will
subtract 1 for IP. Then entering the TRACE subprogram and followed by the
Interrupt display. Press G key will go back to INT3 and enter the Interrupt
display again. Therefore, instruction INT3 (CC) must change to NOP (90) or
other instruction to enable the program to execute.
Each time the TRACE enters INT3, the instruction will execute 1 step.
Continue entering into INT3 will repeat the calculation.
For convenience in changing the interrupt software into the single-step
hardware, there is a WAIT command next to the Interrupt subprogram for
the user to save the address 0000:039B into 9B. This will allow the
subprogram to stop at this command WAIT once it leaves the Interrupt
display (Note that the address bus of LED display will stop at the address
FF7CA), and will allow the user to cut the switch of single-step hardware in
the single-step location. The F7 is used to leave the command WAIT in
order to execute the signal-step hardware.

27

Users Manual

Users Manual
and store in AL. If it is not a symbol than set
to C-Flags as 1.
F000:F05F
F000:F060

RETF
CALL FDF5

F000:F063
F000:F064

RETF
CALL FB35

F000:F067
F000:F068

RETF
CALL EA35

F000:F06B
F000:F06C

RETF
CALL FAAO

F000:F06F
F000:F070

RETF
CALL FE15

F000:F073
F000:F074

RETF
CALL FE30

F000:F077
F000:F078
F000:F07B
F000:F07C
F000:F07F
F000:F080
F000:F083
F000:F084

RETF
CALL FF2B
RETF
CALL FCD5
REFT
CALL FD20
RETF
CALL FDCO

F000:F088

CALL FFOA

F000:F08B

RETF

F000:F08C

CALL FF20

F000:F08F
F000:F094

RETF
CALL F39A

F000:F097

RETF

; Convert the input functional keys into ASCII


code and store in AL. Otherwise, set to CFlags as 1.
; Call for the above 4 sub-program and change
input key into ASCII to store in AL.

I/O ADDRESS
The addresses of the various chips in I/O mapped in VMC-8609/8609AD are
as follows:
Device Name

; Convert the ASCII code in AL to hexadecimal

Port A
Port B
Port C
CWR

70
72
76

CN3

8255-II (PPI)

Port A
Port B
Port C
CWR

80
82
84
86

CN4

8255-III (PPI)

Port A
Port B
Port C
CWR

10
12
14
16

CN5

8253
(Programmable
Timer/Counter)

Counter 0
Counter 1
Counter 2
Counter 3

00
02
04
06

CN6

Keyboard
Latch

Input/Output

20
22

8259
(PIC)

Data Word

30
32

CN6

50
52

CN7

; Convert the hexadecimal in AL to ASCII code


and store in between AH and AL
; Delete one line
; Clear the screen
; Cursor blinking movement
; Insert the lower 4 bits into the DX with BH
instruction
; Write the hexadecimal in AL into cursor address

; Write the hexadecimal in AX into cursor address


; W rite the hexadecimal in AX into BL
designated address

32

Connector

8255-I (PPI)

; Save the input 4 digits in DX, display position from BL to BH instruction.


; Store input 4 digits in DX as SEGMENT BASE
AND ANOTHER 4 digits as the Effective address in DI (DX:DI).

Port Address

8251
(USART)

Command/
Status Word

Data Register
CWR

Real Time Clock


(Optional)

0100-01FF

29

Users Manual
0000:03A0

RAM MEMORY
ADDRESS

PURPOSES

0000:03AE

STACK SEGMENT

0000:039E

0000:0390

BUFFER

0000:03B0

0000:039B

SYSTEM DATA

0000:93E0

BUFFER (Only if needed)

0000:0400
to
0000:7FFF

USERS RAM AREA

SYSTEM DATA OF RAM


0000:039B

0000:039C

TRACE Buffer

Flags, function of each byte is as followed:

BIT
:
:
:
:
:
:
:
:

Buffer of Interrupt setting

Preserved battery to test bit

Flags, use the command A

Data stored in the register monitor during interruption

0000:03AF

0000:03D8

CONTENTS OF ROM
ADDRESS

TEXT

DESCRIPTION

F000:F000
F000:F003

JMP BCBA
JMP BB00

RECORDER PROGRAM
RS-232 PROGRAM

PRACTICAL USE OF SUBPROGRAM (ROMS CONTENT)

Store 9B, will stop at the subprogram exit next to the


WAIT command each time it leave the interrupt display
subprogram, waiting for F2 to continue execution (is
used in TRACE to convert to single-step hardware).

0000:039D
0000:039F

0000:03A5

INTERRUPT VECTOR SECTION (INTI, INT2, INT3


HAVE ARRANGED THE INTERRUPT SECTION
AND STACK SEGMENT

0000:0000

0
1
2
3
4
5
6
7

Users Manual

Enter NMI as 1, otherwise as 0


After the G key, will be set to as 0, SHIFT + F7
During subprogram, is set to as 1
Set to 1 after entering INTERRUPT
Use in interrupt system
Use in interrupt System
Set 0 to INTERRUPT, and set 1 to TRACE
Set TRACE or INTERRUPT as TF flags, timer 1
30

ADDRESS

TEXT

F000:F040
F000:F042
F000:F044
F000:F047
F000:F048
F000:F04B
F000:F04C
F000:F04F
F000:F050
F000:F053
F000:F054

CALL SI
RETF
CALL FEEO
RETF
CALL FEFO
RETF
CALL FFOO
RETF
CALL FE7A
RETF
CALL FE8A

F000:F058

CALL FEAO

F000:F05B
F000:F05C

RETF
CALL FEB5

DESCRIPTION

;Write ALs instruction into LCD


; Write ALs data into LCD
; Read LCD and store data in AL
; Input keys and store value in AL
; Convert input numerical values into ASCII
code and store in AL. If it is not a number
than it will be set to C-Flags as 1.
; Convert the input alphabetical values into
ASCII code. If it is not an alphabet then it will
be set to C-Flags as 1.
; Convert the input symbols into ASCII code
31

Users Manual

Users Manual
Fig.1 Functional Block Diagram

F000:F098

CALL FD4A

F000:F09B
F000:F09C

RETF
CALL FD7A

F000:F09F
F000:F0A0
F000:F0A3
F000:F0A4

RETF
CALL FE55
RETF
CALL EFDA

F000:F0A7

RETF

; Read in 2 letters from BL designated position, change to hexadecimal and store in AX


; Read in 4 letters from BL designated position, change to hexadecimal and store in AX
; Beep......
; Extended subprogram can be planned. Plan
8253 #2 counter as the extended counting
and check key-in when leaving the subprogram

CODES TABLE
The key-in code in transferred to ASCII and the ability to transfer the
address, FF means empty codes that have not been defined.

Character Code : (F000:FF60 - FF83)


F000:FF60

:FF70

FF80

ASCII

30 31 32 33 34 35 36 37 38 39 41

Number

ASCII

42 43 44 45 46 47 48 49 4A 4B 4C

Alphabet

B C

ASCII

4D 4E 4F 50 51 52 53 54 55 56 57

Alphabet

M N

ASCII

58 59 5A FF FF FF FF FF FF FF FF

Alphabet

X Y

E F

P Q

V W

Symbols Code : (F000:FF90-FFBF)


F000:FF90

NOTE: Some models incorporate a temperature compensation circuit within


the bias voltage generator
36

:FFA0

ASCII

FF 3C 3E 3F

Symbols

<

ASCII
Symbols

>

FF 3D 5F FF FF 2F 2D 7F 26 2A 2B 28
=

^
33

&

Users Manual
ASCII

:FFB0

DISPLAY

29 7E 2C 2E

Symbols
ASCII

FF FF 3B 3A 22 FF FF 5B 5D 7B 7D FF

Symbols
ASCII

"

21 23 24 25

Symbols

90

91

92

20

0D

CLS

GO

SP

FF

This display contains 2 lines and each line consists of 20 words (20x2).
This is a cursor LCD display modular. The CPU receives each 8 bits letter
which is locked into the internal display data of RAM (data display of RAM
80 bytes (D.D.RAM) allows 80 characters to be stored), and transfer to 5x7
dot of array word and appear on the displayed.
This lcd modular contains the word generator ROM that will supply 160
different 5x7 dot of array word and also a 64 bytes word generator RAM.
Users can define 8 types 5x7 dot of array word.

Functional key : (F000:FFBC-FF9B)

93

Users Manual

2D

0D

FF

94

SP

FI

DEL

D4

D3

D0

D1

D2

INS

EDIT LIST

NOTE :1) CTRL ON conditions have not been defined.

The position of word display goes into the LCD Modular through the data
bus in CPU. Next through the instruction register and finally write the words
into the data register to display on a specific location. The LCD Modular
will automatically increase or decrease the words in order to move to different addresses. The user can therefore continue sending in word code. The
cursor as to moved around or moved in the right of left direction.

Specification of display:
Display data RAM

80x8 BLT (80 words)

Character generator ROM

160 of 5x7 dot of array word

Character generator RAM

8 different users programmed 5x7 dot


of array

Kinds of instructions

Clear the display, send cursor home


(HOME), ON/OFF display. Cursor ON/
OFF, character blinking cursor move to
another position, display change position.

2) SP and area use under the key SHIFT ON and OFF.

Checking section of interrupt vector position


After RESET, the system program will allow the stored data to begin from
0:0000 until Interrupt vector position. FF is the undefined interrupt that for
the user to decide.
F000:FFC0 :

FF FF FF FF CA F7 00 F0
INT1

When the internal power is on, the circuit is reset.


Internal circuit vibrator.

30 F7 00 F0 1A F7 00 F0
INT2
FFD0

FFE0

INT3

FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
34

35

Users Manual

Users Manual

The LCD modular has 2 8-bits register-one instruction register (IR) and one
data register (DR).

TABLE-3 CHARACTER CODE

"

R b

% 5

& 6

The instruction register stores the instruction code and address information,
which contains display data RAM and address of character generator RAM.
However, the content of IR is only for read-in but not read-out.
The data register can only temporary store data, the input data first goes
through LCD and is stored in the data register. It will then automatically be
transferred to display data RAM or character generator RAM. When the
CPU read the data from the displayed RAM or from the character generator
RAM, it will also temporary store the data in the data register. When the
address information is input into the instruction register, the relative data will
be moved from display register RAM or character generator RAM to the
data register. Then the data can be read from data register by using the
output instruction of CPU. One way to select the two registers is to select
the register signal (RS) like follow:
RS

R/W

FUNCTION

G W g

Data Bus > instruction Register

X h

Read out busy flags (BUSY FLAG DB7) and address


counter (DB0-DB6)

Input into data register and execute the inner instruction


: (D.R.RAM> D.R. OR C.G.RAM D.R.)

Get the data out form register, and execute the inner
instruction: (D.D.RAM> D.R. OR C.G.RAM> D.R.)

<

= M

>

n o 

ADDRESS COUNTER (A.C.)

o m

The address counter is used to count the display data RAM, or address of
character generator RAM. When the address setting instruction address
will be sent into the address counter.

BUSY FLAG (B.F.)


y

NOTE : 1.The CG RAM generates character patterns in accordance with


the users program.

When busy flag is 1, it indicates that the LCD Modular is executing the
inner instruction and no other instruction can be accepted. The LCD Modular can only accept information when BF is lower to 0.

When the data is sent into or read out from display register RAM or from

2.Shaded areas indicate 5x10 dot character patterns.


40

37

Users Manual
the character generator RAM, the address counter will automatically add or
subtract 1.

Users Manual
TABLE-2 CHARACTER CODES

When the content of address counter is in RS = 0 and R/W = 1, the output


data line is DB0 DB6.

DISPLAY DATA RAM (D.D. RAM)


This is a 80x8 bit RAM, which can store 80 8-bit character code as the
display data, it can be sent to CPU as the RAM data section without going
through RAM section.
Address setting of data display RAM is as followed:
High level bus

Low level bus

AC6 AC5 AC4

AC3 AC2 AC1 AC0

Data display RAM and display position of LCD is as followed:


Character Position : 1
(decimal)

9 10 11 ...... 19 20

First Line
(hexadecimal)

: 00 01 02 03 04 05 06 07 08 09 0A ...... 16 17

Second Line
(hexadecimal)

: 40 41 42 43 44 45 46 47 48 49 4A ...... 56 57

CHARACTER GENERATOR ROM (C.G. ROM)


This ROM generates 5x7 dot of array character has 160 different 8-bit
character code. The shape and code are shown in Table 2 and 3.

CHARACTER GENERATOR RAM (C.G.RAM)


This RAM stores 8 different 5x7 dot of array character which allows the user
to design the program. When the character codes is stored in the C.G.RAM,
which are the same as the characters in Table 2 and 3, they will be sent to
display data RAM. The display data and characters are shown in Table 4.

TIMING GENERATOR

NOTE

Sending signals into the inner register during generating process.

: 1. The CG RAM generates character patterns in accordance with


the users program.
2. Shaded areas indicate 5x10 dot character patterns.

38

39

Users Manual

Users Manual
TABLE-4 RELATIONSHIP AMONG CHARACTER CODE

TABLE-5 INSTRUCTION SET


Code

Instruction

Function

R S R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Clear enter display area, restore


display from shift, and load address
counter with DD RAM address 00H.

Execution
Time (max)

1.64mS

Display
Clear

Display
Cursor
Home

Restore display from shift and load


address counter with DD RAM address 00H

1.64mS

Entry Mode
Set

I/D

Specify cursor advance direction


and display shift mode. This operation takes place after each data
transter.

40PS

Specify activation of display (D), cursor (C), and blinking of character at


cursor postion (B).

40PS

Shift display or more cursor.

40PS

Set Interface data length (DL) and


number of display lines (N).
Load the address counter with a
CG RAM address. Subsequent data
is CG RAM data.

Display
ON/OFF

Display
Cursor
Shift

Function
Set

DL

CG RAM
Address
Set

DD RAM
0
Address
Set
Busy Flag/
0
Address
Counter Read
CG RAM/
1
DD RAM
Data Write
CG RAM/
DD RAM
Data Read

BF

SC RL
N

ACG

AD

Read busy flag (BF) and contents


of address counter (AC).

40PS

Read Data

Read da ta from CG RAM or DD


RAM.

I/D=1 : Increment, I/D=0 : Decrement.


S=1 : Display Shift ON
S/C=1 : Shift Display, S/C=0 : Move Cursor
R/L=1 : Shift Right. R/L=1 : Shift Left
DL=1 : 8 Bit. DL=0 : 4 Bit
N=1 : Dual Line. N=0 : Single Line.
BF=1 : Internal Operation.
BF=0 : Ready for instruction.

DD RAM
CG RAM
ACG
ADD
AC

loworder

40PS
0PS

Write data to CG RAM or DD RAM.

highorder

40PS

Load the address counter with a


DD RAM address. Subsequent data
is DD RAM data.

Write Data

Character Code
(DD RAM Data)
7 6 5 4 3 2 1 0

0 0 0 0 * 0 0 0

ADD

(DD RAM), CG RAM ADDRESS, AND CHARACTER PATTERN (CG RAM)


Character Pattern for 5x7 Foat

0 0 0 0 * 0 0 1

40PS
40PS

: Display data RAM


: Character Generator
RAM
: Character Generator
RAM Address
: Display Data RAM
Address
: Address Counter

0 0 0 0 * 1 1 1

CG RAM
Address
5 4 3 2 1 0
highorder

loworder

0
0
0
0 0 0 0
1
1
1
1
0
0
0
0 0 1 0
1
1
1
1
0
0

highorder

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

0
0
1
1

0
1
0
1

44

* * * 1
1
1
1
1
1
1
* * * 0
* * * 1
0
1
0
1
0
0
* * * 0
* * *

1 1 1
1
1
1
1

NOTE : 1. Symbol * signifies a dont care bit


2. Correct input value for N is predetermined for each model

Character Pattern
(CG RAM Data)
7 6 5 4 3 2 1 0

* Signifies a dont care bit.


41

* * *

loworder
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0

1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0

1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0

0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0

Sample
Character
Pattern
(1)

Cursor
Position
Sample
Character
Pattern
(2)

Users Manual

Users Manual
4. Entry mode set

NOTES:
1. Character code bits 0-2 correspond to CG RAM address bits 3-5. Each
of the 8 unique bit strings designated one of the 8 character patterns.

I/D = 1----------- Increase mode


S = 0----------- Display OFF

2. CG RAM address bits 0-2 designates the row position of each character
pattern. The 8the row is the cursor position. CG RAM data in the 8the
row is ORed with the display cursor. Any 1 bits in the 8the row will
result in the displayed dot regardless of the cursor status (ON/OFF).
Accordingly, if the cursor is to be used, CG RAM data for the 8the row
should be set to 0.

NOTE : If the time for the power to increases from 0.2V to 4.5V is greater
than 0.1ms but less than 10ms, the current cut-off will drop to
0.2V before it rises again. If it takes more than 1ms, the LCD
modular will automatically RESET. Otherwise, it has to depend
on an external software instruction to RESET (As describe below).

3. CG RAM data bits 0-4 correspond to the column position of each


character pattern bit 4 corresponding to the leftmost column of the
character pattern CG RAM data bus are not used for displaying character patterns, but may be used as a general.

Diagram of module RESET power.

4. As shown in tables 2 and 3, character patterns in the CG RAM are


accessed by character codes with bits 4-7 equal to 0. For example,
the character code 00 (HEX) or 80 (HEX), since bit 3 of the character code is a dont care bit (i.e. can take either value 0 or 1).

4.5V

5. CG RAM data 1 produces a dark dot, and data 0 produces a light


dot in the corresponding position on the display panel.

FUNCTIONS OF RESET

0.2V

0.2V

0.2V

USING THE INTERNAL RESET CIRCUIT TO START


LCD Modular internal has an automatic power supply to be used to RESET
when the power rises. During RESET, the busy flag is set. When the
voltage is raised to 4.5V in about 10ms, it is in the busy stage. The
following instructions are then used to set the beginning stage of LCD.

Toff > 1ms.

Trcc
0.1ms <Trcc <10ms.

1. Clear display
2. Function set
DL = 1 ----------- 8-bit data length interface
N = 0 ----------- (single line display)
F = 0 ----------- The source of 5x7 dot of array character
3. Display ON/OFF control
D = 1 ----------- Display OFF
C = 0 ----------- Cursor OFF
B = 0 ----------- Character flashing function OFF
42

43

Users Manual

Users Manual
binary code ADD from 00H until 27H as the first line of from 40H until 67H
as the second line.

READ BUSY FLAG/ADDRESS COUNTER


The busy flag (BF) in LCD can be read from the CPU, using the instruction
of LCD modular is the execution of the internal instruction BF = 1 represents the busy stage (execution of the internal instruction), it will not accept
any instruction at this time until BF = 0.

Initialization by Instructions
If the power conditions for the normal operation of the internal reset circuit
are not satisfied.
LCD unit must be initialized by executing a sense of the instructions. The
procedure fro this initialization process is as follows.
Power ON

Content of address counter and the busy flag will be read out at the same
time, it is a 7-bit binary, the address counter will instruct one of the address, either the character generator RAM or display data RAM. This is
determined by the final input address set instruction.

SEND DATA INTO C.G. RAM/D.D. RAM


Data with 8-bit in length can be sent into the character generator RAM or
the display data RAM. The address of the input data is instructed by the
address counter, however, the address of address counter is influenced by
the final input address set instruction.
After data input whether the address counter add 1 or minus 1 is determined by the design of the module. It can also be designed as location
movement of the display.

Wait 15ms or more


after VDD reaches 4.5V

RS R/W
0

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0

Busy flag cannot be checked before


execution of this instruction.
Function Set (8-Bit Interface)

Wait 4.1ms or more

RS R/W
0

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0

Busy flag cannot be checked before


execution of this instruction.
Function Set (8-Bit Interface)

READ DATA OUT OF C.G. RAM/D.D. RAM


Character generator RAM with 8-bit in length or the display data RAM can
be read by the CPU. The read out data address is instructed by the
address counter. The address counter is instructed by the final input
address set instruction.
This instruction has to be set in C.G. RAM/D.D. RAM address, once shift
cursor instruction of the C.G. RAM/D.D. RAM data is read out, no other
instruction can be read out.
The address setting instruction will read the data address into address
counter.
Shift cursor command will allow the previous address setting to be used
again in order to read the D.D. RAM data. the data can be read from the
C.G. RAM/D.D. RAM after the cursor shift.
After the execution of data address counter add 1 or minus 1 will be set in
the LCD modular.
After the execution of data read out, the display will not shift.
48

Wait 100 Ps or more

RS R/W
0

RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0

Busy flag cannot be checked before


execution of this instruction.
Function Set (8-Bit Interface)

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Function Set

Display Off

Display Clear

I/D

Entry Mode Set


8-Bit Interface,
Single/Dual Line
D isplay, Display Font.

Busy flag can be


checked after these
instructions
are
completed. If the
busy flag is not going to be checked
then a wait tim e
longer than the total execution time
of these instructions is required.
(See Table 5)

Caution: Hereafter, the display format


cannot be changed.

End of Initialization

45

Users Manual

Users Manual

INSTRUCTION DESCRIPTION

When data enters the character generator RAM, the display will not move.

When the LCD is controlled by the CPU, only the instruction register (IR)
and the data register (DR) can be read directly by the CPU. The commands from outside the modular can decide the internal operation of LCD.
These commands include the register selection (RS) signals, read/write (R/
W) signals, and data buffering signals (DB0-DB6).

DISPLAY ON/OFF
D :D=1
- Display ON

Table 5 lists all the useful commands in the LCD modular and the execution
time, these commands are divided into the following group:

Commands of set LCD module

Commands of internal set address RAM

Commands of data transfer in or out from the internal RAM

Other commands

D=0
C : C=1
C=0
B : B=1

- Display OFF
- Cursor display on the display address of the display
counter
- Cursor does not display
- Character blinking of cursor position at feq or fosc=250KHz
freq, therefor all black points and character display will
exchange with each other. Each character display and
overshadow 409.6ms.

DISPLAY/CURSOR SHIFT

When the LCD modular is executing a command it will reject other commands. Except the busy flag/read address counter, the internal counting
period of busy flag is set to as 1. If the CPU wants to send in other
commands it will have to check the busy flag first, until it is cleared to 0
before it send in. The explanation is as followed:

DISPLAY CLEAR COMMAND


This command will put the display data into a empty space code (20H),
address counter will be cleared to 0. When executing this command,
display OFF, the cursor or the character blinking function will be moved to
the most left side if it is in the set condition.

DISPLAY/CURSOR HOME
The address counter will be cleared to 0, content of D.D. RAM will not be
influenced; but if the cursor or the character blinking function is in the set
condition, it will be moved to the most left side position.

ENTRY MODE SET


I/D bit = 1, 1 is added in the address counter after each time it read/write
a display data RAM character code, so that the cursor or the character
blinking function will move one place to the left and vise-versa when I/D=0.
The read/write (R/W) character generator also has the same function.
S bit = 1, but each time it read/write a display data RAM code, it will move
to the display direction and move one space to the left (I/D=0) or one space
to the right (I/D=1). When S=0, the display will not move.
46

S/C R/L
0
0
0
0
1
0
1
1

Cursor move to the left (AC <AC-1)


Cursor move to the right (AC <AC+1)
All the characters and cursor move to the left
All the characters and cursor move to the right

Note : When the display moves, the address counter will not move.

FUNCTION SET
DL
DL=1
DL=0

: Select data length for the interface circuit.


- Using the 8 bits data length.
- Using the 4 bits data length.

Select the display format (one or two lines)

C.G. RAM ADDRESS SET


Address counter and character generator RAM have address which are
driven by the binary 6-bit. when this instruction is driven in, data can be
sent into the CPU and character generator RAM.

D.D. RAM ADDRESS SET


Address counter and display data RAM have addresses which are driven by
the binary 7-bit. When this instruction is driven in, data can be sent into the
CPU and the display data RAM. When N=0 (a single line display), binary
code ADD between 00H and 4FH; when N=1 (a two lines display), the

47

Users Manual

SUB-PROGRAM
Input Parameter :

DX : The first displayed number after the entry


BL : The display location of word at the most left
side.
BH : Which location from BL the character starts.

Output Parameter : AL : The code used for storing functional key.


DX : Store the displayed numbers.
F000:F06C CALL FAA0
The appointed location of BL and BH, the code of input section and effective
address are stored consequently in DX and DI (i.e. DX:DI).
The displayed location of most left side character is instructed by BL, BH
instructs the position from the first character onwards. If BH is smaller than
9 but not equal to 4, BL add to BH will be the exact location of display
location.
The keys

are used to operate the cursor while input numbers. It will


also allow the cursor to move between segment and effective address.
Other than these three functional keys, the rest will transfer to code number
and jump out of subprogram.

The 8086/8088 so-called subprogram has both the same segment calling
and the different segment calling. The different segment calling is used
towards the different. The different segment calling is used towards the
different segment of subprogram. The subprogram of this system program
has to be all in the same segment in order to call the same subprogram (the
same segment and different segment subprogram are different from RET
command). For user convenience, the system program will start from
F000:F040 as the catalog section of the subprogram. In the subprogram
catalog segment, if the same segment subprogram RET is changed to
different segment subprogram RET is changed to different segment subprogram RETF. The user can therefore choose the different segment calling
from any segment to call one of the subprogram in the catalog segment.
Another method of using system subprogram is to use the M command to
move all the programs in the system into the users segment. This allows
direct access to the calling commands in the segment. Since there are
other subprogram that can be called from the subprogram, all the programs
have to be moved together in order to protect each other address (when
every subprogram is being used in the catalog, it should start moving from
F000:EA00-FF4F), it is therefore a waste of space.
The user can add new program into the empty space of catalog section.

: BL : Instruct the most left side word to display location. The rules is the same as (1).
BH : Instruct the position starting from BL, first entry
into the subprogram is set to 0, program execution will follow the operation whether to add or
subtract.
Output Parameter : Al stores the key-in code of functional keys.

OPERATION DESCRIPTION OF SUB-PROGRAM

F000:F070 CALL

Output Parameter : Depends on the execution of subprogram.

Input parameter

FE15

F000:F040 CALL SI
The calling of the implied address will allow the subprogram address to be
registered into the SI calling if a called program is not in the catalog section.
Input Parameter : The calling of subprogram address is instructed by SI.
However, others depend on the needs of the subprogram calling.

Transfer the numbers in AL from ASCII code to hexadecimal to be stored in


lower 4 bits of AL , clear to C-Flag at the same time to 0. But set the CFlag of non-numerical ASCII code to 1, without changing the code of AL.

F000:F044 CALL FEEO

Input Parameter

Input Parameter

: ASCII code of numbers that are stored in AL.

Output Parameter : The ASCII code of the numbers in AL will be transferred


to hexadecimal to be stored in the lower 4 bit, clear the
C-flag to 0 otherwise set C-Flags to 1 with-out changing the AL code.
52

Write all the commands in the AL into the LCD modular.


: AL stores the LCD modular orders that have been written in .

Output Parameter : None

49

Users Manual
F000:F048 CALL FEFO

F000:F05C CALL

Write all the data from AL into the cursor position of the LCD (the position of
the address counter).
Input Parameter

Users Manual

: Written data is stored in AL

FEB5

Change the signs key-in into ASCII code, the undefined signs key will be
transferred to FF to be stored in AL, and clear the C-Flag to 0; otherwise
set the flags to 1 without changing the AL values.

Output Parameter : None

Input Parameter

F000:F04C CALL FF00

Output Parameter : If it is a sign, transfer to ASCII code to be stored in AL


and clear the C-Flag, otherwise, set the C-Flags to 1
without changing AL values.

Read out data from cursor position of LCD (the instructed position of address counter) into AL.
Input Parameter

F000:F060 CALL FDE5

: None

Output Parameter : AL stores the read in data.


F000:F050

CALL

: The key-in value is stored in AL.

FE7A

Change the functional keys into the key-in values (Enter and SP keys as
the ASCII code, whereas others are set by the system program), those
undefined one will be stored as FF in AL and clear the C-Flag to 0.

Read out the key-in (execute only when the key is pressed).

Input Parameter

Input Parameter

Output Parameter : If it is functional key, transfer to key-in code to be


stored in AL and clear the C-Flags, otherwise set the
C-flags to 1 without changing AL values.

: None

Output Parameter : The key-in value is stored in AL.


F000:F054

CALL FE8A

F000:F064 CALL FB35

Change the numerical key-in value into ASCII code, clear the C-Flag to 0 for
numerical key otherwise set 1 for non-numerical key with out changing AL
value.
Input Parameter

: The key-in value is stored in AL

Output Parameter : If it is a numerical key, transfer into the relative ASCII


values, store in AL and clear all flags. All non-numerical keys are set in C-Flag, and AL value changes.
F000:F058

CALL

FEAO

Change the alphabetical key-in value into ASCII code, clear the C-Flags to 0
for alphabetical keys otherwise set 1 for non-alphabetical keys without
changing the AL value.
Input Parameter

: The key-in codes are stored in AL.

: The key-in value is stored in AL

Output Parameter : If is an alphabetical key, transfer to ASCII code to be


stored in AL and clear the C-Flags. Otherwise, the AL
value will not change.

50

A combination of (6) (7) (8) (9) function.


Input Parameter

: The key-in values are stored in AL.

Output Parameter : The AL not only transfer the code but also clear the CFlags to 0. Otherwise set the C-Flag to 1 without changing AL values.
F000:F068

CALL

EA35

Input a 4 digits number at the BX appointed location and store in DX in order


to be displayed in LCD modular. BL will appoint the first position. BH will
appoint BL where to start, BH has to be smaller than 4 & follows the
address counter in the LCD modular. When BL=X0XX XXXX, it is the first
line; when BL = X1XX XXXX, it is the second line. The exact location is the
sum of BL and BH. When input, key and key will operate the cursor
location. If the key-in function is changed to key code, it will leave the
subprogram after it is stored in AL.
The BH is set to 0 for first time entry, the rest will be according to the keyin to determine the code.
51

Users Manual

Users Manual
0:0409

CALL

F000:F044

0:040E
0:0413

CALL
CALL

F000:F050
F000:F058

0:0418

JB

040E

0:041A

CALL

F000:F048

0:041F
0:0422

JMP
HLT

040E

;Call for write-in instruction subprogram


;Call for the read key-in
;Call the alphabetical key code
and transfer into the subprogram
;Ignore the alphabetical key-in,
return to original key-in; otherwise execute the next instruction.
;Key-in code enter into LCD
modular

F000:F074 CALL FE30


After changing the hexadecimal in AL to ASCII code, the higher level is
stored in AH and the lower level is stored in AL.
Input Parameter

: AL stores the exchanged hexadecimal.

Output Parameter : AH stores the higher level ASCII, AL stores the lower
level ASCII.
F000:F078 CALL FF2B
Clear the first line display of the BL, display of D.D. RAM will be stored into
the blank code 20, then the cursor will move back to the starting point.
BL = X0XX XXXX means clearing the first line.
BL = X1XX XXXX means clearing the second line.

Program input starts executing from 400, the first word blinking can be seen
at this time, they can be input again in order to be displayed on LCD. 21st
to 41st word will exceed the first line display boundary, therefore they are
stored in LCD modular but will not be shown. The 41st word will be the first
letter on the second line. Similarly, 61st to 80th word will not be shown.

Input parameter

: BL indicates the number of cleared lines.

Output Parameter : BL stores 80 (first line) or CO (second line).


F000:F07C

CALL FCD5

Clear display (blank code 20 is stored in the display)

Example-2

Input Parameter

Clear second line, display DX value, and DX values are altered by key-in to
be display at LCD.

Output Parameter : None

0:0400

MOV

AL,01

0:0402

MOV

BL,C0

0:0404
0:0409

CALL
MOV

F000:F078
BX,00C2

56

;Clear display commands to be


stored in AL
;Write the set LCD address
counter commands into BL.
CO=1100 0000 represent the
position of second line
;Clear second line
;Input parameter of subprogram
is stored in BX.
;B0-B5 set the word at the
most left side to display position, B6=1 represents the second line, B7 can be any number. After entering subprogram,
it is automatically set to 1
(B=Bit).

F000:f080

: None

CALL

FD20

The cursor blink, waiting for the key to jump out.


Input Parameter

: None

Output Parameter : AL stores the key-in code.


F000:F084

CALL FDC0

Insert the AL lower 4 bit hexadecimal into the DX, the location is determined
by BH. BH must be smaller than r, BH = 0 represents it is inserted into the
most left-sided position of DX.
Input Parameter

: The AL lower 4 bit means an insert into hexadecimal.


DX - means inserted numbers.
BH - indicates inserted location.

Output Parameter : Dx is the code after insertion.

53

Users Manual
F000:F088 CALL FFOA

Input Parameter

Write the AL code into cursor location (inside the address of the address
counter).
Input Parameter

: AL stores the code that is ready for input.

Output Parameter : None

Write the AX code into the cursor location.


: AX stores the code that is ready for input.

Output Parameter : None


F000:F094

CALL

CALL

FE55

Make a beep sound.


Input Parameter

: None

Output Parameter : None


F000:F0A4

F39A

: BL instructs the first word that is ready to read out from


the most left side.

Output Parameter : The number read will be transfer to hexadecimal to be


stored in AX, and clear the C-Flag to 0. Otherwise, the
AL code will return and the C-Flag will be set to 1.
F000:F0A0

F000:F08C CALL FF20

Input Parameter

Users Manual

CALL

FEDA

Write the AX code into the BL indicated location of LCD, BL indicates the
first line or second line as in (11).

Delay subprogram that can be designed, the delay is counted by the


counter # 2 of 8253. It will check the key at the end, in order to jump out
the subprogram after it read.

Input Parameter

Input Parameter

: BL indicates the most left-sided location of the word.


AX stores the codes that are ready for input.

Output parameter : None


F000:F098 CALL FD4A
The LCD which instructed by BL read out 2-bit and change it to hexadecimal to be stored in AL, also clear the C-Flag as 0. If it is a non-numerical
character, the C-Flag will be set to 1 and return once AL is back. the
instruction of BL location is the same as (11).
Input Parameter

: BL indicates the read-in of the first word on the left.

Output Parameter : If read a number, then will transfer to hexadecimal to


be stored in AL. The C-flag has to be cleared to 0,
otherwise it is taken back to AL, moreover the C-Flag
is set to 1 in order to return.

: Before input, counter # 2 of 8253 has to be programmed.


The subprogram will check counter # 2 and Jump out
once react the end.

Output Parameter : ALAL code 00 represents no key-in, otherwise AL


code will be the key-in code. If AH is influenced, it will
change (indefinite value).

Practical Examples of Subprogram:


Example-1
Input alphabetical key, and display at LCD
0:0400

MOV

AL,01

0:0402

CALL

F000:F044

0:0407

MOV

AL,0D

F000:F09C CALL FD7A


The LCD which instructed by BL read out 4-bit, changes to hexadecimal to
be stored in AX, and Clear the C-Flag to 0. If it is non-numerical code, the
C-Flag is set to 1 and is also taken back into AX before it returns. Bl
instructed the number on the most left, the rule ins the same as in (11).

54

55

;Clear display commands to be


stored in AL
;Calling instruction is input into
LCD subprogram
;Command that display ON/
OFF is stored in AL
0D = 0000 1101
Letter blinking cursor OFF display ON Display ON/OFF order

Users Manual

Users Manual
Pin Assignment of CN1 Connector
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

PINS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

SIGNALS

PINS

+5V DC
+5V DC
GND
GND
D3
D7
D2
D6
D1
D5
D0
D4
A7
A15
A6
A14
A5
A13
A4
A12
A3
A11
A2
A10
A1

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
60

SIGNALS
A9
A0
A8
WR
RD
M/IO
M/IO
NC
NC
ALE
ALE
S1
S0
HLDA
HOLD
INTA
INTR
READY
NMI
RESET OUT
RESET IN
CLK OUT (PCLK)
I/O CS
RAM CS
RAM CS

0:040C
0:0411
0:0413

CALL
CMP
JNZ

F000:F068
AL,0D
040A

;BH as 00 instructs the cursor


and the first word location, first
time entering subprogram is set
to 0, the rest will automatically
add or subtract.
;Input 4 bits.
;whether it is Enter key
;Non-Enter key will jump back
to input subprogram, otherwise
it will execute the next command.

Program will clear the second line first, but display 4 bits (DX value) on the
second line and wait for input.
After the key-in numbers, the display value can be altered and stored in DX.
Press Enter key would stop the program.

Example-3
Display 4 bits (AX value) on BL instructed location.
0:0400

MOV

BL,80

0:0402
0:0407

CALL
MOV

F000:F078
AX,8088

0:040A
0:040F

CALL
HLT

F000:F094

;Input parameter of subprogram


is stored in BL. B6=0 represents 1st line
;Clear the first line.
;Input parameter of subprogram
is stored in BL. Am ong
84=1000 0100, B0 to B5 display the first word on the most
left side. B6 as 0 represents
the 1st line display, B7 can be
any value that automatically set
to 1 once enter the subprogram. It is the D.D. RAM address command.
;Display AX.

Program will first clear the first line, then store 8088 into AX to display the
first line.

57

Users Manual

Users Manual

Example-4

DESCRIPTION OF USING PROGRAM OPERATION

Check table to display one line of letter.

F000:F000 magnetic tape ROM program

0:0400
0:0402
0:0407

MOV
CALL
MOV

BL,CO
F000:F078
AL,C2

0:0409

CALL

F000:F044

0:040E
0:040F

PUSH
POP

CS
DS

0:0410

MOV

SI,600

0:0413

MOV

CX,0A

0:0416
0:0417

CLD
LODSB

0:0418

CALL

F000:F048

0:041D

LOOP

0416

0:041F

;Clear the second line


;Parameter of subprogram is
stored in AL. B)-B5 is written
into LCD address counter, instructed the word on the most
left side.
B6 as 1 represents the second line.
B7 as 1 represents the set
D.D.RAM address instruction.
;Commands in AL are written
into LCD
;Segment value set for table
checking
;Starting address of table
checking is stored into SI
;Store table checking length in
CX
;Clear directional flag
;Read in data from table checking section until AL.
;Input AL data into LCD modular.
;CX not equal to 0 would continue execution loop.

HLT

0:0600 41 42 43 44 45 46 47 48 49 50
Program execution at address 0:0400 is stored into the ASCII code of
display data, like followed (can be set oneself):

Before operating, place the cassette in the proper position, then connect
the 3.5mm diameter socket to the input terminal of AUX or MICROPHONE
in the magnetic tape (tape recorder). The IN terminal is connected to the
SPEAKER or EAR of magnetic tape. The starting point of magnetic tape
and COUNTER have to be totally matched. When the volume is turned to
fourth-fifty, the key-in will proceed accordingly:
RESET -> G -> F -> 0 -> 0 -> 0 -> F -> 0 -> 0 -> 0 ->
The following can be seen after key-in:

VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
VMC - 8 6 0 9 . . 7 F F F
>G F 0 0 0 : F 0 0 0
VMC - 8 6 0 9 . . 7 F F F
IN F000 : 0400 0400
Press LIST in order to choose IN or OUT as input segment : effective
address (start) and the ending Effective address, then a RETURN key,
Before pressing RETURN key, press REC to execute first. When finish, the
cursor will return to the starting effective address.
Similarly when choosing IN, the device will execute the function IN first
before it again press PLAY key on the magnetic tape.
RS-232: Refer to the description card of RS-232 (an operation manual is
given with every purchase of F000:F003 RS-232).

Program starts from 0:600 to be stored as ASCII data code and display on
LCD modular i.e. A B C D E F G H I J.

58

59

Users Manual

Users Manual

MASM MACRO-ASSEMBLER USES WITH VMC-8609 (Optional)

Pin Assignment of CN9 Connector for LCD Display

To download a file assembled using MASM software in 8086/8088 kit.

8 10 12 14 16

1) Edit the assembly program using any text editor to generate any .ASM
file. For example DEMO.ASM.

2) Execute MASM DEMO <CR>. A message appears on screen:


Object filename [filename .OBJ] :
Press <CR> and again a message appears on screen:
Source listing [NUL.LST]:
If no source listing is required, then press <CR>, otherwise enter requisite DEMO. Next message which appears on screen is:
Cross-reference [NUL.CRT]:
Press Enter. If the assembly program does not contain any error, then
the following message appears:
0 Warning Errors
0 Severe Errors
However if assembly program contain errors, then error messages with
line number is edited program will be displayed. At the end a file with
.OBJ extension will be created using MASM. For more details refer
MASM Manual.
3) Execute LINK DEMO <CR>. Following message appears:
Rune file [filename .EXE]: <CR>
List file [NUL.MAP]: <CR>
Libraries [.LIB]: <CR>
At the end a file with .EXE extension will be created.
4) Execute EXE2.BIN DEMO <CR>
A file with DEMO.BIN extension will be created.
5) Execute ASCBIN <DEMO.BIN> <CR>
Message which appears are:
Hex filename: <CR>
Start address: <CR>
A file with .HEX extension will be made.

64



9 11 13 15

PIN NO.

SYMBOL

DESCRIPTION

PIN NO.

SYMBOL

DESCRIPTION

BD7

DATA BUS BIT 7

CHIP ENABLE

BD6

DATA BUS BIT 6

10

R/W

READ/WRITE

BD5

DATA BUS BIT 5

11

RS

REGISTER SELECT

BD4

DATA BUS BIT 4

12

VO

CONTRAST CONTROL

BD3

DATA BUS BIT 3

13

VDD

+5V

BD2

DATA BUS BIT 2

14

VSS

GROUND

BD1

DATA BUS BIT 1

15

N.C.

BD0

DATA BUS BIT 0

16

N.C.

8255 Connector CN3, CN4 & CN5 (26 Pin Connector) Detail
2

8 10 12 14 16 18 20 22 24 26



9 11 13 15 17 19 21 23 25

PIN

SIGNAL

PIN

SIGNAL

1
2
3
4
5
6
7
8
9
10
11
12
13

PC4
PC5
PC2
PC3
PC0
PC1
PB6
PB7
PB4
PB5
PB2
PB3
PB0

14
15
16
17
18
19
20
21
22
23
24
25
26

PB1
PA6
PA7
PA4
PA5
PA2
PA3
PA0
PA1
PC6
PC7
GND
GND

61

Users Manual
Timer/Interrupt Connector CN6 (26 Pin Connector) Detail
2

8 10 12 14 16 18 20 22 24 26



9 11 13 15 17 19 21 23 25

PIN

SIGNAL

PIN

SIGNAL

1
2
3
4
5
6
7
8
9
10
11
12
13

CAS0
CAS1
CAS2
INTR
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
CLK0

14
15
16
17
18
19
20
21
22
23
24
25
26

GATE0
OUT0
CLK1
GATE1
OUT1
CLK2
GATE2
OUT2
NC
NC
NC
GND
GND

Battery Backup
1

Signals

1
2
3
4
5
6
7
8
9

Not Connected
Receive Data (Rx)
Transmit Data (Tx)
Data Terminal Ready (DTR)
Ground (GND)
Data Set Ready (DSR)
Request To Send (RTS)
Clear To Send (CTS)
Not Connected

9 PIN FEMALE CONNECTOR

2....................................................... 3
3....................................................... 2

4....................................................... 6

JP0

Pin No.

1....................................................... 1

Vcc
3

The Serial Interface is provided using 8251 USART whose transmit & receive
clock is generated by Timer-1 of 8253. The RS-232C signals are available
on 9-pin Female Connector CN5 and are as follows:

9 PIN MALE CONNECTOR

JP4
2

SERIAL INTERFACE (Optional)

To communicate VMC-8609 with the Computer, the IBM PC has to run any
communication software like TANGO, XTALK, or any other software. The
CN5 connector is to be connected to the COM Port 1 or 2 of the PC with
the cable having cross connections as follows:

JUMPERS SETTING

Users Manual

5....................................................... 5
Clock Setting
3MHz (Default)

Clock Setting
1MHz
1

6....................................................... 4
7....................................................... 8
8....................................................... 7
9....................................................... 9
To make our explanation easier, we will use XTALK software for communicating from Computer to VMC-8609 or user can use Hyper Terminal utility of
WIN 95/98/XP software.

62

63

Users Manual

Users Manual
PROGRAM - 2
To find the maximum no. in a given string (16 Bytes long) and store it in
location 0510.
ADDRESS

OP CODE

MNEMONIC

0400

BE 00 05

MOV SI, 0500

0403

B9 10 00

0406
0408

B4 00
3A 24

040A

73 02

040C

8A 24

040E

46

040F

E0 F7

0411

88 24

Load SI reg. with starting address of string.


MOV CX, 0010 Initialize Counter Reg. (with
the length of string i.e. no. of
bytes).
MOV AH, 00
Initialize the 8 bit Acc.
CMP AH,[SI]
The 1st data byte of the
string with 00.
JAE 040E
If both bytes match (above is
equal) then branch to (l).
MOV AH,[SI]
Else, move the contents of
(0500) into 8 bit ACC, i.e., a
real no. in AH.
INC SI
Point at the next address of
string.
LOOPNE 0408 Decrement the counter value,
if not zero, continue processing (searching to the Max.
No. continued.)
MOV[SI],AH
Max. No. in 0510 address.

0513

F4

HLT

COMMENTS

The origin difined in the above line is the first origin defined in your ASM
file. From this location onwards your file will be loaded while one is
downloading this file to the VT-86/88. It is important to note this address
from the ASM file. In the above example, we have entered 200 which is
noted from DEMO.ASM file.
After execution of the above file DEMO.ASC will be created which can
be transmitted or downloaded to VMC-8609 kit.

Halt.

For Example
AFTER EXECUTION
0500
0501
0502
0503
0504
0505
0506
0507

:
:
:
:
:
:
:
:

01
02
03
04
05
06
15
07

0508
0509
050A
050B
050C
050D
050E
050F

:
:
:
:
:
:
:
:

12
08
09
0A
0B
0E
0C
0D
68

0510

15

65

Users Manual

Users Manual

SAMPLE PROGRAMS
result of add. is to be started
storing). Also its the starting address of MSBs of array.

INTRODUCTION
The monitor software of VMC-8609 resides in 32K Byte of EPROM. The
system software has certain useful routines, which can be utilised by the
user for developing his programs. The address of these routines are given in
the appendix at the end of the manual.

040A

8B 04

MOV AX,[SI]

PROGRAMMING EXAMPLE

Load Data bytes (which are


in location 0500 and 0501 in
16 bit ACC.
i.e. (0500) - AH

The following sample programs are given here to make the user familiarise
with the operation of VMC-8609.

(0301) - AL
040C

11 05

ADC [DI],AX

Add the contents (MS Bytes)


of 0508, 0509 with the contents (LS Bytes) of 0500 +
0501 and store the result in
location 0508 onwards.

040E

46

INC SI

6) Calculate the no. of bytes in a string of data.

040F

46

INC SI

Point at 0502 LOCN (Next


relevant source LOCN).
Point at next relevant LOCN,

7) Convert the string of data to its compliment form.

0410
0411

47
47

INC DI
INC DI

0412

49

DEC CX

Decrement the counter.

0413

75 F5

JNE 040A

If not zero (i.e. CX =0000)


then continue addition.

0415

F4

HLT

Else, Halt.

1) Addition of two binary number of 8 byte length.


2) Find the largest number in a given string.
3) Sort a string of bytes in descending order.
4) ASCII multiplication.
5) Divide a string of unpacked ASCII digits.

PROGRAM-1

i.e. 0504.

TO ADD two Binary numbers each 8 Bytes long:


ADDRESS

OP CODE

MNEMONIC

COMMENTS

0400

F8

CLC

Clear Carry Flag.

0401

B9 04 00

MOV CX,0004

Load Counter register with no.


of times addition to be perform ed (i.e. Initialize the
counter register).

0404

BE 00 05

MOV SI,0500

Load source Index Reg. with


starting address of Ist Binary
no. (LSBs array).

0407

BF 08 05

MOV DI, 0508

Load Destination Index Reg.


with Dest. Address (where the

66

For example
AFTER EXECUTION
0500
0501
0502
0503
0504
0505
0506
0507

:
:
:
:
:
:
:
:

01
02
03
04
05
06
07
08

0508
0509
050A
050B
050C
050D
050E
050F

:
:
:
:
:
:
:
:

0A
0b
0C
0E
0F
10
11
12
67

0508
0509
050A
050B
050C
050D
050E
050F

:
:
:
:
:
:
:
:

0B
0D
0F
12
14
16
18
1A

Users Manual

Users Manual

For Example

PROGRAM - 3
To sort a string of a no. of bytes in descending order:
AFTER EXECUTION
(Unpacked BCD Digits)

0500
0501
0502
0503
0504
0505
0506
0507

:
:
:
:
:
:
:
:

31
32
33
34
35
36
31
32

0508
0509
050A
050B
050C
050D
050E
050F

:
:
:
:
:
:
:
:

04
08
02
07
01
06
06
08

ADDRESS

OP CODE

MNEMONIC

COMMENTS

0400

BE 00 05

MOV SI,0500

Initialize SI Reg. with Mem


LOCN 0500.

0403

8B 1C

MOV BX, [SI]

BX has the no. of bytes (to be


used for sorting) LOCNS 0500
& 0501.

0405

4B

DEC BX

Decrement the no. of bytes


by one.

0406

8B 0C

MOV CX [SI]

Also CX has the no. of bytes


in LOCNS 0500 and 0501.

0408

49

DEC CX

Decrement the no. of bytes


by one.

0409

BE 02 05

MOV SI, 0502

Initialize SI reg. with the starting address of string (having


data bytes).

040C

8A 04

MOV AL, [SI]

Move the first data byte of


string into AL.

040E

46

INC SI

Point at the next bytes of the


string.

040F

3A 04

COMP AL,[SI]

Compare the two bytes of


string.

0411

73 06

JAE 0419

If two bytes are equal or 1st


byte is above that the second
Byte Branch to (1).

0413

86 04

XCHG AL, [SI] Else

0415

4E

DEC SI

0416

88 04

MOV [SI],AL

0418

46

INC SI

Point at the next LOCN of the


string.

0419

E2 F1

LOOP 040C

Loop if CX is not zero (i.e.

PROGRAM - 5
To Divide a String of Unpacked ASCII Digits:
ADDRESS

OP CODE

MNEMONIC

COMMENTS

0400

B2 36

MOV DL, 36

DL having the divisor, a single


8 bit ASCII Digit.

0402

BE 00 05

MOV SL, 05 00 Load SI with the starting address of ASCII string.

0405

BF 08 05

MOV DI, 0508

0408

B9 08 00

MOV CX, 0008 Initialize the counter Reg.


with the no. of bytes in the
string.

040B

80 E2 0F

AND DL, 0F

MS nibble of DL contents is
zeroed.

040E

32 E4

XOR AH,AH

Initialize the 8 bit ACC (=00)

0410

AC

LODSB

Load AL with the contents of


address accessed by SI reg.
and increment SI reg. i.e.
point at the next address
LOCN.

72

Load DI with the starting address of the result LOCNS.

Second byte is less than first


byte and swap (interchange)
the two bytes.

69

Users Manual
continue processing till z=0)
041B

4B

041C

BE 00 05

DEC BX

MOV SI,0500

041F

75 E5

JNZ 0406

0421

F4

HLT

At this juncture, first sorting


will be over i.e. first no. is
logically compared with the
rest of the nos. For the correct sorting, all the nos. must
be compared with each other
logically, i.e. above processing should be carried out no.
of bytes times.
Halt.

For Example
AFTER EXECUTION
0500
0501
0502
0503
0504
0505
0506

:
:
:
:
:
:
:

05
00
20
25
28
15
07

0502
0503
0504
0505
0506

:
:
:
:
:

28
25
20
15
07

PROGRAM - 4

ASCII MULTIPLICATION
To multiply an ASCII string of eight numbers by a single ASCII digit. The
result is a string of unpacked BCD digits.
ADDRESS

OP CODE

MNEMONIC

COMMENTS

0400

BE 00 05

MOV SI, 0500

Load SI reg. with starting address of string.

0403

BF 08 05

MOV DI, 0508

Load DI reg. with the starting


address of result LOCNS.

70

Users Manual
0406

B2 34

MOV DL, 34

Load DL with the Multiplier


ASCII Digit.

0408

B9 08 00

MOV CX,0008

Load counter reg. with the no.


of bytes in the string.

040B

C6 05 00

MOV [DI],00

040E

80 E2 0F

ANDL, 0F

MS nibble of Multiplier is zeroed.

0411

8A 04

MOV AL, [SI]

First ASCII no. of string in AL.

0413

46

INC SI

Point at the next LOCN in


string (of ASCII Nos.)

0414

80 E0 0F

AND AL, 0F

MS nibble at Multiplier no gap


and is also zeroed.

0417

F6 E2

MUI DL

Perform the fn. AX = AL* DL

0419

D4 0A

AAM

Perform the fn. AH=AL/0A,


AL=remainder.

041B

02 05

ADD AL,[DI]

The contents of AL (remainder obtained by performing the


above operation)

041D

37

AAA

Added with 00 which are in


1st Dest. LOCN. The contents of AL are unpacked
Decimal no. and are stored in
1st Dest. LOCN (=0508).

041E

88 05

MOV [DI],AL

0420

47

INC DI

Point at the next Dest. LOCN.

0421

88 25

MOV [DI],AH

Contents of AH (Quotient got


in AAM operation) are moved
in next best. LOCN (0509).

0423

49

DEC CX

Decrement the Counter reg.

0424

75 EB

JNZ 0411

If not zero, continue multiply


and storing unpacked BCD
digits, ELSE.

0426

F4

HLT

HALT.

71

Users Manual

Users Manual

Serial Port Porgramming Examples

0411

80 E0 0F

AND AL,0F

This following program will character from PC and displayed on LCD. The
baud rate parameters to be set are same as described earlier in this
chapter. Use XTALK or any other communication software (Hyper Terminal
utility of Window software) on your PC and all connections are to be made.

MS nibble of AL contents is
also zeroed.

0414

D5 0A

AAD

Perform the fn. AL=(AH * OA)


+ AL), AH = 00.

0416

F6 F2

DIV DL

Perform the fn. AD/DL AL =


Quotient and AH = reminder.

0418

AA

STOSB

The contents of AL are stored


in the Address pointed to by
the DI reg. and next address
LOCN in DI reg. is pointed (i.e.
current address LOCN of DI
reg. is incremented by one).

0419

E0 F5

LOOP NZ 0410 Continue dividing the unpacked


ASCII digits if the contents of
C are not zeroed; else.

041B

F4

HLT

VMC-8609 communicates with the following parameters for these Examples:


PARAMETERS TO SET

COMMANDS TO GIVE IN XTALK MODE

SPEED
DUPLEX MODE
PARITY
STOP BITS
DATA BITS
CWAIT
LWAIT
EMLATION

4800 BAUDRATE SP
FULL
NONE
2
8
DELAY
10
DELAY
10
NONE

4800
DU
PA
ST
DA
CW
LW
EM

FULL
ODD
2
8
10
10
NONE

(a) The program receives the character from PC and display it on LCD.
0400

B0 B7

MOV

AL,B7

0402
0404

E6 06
B0 13

OUT
MOV

06,AL
AL,13

0406
0408
040A
040C
040E
0410

E6
B0
E6
B0
E6
B0

OUT
MOV
OUT
MOV
OUT
MOV

04,AL
AL,00
04,AL
AL,4E
52,AL
AL,05

0412
0414
0419
041B
0420
0423
0425

E6 52
OUT
52,AL
9A 7C F0 00 F0
LM: CALL F000:F07C ;clear the display
B3 80
MOV
BL,80
;delete the first line
9A 78 F0 00 F0 CALL F000:F078
B9 14 00
MOV
CX,14
E4 52
L1: IN
AL,52
;check for Rx RDY signal
24 02
AND
AL,02

04
00
04
4E
52
05

76

;control word format of


8253
;count is given to set the
baud rate at 4800

;mode instruction format


;in asynchronous mode
;command instruction format make transit enable
and receive enable high

Halt.

For Example
AFTER EXECUTION
0500
0501
0502
0503
0504
0505
0506
0507

:
:
:
:
:
:
:
:

31
32
33
34
35
36
31
32

0508
0509
050A
050B
050C
050D
050E
050F

:
:
:
:
:
:
:
:

00
02
00
05
07
06
00
02

PROGRAM - 6
To calculate the no. of bytes in a string starting from 0502 up to an identifier
(data byte) placed in AL reg. The actual count will be in LOCN 0500 &
0501.

73

Users Manual
ADDRESS

OP CODE

MNEMONIC

COMMENTS

0400

BE 00 05

MOV SI, 0500

Load SI reg. with the starting


Address where the result is
to be stored.

0403

B9 FF FF

MOV CX, FFFF Initialize the counter register.

0406

BF 02 05

MOV DI, 0502

Load DI reg. with the starting


address of string.

0409

B0 05

MOV AL, 05

Store the identifier in ASL.

040B

F2 AE

REPNZ

Data byte accessed by DI


reg.compared with identifier
without altering either of the
contents, this comparing continuous with the incrementing
of DI contents (Address
LOCN) till the two bytes
match. With each
scanning the contents of CX
go on decrement by one.

040D

F7 D1

NOT CX

2S complemented CX &
Move CX 89 0C MOV [SI],
CX 040F contents in 0500.

040F

89 0C

MOV [SI], CX

store the number of bytes


in memory location

0411

F4

HLT

Terminate the program.

For Example
Let (509) = 05

Let (0500) = 05

Then after executing the program


(0501) = 00

CX = 0008 & (0500) = 08

PROGRAM - 7
A Data string of no. of bytes (to be specified in CX reg.) is located from the
starting address 0500. This data string is to be converted to its equivalent
2' S complement Form and the result is to be stored from 0600 on wards.

74

Users Manual
ADDRESS
0400

OP CODE
BE 00 05

0403

BF 00 06

0406

B9 10 00

0409

AC

040A

F6 D8

040C

AA

040D

E0 FA

040F

F4

MNEMONIC
MOV SI, 0500

COMMENTS
Load SI reg., with the starting
address of data string.
MOV DI, 0600 Load DI with the starting address of result LOCNS.
MOV CX, 0010 Load CX with the no. of bytes
in the string.
LODSB
Load AL with Data byte accessed by SI reg. and increment the address LOCN in SI
reg.
NEG AL
The contents of AL are 2s
complemented.
STOSB
Store AL contents in LOCN
pointed to by DI ref. & increment the current Location in
DI reg.
Loop NZ 0409 If CX = 0000, continue 2s
complementing the data in
string else;
HLT
Halt.

For Example
AFTER EXECUTION
0500
0501
0502
0503
0504
0505
0506
0507
0508
0509
050A
050B
050C
050D
050E
050F

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10

0600
0601
0602
0603
0604
0605
0606
0607
0608
0609
060A
060B
060C
060D
060E
060F

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

FF
FE
FD
FC
FB
FA
F9
F8
F7
F6
F5
F4
F3
F2
F1
F0
75

Users Manual

Users Manual
043F
0440

AC
9A 48 F0 00 F0

L0DSB
CALL
F000:F048

0445
0447
0448

E2 F7
FB
E9 FD FF

LOOP
STI
JMP

;input AL data into LCD


modulator

9A
B3
9A
B0

200E
2013
2014
2015
2018

7C F0 00 F0
80
78 F0 00 F0
86

;set interrupt flag


0448

CALL
MOV
CALL
MOV

F000:F07C
BL,80
F000:F078
AL,86

9A 44 F0 00 F0
0E
1F
BE 21 06

CALL
PUSH
POP
MOV

F000:F044
CS
DS
SI,621

B9 0D 00

MOV

CX,0D

201B FC
L3: CLD
201C AC
L0DSB
201D 9A 48 F0 00 F0
CALL
F000:F048
2022
2024

E2 F7
CF

0600

57
46
49
45

0621

41
4F
52
52

LOOP
IRET
49
52
30
52

54
20
20
55

49 4E 47 20
49 4E 54 FF
49 4E 54
50 54

;clear the display


;delete the first line
;write all the commands
in AL into LCD modulator

;addr of table is stored


in SI
;table length stored in
CX

;input AL data into LCD


modulator

JE
IN

042B
0430
0432
0434
0439
043C
043E
0440
0442

9A 48 F0 00 F0
E2 F1
B3 C0
9A 78 F0 00 F0
B9 14 00
E4 52
2402
74FA
E4 50

CALL
LOOP
MOV
CALL
MOV
L2: IN
AND
JE
IN

0444 9A 48 F0 00 F0
0449 E2 F1
044B E9 C6 FF

CALL
LOOP
JMP

0423
AL,50

Execute using G 000:0400 and press any key on the PC keyboard, same
will be displayed on the LCD display of the VMC-8609.
(b) The following example will transmits characters to PC and simultaneously display on LCD.
0400

B0 B7

MOV

AL,B7

;return to the execution


program
WAITING FOR IRQ0
INTERRUPT

0402
0404

E6 06
B0 13

OUT
MOV

06,AL
AL,13

0406
0408
040A
040C

E6
B0
E6
B0

04
00
04
4E

OUT
MOV
OUT
MOV

04,AL
AL,00
04,AL
AL,4E

040E E6 52
0410 B0 05

OUT
MOV

52,AL
AL,05

The beep sound can be generated by frequency generated by 8253 Timer-0


whose gte is controlled by PC2 and output is enabled by PC3 of 8255. The
routine at F000:F0A0 will generate a beep sound for 2 seconds.
CALL
INT 3

F000:F0A0

;call beep sound routine


;break address

Execute from 0000:0400, a beep sound can be heard.

80

;character is received from


CRT terminal & displayed
into LCD modulator in first
line

F000:F048
0423
BL,C0
;delete second line
F000:F078
CX,0014
AL,52
;check for Rx RDY signal
AL,02
043C
AL,50
;received the character in
second line
F000:F048
043C
0414

201B

BEEP

0000:0400 9A A0 F0 00 F0
0000:0405 CC

74 FA
E4 50

43E

Interrupt sub-routine at 0000:2000


2000
2005
2007
200C

0427
0429

0412
0414
0419
041C

E6
9A
B9
B3

52
7C F0 00 F0
14 00
80

OUT
L3: CALL
MOV
MOV

52,AL
F000:F07C
CX,0014
BL,80
77

;control word format for


8253
;count is given to set the
baud rate at 4800

;mode instruction format


in asynchronous mode
;make transmit enable
and receive enable high
;clear the display
;delete the first line

Users Manual
041E 9A 78 F0 00 F0
0423 51
0424 9A 50 F0 00 F0

CALL F000:F078
L2: PUSH CX
CALL F000:F050

0429

9A 58 F0 00 F0

042E
0433
0434
0436
0438
043A
043B

9A 48 F0 00 F0
50
E4 52
24 01
74 FA
58
E6 50

CALL
PUSH
L1: IN
AND
JE
POP
OUT

F000:F048
AX
AL,52
AL,01
0434
AX
50,AL

043D
043E
0440
0443
0445
044A
044B
0450

59
E2
B9
B3
9A
51
9A
9A

POP
LOOP
MOV
MOV
CALL
L5: PUSH
CALL
CALL

CX
0423
CX,0014
BL,80
F000:F078
CX
F000:F050
F000:F058

0455

9A 48 F0 00 F0

045A
045B
045D
045F
0461
0462

50
E4 52
24 01
74 FA
58
E6 50

0464
0465
0467

59
E2 E3
E9 AA FF

E3
14 00
80
78 F0 00 F0
50 F0 00 F0
58 F0 00 F0

CALL

CALL

F000:F048

F000:F048

PUSH
L4: IN
AND
JE
POP
OUT

AX
AL,52
AL,01
045B
AX
50,AL

POP
LOOP
JMP

CX
044A
0414

;call for the read key in


CALL F000:F058
;call the alphabetical key
code and transfer into
subprogram
;key in code enter into
LCD modulator.

;check for TxRDY signal

;trnsmit the character to


CRT terminal

;delete the first line

;call for the read key in


;call the alphabetical key
code & transfer into subprogram
;key in code enter into
LCD modulator
;check for TxRDY signal

;Transmit the character


to CRT terminal

Execute using G command from 0000:0400 and press any key of the
VMC-8609 keyboard, the same will be displayed on the LCD and on the
screen of PC.

Users Manual
Note : Keep all DIP Switch position at ON Position (SW5) for following
program.

8259 Interrupt Controller Program


The 8259 used in our VMC-8609 is at I/O address 30 & 31.
The following program illustrates the use of IRQ0 of 8259. Whenever user
made 18th Pin of 8259 or 5 Pin of CN6 Connector is made low. The
0000:400 program branches to 2000 address.
0400

B8 00 00

MOV

AX,0000

0403
0405

8E D8
B8 00 20

MOV
MOV

DS,AX
AX,2000

0408
040C
040F
0413
0415
0417
0419
041B
0413
041F
0421
0423
0428

89 06 00 00
B8 00 00
89 06 02 00
B0 17
E6 30
B0 00
E6 32
B0 01
E6 32
B0 FE
E6 32
9A 7C F0 00 F0
B3 80

MOV
MOV
MOV
MOV
OUT
MOV
OUT
MOV
OUT
MOV
OUT
CALL
MOV

[0000],AX
AX,0000
[0002],AX
AL,17
30,AL
AL,00
32,AL
AL,01
32,AL
AL,FE
32,AL
F0000:F07C
BL,80

042A
042F

9A 78 F0 00 F0
B080

CALL
MOV

F000:F078
AL,80

0431
0436
0437
0438

9A 44 F0 00 F0
0E
1F
B3 00 06

CALL
PUSH
POP
MOV

F000:F044
CS
DS
SI,600

043B B9 0F 00
043E FC

78

MOV
L1: CLD

;data segment is initialize to zero


;interrupt location is defined

;ICW1 Command
;ICW2 Command
;ICW4 Command
;unmask IRQ0
;clear display
;input parameter of subprogram is stored in BL,
clear 1st line
;write all the commands
in AL into LCD modulator

;starting addr of table is


stored into SI
CX,000F
;store table checking
length in CX
;clear direction flag

79

Users Manual

Users Manual

PROCEDURE OF INTERFACING BETWEEN KIT & PC USING


HYPER TERMINAL FACILITY OF WIN 95/98/ME/2000/XP.
1. SWITCH ON PC AS WELL AS KIT AND CONNECT RS-232 CABLE
BETWEEN KIT AND PC COM PORT 01 OR 02
2. ENABLE HYPER TERMINAL FROM WINDOW APPLICATION
(START/PROGRAMS/ACCESSORIES/COMMUNICATIONS/HYPER TERMINAL)
3. CLICK ON HYPERTRM ICON AND GIVE ANY NAME (FOR SETTING
PARAMETERS) AND CLICK OK.
4. CHOOSE DIRECT TO COM1 OR COM2 AND CLICK OK.
5. SET PARAMETER AS FOLLOWS :
FOR 8086 KIT
BITS PER SECOND
4800
DATA BITS
8
PARITY
ODD
STOP BITS
2
FLOW CONTROL
NONE
6. GO ON MENU BAR SELECT FILEPROPERTIESSETTINGASCII
SETUP
ASCII SENDING: LINE DELAY
20
CHARACTER DELAY
20

ASCII RECEVING:

FORCE INCOMING
WRAP LINES THAT

ENABLE

UPLOADING PROCEDURE FROM KIT TO PC FOR 8086 KIT


Hyper Terminal utility provides a feature by which the data stored in VMC8609 can be stored in the floppy diskette of PC/XT/AT. This can be achieved
by following the instructions given as below:

Example
We are storing the program/data of VMC-8609 from 0000:0400 (Starting
address) to 0000:04FF (End address) as an example to demonstrate the
UPLOADING & DOWNLOADING features.
81

Users Manual
a) On VMC-8609, execute from F000:F003 using G command as follows:

VMC - 8 6 0 9
G F000 : F003

. . 7FFF

Press Enter key and the following will come on the display:

RS - 2 3 2
4 8 0 0 . BPS
IN
F000 : 0400
Press F7 key to come in the OUT mode.

RS - 2 3 2
4 8 0 0 . BPS
OU T F 0 0 0 : 0 4 0 0 0 4 0 0
1st location indicates the starting address (F000:0400) and the 2nd
location indicates the end address (0400) of the memory area to be
transmitted on to the Serial Port. Change this to 0000:0400 to 04FF as
follows:

RS - 2 3 2
4 8 0 0 . BPS
OU T 0 0 0 0 : 0 4 0 0 0 4 F F
1. ON MENU BAR SELECT TRANSFERCAPATURE TEXT
2. CLICK ON IT AND GIVE ANY NAME WITH TXT EXTENSION (PATH:
FILES\ACCESSORIES\HYPER TERMINAL\XXX.TXT) AND CLICK ON
START.
3. AFTER THAT PRESS ENTER KEY OF VMC-8609AD KIT KEYBOARD
DATA FIELD WILL APPEAR ON HYPER TERMINAL SCREEN.

Users Manual
DOWNLOADING PROCEDURE FORM PC TO KIT FOR 8086 KIT
a) On VMC-8609, execute from F000:F003 using G command as follows:

VMC - 8 6 0 9
G F000 : F003

Press Enter key and the following will come on the display:

RS - 2 3 2
4 8 0 0 . BPS
IN
F000 : 0400
Change the location from F000:0400 to 0000:0400. This is the 1st RAM
location data will be received from the PC and this address will keep on
incrementing on receipt of each Data Byte.

IN

RS - 2 3 2
4 8 0 0 . BPS
0000 : 0400

1. IF UNABLE TO OPEN COM1 MESSAGE APPEAR CLICK ON OK AND


GO IN MENU BAR SELECT FILEPROPERTIESCONNECT USING
DIRECT TO COM1 CHANGE OPPSITE COM AND CLICK ON OK.
2. THEN GO IN MENU BAR SELECT TRANSFERSEND TEXT FILE
3. CLICK ON XXX.TXT FILE AND CLICK OPEN IT.
4. AFTER THAT ADDRESS FIELD WILL GO ON MOVING TILL THE LAST
ADDRESS FIELD AT WHERE USER HAVE SAVED XXX.TXT FILE.

4. GO IN MENU BAR SELECT TRANSFERCAPATURE TEXT


STOPFILESAVE.
5. BY DOING THIS YOU CAN SAVE ANY DATA IN GIVEN PATH AS
ABOVE.

82

. . 7FFF

83

BLCOK DIAGRAM OF VMC-8609 MICROPROCESSOR TRAINER KIT (BASED 8086/88)


CN7

8255-II

8255-III

REAL TIME
CLOCK

U30

11.0592
MHz

8255-I

U29
TIMER/
COUNTER

U26

11.0592
MHz

U25

U27
USART
INTERFACE

U24

U28
INTERRUPT
CONTROLLER

MAINRS-232

BATTERY
BACKUP
MEMORY AREA

BUZZER

1
2
3
JP4

U7

U10

U12

ODD RAM
U21
U8

U4
U5

U6

20 X 2 L CD

U17

U16

U18

U19

SELECTION MODE

U1

8086 CPU

U14

U15
U9

U2

U13

12.000
MHz

EVEN RAM
U20

U3

U11

ODD ROM
U23

ODD RAM
U22

DISPLA Y

VMC-8609 MICROPROCESSOR TRAINING KIT (BASED-8086/88)

IBMPC KEYBOARD

You might also like