49
Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual ii 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 Table of Contents ii Vinytics Vinytics Vinytics Vinytics Vinytics Peripherals Pvt. Ltd. www .vin ytics.com VMC-8609 8086 MICROPROCESSOR TRAINER KIT

VMC-8609ADP

Embed Size (px)

Citation preview

Page 1: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

ii

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

Table of Contents

ii

VinyticsVinyticsVinyticsVinyticsVinytics Peripherals Pvt. Ltd.

www.vinytics.com

VMC-8609

8086 MICROPROCESSOR

TRAINER KIT

Page 2: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

i

Table of ContentsINTRODUCTION ......................................................................................... 1

OPERATING COMMANDS ......................................................................... 3

COMMAND DESCRIPTION ........................................................................ 4A - 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

VinyticsVinyticsVinyticsVinyticsVinytics PERIPHERALS PVT. LTD.

WB-10, Shakarpur, Delhi-110 092.Phone : 91-11-2462826Fax : 91-11-2215127E-mail : [email protected] : www.vinytics.com

Page 3: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

1

SYSTEM INTRODUCTION

GENERAL DESCRIPTION

VMC-8609 is a single board MICROPROCESSOR TRAINING/DEVELOP-MENT KIT configured around the INTEL’s 16 bit Microprocessor 8086. Thiskit can be used to train engineers, to control any industrial process and todevelop software for 8086 systems.

The kit has been designed to operate in the Max. or Min. mode. Co-processor 8087 and I/O Processor 8089 can be added (VMC-8609). The8086 CPU can also be replaced by 8088 CPU.

The Kit communicates with the outside world through a IBM PC compatiblekeyboard and LCD display.

VMC-8609 is packed up with powerful monitor in 32K Bytes of factoryprogrammed EPROMS and 32K Bytes of RAM for user. These memory canbe 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 through8253. For real time applications, the 8 level of interrupt are provided through8259. VMC-8609 provides onboard battery back up for RAM. This saves theuser’s program in case of power failure.

The onboard resident system monitor software is very powerful. It providesvarious software commands like BLOCK MOVE, INSERT, DELETE, FILLetc. Which are helpful in debugging/developing software. An onboard As-sembler/Disassembler is also provided on VMC-8609AD. This kit also sup-ports MASM.

VMC-8609 also has onboard buzzer for self testing of hardware and soft-ware. This kit is provided with a Centronix Printer port to take out the printsof the program written in the RAM of kit. A Real Time Clock is also providedonbard for real time apllications (Optional).

4

COMMAND DESCRIPTION

A - ASSEMBLE

This command is used to convert the input Assemble Language to theMachine Language in the memory. Once under this command, first set theaddress which is similar to the command “D” followed by an Enter or anArrow Down key to go to a new step. However, only a maximum of 35words 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.

Simply Press the key ‘A’. After the command, an “A” will appear on thescreen:

Assemble language can be input at this time.

n Only contains the Effective address but the Segment base in included A400.

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

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

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

Page 4: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

SPECIFICATIONS FOR VMC-8609

Processor : 8086, 16 bit Microprocessor operating inmax. 8088, 8 bit Microprocessor.

EPROM : 128K Bytes of EPROM Loaded with moni-tor

RAM : 64K Bytes expandable to 128K Bytes.Parallel I/O lines : 48 I/O lines using two nos. 8255Addtional I/O Lines : 24 I/O lines using 8255 (Optional)Serial communications : Through RS-232C port USING 8251.Interrupts : 8 different level interrupt through 8259.Timer/Counter : Three 16 bit Timer/Counter through 8253.Keyboard : IBM PC compatible ASCII keyboard.Display : 20X2 Liquid Crystal Display(LCD) with back-

light or 40×2 or 20×4.Sound : Buzzer.Assembler/Disassembler : Provided onboard.BUS : All address, data and control signals (TTL

Compatible) available at FRC connector.Power Requirement : 5V, 800mA

Operating Temp. : 0 to 50°C.

VMC-8609AD

Optional Features

Display : 40X2 Liquid Crystal Display(LCD) (Optional)Printer Interface : Centronix printerport (Optional).Real Time Clock : Provided on board (Optional).Programmer module Card : 27c64 to 27c512. (Optional).Relay & Opto Card : Provided on board (Optional).Audio Cassette Interface : Provided on board (Optional)Speaker Interface : Provided on board (Optional)

2 3

COMMAND DESCRIPTION

The operation of this device is similarly with the operation of IBM PC’sDEBUG system. For convenience, the operation instructions will be dis-played when the device is being Switched on or RESET.

This device also has memory ability to preserve data for future use. Thereis 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 thelength of the RAM, there is a byte to be inverted and returned to the originalfor every 4K in length, the verifying procedure will be repeated until none ofthe byte can be inverted. During this period, avoid using the RESET toprevent the data from unable to return to the original setting. The RAMaddress is to be displayed by 4 positions and up to FFFFH, however, 5positions 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:

After pressing Enter, the operating commands will be displayed:

ASSEMBLE UNASSEMBLE

DUMP TRACE

FILL PRINT

GO MOVE

INTERRUPT

VMC - 8 6 0 9

E N T E R RE T U R N K E Y . . .

VMC - 8 6 0 9 . . 7 F F F

> A . D . F . G . I . M . P . T . U .

Page 5: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

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

“A” and “U” are the same commands, an ARROW UP sign can be used tocheck the earlier procedure. F6 is used to delete the input and proceed to“U”-Unassemble. F7 is used to proceed to another command.

Example

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

0:0400 MOV BL,C00:0402 CALL F000:F0780:0407 MOV BX,00C20:040A CALL F000:F0680:040F CMP AL,0D0:0411 JNZ 040A0:0413 HLT

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

The following steps are to be taken:

1) Press the key A and the LCD display is as shown here:

2) Now the user enter the segment address and effective address simulta-neously as follows:

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

VMC - 8 6 0 9 . . 7 F F F

A 0 0 0 0 : 0 4 0 0

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

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

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 asfollows:

Now enter the instruction again.

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

Now write the next instruction as follows:

0 4 0 0 OVM B L , C 0

0 4 0 0 OVM B L , C 0

0 4 0 0

0 4 0 0 MOV B L , C 0

0 4 0 2

0 4 0 0 CAL L F 0 0 0 : F 0 7 8

58

Page 6: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

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

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

While entering this instruction, the following mistakes may happen:

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

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

Cursor position.

Now by using the Backspace key, user can move the cursor left sideand indicate at the below of ‘C’.

Cursor position

Delete the character by using SHIFT+ F5 keys.

0 4 0 0 MOV B L , C 0

0 4 0 0 MOVC BL , C 0

0 4 0 0 MOVC BL , C 0

0 4 0 0 MOVC BL , C 0

0 4 0 0 MOV B L , C 0

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

2) Or user has entered the wrong instruction as follows:

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

Cursor position.

Now by using the Backspace key, user can move the cursor right sideand indicate at the below of ‘V’.

Cursor position.

By using F5 key, leave a space at the cursor as follows:

Cursor position.

Now insert the character ‘O’.

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

0 4 0 0 MV BL , C 0

0 4 0 0 MV BL , C 0

0 4 0 0 MV BL , C 0

0 4 0 0 M_ V BL , C 0

0 4 0 0 MOV BL , C 0

6 7

0 4 0 0

Page 7: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

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

Now by using GO command, the machine language statements can beexecuted and the value of DX will be displayed in the second line of theLCD.

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

0000:1E00

0000:1FFF as the buffer.

D - DISPLAY OR MODIFY THE RAM’S HEXADECIMAL

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

Syntax is as follows:

D (If no input, press Enter key or ARROW UP/DOWN key wouldallow the built-in address to be used)

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

0 4 0 7 MOV BX , 0 0 C 2

0 4 0 A CAL L F 0 0 0 : F 0 6 8

0 4 0 F CMP AL , 0 D

0 4 1 1 J N Z 0 4 0 A

0 4 1 3 H L T

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 biggeruser is the starting position.

G - PROCEED TO THE ADDRESS FOR EXECUTION

The GO command, which causes the machine language statements to beexecuted. This command executes the loaded program and allows the userto specify the addresses at which program execution will stop. The syntaxis as followed:

Once the ‘GO’ command has been executed, it will completely leave thesystem and proceed to the user’s design.

Flowchart of G-Command

VMC - 8 6 0 9 . . 7 F F F

> A . D . F . G . I . M . P . T . U .

INPUT THESTARTINGADDRESS

FOLLOWTHE INPUT

OF THEUSER TO

SET THEFLAGS

CS, DS, ESREGISTERSHAVE THESTARTING

ADDRESSIN THE

SEGMENTBASE

ENDSTART

PROCEED TOA NEW

ADDRESSFOR

EXECUTION

BEGINS AT0000:0309

(USER CANSET A

SEGMENT

IN THEPROGRAM

912

Page 8: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s 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 theaddress to subtract 8 and store in the memory as a whole number. other-wise, an ARROW DOWN key indicates an addition of 8 in the address andthis changes in the memory (as a machine language).

Syntax is as followed:

Segment Base

Effective Address

Content of data total of8 bytes

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

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 stepsare to be taken:

1) Press F7 key, the menu will display.

2) Press D key, and enter the effective address. The following will bedisplayed:

0 0 0 0 : 0 4 0 0 B 3 C 0 9 A

7 8 F 0 0 0 F 0 BB

0 0 0 0 : 0 4 0 0 B 3 C 0 9 A

7 8 F 0 0 0 F 0 BB

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

D 0 4 0 0

3) Press Enter key, then the following will be displayed:

Usekey for further view.

F - FILL DATA INTO THE RAM

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

Syntax

Once ‘F’ is entered, the command can be proceeded.

Data to be filledEnding Position

Starting Position

Segment Base

0 0 0 0 : 0 4 0 0 B 3 C 0 9 A

7 8 F 0 0 0 F 0 BB

0 0 0 0 : 0 4 0 8 C 2 0 0 9 A

6 8 F 0 0 0 F 0 3 C

0 0 0 0 : 0 4 1 0 0 D 7 5 F 7

F 4 F F F F F F F F

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

F 0 0 0 0 : 0 4 0 0 0 4 0 0 5 7

10 11

Page 9: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

I - Interrupt

Three INTERRUPTs (Effective address) can be set in for the program execu-tion, the CPU will continuously make a single-step subprogram for checkingIP values. When the IP register has the same value as the INTERRUPT’saddress, it will enter the INTERRUPT’s subprogram. Enter command “I” willinterrupt the program.

Syntax:

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

Third Interrupt Posi-tion (Effective Ad-dress)

Second Interrupt Position (Ef-fective Address)

First Interrupt Position (Effective Address)

Notes :

1) During interrupt setting, the address alternation register has commands

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

2) 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.

VMC - 8 6 0 9 . . 7 F F F

I N T P : 0 0 0 0 . 0 0 0 0 . 0 0 0 0

VMC - 8 6 0 9 . . 7 F F F

> A . D . F . G . I . M . P . T . U .

M - Moving Data

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

Syntax:

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

Ending Address (Effective Address

Starting address (Effective Address)

Segment Base

Source

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 thetarget can not exceed FFFF. Otherwise, it will cause an input error andhave to redo the whole procedure.

P - Print

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

VMC - 8 6 0 9 . . 7 F F F

> A . D . F . G . I . M . P . T . U .

M S - 0 0 0 0 : 0 0 0 0 8 0 8 8

T - 0 0 0 0 : 0 0 0 0

1316

Page 10: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

Example

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

1) Press the key F7 and the LCD display is as shown here:

2) Now press the key I and the LCD display is as shown here:

Modify using , key as follows:

3) Press the key F7 and then G . The display will be as follows:

4) Press the Enter key and then F7 .

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

G , Enter, and then F7 .

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

I N T P : 0 0 0 0 . 0 0 0 0 . 0 0 0 0

VMC - 8 6 0 9 . . 7 F F F

I N T P : 0 4 0 2 . 0 4 0 7 . 0 4 1 1

VMC - 8 6 0 9 . . 7 F F F

G 0 0 0 0 : 0 4 0 0

I NT 0 4 0 2

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

I NT 0 4 0 7

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

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

press G , Enter, and then F7 .

This indicate the third break-point is at 0411. One can use any com-

mands including Examine Register by pressing the key R .

Modify/Display Register

Command “R” display the content in the register. This command allows theuser to examine the content of the register in the CPU. Each time duringdisplay, 4 registers will be shown. The following are some of the displayand criteria of the register:

FIRSTGROUP

SECONDGROUP

THIRDGROUP

FOURTHGROUP

The first group register (AX, BX, CX, DX) will be shown first when enter thecommand “R”. The ‘ ’ key will jump to the second group; the fourth groupcan return to the first group by using the ‘SHIFT’ + ‘ ’ key.

When the content in the register is displayed, the cursor will not appear, theuser therefore cannot change the content in the register. However, the key‘F6’ will cause the cursor the appear and the modifications of theregisters can be made at this time. The cursor can only move in oneparticular 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.

I N T 0 4 1 1

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

R AX 0 1 0 0 BX 0 5 C 0

C X 0 0 1 4 D X F 1 0 2

R SP 0 3 9 0 BP 0 3 7 4

S I F 1 1 4 D I 0 4 0 0

R I P 0 4 0 2 F L F 1 0 2

C S 0 0 0 0 D S 0 0 0 0

R CS 0 0 0 0 DS 0 0 0 0

SS 0 0 0 0 ES 0 0 0 0

14 15

Page 11: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

By pressing ‘P’ key will allow the following to show on the screen:

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.

Unassemble

Dump

Buffer

If the printer is not connected at this time, press key “P” so the LCD wouldshow “PRINTER ERROR!” on the second line.

“D” ........ command will allow the printer to print the machine code.

“U” ........ command will allow the printer to print the assembly program.

“B” ........ command sends data of RAM directly to the printer without goingthrough any modification.

Example:

The address, 90, is used for printer code.

F Command “B” will send 90 directly to the printer.

F Command “D” will convert 90 into ASCII (39, 30) code before sending tothe printer.

F 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 beforeusing commands “B”, “D”, “U”. Followed by an Enter or ARROW UP key inorder to print the output.

VMC - 8 6 0 9 . . 7 F F F

> A . D . F . G . I . M . P . T . U .

PRESS S / F FOR S PEED

PR I N TER ON !

>B . D . U .

Only 0-9 numerical keys are allowed to use to operate for this command butnot any other keys.

Example

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

Now if user want to see the process of the above program, then the proce-dure is as follows:

1) After entering the above program, press F7 key, then the menu will bedisplayed as follows:

0 : 0 4 0 0 MOV AL , 3 0

0 : 0 4 0 2 MOV B L , 2 00 : 0 4 0 4 CMP AL , B L

0 : 0 4 0 6 J NC 0 4 0B

0 : 0 4 0 8 SUB AL , B L

0 : 0 4 0 A I NT 3

0 : 0 4 0B ADD AL , B L

0 : 0 4 0D I NT 3

0 : 0 4 0 0 MOV AL , 9 0

0 : 0 4 0 2 MOV BL, 7 5

1720

Page 12: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

Example

U F000:F750 E7FF Enter

If input only the starting address, the UNASSEMBLE command is as fol-lowed.

U 400 Enter only the UNASSEMBLE command.

Command “B” can be used to print data or program the printer, if the ASCIIcode is written into the printer and if the printer would allow the settinginstruction to alter the work model. However, the setting instruction modelcan 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 issend to the printer. The designed setting command of different printers canbe obtained from their handbook. The following is an example of PrinterESPON-800.

n When power on, the command “D” in the system will allow the modelsetting of the printer to be saved as 0:0400

0:0400 1B 40 1B 57 01

Set for twice enlargement

Starting command

n Followed by storing the ASCII code of the printed data in 0:0600 startingaddress:

0:0600 41 42 43 44 45

‘A’ ‘B’ ‘C’ ‘D’ ‘E’

n Once the printer is connected, press the key “P” then “B”, followed bythe input of the starting address:

>B 0:400 0404 Enter

Use command ‘B’ again to input the data address, then input thenecessary data as followed:

>B 0:600 603 Enter

Output will be as follows :

ABCDE

Each time entering the command “P”, the CPU will send out 1B 40 as thestarting command. If the user doesn’t change the model setting, the usercan 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 8255’s A-port, then the printer itself.The connection between 8255 and the printer is:

8255 PRINTER

PA0 DATA1

PA1 DATA2

PA2 DATA3

DATA PA3 DATA4

BUS PA4 DATA5

PA5 DATA6

PA6 DATA7

PA7 DATA8

PC4 PE

PC5 BUSY

CONTROL PC6 ACKNLG

BUS PC7 STROBE

GND GND

The PC4 to PC6 of 8255 are connected to a 510 ohms resistor to preventthem from short circuit with the printer before the command “P” is used tooutput the program. Each time 8255 leaves the command “P”, the systemwill return to its original stage.

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

This command is used for program execution. TRACE will enter the INTER-RUPT subprogram every time the program execute. N has a decimal rangefrom 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 :

T 00 - STEP

Decimal TRACE setting

18 19

Page 13: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

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

3) Now the user can view the program after the one instruction, two in-struction, and so on by defining the number which is to be enteredthrough keyboard.

Example:

01 - The instruction pointer stops after every single instruction.

After completion, press ‘F7’ for a menu display.

4) Press the key ‘G’, the menu will appear.

5) Press Enter key.

6) Press ‘F7’ key, the single stepping will start and the following menu willbe displayed:

1stinstrcution isexecuted.

Press ‘G’ key and next ‘F7’ key for further view, the following results will bedisplayed:

2ndinstrcution isexecuted.

0 4 0 E

> A . D . F . G . I . M . P . T . U .

0 4 0 E

T 00-STEP

0 4 0 E

T 0 1 - S TEP

0 4 0 E

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

.

0 4 0 E

G 0 0 0 0 : 0 4 0 0

I NT 0 4 0 2

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

to be modified. Press Enter key and write the correct instruction and againpress Enter key. Press key ‘F7’ another time would bring the instructionback 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 notmore than 127 instructions in forward direction. When the program reachesthe end, the “U” command can be used to decode the program again orforward.

During input program, instruction can be inserted by entering the desiredaddress, then press key ‘F5’. At this time, “INS.....END ADDR: 0000" willappear on the second line of the screen to allow the user to enter the endingaddress. Press the ‘F5’ key again to return to the “A” command. The CPUwill move the address content from the present address until the endingaddress, to a new instruction for each instruction entry. If leave the com-mand “A” model, it will automatically clear the function.

Refer to the cursor operational keys in the DUMP command for theUNASSEMBLE command.

Example

The example entered earlier can be seen as follows:

1) Press ‘U’ key, and enter the starting address of the program.

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

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

U 0 4 0 0

2124

Page 14: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

Press ‘G’ key and next ‘F7’ key for further view, the following results will bedisplayed:

3rd instrcutionis executed.

Press ‘G’ key and next ‘F7’ key for further view, the following results will bedisplayed:

4th instrcutionis executed.

Press ‘G’ key and next ‘F7’ key for further view, the following results will bedisplayed:

Here user can observe the process of program execution, because data 30is greater than 20 so that carry will not generate and the program executionwill jump to the desired label. Now again press ‘G’ key and next ‘F7’key

Anywhere during trace command, one can examine/modify the registersusing ‘R’ command (refer Register Command Description).

NOTE : Refer to the INTERRUPT command for precaution.

U - UNASSEMBLE

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

I NT 0 4 0 4

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

I NT 0 4 0 6

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

I NT 0 4 0 B

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

I NT 0 4 0 D

> 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 .

or

Starting address

q The content of the Unassemble 0400 will start if only the startingaddress is entered. The built-in segment base is used here if it is notentered.

q The content of the Unassemble 0000:0400 will start if only the startingaddress is entered with segment address as 0000:0400.

Press “U” key would enter the Unassemble design:

Segment Base

Effective Address

Machine Code

Assembly Language

Display the address first, then display the machine code (if the machinecode is too long, they will be continued on the second line). The secondline displays the assemble program and the process is completely done ifthe cursor appears in the last address of second line. However, in case thecursor doesn’t show, that means there is another line. Press the Enter keywould display all the commands, then press ARROW UP/DOWN key woulddisplay the next line back to the original stage.

If the user needs to modify the instruction, press key ‘F7’ will move to thecommand Assemble (A). And write the address of the instruction which is

VMC - 8 6 0 9 . . 7 F F F

U 4 0 0

U 0 : 4 0 0

0 0 0 0 : 0 4 0 0 B 0 3 0

MOV AL , 3 0

22 23

Page 15: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

Note: Use key to move upward, and key to move downward.

3) Press key for further view.

4) If the user want to modify at the address 0404, then following steps areto be taken:

a) Press ‘F7’ key, the menu will display.

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

c) Press Enter key and write the instruction again.

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

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

uses 0000:1E00-1FFF as the buffer, therefore during the execu-

tion of “A” and “U”, this segment cannot be used.

0 0 0 0 : 0 4 0 0 B050

MOV AL , B L

0 0 0 0 : 0 4 0 2 B32 0

MOV B L , 2 0

0 0 0 0 : 0 4 0 4 3 8 D 3

CMP AL , BL

0 0 0 0 : 0 4 0 6 7 3 0 3

J NB 0 4 0 B

0 0 0 0 : 0 4 0 6 7 3 0 3

> A 4 0 4

If the single-step is changed during the Interrupt subprogram, the user mustfollow step by step of single-step hardware to execute the Interrupt subpro-gram in order to go back the original stage (separate example to demon-strate 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

NOTES :

1) The setting of interrupt subprogram cannot change SP and SS register

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

2) If TRACE counter value does not subtract 1 when it meet the com-

mand 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 (ODD & EVEN RAM)

F000:0000 ROM 27256 EXTENSION SECTION THAT HAS

F000:FFFF (ODD & EVEN EPROM)

2528

Page 16: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s 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 toexamine 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 canbe observed:

Interruption Address (Effective Ad-dress)

Interrupt display subprogram will compare with the program input, and thereis another display register command “R”. Other than the commands “D”and “R”, the operation and input program of the other commands are thesame.

Under any command, if press ‘G’ or ‘SHIFT’ + ‘F7’ would clear thedisplay, then proceed downward for execution. The following are the de-scription of commands “D” and “R”:

q To prevent making any the input error, the user cannot directly changethe address content once in the command ‘D’. The cursor will not showat this time, therefore the user can only examine address content. Ifthe address content needs to be corrected, ‘F6’ key would allow thecursor to appear. Any correction can be made at this time as it is inthe program input. Press ‘F6’ another time would cause the cursor todisappear.

q Command “R” display the content in the register. This command allowsthe user to examine the content of the register in the CPU. Each timeduring display, 4 registers will be shown. The following are some of thedisplay and criteria of the register:

(a) FIRST GROUP AX 0000 BX 0000

CX 0000 DX 0000

(b) SECOND GROUP SP 0000 BP 0000

SI 0000 DI 0000

I NT 0 4 0 2

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

(c) THIRD GROUP IP 0000 FL 0000

CS 0000 DS 0000

(d) FOURTH GROUP CS 0000 DS 0000

SS 0000 ES 0000

The first group register (AX, BX, CX, DX) will be shown first when enter thecommand “R”. The ‘ ’ key will jump to the second group; the fourth groupcan return to the first group by using the ‘SHIFT’ + ‘ ’ key.

When the content in the register is displayed, the cursor will not appear, theuser therefore cannot change the content in the register. However, the key‘F6’ will cause the cursor the appear and the modifications of theregisters can be made at this time. The cursor can only move in oneparticular 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 the8088. When the setting of system program enter the subprogram, it willsubtract 1 for IP. Then entering the TRACE subprogram and followed by theInterrupt display. Press “G” key will go back to INT3 and enter the Interruptdisplay again. Therefore, instruction INT3 (CC) must change to NOP (90) orother 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-stephardware, there is a “WAIT” command next to the Interrupt subprogram forthe user to save the address 0000:039B into “9B”. This will allow thesubprogram to stop at this command “WAIT” once it leaves the Interruptdisplay (Note that the address bus of LED display will stop at the addressFF7CA), and will allow the user to cut the switch of single-step hardware inthe single-step location. The F7 is used to leave the command “WAIT” inorder to execute the signal-step hardware.

26 27

Page 17: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

I/O ADDRESS

The addresses of the various chips in I/O mapped in VMC-8609/8609AD areas follows:

Device Name Port Address Connector

8255-I (PPI) Port A 70 CN3Port B 72

Port C 76

CWR

8255-II (PPI) Port A 80 CN4Port B 82

Port C 84

CWR 86

8255-III (PPI) Port A 10 CN5Port B 12

Port C 14

CWR 16

8253 Counter 0 00 CN6

(Programmable Counter 1 02

Timer/Counter) Counter 2 04

Counter 3 06

Keyboard Input/Output 20Latch 22

8259 Data Word 30 CN6(PIC) Command/ 32

Status Word

8251 Data Register 50 CN7

(USART) CWR 52

Real Time Clock 0100-01FF

(Optional)

and store in AL. If it is not a symbol than setto C-Flags as “1”.

F000:F05F RETF

F000:F060 CALL FDF5 ; Convert the input functional keys into ASCIIcode and store in AL. Otherwise, set to C-Flags as “1”.

F000:F063 RETF

F000:F064 CALL FB35 ; Call for the above 4 sub-program and changeinput key into ASCII to store in AL.

F000:F067 RETF

F000:F068 CALL EA35 ; Save the input 4 digits in DX, display posi-tion from BL to BH instruction.

F000:F06B RETF

F000:F06C CALL FAAO ; Store input 4 digits in DX as SEGMENT BASEAND ANOTHER 4 digits as the Effective ad-dress in DI (DX:DI).

F000:F06F RETF

F000:F070 CALL FE15 ; Convert the ASCII code in AL to hexadeci-mal

F000:F073 RETF

F000:F074 CALL FE30 ; Convert the hexadecimal in AL to ASCII codeand store in between AH and AL

F000:F077 RETF

F000:F078 CALL FF2B ; Delete one line

F000:F07B RETF

F000:F07C CALL FCD5 ; Clear the screen

F000:F07F REFT

F000:F080 CALL FD20 ; Cursor blinking movement

F000:F083 RETF

F000:F084 CALL FDCO ; Insert the lower 4 bits into the DX with BHinstruction

F000:F088 CALL FFOA ; Write the hexadecimal in AL into cursor ad-dress

F000:F08B RETF

F000:F08C CALL FF20 ; Write the hexadecimal in AX into cursor ad-dress

F000:F08F RETF

F000:F094 CALL F39A ; Write the hexadecimal in AX into BLdesignated address

F000:F097 RETF

2932

Page 18: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

RAM MEMORY

ADDRESS PURPOSES

0000:0000 INTERRUPT VECTOR SECTION (INTI, INT2, INT3HAVE ARRANGED THE INTERRUPT SECTIONAND STACK SEGMENT

STACK SEGMENT

0000:0390 BUFFER

0000:039B SYSTEM DATA

0000:93E0 BUFFER (Only if needed)

0000:0400 USER’S RAM AREAto

0000:7FFF

SYSTEM DATA OF RAM

0000:039B - Store 9B, will stop at the subprogram exit next to theWAIT command each time it leave the interrupt displaysubprogram, waiting for F2 to continue execution (isused in TRACE to convert to single-step hardware).

0000:039C - TRACE Buffer

0000:039D

0000:039F - Flags, function of each byte is as followed:

BIT

0 : Enter NMI as 1, otherwise as 01 : After the “G” key, will be set to as 0, ‘SHIFT’ + ‘F7’2 : During subprogram, is set to as 13 : Set to 1 after entering INTERRUPT4 : Use in interrupt system5 : Use in interrupt System6 : Set 0 to INTERRUPT, and set 1 to TRACE7 : Set TRACE or INTERRUPT as TF flags, timer 1

0000:03A0

- Buffer of Interrupt setting

0000:03A5

0000:03AE

- Preserved battery to test bit

0000:03AF

0000:039E - Flags, use the command “A”

0000:03B0- Data stored in the register monitor during inter-

ruption0000:03D8

CONTENTS OF ROM

ADDRESS TEXT DESCRIPTION

F000:F000 JMP BCBA RECORDER PROGRAM

F000:F003 JMP BB00 RS-232 PROGRAM

PRACTICAL USE OF SUBPROGRAM (ROM’S CONTENT)

ADDRESS TEXT DESCRIPTION

F000:F040 CALL SI

F000:F042 RETF

F000:F044 CALL FEEO ;Write AL’s instruction into LCD

F000:F047 RETF

F000:F048 CALL FEFO ; Write AL’s data into LCD

F000:F04B RETF

F000:F04C CALL FFOO ; Read LCD and store data in AL

F000:F04F RETF

F000:F050 CALL FE7A ; Input keys and store value in AL

F000:F053 RETF

F000:F054 CALL FE8A ; Convert input numerical values into ASCIIcode and store in AL. If it is not a numberthan it will be set to C-Flags as “1”.

F000:F058 CALL FEAO ; Convert the input alphabetical values intoASCII code. If it is not an alphabet then it willbe set to C-Flags as “1”.

F000:F05B RETF

F000:F05C CALL FEB5 ; Convert the input symbols into ASCII code

30 31

Page 19: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

F000:F098 CALL FD4A ; Read in 2 letters from BL designated posi-tion, change to hexadecimal and store in AX

F000:F09B RETF

F000:F09C CALL FD7A ; Read in 4 letters from BL designated posi-tion, change to hexadecimal and store in AX

F000:F09F RETF

F000:F0A0 CALL FE55 ; Beep......

F000:F0A3 RETF

F000:F0A4 CALL EFDA ; Extended subprogram can be planned. Plan8253 #2 counter as the extended countingand check key-in when leaving the subpro-gram

F000:F0A7 RETF

CODES TABLE

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

Character Code : (F000:FF60 - FF83)

F000:FF60 : ASCII 30 31 32 33 34 35 36 37 38 39 41

Number 0 1 2 3 4 5 6 7 8 9 A

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

Alphabet B C D E F G H I J K L

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

Alphabet M N O P Q R S T U V W

FF80 : ASCII 58 59 5A FF FF FF FF FF FF FF FF

Alphabet X Y Z

Symbols Code : (F000:FF90-FFBF)

F000:FF90 : ASCII FF 3C 3E 3F

Symbols < > ?

:FFA0 : ASCII FF 3D 5F FF FF 2F 2D 7F 26 2A 2B 28

Symbols = ^ / - ¬ & * + (

Fig.1 Functional Block Diagram

NOTE: Some models incorporate a temperature compensation circuit within

the bias voltage generator

3336

Page 20: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

ASCII 29 7E 2C 2E

Symbols ) ® , .

:FFB0 : ASCII FF FF 3B 3A 22 FF FF 5B 5D 7B 7D FF

Symbols ; : " [ ]

ASCII 21 23 24 25

Symbols ! # $ %

Functional key : (F000:FFBC-FF9B)

2D 0D FF 94

SP ¬ FI DEL

93 90 91 92 20 0D FF D4 D3 D0 D1 D2

¬ CLS GO ­ SP ¬ INS ® EDIT LIST ¯

NOTE :-

1) CTRL ON conditions have not been defined.

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 from0:0000 until Interrupt vector position. FF is the undefined interrupt that forthe user to decide.

F000:FFC0 : FF FF FF FF CA F7 00 F0

INT1

30 F7 00 F0 1A F7 00 F0

INT2 INT3

FFD0 : FF FF FF FF FF FF FF FF

FF FF FF FF FF FF FF FF

FFE0 : FF FF FF FF FF FF FF FF

FF FF FF FF FF FF FF FF

DISPLAY

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 letterwhich is locked into the internal display data of RAM (data display of RAM80 bytes (D.D.RAM) allows 80 characters to be stored), and transfer to 5x7dot of array word and appear on the displayed.

This lcd modular contains the word generator ROM that will supply 160different 5x7 dot of array word and also a 64 bytes word generator RAM.Users can define 8 types 5x7 dot of array word.

The position of word display goes into the LCD Modular through the databus in CPU. Next through the instruction register and finally write the wordsinto the data register to display on a specific location. The LCD Modularwill automatically increase or decrease the words in order to move to differ-ent addresses. The user can therefore continue sending in word code. Thecursor 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 dotof array

ð Kinds of instructions : Clear the display, send cursor home(HOME), ON/OFF display. Cursor ON/OFF, character blinking cursor move toanother position, display change posi-tion.

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

ð Internal circuit vibrator.

34 35

Page 21: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

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

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 goesthrough LCD and is stored in the data register. It will then automatically betransferred to display data RAM or character generator RAM. When theCPU read the data from the displayed RAM or from the character generatorRAM, it will also temporary store the data in the data register. When theaddress information is input into the instruction register, the relative data willbe moved from display register RAM or character generator RAM to thedata register. Then the data can be read from data register by using theoutput instruction of CPU. One way to select the two registers is to selectthe register signal (RS) like follow:

RS R/W FUNCTION

0 0 Data Bus —> instruction Register

0 1 Read out busy flags (BUSY FLAG DB7) and addresscounter (DB0-DB6)

1 0 Input into data register and execute the inner instruction: (D.R.RAM—> D.R. OR C.G.RAM — D.R.)

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

BUSY FLAG (B.F.)

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

ADDRESS COUNTER (A.C.)

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

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

TABLE-3 CHARACTER CODE

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

the user’s program.

2.Shaded areas indicate 5x10 dot character patterns.

°

0 @ P \ p - α p

! 1 A Q a q ä q

" 2 B R b r β θ

# 3 C S c s ∈ ∞

$ 4 D T d t ` µ Ω

% 5 E U e u • σ ü

& 6 F V f v ∃ ρ Σ

’ 7 G W g w ϑ π

( 8 H X h x √ x

) 9 I Y i y 1 y

* : J Z j z j

+ ; K [ k x

, < L γ l | ¢

_ = M ] m £ ÷

. > N ^ n → ∃ n

/ ? O _ o ← ° ö

3740

Page 22: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

the character generator RAM, the address counter will automatically add orsubtract 1.

When the content of address counter is in RS = 0 and R/W = 1, the outputdata 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 thedisplay data, it can be sent to CPU as the RAM data section without goingthrough 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 2 3 4 5 6 7 8 9 10 11 ...... 19 20(decimal)

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

(hexadecimal)

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

(hexadecimal)

CHARACTER GENERATOR ROM (C.G. ROM)

This ROM generates 5x7 dot of array character has 160 different 8-bitcharacter 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 userto 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 todisplay data RAM. The display data and characters are shown in Table 4.

TIMING GENERATOR

Sending signals into the inner register during generating process.

TABLE-2 CHARACTER CODES

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

the user’s program.

2. Shaded areas indicate 5x10 dot character patterns.

38 39

Page 23: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

TABLE-4 RELATIONSHIP AMONG CHARACTER CODE

(DD RAM), CG RAM ADDRESS, AND CHARACTER PATTERN (CG RAM)Character Pattern for 5x7 Foat

Character Code CG RAM Character Pattern(DD RAM Data) Address (CG RAM Data)

7 6 5 4 3 2 1 0 5 4 3 2 1 0 7 6 5 4 3 2 1 0

high- low- high- low- high- low-order order order order order orderbit bit bit bit bit bit

0 0 0 * * * 1 1 1 1 0

0 0 1 1 0 0 0 1

0 1 0 1 0 0 0 1

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

1 0 0 1 0 1 0 0

1 0 1 1 0 0 1 0

1 1 0 1 0 0 0 1

1 1 1 * * * 0 0 0 0 0

0 0 0 * * * 1 0 0 0 1

0 0 1 0 1 0 1 0

0 1 0 1 1 1 1 1

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

1 0 0 1 1 1 1 1

1 0 1 0 0 1 0 0

1 1 0 0 0 1 0 0

1 1 1 * * * 0 0 0 0 0

0 0 0 * * *

0 0 1

0 0 0 0 * 1 1 1 1 1 1

1 0 0

1 0 1

1 1 0

1 1 1 * * *

* Signifies a “don’t care” bit.

SampleCharacterPattern(1)

CursorPosition

SampleCharacterPattern(2)

TABLE-5 INSTRUCTION SET

NOTE : 1. Symbol “*” signifies a “don’t care” bit

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

1.64mS

1.64mS

40µS

40µS

40µS

40µS

40µS

0µS

40µS

40µS

40µS

R S R / W D B7

D B6

D B5

D B4

D B3

D B2

D B1

D B0

0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 1 *

0 0 0 0 0 0 0 1 I/D S

0 0 0 0 0 0 1 D C B

0 0 0 0 0 1 SC RL * *

0 0 0 0 1 DL N 0 * *

0 0 0 1 ACG

0 0 1 ADD

0 0 BF AD

1 0 Write Data

1 1 Read Data

I/D=1 : Increment, I/D=0 : Decrement.S=1 : Display Shift ONS/C=1 : Shift Display, S/C=0 : Move Cur-

sorR/L=1 : Shift Right. R/L=1 : Shift LeftDL=1 : 8 Bit. DL=0 : 4 BitN=1 : Dual Line. N=0 : Single Line.BF=1 : Internal Operation.BF=0 : Ready for instruction.

Code ExecutionTime (max)

Instruction

DisplayClear

DisplayCursorHome

Entry ModeSet

DisplayON/OFF

DisplayCursorShift

FunctionSet

CG RAMAddressSet

DD RAMAddressSetBusy Flag/AddressCounter Read

CG RAM/DD RAMData Write

CG RAM/DD RAMData Read

Function

Clear enter display area, restoredisplay from shift, and load addresscounter with DD RAM address 00H.

Restore display from shift and loadaddress counter with DD RAM ad-dress 00H

Specify cursor advance directionand display shift mode. This opera-tion takes place after each datatranster.

Specify activation of display (D), cur-sor (C), and blinking of character atcursor postion (B).

Shift display or more cursor.

Set Interface data length (DL) andnumber of display lines (N).

Load the address counter with aCG RAM address. Subsequent datais CG RAM data.

Load the address counter with aDD RAM address. Subsequent datais DD RAM data.

Read busy flag (BF) and contentsof address counter (AC).

Write data to CG RAM or DD RAM.

Read da ta from CG RAM or DDRAM.

DD RAM : Display data RAM

CG RAM : Character GeneratorRAM

ACG : Character GeneratorRAM Address

ADD : Display Data RAMAddress

AC : Address Counter

4144

Page 24: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

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 OR’ed 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”.

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 charac-

ter patterns, but may be used as a general.

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 charac-

ter code is a don’t care bit (i.e. can take either value “0” or “1”).

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

USING THE INTERNAL RESET CIRCUIT TO START

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

1. Clear display

2. Function set

DL = 1----------- 8-bit data length interfaceN = 0----------- (single line display)F = 0----------- The source of 5x7 dot of array character

3. Display ON/OFF control

D = 1----------- Display OFFC = 0----------- Cursor OFFB = 0----------- Character flashing function OFF

4. Entry mode set

I/D = 1----------- Increase modeS = 0----------- Display OFF

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 be-

low).

Diagram of module RESET power.

4.5V

0.2V

Trcc0.1ms <Trcc <10ms.

0.2V 0.2V

Toff > 1ms.

42 43

Page 25: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

Initialization by Instructions

If the power conditions for the normal operation of the internal reset circuitare not satisfied.

LCD unit must be initialized by executing a sense of the instructions. Theprocedure fro this initialization process is as follows.

Power ON

Wait 15ms or more

after VDD reaches 4.5V

RS R/W DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0 0 0 0 1 1 * * * *

Wait 4.1ms or more

RS R/W DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0 0 0 0 1 1 * * * *

Wait 100 µs or more

RS R/W DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0 0 0 0 1 1 * * * *

RS R/W DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0 0 0 0 1 1 N F * *

0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 I/D S

End of Initialization

Busy flag cannot be checked beforeexecution of this instruction.

Function Set (8-Bit Interface)

Busy flag cannot be checked beforeexecution of this instruction.

Function Set (8-Bit Interface)

Busy flag cannot be checked beforeexecution of this instruction.

Function Set (8-Bit Interface)

Function Set

Display Off

Display Clear

Entry Mode Set

8-Bit Interface,Single/Dual LineDisplay, Dis-play Font.

Caution: Hereafter, the display formatcannot be changed.

Busy flag can bechecked after theseinstructions arecompleted. If thebusy flag is not go-ing to be checkedthen a wait t imelonger than the to-tal execution timeof these instruc-tions is required.(See Table 5)

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

READ BUSY FLAG/ADDRESS COUNTER

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

Content of address counter and the busy flag will be read out at the sametime, it is a 7-bit binary, the address counter will instruct one of the ad-dress, either the character generator RAM or display data RAM. This isdetermined 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 orthe display data RAM. The address of the input data is instructed by theaddress counter, however, the address of address counter is influenced bythe final input address set instruction.

After data input whether the address counter add 1 or minus 1 is deter-mined by the design of the module. It can also be designed as locationmovement of the display.

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

Character generator RAM with 8-bit in length or the display data RAM canbe read by the CPU. The read out data address is instructed by theaddress counter. The address counter is instructed by the final inputaddress set instruction.

This instruction has to be set in C.G. RAM/D.D. RAM address, once shiftcursor instruction of the C.G. RAM/D.D. RAM data is read out, no otherinstruction can be read out.

The address setting instruction will read the data address into addresscounter.

Shift cursor command will allow the previous address setting to be usedagain in order to read the D.D. RAM data. the data can be read from theC.G. RAM/D.D. RAM after the cursor shift.

After the execution of data address counter add 1 or minus 1 will be set inthe LCD modular.

After the execution of data read out, the display will not shift.

4548

Page 26: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

INSTRUCTION DESCRIPTION

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 com-mands 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).

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

q Commands of set LCD module

q Commands of internal set address RAM

q Commands of data transfer in or out from the internal RAM

q Other commands

When the LCD modular is executing a command it will reject other com-mands. Except the “busy flag/read address counter, the internal countingperiod of busy flag is set to as “1”. If the CPU wants to send in othercommands 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 tothe 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 beinfluenced; but if the cursor or the character blinking function is in the setcondition, 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/writea display data RAM character code, so that the cursor or the characterblinking 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 moveto the display direction and move one space to the left (I/D=0) or one spaceto the right (I/D=1). When S=0, the display will not move.

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

DISPLAY ON/OFF

D :D=1 - Display ON

D=0 - Display OFF

C: C=1 - Cursor display on the display address of the displaycounter

C=0 - Cursor does not display

B : B=1 - Character blinking of cursor position at feq or fosc=250KHzfreq, therefor all black points and character display willexchange with each other. Each character display andovershadow 409.6ms.

DISPLAY/CURSOR SHIFT

S/C R/L

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

0 0 - Cursor move to the right (AC <—AC+1)

1 0 - All the characters and cursor move to the left

1 1 - All the characters and cursor move to the right

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

FUNCTION SET

DL : Select data length for the interface circuit.

DL=1 - Using the 8 bits data length.

DL=0 - Using the 4 bits data length.

N : Select the display format (one or two lines)

C.G. RAM ADDRESS SET

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

D.D. RAM ADDRESS SET

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

46 47

Page 27: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

SUB-PROGRAM

The 8086/8088 so-called subprogram has both the same segment callingand the different segment calling. The different segment calling is usedtowards the different. The different segment calling is used towards thedifferent segment of subprogram. The subprogram of this system programhas to be all in the same segment in order to call the same subprogram (thesame segment and different segment subprogram are different from RETcommand). For user convenience, the system program will start fromF000:F040 as the catalog section of the subprogram. In the subprogramcatalog segment, if the same segment subprogram RET is changed todifferent segment subprogram RET is changed to different segment subpro-gram RETF. The user can therefore choose the different segment callingfrom any segment to call one of the subprogram in the catalog segment.

Another method of using system subprogram is to use the M command tomove all the programs in the system into the user’s segment. This allowsdirect access to the calling commands in the segment. Since there areother subprogram that can be called from the subprogram, all the programshave to be moved together in order to protect each other address (whenevery subprogram is being used in the catalog, it should start moving fromF000:EA00-FF4F), it is therefore a waste of space.

The user can add new program into the empty space of catalog section.

OPERATION DESCRIPTION OF SUB-PROGRAM

F000:F040 CALL SI

The calling of the implied address will allow the subprogram address to beregistered 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 subpro-gram calling.

Output Parameter : Depends on the execution of subprogram.

F000:F044 CALL FEEO

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

Input Parameter : AL stores the LCD modular orders that have been writ-ten in .

Output Parameter : None

Input Parameter : DX : The first displayed number after the entry

BL : The display location of word at the most leftside.

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 effectiveaddress are stored consequently in DX and DI (i.e. DX:DI).

The displayed location of most left side character is instructed by BL, BHinstructs the position from the first character onwards. If BH is smaller than9 but not equal to 4, BL add to BH will be the exact location of displaylocation.

The keys , are used to operate the cursor while input numbers. It willalso allow the cursor to move between segment and effective address.Other than these three functional keys, the rest will transfer to code numberand jump out of subprogram.

Input parameter : BL : Instruct the most left side word to display loca-tion. The rules is the same as (1).

BH : Instruct the position starting from BL, first entryinto the subprogram is set to 0, program execu-tion will follow the operation whether to add orsubtract.

Output Parameter : Al stores the key-in code of functional keys.

F000:F070 CALL FE15

Transfer the numbers in AL from ASCII code to hexadecimal to be stored inlower 4 bits of AL , clear to C-Flag at the same time to 0. But set the C-Flag of non-numerical ASCII code to 1, without changing the code of AL.

Input Parameter : ASCII code of numbers that are stored in AL.

Output Parameter : The ASCII code of the numbers in AL will be transferredto hexadecimal to be stored in the lower 4 bit, clear theC-flag to 0 otherwise set C-Flags to 1 with-out chang-ing the AL code.

4952

Page 28: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

F000:F048 CALL FEFO

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

Input Parameter : Written data is stored in AL

Output Parameter : None

F000:F04C CALL FF00

Read out data from cursor position of LCD (the instructed position of ad-dress counter) into AL.

Input Parameter : None

Output Parameter : AL stores the read in data.

F000:F050 CALL FE7A

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

Input Parameter : None

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

F000:F054 CALL FE8A

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

Input Parameter : The key-in value is stored in AL

Output Parameter : If it is a numerical key, transfer into the relative ASCIIvalues, store in AL and clear all flags. All non-numeri-cal 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 0for alphabetical keys otherwise set 1 for non-alphabetical keys withoutchanging the AL value.

Input Parameter : The key-in value is stored in AL

Output Parameter : If is an alphabetical key, transfer to ASCII code to bestored in AL and clear the C-Flags. Otherwise, the ALvalue will not change.

F000:F05C CALL FEB5

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

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

Output Parameter : If it is a sign, transfer to ASCII code to be stored in ALand clear the C-Flag, otherwise, set the C-Flags to 1without changing AL values.

F000:F060 CALL FDE5

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

Input Parameter : The key-in codes are stored in AL.

Output Parameter : If it is functional key, transfer to key-in code to bestored in AL and clear the C-Flags, otherwise set theC-flags to 1 without changing AL values.

F000:F064 CALL FB35

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 C-Flags to 0. Otherwise set the C-Flag to 1 without chang-ing AL values.

F000:F068 CALL EA35

Input a 4 digits number at the BX appointed location and store in DX in orderto be displayed in LCD modular. BL will appoint the first position. BH willappoint BL where to start, BH has to be smaller than 4 & follows theaddress counter in the LCD modular. When BL=X0XX XXXX, it is the firstline; when BL = X1XX XXXX, it is the second line. The exact location is thesum of BL and BH. When input, ® key and ¬ key will operate the cursorlocation. If the key-in function is changed to key code, it will leave thesubprogram after it is stored in AL.

The BH is set to 0 for first time entry, the rest will be according to the key-in to determine the code.

50 51

Page 29: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

F000:F074 CALL FE30

After changing the hexadecimal in AL to ASCII code, the higher level isstored 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 lowerlevel ASCII.

F000:F078 CALL FF2B

Clear the first line display of the BL, display of D.D. RAM will be stored intothe 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.

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)

Input Parameter : None

Output Parameter : None

F000:f080 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 determinedby BH. BH must be smaller than r, BH = 0 represents it is inserted into themost 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.

0:0409 CALL F000:F044 ;Call for write-in instruction sub-program

0:040E CALL F000:F050 ;Call for the read key-in

0:0413 CALL F000:F058 ;Call the alphabetical key codeand transfer into the subpro-gram

0:0418 JB 040E ;Ignore the alphabetical key-in,return to original key-in; other-wise execute the next instruc-tion.

0:041A CALL F000:F048 ;Key-in code enter into LCDmodular

0:041F JMP 040E

0:0422 HLT

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

Example-2

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

0:0400 MOV AL,01 ;Clear display commands to bestored in AL

0:0402 MOV BL,C0 ;Write the set LCD addresscounter commands into BL.

CO=1100 0000 represent theposition of second line

0:0404 CALL F000:F078 ;Clear second line

0:0409 MOV BX,00C2 ;Input parameter of subprogramis stored in BX.

;B0-B5 set the word at themost left side to display posi-tion, B6=1 represents the sec-ond line, B7 can be any num-ber. After entering subprogram,it is automatically set to 1(B=Bit).

5356

Page 30: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

F000:F088 CALL FFOA

Write the AL code into cursor location (inside the address of the addresscounter).

Input Parameter : AL stores the code that is ready for input.

Output Parameter : None

F000:F08C CALL FF20

Write the AX code into the cursor location.

Input Parameter : AX stores the code that is ready for input.

Output Parameter : None

F000:F094 CALL F39A

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

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 hexadeci-mal to be stored in AL, also clear the C-Flag as 0. If it is a non-numericalcharacter, the C-Flag will be set to 1 and return once AL is back. theinstruction 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 tobe stored in AL. The C-flag has to be cleared to 0,otherwise it is taken back to AL, moreover the C-Flagis set to 1 in order to return.

F000:F09C CALL FD7A

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

Input Parameter : BL instructs the first word that is ready to read out fromthe most left side.

Output Parameter : The number read will be transfer to hexadecimal to bestored in AX, and clear the C-Flag to 0. Otherwise, theAL code will return and the C-Flag will be set to 1.

F000:F0A0 CALL FE55

Make a beep sound.

Input Parameter : None

Output Parameter : None

F000:F0A4 CALL FEDA

Delay subprogram that can be designed, the delay is counted by thecounter # 2 of 8253. It will check the key at the end, in order to jump outthe subprogram after it read.

Input Parameter : Before input, counter # 2 of 8253 has to be programmed.The subprogram will check counter # 2 and Jump outonce react the end.

Output Parameter : AL—AL code 00 represents no key-in, otherwise ALcode will be the key-in code. If AH is influenced, it willchange (indefinite value).

Practical Examples of Subprogram:

Example-1

Input alphabetical key, and display at LCD

0:0400 MOV AL,01 ;Clear display commands to bestored in AL

0:0402 CALL F000:F044 ;Calling instruction is input intoLCD subprogram

0:0407 MOV AL,0D ;Command that display ON/OFF is stored in AL

0D = 0000 1101

Letter blinking cursor OFF dis-play ON Display ON/OFF or-der

54 55

Page 31: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

;BH as 00 instructs the cursorand the first word location, firsttime entering subprogram is setto 0, the rest will automaticallyadd or subtract.

0:040C CALL F000:F068 ;Input 4 bits.

0:0411 CMP AL,0D ;whether it is Enter key

0:0413 JNZ 040A ;Non-Enter key will jump backto input subprogram, otherwiseit will execute the next com-mand.

Program will clear the second line first, but display 4 bits (DX value) on thesecond 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 ;Input parameter of subprogramis stored in BL. B6=0 repre-sents 1st line

0:0402 CALL F000:F078 ;Clear the first line.

0:0407 MOV AX,8088 ;Input parameter of subprogramis stored in BL. Among84=1000 0100, B0 to B5 dis-play the first word on the mostleft side. B6 as 0 representsthe 1st line display, B7 can beany value that automatically setto 1 once enter the subpro-gram. It is the D.D. RAM ad-dress command.

0:040A CALL F000:F094 ;Display AX.

0:040F HLT

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

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 SIGNALS PINS SIGNALS

1 +5V DC 26 A9

2 +5V DC 27 A0

3 GND 28 A8

4 GND 29 WR

5 D3 30 RD

6 D7 31 M/IO

7 D2 32 M/IO

8 D6 33 NC

9 D1 34 NC

10 D5 35 ALE

11 D0 36 ALE

12 D4 37 S1

13 A7 38 S0

14 A15 39 HLDA

15 A6 40 HOLD

16 A14 41 INTA

17 A5 42 INTR

18 A13 43 READY

19 A4 44 NMI

20 A12 45 RESET OUT

21 A3 46 RESET IN

22 A11 47 CLK OUT (PCLK)

23 A2 48 I/O CS

24 A10 49 RAM CS

25 A1 50 RAM CS

Pin Assignment of CN1 Connector

5760

Page 32: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

Example-4

Check table to display one line of letter.

0:0400 MOV BL,CO

0:0402 CALL F000:F078 ;Clear the second line

0:0407 MOV AL,C2 ;Parameter of subprogram isstored in AL. B)-B5 is writteninto LCD address counter, in-structed the word on the mostleft side.

B6 as 1 represents the sec-ond line.

B7 as 1 represents the setD.D.RAM address instruction.

0:0409 CALL F000:F044 ;Commands in AL are writteninto LCD

0:040E PUSH CS

0:040F POP DS ;Segment value set for tablechecking

0:0410 MOV SI,600 ;Starting address of tablechecking is stored into SI

0:0413 MOV CX,0A ;Store table checking length inCX

0:0416 CLD ;Clear directional flag

0:0417 LODSB ;Read in data from table check-ing section until AL.

0:0418 CALL F000:F048 ;Input AL data into LCD modu-lar.

0:041D LOOP 0416 ;CX not equal to 0 would con-tinue execution loop.

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 ofdisplay data, like followed (can be set oneself):

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

DESCRIPTION OF USING PROGRAM OPERATION

F000:F000 magnetic tape ROM program

Before operating, place the cassette in the proper position, then connectthe 3.5mm diameter socket to the input terminal of AUX or MICROPHONEin the magnetic tape (tape recorder). The IN terminal is connected to theSPEAKER or EAR of magnetic tape. The starting point of magnetic tapeand COUNTER have to be totally matched. When the volume is turned tofourth-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:

Press LIST in order to choose IN or OUT as input segment : effectiveaddress (start) and the ending Effective address, then a RETURN key,Before pressing RETURN key, press REC to execute first. When finish, thecursor will return to the starting effective address.

Similarly when choosing IN, the device will execute the function IN firstbefore it again press PLAY key on the magnetic tape.

RS-232: Refer to the description card of RS-232 (an operation manual isgiven with every purchase of F000:F003 RS-232).

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

I N F 0 0 0 : 0 4 0 0 0 4 0 0

58 59

Page 33: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

PIN NO. SYMBOL DESCRIPTION PIN NO. SYMBOL DESCRIPTION

1 BD7 DATA BUS BIT 7 9 E CHIP ENABLE

2 BD6 DATA BUS BIT 6 10 R/W READ/WRITE

3 BD5 DATA BUS BIT 5 11 RS REGISTER SELECT

4 BD4 DATA BUS BIT 4 12 VO CONTRAST CONTROL

5 BD3 DATA BUS BIT 3 13 VDD +5V

6 BD2 DATA BUS BIT 2 14 VSS GROUND

7 BD1 DATA BUS BIT 1 15 N.C.

8 BD0 DATA BUS BIT 0 16 N.C.

1 3 5 7 9 11 13 15

2 4 6 8 10 12 14 16

° ° ° ° ° ° ° °° ° ° ° ° ° ° °

Pin Assignment of CN9 Connector for LCD Display

2 4 6 8 10 12 14 16 18 20 22 24 26

° ° ° ° ° ° ° ° ° ° ° ° °° ° ° ° ° ° ° ° ° ° ° ° °1 3 5 7 9 11 13 15 17 19 21 23 25

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

PIN SIGNAL PIN SIGNAL

1 PC4 14 PB12 PC5 15 PA63 PC2 16 PA74 PC3 17 PA45 PC0 18 PA56 PC1 19 PA27 PB6 20 PA38 PB7 21 PA09 PB4 22 PA110 PB5 23 PC611 PB2 24 PC712 PB3 25 GND13 PB0 26 GND

6164

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

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

1) Edit the assembly program using any text editor to generate any .ASMfile. 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 requi-site DEMO. Next message which appears on screen is:

“Cross-reference [NUL.CRT]:”

Press Enter. If the assembly program does not contain any error, thenthe following message appears:

“0 Warning Errors”

“0 Severe Errors”

However if assembly program contain errors, then error messages withline number is edited program will be displayed. At the end a file with.OBJ extension will be created using MASM. For more details referMASM 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.

Page 34: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

Timer/Interrupt Connector CN9 (26 Pin Connector) Detail

PIN SIGNAL PIN SIGNAL

1 CAS0 14 GATE02 CAS1 15 OUT03 CAS2 16 CLK14 INTR 17 GATE15 IR0 18 OUT16 IR1 19 CLK27 IR2 20 GATE28 IR3 21 OUT29 IR4 22 NC10 IR5 23 NC11 IR6 24 NC12 IR7 25 GND13 CLK0 26 GND

JUMPERS SETTING

JP4

1 2 3 1 2 3

Vcc Battery Backup

JP0

1 2 3

Clock Setting1MHz

1 2 3

Clock Setting3MHz (Default)

SERIAL INTERFACE (Optional)

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

Pin No. Signals

1 Not Connected

2 Receive Data (Rx)

3 Transmit Data (Tx)

4 Data Terminal Ready (DTR)

5 Ground (GND)

6 Data Set Ready (DSR)

7 Request To Send (RTS)

8 Clear To Send (CTS)

9 Not Connected

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

9 PIN MALE CONNECTOR 9 PIN FEMALE CONNECTOR

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

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

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

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

5 ..................................................... 5

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

7 ..................................................... 8

8 ..................................................... 7

9 ..................................................... 9

To make our explanation easier, we will use XTALK software for communi-cating from Computer to VMC-8609 or user can use Hyper Terminal utility ofWIN 95/98/XP software.

2 4 6 8 10 12 14 16 18 20 22 24 26

° ° ° ° ° ° ° ° ° ° ° ° °° ° ° ° ° ° ° ° ° ° ° ° °1 3 5 7 9 11 13 15 17 19 21 23 25

62 63

Page 35: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

The origin difined in the above line is the first origin defined in your ASMfile. From this location onwards your file will be loaded while one isdownloading this file to the VT-86/88. It is important to note this addressfrom the ASM file. In the above example, we have entered 200 which isnoted from DEMO.ASM file.

After execution of the above file DEMO.ASC will be created which canbe transmitted or downloaded to VMC-8609 kit.

65

PROGRAM - 2

To find the maximum no. in a given string (16 Bytes long) and store it inlocation 0510.

ADDRESS OP CODE MNEMONIC COMMENTS

0400 BE 00 05 MOV SI, 0500 Load SI reg. with starting ad-dress of string.

0403 B9 10 00 MOV CX, 0010 Initialize Counter Reg. (withthe length of string i.e. no. ofbytes).

0406 B4 00 MOV AH, 00 Initialize the 8 bit Acc.

0408 3A 24 CMP AH,[SI] The 1st data byte of thestring with ‘00’.

040A 73 02 JAE 040E If both bytes match (above isequal) then branch to (l).

040C 8A 24 MOV AH,[SI] Else, move the contents of(0500) into 8 bit ACC, i.e., areal no. in AH.

040E 46 INC SI Point at the next address ofstring.

040F E0 F7 LOOPNE 0408 Decrement the counter value,if not zero, continue process-ing (searching to the Max.No. continued.)

0411 88 24 MOV[SI],AH Max. No. in 0510 address.

0513 F4 HLT Halt.

For ExampleAFTER EXECUTION

0500 : 01 0508 : 12 0510 : 15

0501 : 02 0509 : 08

0502 : 03 050A : 09

0503 : 04 050B : 0A

0504 : 05 050C : 0B

0505 : 06 050D : 0E

0506 : 15 050E : 0C

0507 : 07 050F : 0D

68

Page 36: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

SAMPLE PROGRAMS

INTRODUCTION

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

PROGRAMMING EXAMPLE

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

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.

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

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

PROGRAM-1

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 per-formed (i.e. Initialize thecounter register).

0404 BE 00 05 MOV SI,0500 Load source Index Reg. withstarting address of Ist Binaryno. (LSBs array).

0407 BF 08 05 MOV DI, 0508 Load Destination Index Reg.with Dest. Address (where the

result of add. is to be startedstoring). Also it’s the start-ing address of MSBs of ar-ray.

040A 8B 04 MOV AX,[SI] Load Data bytes (which arein location 0500 and 0501 in16 bit ACC.

i.e. (0500) - AH

(0301) - AL

040C 11 05 ADC [DI],AX Add the contents (MS Bytes)of 0508, 0509 with the con-tents (LS Bytes) of 0500 +0501 and store the result inlocation 0508 onwards.

040F 46 INC SI Point at 0502 LOCN (Nextrelevant source LOCN).

040F 46 INC SI Point at next relevant LOCN,

0411 47 INC DI i.e. 0504.0411 47 INC DI

0412 49 DEC CX Decrement the counter.

0413 75 F5 JNE 020A If not zero (i.e. CX =0000)then continue addition.

0415 F4 HLT Else, Halt.

For example

AFTER EXECUTION

0500 : 01 0508 : 0A 0508 : 0B

0501 : 02 0509 : 0b 0509 : 0D

0502 : 03 050A : 0C 050A : 0F

0503 : 04 050B : 0E 050B : 12

0504 : 05 050C : 0F 050C : 14

0505 : 06 050D : 10 050D : 16

0506 : 07 050E : 11 050E : 18

0507 : 08 050F : 12 050F : 1A

66 67

Page 37: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

PROGRAM - 3

To sort a string of a no. of bytes in descending order:

ADDRESS OP CODE MNEMONIC COMMENTS

0400 BE 00 05 MOV SI,0500 Initialize SI Reg. with MemLOCN 0500.

0403 8B 1C MOV BX, [SI] BX has the no. of bytes (to beused for sorting) LOCNS 0500& 0501.

0405 4B DEC BX Decrement the no. of bytesby one.

0406 8B 0C MOV CX [SI] Also CX has the no. of bytesin LOCNS 0500 and 0501.

0408 49 DEC CX Decrement the no. of bytesby one.

0409 BE 02 05 MOV SI, 0502 Initialize SI reg. with the start-ing address of string (havingdata bytes).

040C 8A 04 MOV AL, [SI] Move the first data byte ofstring into AL.

040E 46 INC SI Point at the next bytes of thestring.

040F 3A 04 COMP AL,[SI] Compare the two bytes ofstring.

0411 73 06 JAE 0419 If two bytes are equal or 1stbyte is above that the secondByte Branch to (1).

0413 86 04 XCHG AL, [SI] Else

0415 4E DEC SI Second byte is less than firstbyte and swap (interchange)the two bytes.

0416 88 04 MOV [SI],AL

0418 46 INC SI Point at the next LOCN of thestring.

0419 E2 F1 LOOP 040C Loop if CX is not zero (i.e.

69

For Example

AFTER EXECUTION(Unpacked BCD Digits)

0500 : 31 0508 : 04

0501 : 32 0509 : 08

0502 : 33 050A : 02

0503 : 34 050B : 07

0504 : 35 050C : 01

0505 : 36 050D : 06

0506 : 31 050E : 06

0507 : 32 050F : 08

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 single8 bit ASCII Digit.

0402 BE 00 05 MOV SL, 05 00 Load SI with the starting ad-dress of ASCII string.

0405 BF 08 05 MOV DI, 0508 Load DI with the starting ad-dress of the result LOCNS.

0408 B9 08 00 MOV CX, 0008 Initialize the counter Reg.with the no. of bytes in thestring.

040B 80 E2 0F AND DL, 0F MS nibble of DL contents iszeroed.

040E 32 E4 XOR AH,AH Initialize the 8 bit ACC (=00)

0410 AC LODSB Load AL with the contents ofaddress accessed by SI reg.and increment SI reg. i.e.point at the next addressLOCN.

72

Page 38: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

continue processing till z=0)

041B 4B DEC BX At this juncture, first sortingwill be over i.e. first no. islogically compared with the

041C BE 00 05 MOV SI,0500 rest of the nos. For the cor-rect sorting, all the nos. mustbe compared with each otherlogically, i.e. above process-ing should be carried out no.of bytes times.

041F 75 E5 JNZ 0406

0421 F4 HLT Halt.

For Example

AFTER EXECUTION

0500 : 05 0502 : 28

0501 : 00 0503 : 25

0502 : 20 0504 : 20

0503 : 25 0505 : 15

0504 : 28 0506 : 07

0505 : 15

0506 : 07

PROGRAM - 4

ASCII MULTIPLICATION

To multiply an ASCII string of eight numbers by a single ASCII digit. Theresult is a string of unpacked BCD digits.

ADDRESS OP CODE MNEMONIC COMMENTS

0400 BE 00 05 MOV SI, 0500 Load SI reg. with starting ad-dress of string.

0403 BF 08 05 MOV DI, 0508 Load DI reg. with the startingaddress of result LOCNS.

0406 B2 34 MOV DL, 34 Load DL with the MultiplierASCII 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 ze-roed.

0411 8A 04 MOV AL, [SI] First ASCII no. of string in AL.

0413 46 INC SI Point at the next LOCN instring (of ASCII Nos.)

0414 80 E0 0F AND AL, 0F MS nibble at Multiplier no gapand 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 (remain-der obtained by performing theabove operation)

041D 37 AAA Added with 00 which are in1st Dest. LOCN. The con-tents of AL are unpackedDecimal no. and are stored in1st 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 gotin AAM operation) are movedin next best. LOCN (0509).

0423 49 DEC CX Decrement the Counter reg.

0424 75 EB JNZ 0411 If not zero, continue multiplyand storing unpacked BCDdigits, ELSE.

0426 F4 HLT HALT.

70 71

Page 39: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

0411 80 E0 0F AND AL,0F MS nibble of AL contents isalso 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 storedin the Address pointed to bythe DI reg. and next addressLOCN in DI reg. is pointed (i.e.current address LOCN of DIreg. is incremented by one).

0419 E0 F5 LOOP NZ 0410 Continue dividing the unpackedASCII digits if the contents ofC are not zeroed; else.

041B F4 HLT Halt.

For Example

AFTER EXECUTION

0500 : 31 0508 : 00

0501 : 32 0509 : 02

0502 : 33 050A : 00

0503 : 34 050B : 05

0504 : 35 050C : 07

0505 : 36 050D : 06

0506 : 31 050E : 00

0507 : 32 050F : 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

Serial Port Porgramming Examples

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

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

PARAMETERS TO SET COMMANDS TO GIVE IN XTALK MODE

SPEED 4800 BAUDRATE SP 4800

DUPLEX MODE FULL DU FULL

PARITY NONE PA ODD

STOP BITS 2 ST 2

DATA BITS 8 DA 8

CWAIT DELAY 10 CW 10

LWAIT DELAY 10 LW 10

EMLATION NONE EM NONE

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

0400 B0 B7 MOV AL,B7 ;control word format of8253

0402 E6 06 OUT 06,AL

0404 B0 13 MOV AL,13 ;count is given to set thebaud rate at 4800

0406 E6 04 OUT 04,AL

0408 B0 00 MOV AL,00

040A E6 04 OUT 04,AL

040C B0 4E MOV AL,4E ;mode instruction format

040E E6 52 OUT 52,AL ;in asynchronous mode

0410 B0 05 MOV AL,05 ;command instruction for-mat make transit enableand receive enable high

0412 E6 52 OUT 52,AL

0414 9A 7C F0 00 F0 LM: CALL F000:F07C ;clear the display

0419 B3 80 MOV BL,80 ;delete the first line

041B 9A 78 F0 00 F0 CALL F000:F078

0420 B9 14 00 MOV CX,14

0423 E4 52 L1: IN AL,52 ;check for Rx RDY signal

0425 24 02 AND AL,02

76

Page 40: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

ADDRESS OP CODE MNEMONIC COMMENTS

0400 BE 00 05 MOV SI, 0500 Load SI reg. with the startingAddress where the result isto 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 startingaddress of string.

0409 B0 05 MOV AL, 05 Store the identifier in ASL.

040B F2 AE REPNZ Data byte accessed by DIreg.compared with identifierwithout altering either of thecontents, this comparing con-tinuous with the incrementingof DI contents (AddressLOCN) till the two bytesmatch. With eachscanning the contents of CXgo on decrement by one.

040D F7 D1 NOT CX 2’S complemented CX &Move CX 89 0C MOV [SI],

CX 040F contents in 0500.

040F 89 0C MOV [SI], CX store the number of bytesin memory location

0411 F4 HLT Terminate the program.

For Example

Let (509) = 05 Let (0500) = 05

Then after executing the program CX = 0008 & (0500) = 08(0501) = 00

PROGRAM - 7

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

ADDRESS OP CODE MNEMONIC COMMENTS0400 BE 00 05 MOV SI, 0500 Load SI reg., with the starting

address of data string.0403 BF 00 06 MOV DI, 0600 Load DI with the starting ad-

dress of result LOCNS.0406 B9 10 00 MOV CX, 0010 Load CX with the no. of bytes

in the string.0409 AC LODSB Load AL with Data byte ac-

cessed by SI reg. and incre-ment the address LOCN in SIreg.

040A F6 D8 NEG AL The contents of AL are 2’scomplemented.

040C AA STOSB Store AL contents in LOCNpointed to by DI ref. & incre-ment the current Location inDI reg.

040D E0 FA Loop NZ 0409 If CX = 0000, continue 2’scomplementing the data instring else;

040F F4 HLT Halt.

For ExampleAFTER EXECUTION

0500 : 01 0600 : FF0501 : 02 0601 : FE0502 : 03 0602 : FD0503 : 04 0603 : FC0504 : 05 0604 : FB0505 : 06 0605 : FA0506 : 07 0606 : F90507 : 08 0607 : F80508 : 09 0608 : F70509 : 0A 0609 : F6050A : 0B 060A : F5050B : 0C 060B : F4050C : 0D 060C : F3050D : 0E 060D : F2050E : 0F 060E : F1050F : 10 060F : F0

74 75

Page 41: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

0427 74 FA JE 0423

0429 E4 50 IN AL,50 ;character is received fromCRT terminal & displayedinto LCD modulator in firstline

042B 9A 48 F0 00 F0 CALL F000:F048

0430 E2 F1 LOOP 0423

0432 B3 C0 MOV BL,C0 ;delete second line

0434 9A 78 F0 00 F0 CALL F000:F078

0439 B9 14 00 MOV CX,0014

043C E4 52 L2: IN AL,52 ;check for Rx RDY signal

043E 2402 AND AL,02

0440 74FA JE 043C

0442 E4 50 IN AL,50 ;received the character insecond line

0444 9A 48 F0 00 F0 CALL F000:F048

0449 E2 F1 LOOP 043C

044B E9 C6 FF JMP 0414

Execute using ‘G’ 000:0400 and press any key on the PC keyboard, samewill be displayed on the LCD display of the VMC-8609.

(b) The following example will transmits characters to PC and simul- taneously display on LCD.

0400 B0 B7 MOV AL,B7 ;control word format for8253

0402 E6 06 OUT 06,AL

0404 B0 13 MOV AL,13 ;count is given to set thebaud rate at 4800

0406 E6 04 OUT 04,AL

0408 B0 00 MOV AL,00

040A E6 04 OUT 04,AL

040C B0 4E MOV AL,4E ;mode instruction formatin asynchronous mode

040E E6 52 OUT 52,AL

0410 B0 05 MOV AL,05 ;make transmit enableand receive enable high

0412 E6 52 OUT 52,AL

0414 9A 7C F0 00 F0 L3: CALL F000:F07C ;clear the display0419 B9 14 00 MOV CX,0014041C B3 80 MOV BL,80 ;delete the first line

77

043F AC L0DSB

0440 9A 48 F0 00 F0 CALL F000:F048 ;input AL data into LCDmodulator

0445 E2 F7 LOOP 43E

0447 FB STI ;set interrupt flag

0448 E9 FD FF JMP 0448

Interrupt sub-routine at 0000:2000

2000 9A 7C F0 00 F0 CALL F000:F07C ;clear the display

2005 B3 80 MOV BL,80 ;delete the first line

2007 9A 78 F0 00 F0 CALL F000:F078

200C B0 86 MOV AL,86 ;write all the commandsin AL into LCD modula-tor

200E 9A 44 F0 00 F0 CALL F000:F0442013 0E PUSH CS2014 1F POP DS2015 BE 21 06 MOV SI,621 ;addr of table is stored

in SI2018 B9 0D 00 MOV CX,0D ;table length stored in

CX201B FC L3: CLD201C AC L0DSB201D 9A 48 F0 00 F0 CALL F000:F048 ;input AL data into LCD

modulator2022 E2 F7 LOOP 201B2024 CF IRET ;return to the execution

program0600 57 41 49 54 49 4E 47 20 WAITING FOR IRQ0

46 4F 52 20 49 4E 54 FF INTERRUPT0621 49 52 30 20 49 4E 54

45 52 52 55 50 54

BEEP

The beep sound can be generated by frequency generated by 8253 Timer-0whose gte is controlled by PC2 and output is enabled by PC3 of 8255. Theroutine at F000:F0A0 will generate a beep sound for 2 seconds.

0000:0400 9A A0 F0 00 F0 CALL F000:F0A0 ;call beep sound routine0000:0405 CC INT 3 ;break address

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

80

Page 42: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

041E 9A 78 F0 00 F0 CALL F000:F0780423 51 L2: PUSH CX0424 9A 50 F0 00 F0 CALL F000:F050 ;call for the read key in

CALL F000:F058;call the alphabetical keycode and transfer intosubprogram

0429 9A 58 F0 00 F0 CALL F000:F048 ;key in code enter intoLCD modulator.

042E 9A 48 F0 00 F0 CALL F000:F0480433 50 PUSH AX

0434 E4 52 L1: IN AL,520436 24 01 AND AL,01 ;check for TxRDY signal0438 74 FA JE 0434

043A 58 POP AX043B E6 50 OUT 50,AL ;trnsmit the character to

CRT terminal

043D 59 POP CX043E E2 E3 LOOP 04230440 B9 14 00 MOV CX,0014

0443 B3 80 MOV BL,80 ;delete the first line0445 9A 78 F0 00 F0 CALL F000:F078

044A 51 L5: PUSH CX044B 9A 50 F0 00 F0 CALL F000:F050 ;call for the read key in

0450 9A 58 F0 00 F0 CALL F000:F058 ;call the alphabetical keycode & transfer into sub-program

0455 9A 48 F0 00 F0 CALL F000:F048 ;key in code enter intoLCD modulator

045A 50 PUSH AX

045B E4 52 L4: IN AL,52 ;check for TxRDY signal045D 24 01 AND AL,01

045F 74 FA JE 045B0461 58 POP AX0462 E6 50 OUT 50,AL ;Transmit the character

to CRT terminal

0464 59 POP CX0465 E2 E3 LOOP 044A

0467 E9 AA FF JMP 0414Execute using ‘G’ command from 0000:0400 and press any key of theVMC-8609 keyboard, the same will be displayed on the LCD and on thescreen of PC.

78 79

Note : Keep all DIP Switch position at ON Position (SW5) for follow-ing 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 usermade 18th Pin of 8259 or 5 Pin of CN6 Connector is made low. The0000:400 program branches to 2000 address.

0400 B8 00 00 MOV AX,0000 ;data segment is initial-ize to zero

0403 8E D8 MOV DS,AX

0405 B8 00 20 MOV AX,2000 ;interrupt location is de-fined

0408 89 06 00 00 MOV [0000],AX

040C B8 00 00 MOV AX,0000

040F 89 06 02 00 MOV [0002],AX

0413 B0 17 MOV AL,17 ;ICW1 Command

0415 E6 30 OUT 30,AL

0417 B0 00 MOV AL,00 ;ICW2 Command

0419 E6 32 OUT 32,AL

041B B0 01 MOV AL,01 ;ICW4 Command

0413 E6 32 OUT 32,AL

041F B0 FE MOV AL,FE ;unmask IRQ0

0421 E6 32 OUT 32,AL

0423 9A 7C F0 00 F0 CALL F0000:F07C ;clear display

0428 B3 80 MOV BL,80 ;input parameter of sub-program is stored in BL,clear 1st line

042A 9A 78 F0 00 F0 CALL F000:F078

042F B080 MOV AL,80 ;write all the commandsin AL into LCD modula-tor

0431 9A 44 F0 00 F0 CALL F000:F044

0436 0E PUSH CS

0437 1F POP DS

0438 B3 00 06 MOV SI,600 ;starting addr of table isstored into SI

043B B9 0F 00 MOV CX,000F ;store table checkinglength in CX

043E FC L1: CLD ;clear direction flag

Page 43: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

PROCEDURE OF INTERFACING BETWEEN KIT & PC USINGHYPER TERMINAL FACILITY OF WIN 95/98/ME/2000/XP.

1. SWITCH ON PC AS WELL AS KIT AND CONNECT RS-232 CABLEBETWEEN KIT AND PC COM PORT 01 OR 02

2. ENABLE HYPER TERMINAL FROM WINDOW APPLICATION

(START/PROGRAMS/ACCESSORIES/COMMUNICATIONS/HYPER TER-MINAL)

3. CLICK ON HYPERTRM ICON AND GIVE ANY NAME (FOR SETTINGPARAMETERS) AND CLICK OK.

4. CHOOSE DIRECT TO COM1 OR COM2 AND CLICK OK.5. SET PARAMETER AS FOLLOWS :

FOR 8086 KIT

BITS PER SECOND 4800DATA BITS 8PARITY ODDSTOP BITS 2FLOW CONTROL NONE6. GO ON MENU BAR SELECT FILE—PROPERTIES—SETTING—ASCII

SETUP…ASCII SENDING: LINE DELAY 20

CHARACTER DELAY 20

ASCII RECEVING: ENABLE FORCE INCOMING…WRAP LINES THAT…

UPLOADING PROCEDURE FROM KIT TO PC FOR 8086 KIT

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

Example

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

81

Page 44: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

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

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

Press ‘F7’ key to come in the OUT mode.

1st location indicates the starting address (F000:0400) and the 2ndlocation indicates the end address (0400) of the memory area to betransmitted on to the Serial Port. Change this to 0000:0400 to 04FF asfollows:

1. ON MENU BAR SELECT TRANSFER—CAPATURE TEXT…

2. CLICK ON IT AND GIVE ANY NAME WITH TXT EXTENSION (PATH:FILES\ACCESSORIES\HYPER TERMINAL\XXX.TXT) AND CLICK ONSTART.

3. AFTER THAT PRESS ENTER KEY OF VMC-8609AD KIT KEYBOARDDATA FIELD WILL APPEAR ON HYPER TERMINAL SCREEN.

4. GO IN MENU BAR SELECT TRANSFER—CAPATURE TEXT…

— STOP—FILE—SAVE.

5. BY DOING THIS YOU CAN SAVE ANY DATA IN GIVEN PATH ASABOVE.

VMC - 8 6 0 9 . . 7 F F F

G F 0 0 0 : F 0 0 3

RS - 2 3 2 4 8 0 0 . BPS

I N F 0 0 0 : 0 4 0 0

RS - 2 3 2 4 8 0 0 . BPS

OU T F 0 0 0 : 0 4 0 0 0 4 0 0

RS - 2 3 2 4 8 0 0 . BPS

OU T 0 0 0 0 : 0 4 0 0 0 4 F F

82 83

DOWNLOADING PROCEDURE FORM PC TO KIT FOR 8086 KIT

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

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

Change the location from F000:0400 to 0000:0400. This is the 1st RAMlocation data will be received from the PC and this address will keep onincrementing on receipt of each Data Byte.

1. IF UNABLE TO OPEN COM1 MESSAGE APPEAR CLICK ON OK ANDGO IN MENU BAR SELECT FILE—PROPERTIES—CONNECT USINGDIRECT TO COM1 CHANGE OPPSITE COM AND CLICK ON OK.

2. THEN GO IN MENU BAR SELECT TRANSFER—SEND TEXT FILE…

3. CLICK ON XXX.TXT FILE AND CLICK OPEN IT.

4. AFTER THAT ADDRESS FIELD WILL GO ON MOVING TILL THE LASTADDRESS FIELD AT WHERE USER HAVE SAVED XXX.TXT FILE.

VMC - 8 6 0 9 . . 7 F F F

G F 0 0 0 : F 0 0 3

RS - 2 3 2 4 8 0 0 . BPS

I N F 0 0 0 : 0 4 0 0

RS - 2 3 2 4 8 0 0 . BPS

I N 0 0 0 0 : 0 4 0 0

Page 45: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

ONLY FOR VMC-8609AD

DESCRIPTION OF AD-DA SECTION

ADC-0809 A/D Card is an 8-bit analog to digital converter with 8 channelmultiplexer and microprocessor compatible control logic.

The heart of the card is ADC-0809 monolithic C-MOS device. Its conversiontime is 100 u-sec. It eliminates the need for external zero and full scaleadjustment. The card selects one of the eight unipolar inputs by using theaddress decoder. ADC-0809 uses successive approximation as conversiontechniques. Input is latched to the deodar on the low to high transition of theaddress latch enable signal. The conversion starts on the falling edge of thestart of conversion signal. During the process End of Conversion signalgoes low otherwise it remains high. Digital output can be read from ADCmaking output enable signal high.

All eight inputs of 0-5 Volts ADC-0809 along with external clock, externalEOC, external SOC signals are brought to connector. All control signalsand digital output signals of ADC-0809 are brought to 10 pin terminal. One8255 PPI along with 8086 uP can be used to get analog to digital conversiondata.

A clock input of a specified frequency is required for the operation of ADC-0809. A Counter 74LS93 has been used for this purpose.

Start of Conversion pulse and End of Conversion pulse can be given eitherby software or by external signal.

AD-DA section have the facility to select the channel either through softwareor manually with the help of jumper setting provided on card.

Example :

This is a program written for 8086 CPU system having 8255-III (CN5) ataddress:

PORT ADDRESS OF 8255-III (CN5)

Port A - 10

Port B - 12

Port C - 14

Control word - 16

8487

CH

0

P

A0

CH

1

P

A1

CH

2

P

A2

CH

3

P

A3

CH

4

P

A4

CH

5

P

A5

CH

6

P

A6

CH

7

P

A7

CS

PB

0

A

PB

1

Vc

c

P

B2

CL

OC

K

S

OC

GN

D

E

OC

EN

BL

+5

VV

Re

f.

32 1

3

21

3

21

3 21

1/8

25

5-D

PIC

ON

N.

19

/AI

CO

NN

.

3/8

25

5-D

PIC

ON

N.

+5

V

21

/AI

CO

NN

.

6/8

25

5-D

PI

CO

NN

.M

SB

LS

B

17

/IA

CO

NN

.1

21

31

0117

4L

S0

4

U3

1K

21

K2

X-T

AL

4M

Hz

U3

9 8

74

LS

04

GN

D

NC

NC

Vc

cx 4

x 3

x 2

x 1

58911112

14

413

236710

26

27

28

1234522

12

1110

16

13

17

14

15

818

19

20

21

25

24

23

679

ADC 0809

74LS93 U1

U2

Page 46: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

PROCEDURE

1. Connect 26 pin FRC Cable from CN5 (8255-III) Connector to CN9 (ADDASection).

2. Enter the programme from 0:400 memory address of the kit.3. Execute the programme from 0:400 memory address of the kit.4. Give the analog input at CH-0 GND (should be common).5. Observe the data displayed on display of kit.

Example :

The program written is for 8086 series of Microprocessor Training Kits atConnector of 8255-III and is to be executed from 0000:0400 Address. Theselected channel at address 0407 input is to be fed at Pin Analog InputCONN. and GND. The conversion table is as follows:

00.00V - 00

01.25V - 3F

02.50V - 7F

05.00V - FF

PROGRAM

Address Opcodes Mnemonics Comments

0400 BA 16 00 MOV DX,0016 ;initilize 8255

0403 B0 98 MOV AL,98

0405 EE OUT DX,AL

0406 B0 00 MOV AL,00 ;select channel 0

0408 BA 12 00 MOV DX,0012

040B EE OUT DX,AL

040C BA 14 00 MOV DX,0014

040F B0 00 MOV AL,00

0411 EE OUT DX,AL

0412 B0 03 MOV AL,03

0414 BA 14 00 MOV DX,0014 ;ALE & SOC

0417 EE OUT DX,AL

0418 BA 14 00 MOV DX,0014

041B B0 00 MOV Al,00

041D EE OUT DX,AL

041E BA 14 00 MOV DX,0014

0421 EC IN AL,DX

0422 24 10 AND AL,10 ;check EOC

0424 74 F8 JZ 041E

0426 B0 04 MOV AL,04 ;output enable

0428 BA 14 00 MOV DX,0014

042B EE OUT DX,AL

042C BA 10 00 MOV DX,0010 ;read ADC data

042F EC IN AL,DX

0430 9A 7C F0 00 F0 CALL F000:F07C ;clear display

0435 B4 00 MOV AH,00

0437 B3 80 MOV BL,80

0439 9A 94 F0 00 F0 CALL F000:F094 ;display data

043E B9 55 55 MOV CX,5555 ;count for delay

0441 49 DEC CX

0442 75 FD JNZ 0441

0444 E9 BF FF JMP 0406 ;read again

85 86

Page 47: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

DESCRIPTION OF DAC 0800

Port A & Port B are connected to channel 1 and channel 2 respectively.A reference voltage of 8V is generated using 723 and is given to Vref pointsof the DAC 0800. The standard output voltage will be 7.98V when FF isoutputted and will be 0V when 00 is outputted. The output of DAC 0800 isfed to the operational amplifier to get the final output as DA OUTPUT.

Several interesting waveforms can be generated and observed on oscillo-scope.

PROCEDURE USING DAC

1. Connect Interfacing Module Cable from 8255-III (CN5) connector toAD-DA Interfacing Module.

2. Be sure about the direction of the cable.

3. Before executing the programme make sure that it is entered Properly.

4. Execute from 0400 address & observe staircase at DA OUTPUT onoscilloscope.

EXERCISE

1. Write a program to generate a stair case generator with ten steps. Thepulse duration should be programmable.

2. Write a program to generate the following wave forms.

a Triangular waveforms.

b Square wave of 1KHz with peak voltage of 2.4V.

3. Write a program to generate sinewave using look up table. The resolu-tion may be chosen at (a) 6°, (b) 8°. The frequency of wave from shouldbe programmable.

8891

PC4 PC5

PC2 PC3

PC0 PC1

PB6 PB7

PB4 PB5

PB2 PB3

PB0 PB1

PA6 PA7

PA4 PA5

PA2 PA3

PA0 PA1

PC6 PC7

GND GND

Connector Details at 8255

Page 48: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

DESCRIPTION OF THE PROGRAM

The 8255-III (CN5) is initialized to make port A, B and C in output mode.The different weights are put on digital input of D/A converter to generate theanalog signal. The program generates the staircase generator in ten steps.One step is outputted and system wait for a while, and output other weightin input of D/A converter. After ten steps, the weight of 00 is outputted on D/A converter. The whole process repeats itself to generate the repetitivestaircase pulses.

PORT ADDRESS OF 8255-III (CN5)

Port A - 10

Port B - 12

Port C - 14

Control word - 16

Program

400 B0 80 MOV AL,80 ;control word

402 E6 16 OUT 16, AL

404 B0 00 MOV AL, 00 ;first data out

406 E6 12 OUT 12,AL

408 FE C0 INC AL ;increment data

40A EB FA JMP START ;out next data

89 90

+12V -12V

0.1

µF

0.1

µF

0.1

µF

3.0

N1

%3

.0 N

1%

13 3 1615

145 6 7 8 9 10 11 12

4

21

PD 7 6 5 4 3 2 1 0

8 7 10 8 12 11 16 13YREF

1.2K

+12V

1.5K1%

2

31

6

45

100K -12V

7

+12V

1.5K1%

DA OUTPUT

+12V

-12V

GND

LM74

DAC - 0800

Page 49: VMC-8609ADP

Vinytics VMC-8609 User’s Manual Vinytics VMC-8609 User’s Manual

CN5

26

25

2

1

CN2

-12V+12V

GND+5V

ADDRESSLATCH

ADDRESS

LATCH

CN

1 B

US

C

ON

NE

CT

OR

1

8255-III CONN.

CN4

2

1

8255-II CONN.

ADDRESS

LATCH

26

25CN3

2

1

8255-I CONN. 26

25

U 3 U 2 U 4

X-T

AL3

12.0

00

MH

z

KEY-BOARD

IBMPC

20 X 2 LCD DISPLAY

RESET

R A MR A MR A MR A MR A M

U19

R A MR A MR A MR A MR A M

U18

R A MR A MR A MR A MR A M

U16

R A MR A MR A MR A MR A M

U17

2

4950

CN6 26

25

2

1

TIMER/COUNT/INTR

CONN.

U30

BATTERY

BACKUP

JP4

JP0

X-T

AL2

11.0

592

MH

z

U24

8255-I

U25

8255-II

U26

8255-III

U2

8IN

TE

RR

UP

TC

ON

TR

OL

LE

R

U2

7

US

AR

T

INT

ER

FA

CE

U2

9

TIM

ER

/

CO

UN

TE

R

MAIN RS-232

U15U14

U 8

U 6

U 9

U 7 U10

U 5

U21

ODD RAM

U20

EVEN RAM

U23

ODD ROM

U22

ODD RAM

JP1

JP2

JP3

32

1

3

21

U 1

U12

1 2 3

123

3

21

U11 U13

X-T

AL1

11.0

592

MH

z

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

KEY 1

CN7

BUZZER

SELECTION MODE

IBMPC KEYBOARD

MEMORY AREA

8086 CPU

REAL TIME

CLOCK

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