Manual M 86-01
Manual M 86-01
ABVOLT
M86-01
Page 1 of 79
TABLE OF CONTENTS
1. System Introduction 3
2. System Specification 4
3. System Capabilities 5
4. System Installation 5
5. Hardware Description 6
6. Keyboard Description 11
7. EPROM Programmer 34
8. Serial Commands 37
9. Sample Programs 48
12. Assembler/Disassemble 66
13. Warranty 87
Page 2 of 79
SYSTEM INTRODUCTION
General description :
M86-01 is a single board Microprocessor Training /Development Kit configured around the
INTEL’s 16 bit Microprocessor 8086. This kit can be used to train engineers, to control any
industrial process and to develop software for 8086 systems.
The kit has been designed to operate in the max. mode. Co-processor 8087 and I/O Processor
8089 can be added on board. 8086 CPU can also be replaced by 8088 CPU.
The Kit communicates with the outside world through a keyboard having 28 keys and eight
seven segment displays.
The kit also has the capacity of interacting with teletypewriter & CRT Terminal.
The kit is packed up with powerful monitor in 16K Bytes of factory programmed EPROMS and
16K Bytes of Read/Write Memory. The total memory on the board can be easily expanded to
256K Bytes of EPROM and 128K Byte of CMOS RAM. The system has 72 programmable I/O
lines. The serial I/O Communication is made possible through 8251.
For control applications, three 16 bit Timer/Counters are available through 8253. For real time
applications, the 8 level of interrupt are provided through 8259. M86-01provides onboard battery
back up for onboard RAM. This saves the user’s program in case of power failure.
Page 3 of 79
SYSTEM SPECIFICATIONS
RAM : 16K bytes of RAM using 6264 with NiCD Battery Backup & expandable upto 256KB
I/O LINES : 72 I/O lines provided through 8255 brought out at 26 Pins FRC Connector
BUS : All address, data & control signals / lines are available on KXT Bus 50 pin FRC
Connector
Page 4 of 79
SYSTEM CAPABILITIES
Keyboard Mode :
1. Examine/Modify the memory byte locations.
2. Examine/Modify the memory word locations.
3. Examine/Modify the contents of any of internal register of 8086.
4. Move a block of Data/Program from one location to another location.
5. Insert one or more instructions in the user program.
6. Delete one or more instructions from the user program.
7. To Write/Read directly to/from the I/O Port.
8. Fill a particular memory area with a constant.
9. Check the contents of an EPROM for Blank Check.
10. Read the Contents of an EPROM in to RAM area.
11. Verify the contents of an EPROM with any memory area.
12. Program an EPROM.
13. To execute the program in full clock speed.
14. To execute program in single instruction execution.
Serial Mode :
1. Display/Modify memory location.
2. Display/Modify internal registers of 8086.
3. Display Block of memory data.
4. Move a block of Data/Program from one location to another location.
5. Execute the program in full clock speed mode.
6. To execute program in single instruction execution.
7. Port Input
8. Port Output
9. Upload Hex file
10. Download Hex file
SYSTEM INSTALLATION
Keyboard mode :
To install M86-01in keyboard mode, the following additional things are required.
1. Connect the AC Power Supply through AC Power Chord provided to the M86-01Kit.
2. Switch on the Power Supply at the rear end.
3. A message - SCB 86 will come on display (PRESS RESET if you do not get - SCB 86).
4. Now M86-01Kit is ready for the user's experiments for Keyboard Mode commands.
Serial mode :
To install M86-01in serial mode, the following additional things are required.
1. Steps 1, 2 and 3 will remain same for Serial Mode.
2. Connect RS-232C Cable from PC Serial Port (Com-1 OR Com-2) to the connector CN2 of the
M86-01Kit.
3. Switch ON the Hyper Terminal of Win95/98 and set the Baudrate at 9600bps.
4. Press TTY Key on M86-01Kit. A message `Serial' will be displayed on the kit and a
message M86-01 version 1.2 will come on the screen and in the next line it displays a prompt
character ‘.’, indicating that now the command can be entered from the terminal.
5. Now M86-01Kit is ready for the user's experiments for Serial Mode commands.
Page 5 of 79
HARDWARE DESCRIPTION
CPU :
8086 is a 16 bit, third generation microprocessor and is suitable for an exceptionally wide
spectrum of microcomputer applications. This flexibility is one of most outstanding
characteristics. 8086 has got 16 data lines and 20 address lines. The lower 16 address lines are
multiplexed with 16 data lines. Hence it becomes necessary to latch the address lines. This is
done by using 74 LS 373.
In fact several of the 40 CPU pins have dual functions that are selected by a strapping pin. In this
kit 8086 is used in the max. mode (MN/Mx input held logically low).
The 8088 is designed with an 8-bit external path to memory and I/O. Except that the 8086 can
transfer 16 bits at a time, the two processors & software are identical in almost every respect.
Software written for one CPU will execute on the other without alteration. The two processors
are designed to operate with the 8089 I/O processors and other processors in multiprocessing and
distributed processing systems.
The INTR, TEST & Hold Inputs to 8086 are pulled down and are brought out at PCB FRC
connector. The 8086’s NMI Input is connected to the VCT INT Key.
The mask able interrupt INTR is available to the peripheral circuits through the expansion Bus.
To use the mask able interrupt an interrupt vector pointer must be provided on the data bus when
INTA is active. An interrupt Controller Circuit is provided to take care of more than one source
of interrupt.
Co-Processor 8087 :
The 8087 Co-processor “hooks” have been designed into the 8086 and 8088 so that these types
of processor can be accommodated in the future. A co-processor differs from an independent
processor in that it obtains its instructions from another processor, called a host. The co-
processor monitors instructions fetched by the host and recognizes certain of these as its own and
executes them. A coprocessor, in effect, extends the instruction set of its host computer.
Clock Generation :
The clock generator circuit is an Intel’s 8284 clock generator/driver. The circuit accepts a crystal
input which operates at a fundamental frequency of 14.7456 MHz. (14.7456 MHz was selected
since this frequency is a multiple of the baud rate clock and also provides a suitable frequency
for the CPU). The clock generator/driver divides the crystal frequency by three to produce the
4.9 MHz CLK signal required by the CPU. Additionally, the clock generator performs a further
divide-by-two output called PCLK (peripheral clock) which is the primary clock signal used by
the remainder of the circuits.
The clock generator/driver provides two control signal outputs which are synchronized
(internally) to the 4.9 MHz CLK signal; RDY (ready) and RST (reset). RST is used to reset the
Page 6 of 79
M86-01 to an initialized state that occurs when the RES input goes low (when power first is
applied or when the SYSTEM RESET key is pressed). The RDY output is active (logically high)
when the RDY 1 input from the wait state generator is active. As will be explained in the next
section, the RDY 1 input is active whenever onboard memory is addressed or when a selected
number of “wait states” occurs.
The system can operate at either 4.9 MHz or 2.45 MHz. This is selected by a set of jumpers JP6
on the right hand side of the 8284 clock generator as shown below:
1. 2.45 MHz (LOWER)
2. CLK
3. MHz (UPPER)
The M86-01is supplied in 4.9 MHz configuration.
Bus Controller :
The 8288 is a Bus Controller which decodes status signals output by an 8089, or a maximum
mode 8086 or 8088. When these signals indicate that the processor is to run a bus cycle, the 8288
issues a bus command that identifies the bus cycle as memory read, memory write, I/O read, I/O
write, etc. It also provides a signal that strobes the address into latches. The 8288 provides the
drive level needed for the bus control lines in medium to large systems.
Bus Arbiters :
The 8289 is a Bus Arbiter that controls the access of a processor to a multimaster system
resource (typically memory) that is shared by two or more microprocessors (masters). Arbiters
for each master may use one of several priority-resolving techniques to ensure that only one
master drives the shared Bus.
Memory :
M86-01 provides 16K Bytes of EPROM loaded with monitor and 16K bytes of CMOS RAM.
The total onboard memory can be configured as follows:
EPROM : 64K Bytes of EPROM using 27128, 128K Bytes of EPROM using 27256, 256K Bytes
of EPROM using 27512.
RAM : 128K Bytes of RAM using 62256.
The system provides two 28 Pin sockets for the EPROM area named as EVEN-ROM & ODD-
ROM and two 28 Pin sockets for the RAM area named as EVEN-RAM & ODD-RAM. EVEN-
ROM & ODD-ROM can be defined to have either of the EPROM 27128/27256/27512 and the
EVEN-RAM & ODD-RAM can be defined to have either of 6264/62256. This selection is done
by changing the jumper connections on the board of the kit.
With the 20 bit address of 8086, a total of 1 Mega Bytes of memory can be addressed with the
address slot as 00000 to FFFFF. Although the total onboard memory capacity is 384K Bytes but
actual memory area will depend upon the memory chips selected and accordingly the addresses
of the various memory sockets will change.
On M86-01 the 128K Bytes of RAM area is provided the bottom most slot and the 256K byte of
EPROM area are provided the top most slot.
The memory mapping for 8K RAM area using 6264 are as given below:
Page 7 of 79
EVEN-RAM : 00000 to 03FFE
ODD-RAM : 00001 to 03FFF
The memory mapping for 32K RAM area using 62256 are as given below:
EVEN-RAM : 00000 to 0FFFE
ODD-RAM : 00001 to 0FFFF
I/O Devices :
a. 8279
8279 is a general purpose programmable keyboard and display I/O interface device designed for
use with the 8086 microprocessor. It provides a scanned interface to 28 contact key matrix
provided in M86-01 and scanned displays.
8279 has got 16 x 8 display RAM which can be loaded or interrogated by the CPU. When a key
is pressed, its corresponding code is entered in the FIF0 queue of 8279 and can now be read by
the Microprocessor. 8279 also refreshes the display RAM automatically.
b. 8255
8255 is a programmable peripheral interface (PPI) designed to use with 8086 Microprocessor. This
basically acts as a general purpose I/O component to interface peripheral equipments to the system
bus. It is not necessary to have an external logic interface with peripheral devices since the functional
configuration of 8255 is programmed by the system software. It has got three input/output ports of 8
lines each (PORT-A, PORT-B and PORT-C). Port-C can be divided into two ports of 4 lines each named as
Port-C upper and Port-C lower. Any Input/Output combination of Port-A, Port-B, Port-C upper and Port-
C lower can be defined using the appropriate software commands. The Port addresses for these ports
are given here. M86-01 provides nine Input/Output ports of 8 lines each using three 8255 chips. These
ports are brought out at connectors.
c. 8253
This chip is a programmable interval timer/counter & can be used for the generation of accurate
time delays under software control. Various other functions that can be implemented with this
chip are programmable rate generator. Event Counter, Binary rate multiplier, real time clock etc.
This chip has got three independent 16 bit counters each having a count rate of up to 2 MHz. The
CLK, GATE & OUT signals of these timers are brought out at the connector.
d. 8251
This chip is a programmable communication interface and is used as a peripheral device. This
device accepts data characters from the CPU in parallel form and then converts them into a
continuous serial data stream for transmission. Simultaneously it can receive serial data stream
and converts them into parallel data characters for the CPU. This chip will signal the CPU
whenever it can accept a new character for transmission or whenever it has received a character
for the CPU. The CPU can read the complete status of it at any time. 8251 has been utilized in
M86-01 for RS-232-C serial interface.
e. 8259
The 8259 is a device specifically designed for use in real time, interrupt driven microcomputer
systems. It manages eight levels of requests and has built in features for expandability to other
8259’s. It is programmed by system’s software as an I/O peripheral. A selection of priority
modes in which the requests are processed by 8259 can be configured to match his system
Page 8 of 79
requirements. The priority modes can be changed or reconfigured dynamically at any time during
the main program.
Display :
M86-01 provides eight digits of seven segment display. Four digits are for displaying the address
of any location or name or any register, whereas the rest of the four digits are meant for
displaying the contents of memory location or of a register. All the eight digits of the display are
in hexadecimal notation.
Battery Backup :
The M86-01 provides a battery back up for the onboard RAM area using 3.6V Ni-Cd
Rechargeable battery. M86-01 has facility for connecting +5V to the RAM area if the Ni-Cd
battery fails. The selection for +5V or Battery supply Jumper (JP4) as shown below:
Battery Supply 1
28 Pin of RAM 2
+5V (VCC) 3
JP4
*Factory Default Setting - 2&3 are shorted
Port Address :
The Port addresses of the various I/O devices used in M86-01 are given below:
Device Name Port Name Port Address
8255-1 PORT A FFF8
PORT B FFFA
PORT C FFFC
CONTROL WORD FFFE
8255-2 PORT A FFF9
PORT B FFFB
PORT C FFFD
CONTROL WORD FFFF
8255-3 PORT A FFE0
PORT B FFE2
PORT C FFE4
CONTROL WORD FFE6
8279 DATA WORD FFE8 OR FFEC
COMMAND WORD FFEA OR FFEE
8253 COUNTER 0 FFD8
COUNTER 1 FFDA
COUNTER 2 FFDC
CONTROL WORD FFDE
Page 9 of 79
8251 DATA WORD FFF0 OR FFF4
COMMAND WORD FFF2 OR FFF6
8259 DATA WORD FFC8 OR FFCC
COMMAND WORD FFCA OR FFCE
8089 (I/O Processor) CHANNEL 1 FFC0
CHANNEL 2 FFC1
Page 10 of 79
KEYBOARD DESCRIPTION
The M86-01 has 28 keys and eight seven segment displays to communicate with outside world.
As the power is turned on and Reset key is pressed, a message -SCB 86 is displayed on the
display and all the keys are in command mode. The keyboard is shown below:
Fig. 1
With the keypad monitor program, you enter both commands and data by pressing individual
keys of the keypad. (The Monitor communicates with you through the display). As shown on
Figure-1, the Keypad is divided into two logical groups; the 16 hexadecimal keys on the right
hand side and the twelve function keys on the left hand side.
Most of the hexadecimal keys have combined functions as noted by their individual legends. The
small letters appearing under the hexadecimal key values are acronyms for individual monitor
commands and 8086 register names. Acronyms to the left of the slash sign are monitor
commands and acronyms to the right of the slash sign are 8086 register names. The function of a
hexadecimal key at any one time is dependent on the current state of the monitor and what the
monitor is expecting as input. Table 1 defines both the commands and registers associated with
the hexadecimal keys.
Page 11 of 79
Hexadecimal Keypad Legend Interpretation :
Page 12 of 79
The individual operation of the twelve function keys is defined in Table –Function Key
Operation
Your M86-01 Kit uses the eight digit display to communicate with you. Depending on the
current state of the monitor, the information displayed will be the:
• Current contents of a register or memory location.
• An “echo” of a hexadecimal key entry.
• A monitor prompt sign.
• An information of status message.
Page 13 of 79
The display itself is divided into two groups of four characters. The group on the left is referred
to as the “address field”, and the group on the right is referred to as the “data field”. All values
displayed are in hexadecimal and follow the format shown in Table.
General operation :
When using the keypad monitor, you will be prompted through the display as to the input
required. Whenever the monitor is expecting a command entry, a minus sign or dash appears in
the most significant display digit of the address field. Pressing one of the hexadecimal command
keys (Keys 0-F) when the dash is displayed is interpreted as a command entry. When the key is
pressed, the dash disappears and a decimal point (or decimal points) appears in the least
significant display digit (or least significant digits) of the address field to indicate that subsequent
keypad entry will be directed to the address field. Note that depending on the command,
characters also may appear within the address and data fields. Monitor operation from this point
is determined by the actual command entered. The description of each command is given later on
in this chapter.
Following power on or whenever the system RESET key is pressed, the monitor initializes the
M86-01 and displays the monitor sign-on message (UP in the two least significant digits of the
data field) and the command prompt character (dash) in the most significant digit of the address
field. Note that in the following command descriptions, the monitor always calculates a 20-bit
physical memory address from a 16 bit segment address value and a 16 bit offset address value.
The segment address value is entered first, the “:” key is pressed (to separate the two entries),
Page 14 of 79
and then the offset address value is entered. The two values entered, which are displaced from
one another by four bits, are added together to form the 20-bit physical memory address. If only
one address value is entered (the colon must be omitted), it is interpreted by the monitor as an
offset address value enter, and the current contents of the code segment (CS) register are used as
the segment address value. The CS register contents and offset address value entered are
combined to form the 20-bit physical address.
Command Description :
The various commands that can be executed by the monitor are listed below:
1. Examine Byte
2. Examine Word
3. Examine Register
4. Input Byte
5. Input Word
6. Output Byte
7. Output Word
8. Go
9. Move
10. Step
11. Insert
12. Delete
13. Fill
14. Blank check
15. Verify
16. List
17. Program
During the description of the commands the following notations are used:
Function
The Examine Byte (EB) and Examine Word(EW) commands examine the contents of selected
memory locations. If the memory location can be modified (e.g., a location in RAM), the
contents additionally can be updated.
Syntax
Page 15 of 79
Operation
To use either command, press the EB key (Examine byte) or EW Key (Examine Word) when the
command prompt character (-) is displayed. When either key is pressed, the decimal point at the
right of the address field will light (the rest of the display will be blanked) to indicate the entry
from the keyboard will be directed to the address field. From the keypad, enter the memory
address of the byte or word to be examined, most significant character first. Note that all memory
addresses consist of both a segment value and an offset value. When no segment value is
specified, the default segment value is the current contents of the code segment (CS) register.
When a segment value is specified, the first address entry is the segment value, a colon (:) is
entered as a separator, and the second address entry is the offset value. The capacity of an
address field entry is limited to four characters and, if more than four characters are entered for
either a segment or offset value, only the last four characters entered (the four characters,
currently displayed) are valid. After the address is entered, press the ‘NEXT’ key.
The data byte or word contents of the addressed memory location will be displayed in the data
field, and a decimal point will appear at the right of the data field to indicate that any subsequent
hexadecimal keypad entry will be directed to the data field. Note that when using the Examine
Word Command, the byte contents of the memory location displayed appear in the two least
significant digits of the data field, and the byte contents of the next consecutive memory location
(memory address + 1) appear in the two most-significant digits of the data field.
If the contents of the memory location addressed only are to be examined press the “key to
examine the next consecutive memory location (Examine Byte command) or the next two
consecutive memory locations (Examine Word Command). One can also press “PRV” key to
examine the previous memory location/locations. To modify the contents of an address memory
location, key-in the new data field is limited to either two (examine byte) or four (examine word)
characters and that if more characters are entered, only the characters currently displayed in the
field are valid. The data displayed is not updated in memory until either the “. or “NEXT” key is
pressed. If the”. key is pressed, the command is terminated, and the command prompt character
is displayed in the address field. If the “NEXT” key is pressed, the offset address and data
contents of the next consecutive memory locations (Examine Word Command) are displayed.
Error Conditions:
Attempting to modify a non-existent or read-only (e.g. ROM or PROM) memory location. Note
that the error is not detected until the “NEXT” or “.” or “PRV” Key is pressed. When an error is
detected, the characters “Err” are displayed with the command prompt character in the address
field.
Page 16 of 79
Example 1: Examine a Series of Memory Byte Locations Relative to the CS Register.
Page 17 of 79
Example 2 : Examining & Modifying Memory Word Location 10H relative to the DS Register.
To check that the data was updated successfully, press the EW key and enter the memory address
(DS: IOH). Press the “NEXT” key and note that “8CFb” is displayed in the data field.
Examine Register :
Function
The Examine Register (ER) command is used to examine and, if desired, to modify the contents
of any of the 8086’s registers.
Syntax
Operation
To examine the contents of a register, press the ER key when prompted for a command entry.
When the key is pressed, the decimal point at the right of the address field will light. Unlike the
Examine Byte Command, subsequent hexadecimal keypad entry will be interpreted as the
Page 18 of 79
register name (the acronym to the right of the slash sign on the key face) rather than its
hexadecimal value. When the hexadecimal key is pressed, the corresponding register
abbreviation will be displayed in the address field, the 16-bit contents of the register will be
displayed in the data field and the decimal point on the right of the data field will light. Table
defines the 8086 register name, the hexadecimal keypad acronym, the display abbreviation and
the sequence in which the registers are examined.
8086 Registers :
Register Name Keypad Acronym Display Abbreviation
Accumulator AX A
Base BX B
Count CX C
Data DX D
Stack Pointer SP SP
Base Pointer BP bp
Source Index SI SI
Destination Index DI dI
Code Segment CS CS
Data Segment DS dS
Stack Segment SS SS
Extra Segment ES ES
Instruction Pointer IP IP
Flag FL FL
When the register contents are displayed (when the decimal point on the right of the data field
lights), the register’s contents can be modified or the register is said to be “open” for input.
Keying in a value from the hexadecimal keypad will be echoed in the display’s data field, and
the register contents will be updated with the data value displayed when either the “NEXT” Key
when the flag (FL) register is displayed will terminate the examine register command and return
to the command prompt character.
Page 19 of 79
Example 2 : Examining a Series of Registers.
Syntax
Operation
To use either the Input Byte or Input Word commands press the corresponding hexadecimal key
when prompted for command entry. When either the IB or IW key is pressed, the decimal point
on the right of the address field will light to indicate that a port address entry is required. Using
the hexadecimal keypad, enter the port address of the port to be read. Note that since I/O
addressing is limited to 64 K (maximum address FFFFH), no segment value is permitted with the
port address.
After the port address has been entered, press the “NEXT” key. The input byte or word at the
addressed port will be displayed in the data field. Again pressing the “NEXT” key updates the
data field display with the current data byte word at the addressed input port. Pressing the “.” key
terminates the command and prompts for command entry.
Page 20 of 79
The M86-01 includes three 8255A parallel I/O interfaces which can be used with the Input Bytes
and Input Word commands to input data from peripheral devices. Each 8255, in turn, consists of
three individual 8-bit ports which are designated port A, Port B, and Port C. Each port operates
independently during byte operations. During word operations, a pair of ports (i.e. a port of I and
II 8255 operate together to form the 16-bit wide data word with IInd 8255 corresponding to the
low order byte. The IIIrd 8255 can be used only for byte operation and cannot be addressed in
pair with some other port.
The Parallel I/O port circuits are programmed for input on power-up or whenever the system
RESET key is pressed. If the circuit(s) previously has been programmed for output press the
system RESET key (before pressing the command key) or, referring to the next section, output
the appropriate byte or word value to the circuit’s control port to program the port(s) for input.
Page 21 of 79
Example 2 : Multiple Word Input from Parallel I/O Ports 1B and 2B.
Syntax
Operation
To use either command, press the corresponding hexadecimal key when prompted for command
entry. When either the OB or OW key is pressed, the decimal point on the right of the address
field will light to indicate that a port address entry is required. Like the Input Byte and Input
Word commands, I/O addresses are limited to 64K, and no segment value is permitted. After the
port address is entered, press the “NEXT” key. The decimal point on the right of the data field
will light to indicate that the data byte or word to be output now can be entered. Using the
keypad, enter the byte or word to be output. After the data is entered press the “.” key to output
the byte or word to the port and to terminate the command or press the “NEXT” key if additional
data is to be output to the addressed port.
As mentioned in the previous section, the Output Byte and Output Word commands can be used
to program the 8255A parallel I/O port circuits for input or output as well as to output data to the
individual ports. The I/O port circuits are programmed for input on power up or system reset and
Page 22 of 79
consequently first must be programmed for output (by outputting the appropriate data byte or
word to the circuit’s control port) before data can be output to the associated ports.
Page 23 of 79
Go :
Function
The Go (Go) command is used to transfer control of the 8086 from the keypad monitor program
to a user’s program in memory.
Syntax
Operation
To use the GO command, press the GO key when prompted for command entry. When the key is
pressed, the current IP (Instruction Pointer) register contents are displayed in the address field,
the byte contents of the memory location addressed by the IP register are displayed in the data
field and the decimal point at the right of the address entry can be entered. If an alternate starting
address is required, enter the address from the keypad. (When an address is entered, the data
field is blanked).
To begin program execution (at the current instruction or alternate program address, press the “.”
key. When the key is pressed, the monitor displays an “E” in the most significant digit of the
address field before transferring control to the program.
The Go command optionally permits a “breakpoint address” to be entered. A breakpoint address
has the same effect as pressing the INTR while a program is being executed. To enter a
breakpoint address, press the “NEXT” key after entering the starting address and enter the
breakpoint address.
Note that when specifying a breakpoint address, the default segment value is either the starting
address segment value (if specified)_ of the current CS register contents (if a segment value is
not specified with the starting address). When the “.” key is pressed, the monitor replaces the
instruction and saves the “break pointed” instruction before transferring control to the user’s
program. When the program reaches the breakpoint address, control is returned to the monitor,
the break pointed instruction is restored in the program, all registers are saved, and the monitor
prompts for command entry to allow any of the registers to be examined. Note that since the
break pointed instruction is restored when control is returned to the monitor, the breakpoint
address must be specified each time the program is to be executed with a breakpoint.
Page 24 of 79
Error Conditions
Attempting to breakpoint an instruction in read-only memory.
Example 2 : Entering and Executing a Breakpoint in the program. Suppose the breakpoint is to
be entered at 0120.
Page 25 of 79
Move :
Function
The Move (MV) command permits a block of data to be moved within memory.
Syntax
Operation
The format of the Move Command is unique in that three successive entries are made in the
address field. To use the Move Command, press the MV key when prompted for command entry.
When the key is pressed, three decimal points appear in the address field to indicate that three
entries are required. Each time an entry is made, the left most decimal points goes out so that the
number of decimal points lit at any one time indicate the number of entries still required. The
entries are, in order:
1. The starting memory address of the block of data to be moved.
2. The ending memory address of the block of data to be moved.
3. The starting memory address (destination address) into which the block of data is to be moved.
Note that no segment value is permitted with an ending address and that block moves
consequently are limited to 64K bytes.
When the “.” key is pressed, the data is moved and the command prompt sign is displayed. Note
that when the block of data is moved, the data contained in the original (source) memory
locations is not altered (unless the destination address falls within the original block of data in
which case the overlapping memory locations will be overwritten by the data moved).
Page 26 of 79
Error Conditions
Attempting to move data into read-only or non-existent memory.
Step :
Function
The Step (ST) command permits program instructions in memory to be executed individually.
With each instruction executed, control is returned to the monitor from the program.
Syntax
Page 27 of 79
Operation
To use the step command press the ST key when prompted for command entry. If a starting
address other than the address displayed is required, enter the desired address. When the
“NEXT” key is pressed, the instruction addressed is executed and the offset address of the next
instruction to be executed is displayed in the address field and its associated instruction byte is
displayed in the data field. Again pressing the “NEXT” key executes the current instruction and
steps the program to the next instruction to be executed.
In the example which follows, the first few instructions of the “rolling dice” program are
executed using the step command. The following table represents a listing of the beginning of
that program.
(A complete listing of the “rolling dice” program is included at the end of this chapter).
Note that when the program is stepped from the instruction at 10H, the instruction at 0DH is
executed again and the instruction at 12H is not executed. This is caused by JZ (Jump Zero)
instruction at 10H which, since no key can be pressed to “roll the dice” (the monitor is in control
of the keyboard). Jumps back to the instruction at 0DH. Continuing to press the “NEXT” key
will repeat the three instruction sequence (0DH, 0EH, 10H).
Restrictions :
1. If an interrupt occurs prior to the completion of single stepped instruction or if a single-
stepped instruction generates an interrupt, when the monitor is re-entered, the CS and IP registers
will contain the address of the interrupt service routine. Consequently, a type 3 (breakpoint
interrupt instruction (0CCH or 0CDH)) should not be single-stepped since its execution would
step into the monitor.
2. An instruction that is part of a sequence of instructions that switches between stack segments
(i.e. changes the SS and SP register contents) cannot be single-stepped.
Page 28 of 79
Example 1 : Program Stepping
Page 29 of 79
Program Listing :
The following is the complete program listing for the “rolling dice” program used in the previous
command examples.
Delete :
The Delete Command (DEL) permits the deletion of one or more Bytes from the user’s program.
Syntax
Operation
When DEL Key is pressed, four decimal points appear in the address field indicating that four
address entries are to be made. Each time an entry is made, the left most decimal pt. goes out.
The entries are in the following order.
1. The starting address of the program.
2. End address of the program.
3. Starting address from where the deletion should start.
4. End address till where the deletion is to be done.
When “.” key is pressed, the command prompt sign is displayed.
Error Condition
1. The starting and end address of the deletion are not within the boundary of the program.
2. The end address of the deletion is less than the start address of deletion.
Page 31 of 79
Example 1 : Delete the portion from 0412H to 0420 from a program lying from 0400 to 0462.
You can verify that the program below 0420 has shifted upward.
Insert :
The INSERT (INS) command permits the insertion of one or more bytes in the user’s program.
Syntax
Page 32 of 79
Operation
When INS is pressed, four decimal points appear in the address field indicating that four address
entries are to be made. The following is the order of entries
1. The starting address of the program.
2. End address of the program.
3. Address at which bytes are to be inserted.
4. Number of bytes to be inserted.
When “.” key is pressed, the command prompt sign is displayed.
Error Condition
The address at which insertion is to be done, does not lie within the program limits.
Example 1 : let us insert the same no. of bytes which were deleted in earlier example i.e. insert
15 bytes at 0412 in the program lying between 0400 to 0453.
A space for 15 bytes has been created from address 0412 onward. We can now enter the byte at
0412 onward using the Examine Byte command.
Page 33 of 79
EPROM PROGRAMMER (OPTIONAL : AT EXTRA COST)
EPROM Programmer :
M86-01provides onboard EPROM programmer for the 2764/27128/27256 EPROMS. The
following commands can be used in the EPROM-Programmer mode.
1. Blank Check
2. READ
3. Verify
4. Program
Since 8086 is a 16 bit processor and the memory chips available are of 8 bits, the odd and even
bytes of 16 bit Data have to be separated out. And so while using list, verify and program
command, the user should specify whether the operation is to be done on odd bytes or even bytes
or continuous bytes. This is done by using different terminators for the Commands.
1. a ‘o’ is used as a terminator for continuous Bytes.
2. a ‘1’ is used as a terminator for odd Bytes.
3. a ‘2’ is used as a terminator for even Bytes.
The 20 bit address of 8086 is divided into two parts, the segment address and the offset address.
The starting address of any EPROM in the ZIF socket is 0000 and the maximum address will
depend upon the capacity of the chip. In case of 27128 chip, the maximum address would be
3FFF. The address of the EPROM in the ZIF is also divided into segment address and offset
address. In this case the segment address should be always given as 0000 followed by the offset
address which would be the actual address. In case of READ, VERIFY & PROGRAM
Commands, three addresses are to be entered. Two addresses correspond to the memory on the
board of M86-01 and the third address corresponds to the EPROM in the ZIF socket.
It is important to note that in case of the Even Byte operation, the two addresses corresponding to
the Board of M86-01 should both be even addresses and in case of the Odd Byte operation, both
the addresses should be odd addresses. A deviation from above i.e. a combination of Even and
Odd address with the terminator as 1 or 2 would result in Error condition and in this case, the
command does not terminate at all unless Reset Key is pressed.
Blank Check :
Blank check command is used to check the EPROM placed in the ZIF (Zero Insertion Force)
socket for blank.
Syntax
Operation
When BC Key is pressed, two decimal points appear in the address field to indicate that two
address entries are required. Each time an entry is made, the left most decimal points go out. The
entries are in order
1. The starting address of the EPROM from where the blank check should start.
2. The End address of the EPROM till where the system should check for blank.
Blank check can be performed on 2764/27128/27256. Please see the note at the end of this
chapter.
When the “.” key is pressed, the command prompt sign “.” is displayed if the EPROM area being
checked is blank. If any location is not blank, its address will be displayed in the address field
and its contents in the data field. If this is the only location which is not blank, then on pressing
NEXT key, the command prompt sign will appear otherwise the address of the next location
which is not blank will be displayed and so on.
Page 34 of 79
Example 1 : Perform a blank check on a blank 2764 EPROM (entire 8K).
Verify :
This command is used to verify the content of the EPROM put in the ZIF Socket with any
memory area on the board of M86-01* (RAM OR ROM). Please see the note at the end of this
chapter.
Syntax
Operation
On pressing VR key, three decimal points will appear in the address field indicating that 3
addresses are required to be entered. The entries are to be made in the following order:
1. Starting address of the memory block on M86-01 with which the contents of the EPROM in
the ZIF is to be verified.
2. End address of the memory block on M86-01.
3. Starting address of the EPROM in the ZIF socket. When ‘0’, ‘1’ or ‘2’ key is pressed, the two
blocks of memory are verified for equality. If they are equal, the command prompt sign is
displayed. If they are not equal, the address at which the discrepancy occurs and its contents are
displayed. If this is the only location where the discrepancy exist, a command prompt sign is
displayed on pressing NEXT key otherwise, the next location address where there is a difference
will be displayed.
Example 1 : Verify the contents of 2764 EPROM from location 0100 to 0120 (Even Byte) with
the Monitor of M86-01 starting from FC000 to FC040. We assume that the two blocks are not
same and there is a discrepancy at FC006 and FC008.
Read :
This command is used to read the contents of an EPROM in the ZIF socket, in the system RAM
area. Please see the note at the end of this chapter.
Syntax
Operation
On pressing LS key, three decimal points are displayed in the address field indicating that three
addresses are required to be entered. The entries are to be made in the following order.
1. Starting address of the RAM where the listing is to be made.
2. End address of the RAM where the listing is to be made.
3. Starting address of the EPROM in the ZIF socket from where the listing is to be made in the
RAM area.
On pressing ‘0’ or ‘1’ or ‘2’ key, the command prompt character is displayed.
Example 1 : LIST the contents of EPROM 2764 from 0200 in to RAM area 00500 to 00525
(Continuous Bytes).
Program :
This command is used to program any of the earlier mentioned EPROM with the data lying any
where on the board of M86-01(ROM or RAM).
Syntax
Operation
On pressing PRG Key, three decimal points are displayed in the address field indicating that
three address entries are to be made. The entries are to be made in the following order.
1. Starting address of the onboard memory from where the data is to be taken.
2. End address of the onboard memory till where the data is to be taken.
3. Starting address of the EPROM in the ZIF socket from where the programming should start.
Page 35 of 79
On pressing ‘0’or‘1’or‘2’ key, the programming will start. This is indicated by blinking PRG
IND LED. When the programming is over, a command prompt character is displayed in the
address field.
Example 1 : Program 2732 EPROM with the EPROM lying in M86-01at the address FE000 to
FFFFF (continuous Byte)
Note :
1. Before performing any of the EPROM Programmer Commands, ensure that the required
Personality module has been put in the socket respectively.
2. Before programming, the EPROM Programming Voltage should be selected properly. The
Programming Voltage selection is down by JP5 Jumper.
EPROM Prog. Voltage
2764 21V
27C64 12.5V
27128 21V
27C128 12.5V
27256 21V
27C256 12.5V
2716 25V
2732 21V
* For all CMOS (27C....) EPROMs it is 12.5V only.
3. Notch should point in the upper direction, base to be fixed at Pin No.14 (GND).
Page 36 of 79
SERIAL COMMANDS
General :
M86-01has facility of Serial Interface with PC for any serial Transmission & Reception. User
can enter in the serial mode using TTY Key of M86-01Kit.
On entering into serial mode a prompt message “SEriAL” is displayed on the address and Data
field of M86-01 DISPLAY. (“SEri” is displayed in the address field and “AL” is displayed on
the data field). At the same time a message “M86-01MONITOR V1.2” is displayed on the serial
device on one line and a prompt character “.” on the next line to indicate that it is ready to accept
command entry.
This line is referred to as the “command line” and consists of either a one-or-two-character
command mnemonic followed by one to three command parameters or “arguments”. (If desired
for visual separation, a space can be entered between the command mnemonic and the first
argument). When more than one argument is required, a single comma (“,”) is used between
arguments as a delimiter.
A command line is terminated either by a carriage return or a comma, depending on the
command itself. Commands are executed one at a time and only one command is permitted
within a command line.
With the exception of the register abbreviations associated with the X (Examine/Modify
Register) command, all arguments are entered as hexadecimal numbers. The valid range of
hexadecimal values is from 00 to FF for byte entries and from 0000 to FFFF for word entries
(leading zero’s may be omitted). If more than two (byte entries) or four (word entries) digits are
entered, only the last two or four digits entered are valid. Address arguments consist of segment
value & an offset value.
If a segment value is not entered, the default segment value is the current contents of the code
segment (CS) register unless specified otherwise in the command description. When both a
segment value and an offset value are entered as an address argument, entry is the offset value. A
colon (“:”) is entered the first entry is the segment value, and the second between the entries as a
separator.
Since command execution occurs only after a command terminator is entered, a command entry
can be cancelled any time before the terminator is entered by pressing any character that is not
legal for the entry expected. When a command is cancelled, the number symbol (‘#’) is output on
the command line, a carriage return and a line feed are issued and the command prompt character
(“.”) is output on the new line.
Windows HYPER TERMINAL is simple terminal emulator software for IBM-PC compatible
computers. It allows the user to communicate with the computer through serial port with the
facility of downloading & uploading of the data between the computer and the other serial
devices. The various communication parameters like baud rate (speed), number of data bits, stop
bits, parity etc. can be changed. The package communicates through COM1: as well as COM2:
ports of the IBMPC system.
Installation :
If your computer doesn’t have Hyper Terminal software please follow the below procedure.
1. First go to Control Panel and Click Add/Remove Program.
2. Click Windows Setup.
3. Select Communication and Click Details.
4. Select Hyper Terminal then press OK and Click Apply.
5. Computer will ask for Window CD for Installing Hyper Terminal.
6. After Installing Hyper Terminal Click cursor on <Start> <Programs> <Accessories>
<Communications> <Hyper Terminal> then open it.
Page 37 of 79
7. Click on <Hypertrm> icon give ABC in name Block and Click OK.
8. Select Communication Port either <Direct to COM1> or <Direct to COM2> and click OK.
9. For Trainer Kit select following COM1/COM2 properties:
Bits per second 9600
Data bits 8
Parity None
Stop bit 1
Flow Control XON/XOFF
10. Connect the serial port of PC with the RS-232 Connector of the Trainer.
11. Press <TTY> Key of the Trainer Kit.
12. Your PC & Kit are now linked for communication and all your instructions can now be given
from your PC keyboard.
All serial commands mentioned below will be given through PC Keyboard. Uploading &
Downloading can be done through this Kit.
List of Monitor Commands :
M86-01 serial monitor is capable of executing the following commands:
1. Substitute Memory (S)
2. Examine/Modify Register (X)
3. Display Memory (D)
4. Move (M)
5. Port Input (I)
6. Port Output (O)
7. Go (G)
8. Single Step (N)
9. Read Hex file (R)
10. Write Hex file (W)
11. Uploading Data (W Starting Address , Ending Address)
12. Downloading Data (R)
While explaining the commands the following syntax is used:
[A] indicates that “A” is optional
[A]* indicates one or more occurrences of “A”
<B> indicates that “B” is a variable
<Cr> indicates that a carriage return is entered.
Command Description
Substitute Memory :
Function
The substitute Memory (S) command is used to examine the byte (S) or word (SW) contents of
select memory locations. If the contents of the memory location can be modified (e.g., a RAM
location), the contents additionally can be updated with a new data value entered from the
console device.
Syntax
S [W] <ADDR>, [[ <NEW CONTENTS> ], ]* <CR>
Operation
To use the Substitute Memory command, enter S or SW when prompted command entry and
enter
the address of the memory location to be examined. Note if a segment address value is not
specified,
Page 38 of 79
the current contents of the code segment (CS) register are used by default. After the address is
entered, enter a comma. The monitor location followed by a dash (the monitor’s data entry
prompt
character) and a space to indicate that the addressed location is open for update. Note that when
using the SW command, the byte contents of the next consecutive memory location (memory
address
+ 1) are outputted first, followed by the byte contents of the actual location addressed. Similarly,
when updating memory contents using the SW command, first the next consecutive memory
location, and the second byte entry (next two digits) will be written into the addressed memory
location.
If only one memory location is to be examined enter a carriage return to terminate the command.
(If
new data was entered, it is updated when the carriage return is entered). If a series of continuous
memory locations are to be examined and/or updated, enter a comma to advance to the next
consecutive memory location (S Command) or next two consecutive memory locations (SW
command). Again, if the data contents are not to be updated, enter a comma to examine the next
memory location or enter the new data followed by a comma to update the current location and
to
examine the next location. Entering a carriage return terminates the command.
Error Conditions :
Attempting to modify a non-existent or read-only (e.g.., ROM or PROM) memory location.
Example 1 : Examine ROM location OFF00H
S FF00:0, 90- <Cr>
Example 2 : Examine RAM Location 050H, relative to the DS register, and update the contents
of
location 051H to 0F7H
S DS : 50, E4-,
0051 A4 -F7 <cr>
Examine/Modify Register :
Function
The Examine/Modify Register (X) command is used to examine and, if desired, to modify any of
the
8086’s individual register or to examine the contents of all of the 8086 registers.
Syntax
x [<REG> [[ <NEW CONTENTS> ],] * <CR>
Operation
To use the Examine/Modify Register Command, enter X when prompted for command entry. If
you only wish to examine the current contents of the registers, enter a carriage return. (The
contents of all fourteen registers will be output.) If you wish to examine and optionally to
modify the contents of an individual register, enter the register’s abbreviation according to table.
Register Abbreviations
Register
Name
Abbreviation
Accumulator AX
Base BX
Count CX
Data DX
Page 39 of 79
Stack Pointer SP
Base Pointer BP
Source Index SI
Destination DI
Code
Segment
CS
Data Segment DS
Stack
Segment
SS
Extra
Segment
ES
Instruction
Pointer
IP
Flag FL
When a register abbreviation is entered, the monitor outputs an equal sign (“=”), the current
register
contents, the data prompt character (“-”) and a space. If you wish to change the register’s
contents,
enter the new contents followed by a comma (to advance to the next” sequential” register) or a
carriage return (to terminate the command). The register sequence is in the order shown in Table.
Note that the sequence is not circular and that if a comma is entered after the contents of the flag
(FL) register are examined or a modified, the monitor returns to the command mode. When a
carriage return is entered, the register is updated (if new contents were entered) and the monitor
returns to the command mode.
Example 1 : Examine the 8086’s registers
X <Cr>
AX =89D3 BX =0002 CX =0010 DX =FFEA SP =0100
BP =D3EB SI =9295 DI =0002 CS =0010 DS =0010
SS =0000 ES =0000 IP =000D FL =F046
Example 2: Modify the CS register and examine the next two registers.
X CS= 000-20,
DS= 0010-,
SS= 0000-<cr>
Display Memory :
Function
The Display Memory (D) command is used to output the contents of a block of memory to the
console device.
Syntax
D [W] <start addr> [ <end addr> ] <cr>
Operation
The command provides a line-formatted output of the memory block bounded by start address
and end address (inclusive). Since end address is relative to the segment address value specified
or implied with start address (CS register contents if a segment value is not specified with start
address), no segment value is permitted with end address and block transfers consequently are
Page 40 of 79
limited to 64K bytes or 32K words with each command execution.
To use the Display Memory Command, enter D (for byte output) or DW (for word output)
prompted for command entry) and then enter start address of the memory data block. If only one
byte or word is to be displayed, enter a carriage return, while if a block of memory is to be
displayed, enter end address and a carriage return. The monitor will output, beginning on the
next line, the starting offset address, the data contents of that location end, when end address is
specified, the data contents of a number of consecutive memory locations, each separated by a
space. The line format output is arranged so that any subsequent lines (if required) will begin
with the offset address of the first byte or word in the line and will consist of a maximum of
either sixteen byte entries or eight word entries per line.
The Display Memory command can be cancelled or the output can be stopped at any time by
entering control characters from the console device. Control C immediately terminates the
command and returns the monitor to the command entry mode. Control-S Stops the output, but
does not terminate the command. Control-Q resumes output that has been stopped. The only
allowed console input following a Control-S is either a Control-Q or Control C.
Error Condition
End address less than the offset value of start address.
Example 1 : Display contents of locations 09H through 02AH relative to the DS register.
D DS:9, 2A <cr>
0009 EE BA EA FF EC 24 OF
0010 74 FB E8 27 00 00 00 43 80 FB 07 F7 8B
FB
0020 8A 4D 46 BA EA FF B0 87 EE BA E8
Example-2: Display contents of locations FF000H through FF02AH in word mode.
DW FF00:0, 2A <cr>
0000 E990 0098 0072 0088 4328 2029 3931 3837
0010 4920 544E 4C45 4320 524F 4050 0000 4000
0020 7F00 007D 8600 5006 0000 4000
Move :
Function
The Move Command is used to move a block of data within memory.
Syntax
M <start addr>, <end addr>, <destination addr> <cr>
Operation
When using the Move command, the contents of the memory block bounded by start address and
end address (inclusive) are moved to consecutive memory locations beginning at destination
address. As with the D (Display Memory) command, end address is relative to the segment
address (if no segment value is implied with start address the CS register contents are used).
Consequently, no segment value is permitted with end address, and block moves are limited to
64K bytes.
Since a move is performed one at a time, the Move Command can be used to fill a block of
memory with a pre-defined constant. This is accomplished by specifying a destination address
which is one greater than start address. The block of memory locations from start address to end
address + 1 are filled with the value contained in start address. (The S command is used prior to
the Move command to define the constant at start address).
Error Conditions
Page 41 of 79
Attempting to move data to a read-only (e.g., ROM OR PROM) or non-existent memory
location.
Specifying an end address value which is less than the offset value of start address.
Example 1 :
Move the contents of locations 0200H through 0250H, relative to the DS register, to the memory
block starting at the destination address defined by a segment value equal to the ES register plus
010H and an offset value of 02CH.
M DS: 200, 250, ES+10:2C <cr>
Example 2 : Move the contents of locations 0100H through 014CH to the memory block
beginning
at 0500H relative to the CS register.
M 100, 14C, 500 <cr>
Port Input :
Function
The Port Input (I) Command is used to display a byte or word at an input port.
Syntax
I[W] port addr , [.]* <cr>
Operation
The Port Input Command inputs a byte (I Command) or word (IW Command) from the port
specified by port address and displays the byte or word value on the console device. Since I/O
addressing is limited to 64K I/O byte addresses, no segment value is permitted with port address.
After port address is entered, a comma is required to cause the byte or word at the input port to
be displayed at the console. Each subsequent comma entered causes the current data at the
addressed input port to be displayed on a new line. A carriage return terminates the command
and causes the monitor to prompt for command entry.
When using the port Input command to input data from the 8255A parallel I/O port make sure
that they have been defined earlier as input port.
Note that these circuits are programmed for input on power-on/reset and that if they were last
programmed for output, they must be reprogrammed for input.
When using word input (IW Command), the port P2 (low-order byte) address is entered as port
address.
Example 1 : Input single word from parallel I/O ports P1A and P2A.
IW FFF8,
C7C5 <cr>
Example 2 : Input multiple bytes from port 02FAH
I 2FA,
FF,
FC,
00,
B7,
3F,<cr>
Port Output
Function
The Port Output (O) Command is used to output a byte or word to an output port.
Syntax
Page 42 of 79
O [W] <port addr> , <data> [, <DATA>]* <cr>
Operation
The Port Output command outputs the byte (O Command) or word (OW Command) entered as
data to the output port specified by port address. Like the Port Input Command I/O addressing is
limited to 64K I/O byte addresses, and no segment value is permitted with port address. After
entering port address, a comma and the data to be output, a carriage return is entered to cause the
data to be output to the port and to terminate the command, or a comma is entered to permit
subsequent data output to the addressed port. Data can be output repetitively to the port by
entering new data followed by a comma. A carriage return following a data entry outputs the
data and terminates the command.
As mentioned in the previous section, the two 8255A parallel I/O Port circuits are programmed
for input on power-on or system reset. Consequently, to use the Port Output Command to output
data from the parallel I/O Ports, the circuits first must be programmed for output. This is
accomplished by using the Port Output Command to output a control byte (or word) to the
8255A circuit’s control port.
Example 1 : Program parallel I/O port P2 for output
O FFFF, 80 <cr>
Example 2 : Output multiple words to I/O port 020F0H
OW 20F0, BAEA,
- 4CFF,
- B0AE
- EE47,
- F9D3 <cr>
Example 3 : Output single byte to parallel I/O port PIC
O FFFC, 3 C <cr>
ST8086-01
43
GO :
Function
The Go (G) command is used to transfer control of the 8086 from the serial monitor program to a
user’s program in memory.
Syntax
G [<start addr>] [,<breakpoint addr>] <cr>
Operation
To use the GO Command, enter G when prompted for command entry. The current IP
(Instruction Pointer) register contents, the data entry prompt character and the byte contents of
the location
addressed by the IP register are outputted. If an alternate starting address is required, enter start
address. To transfer control from the monitor to the program and to begin program execution,
enter a carriage return.
The Go Command optionally permits a “breakpoint address” to be entered. Note that when
specifying breakpoint address, the default segment value is either the start address segment value
(if specified) or the current CS register contents (if a segment value is not specified with start
address).
When breakpoint address is specified, the monitor replaces the instruction at the addressed
location with an interrupt instruction and saves the “breakpoint” instruction. When the program
Page 43 of 79
reaches breakpoint address, control is returned to the monitor, the break pointed instruction is
replaced in the program, all registers are saved, and the monitor outputs the following message
followed by a command prompt to allow any of the registers to be examined.
BR @ aaaa:bbbbb
In the above message, “aaaa” is the current CS register value, and “bbbb” is the current IP
register value. (The combined register value is the address of the break pointed instruction). If a
subsequent Go command is entered, execution resumes at the replaced break pointed instruction.
Note that since the break pointed instruction is replaced when control is returned to the monitor,
breakpoint address must be specified each time a program to be break pointed is executed.
Error Conditions
Attempting to breakpoint an instruction in read-only memory.
Example 1 : Transfer control to the program at 04C0H, relate to the CS register.
G 0000D-Ec 4C0 <cr)
Example 2 : Transfer control to the program at 10:0H and break at the instruction in location
10:37H
cr
G 010E-24 10:0, 37 <cr>
BR @ 0010 : 0037
Single Step :
Function
The Single Step (N) command is used to execute a single user-program instruction. With each
instruction executed, control is returned to the monitor to allow evaluation of the instruction
executed.
Syntax
N <start addr>], [[ <start addr>], ]* <cr>
Operation
To use the Single Step command, enter N when prompted for command entry. The monitor will
output the current instruction pointer (IP) register contents (the current instruction pointer (IP)
register contents (the offset address of the next instruction to be executed) and the instruction
byte pointed to by the IP (and CS) register. If execution of an instruction at another address is
desired, enter start address. If start address includes a segment value, both the CS and IP registers
are modified. When the comma is entered, the instruction addressed its executed and control is
returned to the monitor. The monitor saves all of the register contents and outputs the address (IP
register contents) and instruction byte contents of the next instruction to be executed on the
following line.
Each time a comma is entered, the addressed instruction is executed and the address and
Instruction byte contents of the next instruction to be executed are output on a new line.
While using the Single Step command to step through a program, a new start address can be
entered without repeating the command entry. When the comma is entered, the instruction
addressed is executed and the next instruction’s address and byte contents are output. A carriage
return terminates the command.
Restrictions
1. If an interrupt occurs prior to the completion of a single-stepped instruction generates an
interrupt, when the monitor is re-entered, the CS and IP registers will contain the address of the
interrupt service routine. Consequently, a type 3 (breakpoint) interrupt instruction (0CCH or
0CDH) should not be single-stepped since its execution would step into the monitor.
2. An instruction that is part of a sequence of instructions that switches between stack segments
Page 44 of 79
(i.e., changes the SS and SP register contents) cannot be single-stepped.
Example 1 : Single Step a series of instructions beginning at 0100H, relative to the CS register.
N 0000- 00 100,
0102 - 8E,
0104 - BA,
0107 - B0,
0109 - EE,
010A - BA <CR>
Read Hex File :
Function
The Read Hex File (R) command allows the monitor to read an 8086 or 8080 hexadecimal object
file from a paper tape and to load the data read from the file into memory.
Syntax
R [ <bias number> ] <cr>
Operation
To use the Read Hex File Command, enter R when prompted for command entry. When the tape
is loaded in the reader and ready; enter a carriage return. The data read from the file will be
written into memory beginning at each record’s load address. If the file is in the 8086 format and
includes an execution start address record, the CS and IP registers will be up dated with the
execution address specified in that record. If the file is in 8080 format and includes an EOF (end
- of - file) record, the IP register is updated with the execution address specified in the E0F
record. Note that a segment address value is not used with the 8080 file format; the data ready is
written into memory locations relative to a segment value of zero and, when an E0F record
execution address is specified, the CS register is not changed.
When an optional bias number is specified, it is added to each record’s load address to offset the
file in memory.
Error Conditions
Tape check sum error.
Attempting to load data into non-existent or read-only memory.
Example 1 : Read a file and load the data into memory 256 (decimal) bytes above the load
addresses specified in the file.
R 100 <cr>
Write Hex File :
Function
The Write Hex File (W) command allows a block of memory to be written (output), in either
8086 or
8080 hexadecimal object file format, to a paper tape punch.
Syntax
W [X] <start addr> , <end addr> [, <exec addr> ] <cr>
Operation
To use the Write Hex file command, enter W for 8086 file format or WX for 8080 file format
and enter start address and end address of the memory block to be output. Note that no segment
address value is permitted with end address (the start address value is specified with start
address, the current CS register value is used. When the carriage return is entered, the following
information is punched on the paper tape:
1. Six inches of leader (60 null characters)
2. An extended address record (8086 format only)
3. The data contents of the memory block bounded by start address and end address (inclusive).
Page 45 of 79
4. An end-of-file (EOF) record.
5. Six inches of trailer (60 null characters).
Optionally, an execution address can be specified prior to entering the carriage return. This is the
memory address that is loaded into the CS and IP registers (IP register only with 8080 format)
when the tape is read with the R command. Depending on the format selected, when execution
start address record containing execution address is punched immediately following the tape
leader (8086 format) or the offset address value of execution address is punched in the EOF
record (8080 format).
When using the 8086 format (W command), the start address segment value (CS register value if
a segment value is not specified) is entered (punched) in the extended address record, and the
start address offset value is entered in the load address field of the first data record. The segment
and offset address values of execution address are entered in the execution start address record
(CS register contents if a segment address value is not specified with execution address).
When using the 8080 format (WX command), the start address offset value is punched in the
load address offset value is punched in the load address field of the first data record. Execution
address, if specified, is punched in the EOF record. Note that a segment address value is not
permitted with execution address or end address and that the start address segment value is used
only to define the starting address of the memory block and that it is not punched on the tape.
The Write Hex File command can be cancelled or stopped at any time by entering control
characters from the console device. Control C cancels the command and prompts for new
command entry. Control S stops the output, but does not cancel the command. Control-Q
resumes output that has been stopped. The only console input allowed following a Control-S is
either Control-Q or Control-C.
Error Conditions
Specifying a value for end address that is less than offset value of start address.
Example 1 : Output the memory block bounded by 04H and 06DDH, relative to the current CS
register, to an 8086 file with an execution address of CS 040H.
W 4, 6DD, 40 <Cr>
Down Loading
Downloading the ABC.HEX from computer to trainer
The following procedure is to be adopted for downloading the file from PC to Trainer Kit.
The `R’ command loads the data from your diskette/PC to the memory of the Kit.
1. Press `R’ key of the PC keyboard & Press ‘Enter’ Key on the PC keyboard.
2. Select <Transfer> <Send Text File...> Choose File Name i.e. ABC.HEX and Click it.
3. The program stored in the file will be loaded in memory of Trainer at the address specified in
the program.
Note :
If the file is not Downloading please Change the Line Delay & Character Delay in the
Properties of the Hyper Terminal. To Change the Line Delay & Character Delay selects
<Properties><Setting><ASCII Setup>.
Uploading
Uploading the ABC.HEX from Trainer to Computer
The following procedure is to be adopted for uploading the file from Trainer to PC.
1. Press `W’ key of the PC keyboard
2. Write Start Address and End Address
3. Then Go in Menu bar. Select <Transfer> <Capture Text...> from PC keyboard give any name
with HEX Extension i. e. ABC.HEX (You can Browse where you want to save it) Click on
<Start>
Page 46 of 79
4. Press ‘Enter’ Key of PC. Address and Data will see on PC Screen.
5. Then again Go in Menu bar. Select <Transfer> <Capture Text> click on <Stop>
Data captured will be stored in the file as defined by the file name.
Downloading of Intel Hex File
To down load HEX file created by CROSS ASSEMBLER, one has to first convert HEX file to
Kit format for downloading. HEX Kit Software is used for converting HEX File to KIT format.
Page 47 of 79
SAMPLE PROGRAMS
Introduction :
The monitor software of M86-01 resides in 16K Byte of EPROM having the address from
FC000 to FFFFF. The system software has certain useful routines, which can be utilized by the
user for developing his programs. The addresses of these routines are given in the appendix at
the end of the manual.
Programming Example :
The following sample programs are given here to make the user familiarize with the operation of
M86-01.
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.
8. Move a Block of data upward.
9. Binary to gray conversion.
Program-1 :
TO ADD two Binary numbers each 8 Bytes long
Address Op Code Mnemonic Comments
0200 F8 CLC Clear Carry Flag.
0201 B9 04 00 MOV CX,0004 Load Counter register with no. of times addition to be
performed (i.e. Initialize the counter register).
0204 BE 00 03 MOV SI,0300 Load source Index Reg. with starting address of Ist Binary
no. (LSBs array).
0207 BF 08 03 MOV DI, 0308 Load Destination Index Reg. with Dest. Address (where the
result of add. is to be started storing). Also it’s the starting
address of MSBs of array.
020A 8B 04 (1) MOV AX,(SI) Load Data bytes (which are in location 0300 and 0301 in 16
bit ACC. i.e. (0300) – AH (0301) – AL
Program – 5 :
To Divide a String of Unpacked ASCII Digits:
Address Op Code Mnemonic Comments
0200 B2 36 MOV DL, 36 DL having the divisor, a single 8 bit ASCII Digit.
0202 BE 00 03 MOV SL, 03 00 Load SI with the starting address of ASCII string.
0205 BF 08 03 MOV DI, 0308 Load DI with the starting address of the result LOCNS.
0208 B9 08 00 MOV CX, 0008 Initialize the counter Reg. with the no. of bytes in the string.
020B 80 E2 0F AND DL, 0F MS nibble of DL contents is zeroed.
020E 32 E4 XOR AH,AH Initialize the 8 bit ACC (=00)
0210 AC (1) LODS B Load AL with the contents of address accessed by SI reg. and
increment SI reg. i.e. point at the next address LOCN.
0211 80 E0 0F AND AL,OF MS nibble of AL contents is also zeroed.
0214 D5 0A AAD Perform the fn. AL=(AH * OA) + AL), AH = 00.
0216 F6 F2 DIV DL Perform the fn. AD/DL AL = Quotient and AH = reminder.
0218 AA STOS B The contents of AL are stored in the Address pointed to by
the DI reg. and next address LOCN in DI reg. is pointed (i.e.
current address LOCN of DI reg. is incremented by one).
0219 E0 F5 LOOP NZ (1) Continue dividing the unpacked ASCII digits if the contents
of C are not zeroed; else.
021B F4 HLT Halt.
For Example After Execution
0300 : 31 0308 : 00
0301 : 32 0309 : 02
0302 : 33 030A : 00
0303 : 34 030B : 05
0304 : 35 030C : 07
0305 : 36 030D : 06
0306 : 31 030E : 00
0307 : 32 030F : 02
Page 51 of 79
Program – 6 :
To calculate the no. of bytes in a string starting from 0302 up to an identifier (data byte) placed
in
AL reg. The actual count will be in LOCN 0300 & 0301.
Address Op Code Mnemonic Comments
0200 BE 00 03 MOV SI, 0300 Load SI reg. with the starting Address where the result is to
be stored.
0203 B9 FF FF MOV CX, FFFF Initialize the counter register.
0206 BF 02 03 MOV DI, 0302 Load DI reg. with the starting address of string.
0209 B0 03 MOV AL, 03 Store the identifier in ASL.
020B F2 AE REPNE SCASB Data byte accessed by DI reg. compared with identifier
without altering either of the contents, this comparing
continuous with the incrementing of DI contents (Address
LOCN) till the two bytes match. With each scanning the
contents of CX go on decrement by one.
020D F7 D1 NOT CX Z’S complemented CX & Move CX 89 OC MOV (si),CX
020F contents into 0300.
0211 F4 HLT Halt.
For Example
Let (309) = 03 Let (0302) = 03
Then after executing the program
CX = 0008 & (0300) = 08 (0301) = 00
Program – 7 :
A Data string of no. of bytes (to be specified in CX reg.) is located from the starting address
0300.
This data string is to be converted to its equivalent 2' S complement Form and the result is to be
stored from 0400 on wards.
Address Op Code Mnemonic Comments
0200 BE 00 03 MOV SI, 0300 Load SI reg., with the starting address of data string.
0203 BF 00 04 MOV DI, 0400 Load DI with the starting address of result LOCNS.
For Example :
0206 B9 10 00 MOV CX, 0010 Load CX with the no. of bytes in the string.
0209 AC (1) LODSB Load AL with Data byte accessed by SI reg. and
Program – 8 :
A Block of 20 H words is located in 0300 to 031F. This block of data is to be moved upwards in
memory so as to occupy 0310 to 032F. No. of characters (bytes) in the string is in CX Reg.
Address Op Code Mnemonic Comments
0200 FD STD Direction Flag is set in order to auto decrement the SI and
DI index regs.
0201 BE 1F 03 MOV SI,03IF Load SI with the end address of Block of data.
0204 BF 2F 03 MOV DI, 032F Load DI with the end address of Block where the Block of
data is to be moved.
0207 B9 20 00 MOV CX,0020 Initialize count reg. with the no. of bytes in the string.
020A F2 A5 REPNE:MOVSW It transfer the words from the SI LOCNS to DI string till CS
does not become zero (with the simultaneous updating of
the SI & DI LOCNS).
020C F4 HLT
For Example
After Execution Result
0300 : 01 030F : 10
0301 : 02 0310 : 01
0302 : 03 0311 : 02
0303 : 04 0312 : 03
0304 : 05 0313 : 04
0305 : 06 0314 : 05
0306 : 07 0315 : 06
0307 : 08 0316 : 07
0308 : 09 0317 : 08
0309 : 0A 0318 : 09
030A : 0B 031A : 0A
030B : 0C 031B : 0B
030C : 0D 031C : 0C
030D : 0E 031D : 0D
030E : 0F 031D : 0E
031E : 0F
031F : 10
Program – 9 :
Page 53 of 79
Binary to gray code conversion for number 00 to 0F using Translate instruction.
The address of the B. Number whose equivalent gray code is to be found is in SI register. The
start
address of the loop up table for the binary to gray code is in BX register. The result will be
moved to
(SI + 1) Location.
Address Op Code Mnemonic Comments
0200 BB 00 03 MOV BX, 0300 Load BX with the starting address of look up Table. Load SI
with
0203 BE 50 01 MOV SI, 01 50 the address of Binary No. whose gray code is to be found.
0206 AC LODSB Load AL with the data byte accessed by SI reg. and increment
its current address by one, i.e. SI = 0151.
0207 D7 XLAT AL = (BX + AL) i.e. the contents of Address accessed by Bx
+ AL is stored in AL.
0208 88 04 MOV(SI),AL The contents of AL are moved into LOCN pointed by SI, i.e.,
0151 contains the Result.
020A F4 HLT Halt.
Look Up Table :
0300 : 00
0301 : 01
0302 : 02
0303 : 03
0304 : 04
0305 : 05
0306 : 06
0307 : 07
0308 : 0F
0309 : 0E
030A : 0C
030B : 0D
030C : 08
030D : 09
030E : 0B
030F : OA
For Example :
Let (0150) : 05 Let (0150) : 09
Result (0151) : 05 Result (0151 : 0E
Use Of 8087 Processor :
The following programs illustrate the use of 8087 processor.
Problem – 10 :
Write a program to calculate N3= ÖN12 + N22 32 bit integer value stored at 300 H and 304H
respectively. The result should be store at 308H.
Steps Required :
1. Load N1 and calculate its N12 value
2. Load N2 and calculate its N22 value
3. Add the two.
4. Take the square root and store it in 308 location.
Address Op Code Mnemonic Comments
Page 54 of 79
Step-1
0200 9B BB 00 03 MOV BX,0300H BX POINTS TO N1
0204 DB 07 FLD (BX) Load N1
0206 9B DA 0F FMUL (DX) Give wait calculate N12
Step-2
0209 9B DD D9 FSTP ST (1) Load N2 in ST (1)
020C 9B BB 04 03 MOV BX, 0304 H Load Bx to point N2
0210 DB 07 FLD (Bx) Load N2
0212 9B DA 0F FMUL (Bx) Get N22
Step-3
0215 9B D8 C1 FADD ST (1) Add the N12 + N22 the result is on TOP of stack.
Step-4
0218 9B D9 FA FSQRT Calculate square root of N12 + 22
021B 9B BB 08 03 MOV BX,0308 Load BX with 0308 for storing result.
021F DB 17 FST (BX) Store the result (TOS)
0221 9B FWAIT ON 0308.
0222 CC INT 3 Give Break Point.
Steps required for running the program :
1. Enter the program from 0000 : 0200 location.
2. Set up the data in memory location 300 and 304.
N1 0300 : 09 00 00 00
N2 0304 : 04 00 00 00
3. Run the program by GO Command and see the result as follows:
N3 0308 : 0A 00 00 00
Problem :
Write a program to calculate Sin (z) where Z - is defined in degrees.
Solution: Sin (z) is calculated using tangent function of 8087.
tan (Z/2) = Y/X
then Sin (z) =
XY
2XY
+
The FPTAN instruction has to be given data in radians. The value of degrees is to be converted
in
radian. On execution of FPTAN the result is return in Y/X format where X is written on top of
stack
and Y is the next to top of stack. Further the argument must satisfy 0< argument < P1/4. This is
the
reason we restrict Z to satisfy 0< Z < 90.
This restriction can be eliminated, by more computation. If Z is unrestricted, then the use of
FPREM
function of 8087 to reduce the argument to the required range and use the relation Sin (P1 + Z) =
-
Sin z
The above problem is solved by calculating Z/2, then converting the degrees into radians and
then
calculating the tangents. The resulting values of X and Y are used for calculating Sin (Z).
Page 55 of 79
The following steps are required to implement this program.
1. Calculating the Z/2
2. Calculate the angle in radians.
3. Calculate tan (Z/2) = X/Y format.
4. Calculate Sin Z =
X2 Y2
2XY
+
5. Get the integer value argument - 4.
Address Op Code Mnemonic Comments
Step-1
0200 B4 00 MOV AH, 00 Clear AH
0202 D1 E8 SHR AX, 01 Z = Z/2.
0204 A3 00 03 MOV, W ARGI,AX Load AX in Arg.1
0207 DF 06 00 03 FILD ARGI Loading Z\2 on TOS
Step-2
020B C7 06 02 03 MOVWARG 2,00B4 ARG 2 I is loaded with B4 i.e. 180° value in hex.
020F B4 00
0211 9B DF 06 02 03 FILD ARG 2 Insert F Wait and load AR G2.
0216 9B DE F9 FDIVRP Wait and divide ST (O) = z/180.
0219 9B D9 EB FILDP ST (O) = PI
021C 9B DE C9 FMULRP ST (O) = PI X Z/180
Total Angle In Radians
Step-3
021F 9B D9 F2 FTAN Calculate tan Z/2 as Y/X.
0222 9B D9 F0 FILD ST(O) Duplicate X on top of stack.
Step-4
0225 9B D8 C9 FMUL ST,ST(1) ST (O) =X * X
0228 9B D9 C2 FILD ST (2) ST (O) = Y.
022B 9B D8 CB FMUL ST (O),ST 3 ST (O) = Y * Y
022E 9B DE C1 FADDP ST (1),ST(O) YXY is popped of and top of stack ST(O) = X2
+ Y2.
0231 9B DE F9 FDIVRP ST (O) = x/x2 + Y2
0234 9B DE C9 FMULRP ST (O) = XY/X2+Y2
0237 9B D9 C0 FLD ST (O) Duplicate the top of stack.
023A 9B DE C1 FADDP ST(I),ST(O) ST(O)= 2XY/(X2+Y2) =Sing(Z).
Address Op Code Mnemonic Comments
Step-5
023D C7 06 04 03 MOV,W ARG E 2710H Load ARG3 with
10 27 10,000 value
0243 9B DF 06 04 03 FILD ARG 3
0248 9B DE C9 FMURP ST (0)=10,000*SIN(Z)
024B 9B D9 FC FRND INT Round the integer.
024E 9B DF 36 06 03 FSTP ARG4 Store it in BCD form.
0253 9B FWAIT
0254 A1 06 03 MOV,AX,ARG4 The result is stored at 0306 and Ax. Go to
monitor.
0257 CC CC Go to monitor.
Page 56 of 79
In the addition to above, the stack operation on each instruction execution is shown. This will
help
to understand the program in details. This way of writing will help user to gain confidence in
writing
the program for 8087.
Steps required to implement the program :
1. Enter the above program.
2. Do not use any memory location from 0300 to 0308 as they are required for implementing the
program.
3. Enter the value of angle in AL, say for calculating Sin 30, the AL should be 1EH.
4. Execute the program and observe the value in AX, the result will be AX=5000H. The output
in packed BCD form is available in the register AX. A decimal point is to be assumed before
the first BCD digit.
5. Execute the program for various values of Sin Z
Input Output Sin Z
(AL) (AX)
10 2756 Sin 16
2E 7193 Sin 46
3C 8660 Sin 60
56 9976 Sin 86
The stack operation on execution of each instruction.
1. FLDI ARGI
ST (0) -—> ————
ARGI z
————
2. FILD ARG2
ST (0) -—- ARG 180°
ST (1) --— ARGI Z
3. FDIVRP
ST (0) --— Z/180
4. FLDPI
ST (0) --—> PI
ST (1) Z/180
5. FMULRP
ST (0) —-- PI * Z/180
ST (1) Z/180
6. FPTAN
ST (0) --— X
ST (1) Y
ST (2) Z/180
7. FLX ST (0)
ST (0) X
ST (1) X
ST (2) Y
ST (3) Z/180
8. FMUL ST (0), ST (1)
ST (0) X2
ST (1) X
Page 57 of 79
ST (2) Y
ST (3) Z/180
9. FLD ST (2)
ST (0) Y
ST (1) X2
ST (2) X
ST (3) Y
ST (4) Z/180
10. FLD ST (0), ST (3)
ST (0) X2
ST (1) X2
ST (2) X
ST (3) Y
ST (4) Z/180
11. FADDP ST (1) ST (0)
ST (0) X2 + Y2
ST (1) X
ST (2) Y
ST (3) Z/180
12. FDIVRP
ST (0) X/X2 + Y2
ST (1) Y
ST (2) Z/180
13. FMULRP
ST (0) XY/X2 + Y2
ST (1) Z/180
14. FLD ST (0)
ST (0) XY/X2 + Y2
ST (1) XY/X2 + Y2
ST (2) Z/180
15. FADD P ST (1), ST (0)
ST (0) 2XY/X2 + Y2
ST (0) =SIN (Z)
16. FLDI ARG 3
ST (0) 10,000
ST (1) SIN(Z)
17. FMUR P
ST (0) 10,000 X
SIN Z
18. FRNDINT
ST (0) Rounding the integer
19. FSTP AR G 4
The argument has the result.
Program – 11 :
This is a sample program for Port A of 8255-I generating square wave output at Connector CN5.
Address Op Code Mnemonic Comments
0200 BA FE FF MOV DX,FFFE initialization of CWR
Page 58 of 79
0203 B0 80 MOV AL,80
0205 EE OUT DX,AL
0206 BA F8 FF MOV DX,FFF8 selection of Port A
0209 B0 55 MOV AL,55
020B EE OUT DX,AL out data 55 at Port A
020C B0 AA MOV AL,AA
020E EE OUT DX,AL out data AA at Port A
020F EB F8 JMP 0209
Program – 12 :
This is a sample program for 8259 interrupt ‘4’ generating square wave output at Connector
CN5 by
giving Interrupt as a Gnd at Pin No.4 of CN8.
Address Op Code Mnemonic Comments
0200 BA C8 FF MOV DX,FFC8 selection of data word
0203 B0 17 MOV AL,17
Address Op Code Mnemonic Comments
0205 EE OUT DX,AL
0206 BA CA FF MOV DX,FFCA selection of command word
0209 B0 C0 MOV AL,C0
020B EE OUT DX,AL
020C B0 03 MOV AL,03
020E EE OUT DX,AL selection of interrupt 4
020F B0 FE MOV AL,FE
0211 EE OUT DX,AL
0212 FB STI set interrupt
0213 EB EE JMP 0203
0310 00 04
0312 00 00 interrupt address at 0000 : 0400
0400 BA FE FF MOV DX,FFFE initialization of CWR
0403 B0 80 MOV AL,80
0405 EE OUT DX,AL
0406 BA F8 FF MOV DX,FFF8 selection of Port A
0409 B0 55 MOV AL,55
040B EE OUT DX,AL out data 55
040C B0 AA MOV AL,AA
040E EE OUT DX,AL out data AA
040F EB F8 JMP 0409
Program – 13 :
This is a sample program for 8253 for generating square wave output at Counter/Timer 0 at Pin
No.
8 of Connector CN8. Also give +5V to GATE0 `Pin No. 9' of Connector CN8.
Address Op Code Mnemonic Comments
0200 BA DE FF MOV DX,FFDE initialization of CWR
0203 B0 30 MOV AL,30
0205 EE OUT DX,AL
0206 BA D8 FF MOV DX,FFD8 selection of Counter / Timer 0
0209 B0 FF MOV AL,FF
Page 59 of 79
020B EE OUT DX,AL out data 55
020C B0 00 MOV AL,00
020E EE OUT DX,AL out data 00
020F EB F8 JMP 0209
Page 60 of 79
CONNECTOR/JUMPER DETAILS
The details of the various connectors on the board of M86-01 are as follows:
Bus Connector CN1
Pin Signal
1 +5V
2 +5V
3 GND
4 GND
5 AD3
6 AD7
7 AD2
8 AD6
9 AD1
10 AD5
11 AD0
12 AD4
13 A8
14 A16
15 A7
16 A15
17 A6
18 A14
19 A5
20 A13
21 A4
22 A12
23 A3
24 A11
25 A2
Pin Signal
26 A10
27 A1
28 A9
29 IOWR
30 IORD
31 S2
32 S2
33 MEMWR
34 MEMRD
35 ALE
36 ALE
37 S1
38 S0
39 HLDA
40 HOLD
41 INTA
42 INTR
Page 61 of 79
43 READY
44 NMI
45 RESET OUT
46 RESET IN
47 CLK OUT
48 I/O-CS
49 MEM-CS
50 MEM
Bus Connector CN2 :
Pin Signal
1 AD8
2 AD9
3 AD10
4 AD11
5 AD12
6 AD13
Pin Signal
7 AD14
8 AD15
9 NC
10 NC
11 NC
12 NC
Pin Signal
13 NC
14 NC
15 NC
16 NC
Pin Signal
17 NC
18 NC
19 NC
20 NC
RS-232C Serial Connector CN3 :
Pin Signal
1 NC
2 Rxd
3 Txd
4 DTR
Pin Signal
5 GND
6 DSR
7 RTS
8 CTS
9 NC
Power Supply
Connector CN4 :
Pin Signal
Page 62 of 79
1 +5V
2 GND
Pin Signal
3 +12V
4 -12V
Page 64 of 79
JUMPER/DIP SWITCH DETAILS
Page 65 of 79
ASSEMBLER/DISASSEMBLE
Example
A LABEL at a particular address as:
Address Label Mnemonic Operand Comments
0000:0206 SER: here, SER label is defined
0000:0206 MOV AX,DX at the address: 0206
* One can do labeling in the following ways also:
0000:0213 ORG 0219 to define LABEL at the
0000:0219 SER3: Offset address 0219 from
0000:0219 ORG 213 the offset address 0213
0000:0213 JNZ SER3
Page 78 of 79
WARRANTY
1. We Warranty the instrument against all manufacturing defects for 12 months from the date of
sale by us or through our dealers.
2. The Warranty covers manufacturing defects in respect of indigenous components and material
limited to the warranty extended to us by the original manufacturer and defect will be rectified as
far as lies within our control.
3. The Warranty will become INVALID.
a) If the instrument is not operated as per instruction given in the instruction manual.
b) If the agreed payment terms and other conditions of sale are not followed.
c) If the customer resells the instrument to another party.
d) Provided no attempt have been made to service and modify the instrument.
4. The non-working of the instrument is to be communicated to us immediately giving full
details of the complaints and defects noticed specifically mentioning the type and sr. no. of the
instrument, date of purchase etc.
5. The repair work will be carried out, provided the instrument is dispatched
securely packed and insured with the railways. To and fro charges will be to the
account of the customer.
Dispatch the instrument (only on the receipt of our advice) securely packed in original
packing duly insured and freight paid along with accessories and a copy of the details
noticed to us at our factory address.
Page 79 of 79