Professional Documents
Culture Documents
iiii
Users Manual
Users Manual
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.
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.
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
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.
:
:
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
:
:
:
:
:
:
:
VMC - 8 6 0 9 . . 7 F F F
>A . D . F . G . I . M . P . T . U .
ASSEMBLE
UNASSEMBLE
DUMP
TRACE
FILL
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
VMC - 8 6 0 9
0402
. . 7FFF
0400
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.
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
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
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
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
0400
SHIFT + F5
M_ V B L , C 0
Cursor position.
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
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
END
Syntax is as follows:
12
D 0400
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
0000 : 0400
B3 C0 9A
7 8 F 0 0 0 F 0 BB
Usekey
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
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 .
VMC - 8 6 0 9
D 0400
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 .
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
Target
Segment Base
Destination 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)
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)
16
13
Users Manual
Users Manual
Example
To break point at 0402, 0407 and 0411 in the example given on Page-3, the
following steps are to be taken:
F7
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
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
VMC - 8 6 0 9
G 0000 : 0400
. . 7FFF
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
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.
Users Manual
Example
U
F000:F750
E7FF
Enter
400
Enter
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
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.
Syntax :
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.
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 -
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
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
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
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
0 0 0 0 : 0 4 0 2 B32 0
MOV
BL , 2 0
NOTES :
1)
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.
ADDRESS DIVISION
MEMORY SECTION
ADDRESS
PURPOSES
0000:0000
RAM AREA
0000:FFFF
0000 : 0406
>A 4 0 4
7303
F000:0000
F000:FFFF
28
25
Users Manual
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
SP
SI
0000
0000
BP
DI
0000
0000
26
Users Manual
(c) THIRD GROUP
IP
CS
0000
0000
FL
DS
0000
0000
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
I/O ADDRESS
The addresses of the various chips in I/O mapped in VMC-8609/8609AD are
as follows:
Device Name
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
32
Connector
8255-I (PPI)
Port Address
8251
(USART)
Command/
Status Word
Data Register
CWR
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
0000:0400
to
0000:7FFF
0000:039C
TRACE Buffer
BIT
:
:
:
:
:
:
:
:
0000:03AF
0000:03D8
CONTENTS OF ROM
ADDRESS
TEXT
DESCRIPTION
F000:F000
F000:F003
JMP BCBA
JMP BB00
RECORDER PROGRAM
RS-232 PROGRAM
0000:039D
0000:039F
0000:03A5
0000:0000
0
1
2
3
4
5
6
7
Users Manual
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
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
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.
: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
: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.
93
Users Manual
2D
0D
FF
94
SP
FI
DEL
D4
D3
D0
D1
D2
INS
EDIT LIST
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
Kinds of instructions
FF FF FF FF CA F7 00 F0
INT1
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).
"
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
X h
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
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.
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
37
Users Manual
the character generator RAM, the address counter will automatically add or
subtract 1.
Users Manual
TABLE-2 CHARACTER CODES
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
TIMING GENERATOR
NOTE
38
39
Users Manual
Users Manual
TABLE-4 RELATIONSHIP AMONG CHARACTER CODE
Instruction
Function
Execution
Time (max)
1.64mS
Display
Clear
Display
Cursor
Home
1.64mS
Entry Mode
Set
I/D
40PS
40PS
40PS
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
40PS
Read Data
DD RAM
CG RAM
ACG
ADD
AC
loworder
40PS
0PS
highorder
40PS
Write Data
Character Code
(DD RAM Data)
7 6 5 4 3 2 1 0
0 0 0 0 * 0 0 0
ADD
0 0 0 0 * 0 0 1
40PS
40PS
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
Character Pattern
(CG RAM Data)
7 6 5 4 3 2 1 0
* * *
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.
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).
4.5V
FUNCTIONS OF RESET
0.2V
0.2V
0.2V
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.
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.
RS R/W
0
RS R/W
0
RS R/W
0
RS R/W
Function Set
Display Off
Display Clear
I/D
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:
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/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.
S/C R/L
0
0
0
0
1
0
1
1
Note : When the display moves, the address counter will not move.
FUNCTION SET
DL
DL=1
DL=0
47
Users Manual
SUB-PROGRAM
Input Parameter :
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.
F000:F070 CALL
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.
Input Parameter
Input Parameter
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
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.
Input Parameter
Read out data from cursor position of LCD (the instructed position of address counter) into AL.
Input Parameter
: None
CALL
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
: None
CALL FE8A
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
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
50
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
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
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
CALL FCD5
Example-2
Input Parameter
Clear second line, display DX value, and DX values are altered by key-in to
be display at LCD.
0:0400
MOV
AL,01
0:0402
MOV
BL,C0
0:0404
0:0409
CALL
MOV
F000:F078
BX,00C2
56
F000:f080
: None
CALL
FD20
: None
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
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
CALL
CALL
FE55
: None
F39A
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).
Input Parameter
Input Parameter
MOV
AL,01
0:0402
CALL
F000:F044
0:0407
MOV
AL,0D
54
55
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
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
Program will first clear the first line, then store 8088 into AX to display the
first line.
57
Users Manual
Users Manual
Example-4
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
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
8 10 12 14 16
1) Edit the assembly program using any text editor to generate any .ASM
file. For example DEMO.ASM.
64
9 11 13 15
PIN NO.
SYMBOL
DESCRIPTION
PIN NO.
SYMBOL
DESCRIPTION
BD7
CHIP ENABLE
BD6
10
R/W
READ/WRITE
BD5
11
RS
REGISTER SELECT
BD4
12
VO
CONTRAST CONTROL
BD3
13
VDD
+5V
BD2
14
VSS
GROUND
BD1
15
N.C.
BD0
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
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:
JP4
2
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
0403
B9 10 00
0406
0408
B4 00
3A 24
040A
73 02
040C
8A 24
040E
46
040F
E0 F7
0411
88 24
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
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
040E
46
INC SI
040F
46
INC SI
0410
0411
47
47
INC DI
INC DI
0412
49
DEC CX
0413
75 F5
JNE 040A
0415
F4
HLT
Else, Halt.
PROGRAM-1
i.e. 0504.
OP CODE
MNEMONIC
COMMENTS
0400
F8
CLC
0401
B9 04 00
MOV CX,0004
0404
BE 00 05
MOV SI,0500
0407
BF 08 05
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
0403
8B 1C
0405
4B
DEC BX
0406
8B 0C
MOV CX [SI]
0408
49
DEC CX
0409
BE 02 05
040C
8A 04
040E
46
INC SI
040F
3A 04
COMP AL,[SI]
0411
73 06
JAE 0419
0413
86 04
0415
4E
DEC SI
0416
88 04
MOV [SI],AL
0418
46
INC SI
0419
E2 F1
LOOP 040C
PROGRAM - 5
To Divide a String of Unpacked ASCII Digits:
ADDRESS
OP CODE
MNEMONIC
COMMENTS
0400
B2 36
MOV DL, 36
0402
BE 00 05
0405
BF 08 05
0408
B9 08 00
040B
80 E2 0F
AND DL, 0F
MS nibble of DL contents is
zeroed.
040E
32 E4
XOR AH,AH
0410
AC
LODSB
72
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
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
0403
BF 08 05
70
Users Manual
0406
B2 34
MOV DL, 34
0408
B9 08 00
MOV CX,0008
040B
C6 05 00
MOV [DI],00
040E
80 E2 0F
ANDL, 0F
0411
8A 04
0413
46
INC SI
0414
80 E0 0F
AND AL, 0F
0417
F6 E2
MUI DL
0419
D4 0A
AAM
041B
02 05
ADD AL,[DI]
041D
37
AAA
041E
88 05
MOV [DI],AL
0420
47
INC DI
0421
88 25
MOV [DI],AH
0423
49
DEC CX
0424
75 EB
JNZ 0411
0426
F4
HLT
HALT.
71
Users Manual
Users Manual
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
0416
F6 F2
DIV DL
0418
AA
STOSB
0419
E0 F5
041B
F4
HLT
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
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
0403
B9 FF FF
0406
BF 02 05
0409
B0 05
MOV AL, 05
040B
F2 AE
REPNZ
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
0411
F4
HLT
For Example
Let (509) = 05
Let (0500) = 05
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
9A
B3
9A
B0
200E
2013
2014
2015
2018
7C F0 00 F0
80
78 F0 00 F0
86
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
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
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
F000:F0A0
80
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
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
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
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.
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
;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
79
Users Manual
Users Manual
ASCII RECEVING:
FORCE INCOMING
WRAP LINES THAT
ENABLE
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
82
. . 7FFF
83
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
IBMPC KEYBOARD