..
SDK-a5System Design KitUsers ManualManual Order Number 9800451 B
.....
"'"----------------.1 DUlJ~~® .
SDK-a5System Design KitUsers ManualManual Order Number 9800451B
Copyright © 1978 Intel Corporation
Intel Corporation, 3065 Bowers Avenue, Santa Clara, California 95051
Additional-copies of this manual or other Intel literature may be obtained from:
Literature DepartmentIntel Corporation3065 Bowers AvenueSanta Clara, CA 95051
The information in this document is subject to change without notice.
Intel Corporation makes no warranty of any kind with regard to this material, including, but not limitedto, the implied warranties of merchantability and fitness for a particular purpose. Intel Corporationassumes no responsibility for any errors that may appear in this document. Intel Corporation makes nocommitment to update nor to keep current the information contained in this document.
Intel Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied inan Intel product. No other circuit patent licenses are implied.
Intel software products are copyrighted by and shall remain the property of Intel Corporation. Use,duplication or disclosure is subject to restrictions stated in Intel's software license, or as defined in ASPR7-104.9(a)(9).
No part of this document may be copied or reproduced in any form or by any means without the priorwritten consent of Intel Corporation.
The following are trademarks of Intel Corporation and may be used only to describe Intel products:
iICEiCSInsiteIntelIntelevisionIntellec
iSBCLibrary ManagerMCSMegachassisMicromapMultibus
MultimodulePROMPTProm wareRMXUPI!,Scope
ii
and the combination of ICE, iCS, iSBC, MCS, or RMX and a numerical suffix.
I A164/0280/25K FL I
CONTENTS
CHAPTER 1DESCRIPTION . 1-1 Move Memory Command, M 4-11
Substitute Memory Command, S . .4-12CHAPTER 2 Examine/Modify CPU RegistersHOW TO ASSEMBLE THE KIT Command, X 4-12
GENERAL. 2-1 Programming Debugging -
GETTING ORGANIZED 2-1 Breakpoint Facility . 4-13
SELECTING TOOLS AND MATERIALS 2-2 Error Conditions - Invalid Characters. 4-13
UNPACKING AND SORTING PARTS 2-3 Address Value Errors 4-13
A REVIEWOF BASIC ASSEMBLY ANDSOLDERING TECHNIQUES 2-6 CHAPTER 5
ASSEMBLY PROCEDURE. 2-7 THE HARDWARE
OVERVIEW 5-1CHAPTER 3 SYSTEM COMPONENTS 5-1FINAL ASSEMBLY AND CHECKOUT The 8085 CPU & The System Buses 5-1GENERAL. 3-1 The 8155. 5-1STRAPPING OPTIONS 3-1 The 8355 & 8755 5-2
POWER SUPPLY WI RING. 3-1 The 8279 . 5-2INSTALLING LARGE IC DEVICES 3-4 The 8205. 5-2STARTING THE FI RST TIME 3-6 SDK-85 MEMORY ADDRESSING. 5-3WHAT IF IT DOESN'T? . 3-7 INPUT/OUTPUT PORT ANDCONNECTING A TELETYPEWRITER 3-8 PERIPHERAL DEVICE ADDRESSING. 5-5
Accessing the 8279 Keyboard/DisplayCHAPTER 4 Controller 5-5OPERATING INSTRUCTIONS PROCESSOR INTERRUPT
WHAT IT DOES . 4-1 ALLOCATION 5-7
THE BUTTONS AND DISPLAYS 4-1 THE SERIAL DATA INTERFACE. 5-7
Reset 4-2 CONVERTER CIRCUIT FOR
Substitute Memory 4-2 RS232C SERIAL PORT. 5-8
Examine Registers 4-4 ADDITIONAL INTERFACES 5-8
Go 4-6Single Step 4-8 CHAPTER 6Vector Interrupt . 4-9 THE SOFTWAREProgram Debugging - THE SDK-85 MONITOR. 6-1
The Use of Breakpoints 4-9 PROGRAMMING HINTS 6-1Error Conditions - Illegal Key 4-9 Stack Pointer 6-1Memory Substitution Errors 4-9 RAM-I/O Command Status Register (CSR) 6-1
TELETYPEWRITER OPERATION 4-9 Access to Monitor Routines 6-1Console Commands. 4-9 PROGRAMMING EXAMPLES 6-1Use of the Monitor for Programming
and Checkout . 4-10 APPENDIX A.Command Structure 4-10 MONITOR LISTINGDisplay Memory Command, D 4-10Program Execute Command, G 4-10 APPENDIX BInsert Instructions into RAM, I 4-11 DIAGRAMS
iii
Figure 1-1. SDK-85 System Design Kit
1-0
The MCS-85 System Design Kit (SDK-85) containsall the parts with which you can build a complete8085 microcomputer system on a single board, anda library of MCS-85 literature to help you learn touse it. The finished computer has the followingbuilt-in features:
• High-performance, 3-MHz 8085A cpu (1.3 llS
instruction cycle)
• Popu lar 8080A Instruction Set
• Direct Teletypewriter Interface
• Interactive LED Display
• Large Wire-Wrap Area for Custom-DesignedCircuit
• System Monitor Software in ROM
You can assemble the kit in as little as 3 to 5 hours,depending upon your skill and experience at buildingelectronic kits. Only a 5 Volt power source capableof delivering 1.3 Amperes is then needed to makethe computer operate, using its built-in display andkeyboard. If you wish to interface a Teletypewriterto the SDK-85, you will also need a -10 Volt powersupply. After you have completed the basic kit,you may expand both memory and I/O by addingmore RAM-I/O or ROM-I/O devices in the spacesprovided for that purpose. Other spaces are allocatedfor bus expansion drivers and buffers that allow youto address and use external devices located eitherin the wire-wrap area of the board or off the board.You can, for example, access up to 64K of externalmemory via the expansion bus.
CHAPTER 1DESCRIPTION
SDK-8S SPECIFICATIONS
Central Processor
CPU: 8085A
Instruction Cycle: 1.3 microsecond
Tcy : 330 ns
Memory
ROM: 2K bytes (expandable to 4K bytes)8355 or 8755
RAM: 256 bytes (expandable to 512 bytes) 8155
Addressing: ROM 0000-07FF (expandable to OFFFwith an additional 8355 or 8755) RAM 200020FF (2800-28FF available with an additional8155)
Input/Output
Parallel: 38 lines (expandable to 76 lines).
Serial: Through SID/SOD ports of 8085. Softwaregenerated baud rate.
Baud Rate: 110
Interfaces
Bus: All signals TTL compatible.
Parallel I/O: All signals TTL compatible.
Serial I/O: 20 mA current loop TTY.
Note: By populating the buffer area of the board,you have access to all bus signals whichenable you to design custom system expansions into the kit's wire-wrap area.
1-1
Interrupts
Three Levels: (RST 7.5) - Keyboard Interrupt(RST 6.5) - TTL Input(I NTR) - TTL Input
DMA
Hold Request: Jumper selectable. TTL compatibleinput.
Software
System Monitor: Preprogrammed 8755 or 8355ROM
Addresses: 0000-07 FF
I/O: Keyboard/Display or TTY (serial I/O)
Literature
Design Library (Provided with kit):
• SDK-85 User's Manual
• Microcomputer Systems Databook
• MCS-85 User's Manual
• 8080/8085 Assembly Language ProgrammingManual
Physical Characteristics
Width: 12.0 in.
Height: 10 in.
Depth 0.50 in.
Weight: approx. 12 oz.
Electrical Characteristics (DC Power Required)
Vee: +5V ± 5% 1.3A -
VTTY : -10V ± 10% 0.3A
(VTTy required only if teletypewriter is to be connected to the kit)
Environmental
Operating Temperature: 0-55° C
Figure 1-2. Finished Computer
1-2
2-1 GENERAL
Don't unpack your parts yet. Do a little readingfirst, and you may save yourself time and expense.
I CAUTION IThe metal-oxide-semiconductor (MOS)devices in this kit are susceptible to staticelectricity. Do not remove them fromthe protective, black foam backing sheetuntil you have read the precautions andinstructions in paragraph 2-4.
This manual was published only after the assemblyof several kits by a number of persons of varyingexperience. In this chapter you will find virtuallyeverything you need to know to put together yourMCS-85 System Design Kit.
There are suggestions for laying out an efficientwork area. All of the tools and materials you needare described in a checklist. There is a completeand detailed parts list. Basic assembly and solderingtechniques are reviewed. Following the step-bystep assembly instructions in this chapter, youcan't go wrong.
If you're an experienced kitbuilder, you alreadyknow that it's not a bad idea to read through thisentire chapter first, before starting the job. That
CHAPTER 2HOW TO ASSEMBLE THE KIT
way, there won't be any surprises later. Take yourtime. Don't rush, and don't skip over qualitychecking each step you perform. Desoldering,removing, and replacing just one DIP componentbecause it was not oriented properly when firstinstalled will cost you more time than doublechecking all of them. Your objective is surely toproduce a working computer, not to win a race.
2-2 GETTING ORGANIZED
Before starting work, it's a good idea to plan andorganize your workplace. Be sure you have roomto accommodate this book, lying open, and alsothe circuit board, along with tools and the hotsoldering pencil. Unless you have the cordless,battery-powered soldering instrument, you'll wantto arrange its cord out of the way to keep fromaccidentally pulling the soldering pencil off itsholder. A muffin pan, an egg carton, or some smallboxes could be used to sort parts into, if you don'thave the traditional plastic, compartmented partsboxes. It might be helpful, too, to write the partvalues and reference designators on small cards asyou sort them, and put these with the parts forquick identification. Arrange everything withincomfortable reach, and you'll do the job quicklywith Iittle chance of errors.
2-1
2-3 SELECTING TOOLS ANDMATERIALS
These tools and materials will be required toassemble the kit:
o Needle-nose plierso Small Phillips screwdrivero Small diagonal cutterso Soldering pencil, not more than 30 watts,
with extra-small-diameter tip. (1/16 in. isn'ttoo small.) You should also have a secureholder for it.
o Rosin-core solder, 60:40 (60% tin), smalldiameter (.05 in. or less) wire
Note: Soldering paste is not needed. Thesolder will contain sufficient flux.
o Volt-Ohm-Milliammeter
PHILLIPSSCREWDRIVER
NEEDLE-NOSEPLIERS
DIAGONALCUTTERS
VOLT-OHM-MILLIAMMETER
",:'~R BRAID~COP~~~CK)
It is also useful to have the following:
o Soldering aid, with a small-tipped fork at oneend and a reamer at the other, to help incoaxing component leads into holes andmanipulating small parts.
If you should happen to make a soldering error andhave to remove solder from joints, the job will bemade much, much easier if you have the following:
o Solder sucking device, either the bulb variety(shown) or the pump variety
o Large-area desoldering tip for your solderingpencil, to spread heat over several leads of anIC device at the same time
o Length of copper braid to sop up solder like asponge
Note: It is extremely difficult to remove DIPcomponents using just a solderingpencil.
2-2
SOLDERSUCKER
DESOLDERING
~SOLDERING
AID
2-4 UNPACKING AND SORTINCPARTS ICAUTION I
The MCS-85 System Design Kit is shipped skinpacked on a card that includes a conductivebacking to protect its metal-oxide-semiconductor(MOS) devices from static charge. Don't remove thefour larger-size Intel devices from the foam backinguntil you have completed all of the instructions inth is chapter and are ready to place them on theboard. As a further protection. against possibledamage, these four devices are to be installed insockets, rather than soldered on the board.
Don't remove the other componentsfrom the skin-pack. The black foambacking is an electrically conductivematerial that protects the integratedcircuit devices from static electricity aswell as from physical damage to theirleads and ceramic substrates.
Underneath the two bags of small parts andhardware will be found:
With a knife or sharp-pointed scissors, slit the filmaround the edges of the small-parts bags in thelower left corner of the skin-pack and removethem. First, open the bag of hardware and check tobe sure you have:
o Red plastic window (covered with protectivepaper)
o Two strips of double-coated adhesive tape
o 9 nuts @
o 9 screws, 3/4 in. long @ijj@j@@jjjmiijijwmyJ
o 18 Nylon washers @ ADHESIVETAPE
RED PLASTICWINDOW(FILTER)
9 rubber feet •
9 Nylon spacers, 7/16 in. long
o
o
2-3
Resistors, 1 Watt
Resistor, 1/2 Watt
R1
C1
C5,20
c;;;;;;;=::==?()) ))) )F=~
100 Ohm (brownblack-brown)
22 p.f, 15V
1 p.f, 25V
0:;:;1
1 ==8llllJ==::Jo 200 Ohm (red-black- R34
brown)
o 430 Ohm (yellow- R35orange-brown)
o
o
o 2
Capacitor, tantalum
Capacitor, mono
Next, open the bag of electrical parts and sortthem out by type and value. Give yourself plentyof unobstructed work space and try not to let tinyparts skitter away from you. The bag should yieldthe following:
Resistors, 1/4 Watt
<:JDD0 8 24 Ohm (red- R11, 14, 17,20,
yellow-black) 23,26,27,30
0 47 Ohm (yellow- R5violet-black)
0 200 Ohm (red- R33black-brown)
0 6 270 Ohm (red- R10, 13, 16, 19,violet-brown) 22,25
0 2 1k (1,000) 0 hm R4,31(brown-black-red)
0 1.6k Ohm (brown- R3blue-red)
0 2.7k Ohm (red- R6violet-red)
0 9 3k Ohm (orange- R7,9, 12, 15, 18,black-red) 21,24,28,29
0 3.9k Ohm (orange- R8white-red)
0 4.7k Ohm (yellow- R2violet-red)
0 51 k Ohm (green- R32brown-orange)
Resistor Color Code
Resistors are commonly identified by meansof a code using color bands. Each color represents a number.
The first three bands employ the color codebelow:
Black 0 Green 5Brown 1 Blue 6Red 2 Violet 7Orange 3 Gray 8Yellow 4 White 9
The fourth band indicates percentagetolerance of the resistor value.
First significant digit
Second significant digit
Number of following zeroes
Gold = 5%; silver = 10% tolerance
2-4
Capacitor, ceramic
104
o 6 alphanumeric LED (light-emitting diode)displays
D51-6
o 24 pushbutton switches, with keycaps labeled
o 7 0.1 Ilf e11-16,18
Transistor
o 16 2N2907 transistors 01-16 51-24
Besides the small-parts bags, the skin-pack contains:
A16
A1l
A14
A13
8085A microprocessor (cpu)
8355 (or 8755) ROM (read-onlymemory) with I/O (input/output) ports
8155 RAM (random-access, readwrite memory) with I/O portsand timer
8279 keyboard/display interface
Note: It's a good idea to check all switcheswith the ohmmeter before installing.If one is bad, you'll save a lot of work.
Large, 40-pin ICs (integrated circuits)
o
oo
o
Y16.144 MHz
Crystal, clock
o 4 40-pin DI P (dual in-line package) socketsfor the four large integrated circuits included in the kit
o 1
2-5
Small, 16-pin les
D 1
D 1
8205 address decoder
74LS156 scan decoder
A10
A12
bottom or left-to-right, and to form theleads of parts with values printed on them sothat the values are legible after assembly.
3. Fit each part in place and see that no unduestress is placed on the leads. Double-check andbe sure you have the correct part inserted inthe correct holes, properly oriented. Don'ttrim leads before soldering.
I CAUTION ILarge-scale integrated circuits are fragile!Dropping, twisting, or uneven pressuremay break them. The discharge of staticelectricity can destroy them internally.Leave them embedded in the conductivefoam backing sheet until ready to installon the board. Never press down hardupon, twist, or bend the larger devices.Touch the exposed metal traces of theboard with your hand before insertingone in its socket. The soldering of largedevices directly on the circuit board isnot recommended.
2-5 A REVIEW OF BASICASSEMBLY AND SOLDERINGTECHNIQUES
The steps to producing a professional qualityassembled circuit board are:
1. Have your work area organized before startingwork, and keep it that way. (See paragraph2-2.) Sort all parts into bins, cups, trays orboxes so they will be easily located by valuewhen needed.
2. To prepare a part for soldering, bend its leadscarefully with needle-nose pliers to make thepart fit exactly the way you want it to.
It is good practice to orient color-coded resistors so that the codes are readily read, top-to-
2-6
4. When ready to solder, be sure your solderingpencil is hot enough to melt solder quickly.Then turn the board face-down on your worksurface. If necessary, hold the parts you areabout to solder in place while turning it overso they won't fall out, and place somethingunder the board to hold the parts in positionwhile you solder on the back surface of theboard. Some people prefer to crimp the leadsto hold the parts in place. That's all right, too.
5. Bring the point of your soldering pencil intocontact with the pad to be soldered, simultaneously also touching the lead.
6. At once, touch the end of the solder wire tothe pad and lead, opposite the pencil tip. Theamount of time required to melt the solderwill depend upon the amount of foil surfacethere is on the board to carry away heat byconduction. The smallest pads will heat up inless than a second with a 25- or 30-wattpencil; large, ground-plane areas may requireover five seconds.
7. The instant you see and feel the solder start tomelt, withdraw the solder wire from the joint.Only a tiny drop of solder is needed to make agood joint.
8. The instant you see the solder draw into thehole, become shiny, and spread smoothly overthe surface of both pad and lead, withdrawthe soldering pencil. It will take only amoment for th is to happen after step 7.
9. Don't reheat a joint unless there's somethingwrong with it: not enough solder, too muchsolder (causing a "bridge" to an adjacent pador trace), or a "cold solder joint," which
appears dull on the surface or does notsurround the lead completely and fill the hole.
Note: A little rosin from the solder core,remaining on the board, does no harm.Don't try to clean it off.
light between the soldered pad and any adjacentpads or traces that aren't supposed to be connectedto it, it might be well to sl ip a solder-sucker or wickover the lead under examination, quickly remeltthe solder and draw off the excess.
2-6 ASSEMBLY PROCEDURE
Follow these instructions in order and make acheck mark in the box opposite each step when itis completed.
I
~II
®II
•II
®
D First, place the board on your work surface,lettered side up.
D Install the nine rubber feet. Eight go aroundthe edge of the board, and one goes near themiddle of the board, to the left of the keyboard and display area. At each location, pressa nut into the recess in a rubber foot, string awasher on a screw, and insert the screwthrough the hole in the board from the top.
Place a spacer, then another
'
washer on the screw, thenplace the nut and foot onthe end of the screw, andtighten, with the screwdriver,just enough to hold the footfirmly.
Note: Do not apply soldering paste to the work.Fluxing is not required in printed-circuitsoldering, as the boards and componentleads are plated or tinned to prevent oxidation of the copper.
2. Use enough heat to cause solder to flow intothe hole in the board and around the leadthat's being soldered into it.
~ WARNING I
1. Use no more heat than absolutely the minimum that will make a solid joint.
10. CI ip off the excess length of lead that projectsbeyond the solder "bead," within 1/8 inch ofthe board. Save cut ends to use for strappingoptional connections. (See paragraph 3-2.)
There are two important conditions that governgood soldering technique. They are:
Avoid eye injury when clipping excesslead ends. Hold lead end as you clip it,so it can't fly up in your face.
These conditions are both met simultaneously andeasily only if you are careful, have the proper tools,and arrange your workplace so that the circuitboard can lie flat while you apply steady, firm (butnot hard) pressure with the soldering pencil withoutslipping. A small-diameter soldering tip is a must!Likewise, small-diameter solder wire is essential toachieving satisfactory results.
Always inspect carefully for cold solder joints,solder bridges, or (perish the thought!) lifted tracesafter each soldering operation. A good way tocheck for solder bridges is to hold the newlysoldered connection up to a light. If you can't see
2-7
o Install capacitor C1 near the top edge of theboard.
o Solder C1 in place. Clip excess lead ends.
~ WARNING IAvoid eye injury. Hold lead ends as youclip them so they can't fly up at you.
Assembly of TTY Interface Area-
o
o
J7
<"l
'"
o
a(9
( .. __ . ! ~o
POWER
+'~:J~~GND'ERS --,
o
o Install a 100 Ohm, 1/2 Watt resistor (brownblack-brown) at R1.
Install a 4.7k Ohm resistor (yellow-violet-red)at R2.
/
Install a 1.6k Ohm resistor (brown-blue-red)at R3.
Install a 1k Ohm resistor (brown-black-red) atR4.
o Install a 47 Ohm resistor (yellow-violet-black)at R5.
o Install a 2.7k Ohm resistor (red-violet-red) atR6.
o Solder the six resistors in place, then clip theirexcess lead ends.
o Install a 1 uf capacitor at C5, and solder andclip it.
o Install a 200 Ohm, 1 Watt resistor (red-blackbrown) at R34.
o Install a 430 Ohm resistor (yellow-orangebrown) at R35.
o Solder these two resistors in place, then clipthei r excess Iead ends.
o Install transistors Q1 and Q2, and solder andclip them.
2-8
o A 16, for the RAM-I/O device, an 8155.
o Solder the three sockets in, and check carefullyfor solder bridges.
9 11
GO
VECTINTR
OSl
RESET
SINGLESTEP
C20
~ SUBST EXAM
~ R31MEM REG
--e=t- R32
Q'"NEXT EXEC
?\10 0Q412
V'_N ~CiCi ii
ADDRESS
DECODER hKEYBO
-loA~ m,ou
e L LO'
-----------' .
8755 (8355)
LOC 0800H-OFFFH
PORTS 8H-BH
13 14 ~C17
8155
LOC 2800H-28FFH
PORTS 28H-20H
17 18 19
ClK
28
30 A15
20 21
IPORT I
~
IPORT 0
---l
"IPORT 9
~
I
---l
TIMER oUT/IN
IPORT 2AH
.-l
IPORT 29H
.-l
LJLJn
I 3132PORT
--.-J 2.3H
"I33
PORT 22H
~
"IPORT 21t-!
~
N N
C19
LJ A17J5
II
~-,PORT 2BH---.J
LJ
Assembly of Processing Area
The processing area includes the clock crystal,address decoder, cpu, RAM-I/O and ROM-I/O areas,and related components.
'~, '!i.. ....
o Install the crystal at Y1, with its leads bent sothat the device lies flat on the board in thespace outlined for it.
o Take a piece of scrap wire trimmed from acomponent previously mounted on the board.Bend it into the shape of a staple. Install itover the crystal, to hold it firmly in place.
o Solder the four connections just made.
o Install the 8205 address decoder at A 10 andsolder it.
o A 11, for the 8085 cpu.
o A 14, for the PROM (ROM)-I/O device, an8755 or 8355.
Install three DIP sockets, crimping the corner leadsof each to hold in place, at:
2-9
Install 0.1 uf ceramic capacitors at:o
o
o
Install a 3k Ohm resistor (orange-black-red) atR7.
Install a 3.9k Ohm resistor (orange-white-red)at RB.
Solder these two resistors and clip off theirlead ends.
ooo
C16
C1B
Now solder the capacitors you have installed,and clip off their excess lead ends.
Install three 0.1 uf ceramic capacitors at:
LJ
9 11
RESET VEerINTR
] SINGLEGOSTEP
SUBST EXAM
R31MEM REG
R32
NEXT EXEC
8085
ADDRESSDECODER I KEYBD
cp~'''__J_ IA~
110~ KEYBOARon LO(v
--------...,j .
8755 (83551
LaC OOOOH-07FFH
PORTS 0-3
8755 (8355)
LaC 0800H-OFFFH
PORTS 8H-BH
15 16
13 14 C) C17
81S5
LOC 2800H-28FFH
PORTS 28H-2DH
8155
LaC 2000H-20FFH
PORTS 20H-25H
A15
,..--- PROM(ROM) I/O
17 18 19
CLK
TIMER oUT/IN
IPORT 2AH
~
IPORT 29H
~
LJLJn
IPORT I
-l20 21
IPORT 0
~
IPORT 9
~
I
-,M M
LJ 28
n 30
I 31PORT 32~2.3H
I33
PORT 22H
~A16
I
~PORT 21H
~
N N
C19
LJ AI7J5
~II
IPORT 28H-!
C11
C12
C13
Solder them and clip off excess lead length.
Install a 1 uf capacitor at C20.
Install a 1k resistor (brown-black-red) at R31.
Install a 51 k resistor (green-brown-orange) atR32.
Install a 200 Ohm resistor (red-black-brown)at R33.
Solder these four components in place andtrim their leads.
ooooooo
o
o
2-10
Assembly of Keyboard and Display Area
Find where the row of resistors, R9 through R30,go. Install eight 3k resistors (orange-black-red) at:
lESS
JDER hKEYBOARD AND DISPLAY
) ] H Al~ sc~4JSb~~ODER~ Q• v
1Iou.. "~3 KEYBOARD DI:~::Y CONTROLLER
-. LOC 1800H1900H.
9 11
S25,----,KEYBOARD: ~122
SETL1~1 ~123~ i
10 12 DISPLAY DRIVERS I 124
D~~6~~D~~D~ND~~D~r:li
iXi~' ·~(dlm·.·ri~EQ~h ~a~a~a ~h 016
~_O_ll_~~~SOI3 014 I 015 ,-~A--'
DODD DOl--_DS_l DISPLAYS ~D_S6-----.J1
D R9
D R12
D R15
D R18
D R21
D R24
D R28 (Careful-the location pattern changeshere!)
D R29
D Now solder all eight resistors in place and cliptheir excess lead ends.
RESETVECT DINTR
SINGLE GO8
ASTEP H
SUBST EXAM 4 S 6 7MEM REG SPH SPL PCH PC L
NEXT EXEC 0
0
2-11
Install six 270 Ohm resistors (red-violet-brown) at:A7~DATAuius BUFF UA~ '~JVV. .DRESSCODER 1hKEYBOARD AND DISPLAY
205 ] 25 S 74LS156 l n26 A12~ SCAN DECODER I I27 L ~ ':
I 11~A~. ""~:;: :O~~;~:"~N"m" C
24
S25
7PC L
o
KEYBOARDTTY
SELECT
6PCH
5SPL
o
4SPH
EXAM
REG
EXEC
10 12 DISPLAY DRIVERS
~ 04 OS 06, r 08
\ .'_NY:"';'''OOC,O_' 'M ...
r'----../ _~"--__~/_...1~ _..... NN ~ N~~
Cl'Cll: OCO:: Cll:ClI:: Cll::Cll:: ClCCl'
9 11
NEXT
SUBSTMEM
0 R10
0 R13
0 R16
0 R19
0 R22
0 R25
0 Solder these six resistors and clip their excesslead ends.
2-12
A7!DATA-ius BUFF '1jAf .,-~~ y~ .,.." JUI'DRESSCODER] hKEYBOARD AND DISPLAY
205 ] 25 ~ 74LS156 l 0J ~ ID~A1~3. l~"""'~ 'CAN ""om" ~
KEYBOARD DISPLAY CONTROLLER
LOC 1800H1900H
Install eight 24 Ohm resistors (red-yellow-black) at:
0 R11
0 R14
0 R17
0 R20
0 R23
EJ R26
0 R27 (Again, note the change in locationpattern.)
0 R30
0 Solder these eight resistors and clip theirexcess lead ends.
SUBSTMEM
NEXT
9 11
EXAMREG
EXEC
4SPH
o
5SPL
S25
KEYBOARDiTTY
SElECT
6PCH
7PCL
o
24
2-13
24
525
'-_.
016
A
0812 DISPLAY DRIVERS
4 06 07
GO
VECTINTR
1003
9 11
09
'";~ ~ ri ~: ~~ ~~ ~ ~
t~@(W @(W L~6."~~'~~/ ~// ~ ~
A7!DATA-BUS BUFF 'tt[ ,~_vv JAf '~Lm JJ IDRESSCOOER 1hKEYBOARD AND DISPLAY
205 ] 25 ~ 74LS156 l 0;~ A12( SCAN DECODER~ ..
I __ AI3 • v
J OV'
A
' ~ KEYBOARD DI:~::Y CONTROLLER., LOC 1800H
1900H
011 012 013) '0[JrJ~D a" OA~J1
I 051 056DISPLAYS ----------'
]
RESET
SINGLESTEP
Install fourteen 2N2907 transistors in two rows.Position the seven transistors in the top row so thattheir indexing tabs point upward and to the left, at:
o Q3
o Q4
o Q5
o Q6
o Q7
o Q8
o Q9
Position the seven transistors in the bottom row sothat their indexing tabs point down and to theright, at:
o Q10
o Q11
o Q12
o Q13
o Q14
o Q15
o Q16
o Press all of the transistors down to about1/8 inch from the surface of the board. Letthem stand approximately straight up. Then,turn the board over and solder all of theirleads in place and trim the lead ends.
sUBsTMEM
EXAMREG
4sPH
5sPL
6PCH
7PC L
NEXT EXEC o
o
2-14
Install two 0.1 uf ceramic capacitors at:
Be careful to orient the six alphanumeric LEDdisplays so that the decimal points are even withthe bottom of the digits and install at:
525I-~
KEYBOARD: ~122SETL~~T '" 1
23
~ 124
DS6
RESET VECTINTR
SINGLE GO ASTEP
SUBST EXAM 4 5 6 7MEM REG SPH SPl PCH PC L
NEXT EXEC 0
0
DS1
DS2
DS3
DS4
DS5
DS6
Note: Don't install the red filter over the displayyet. It's a good idea to wait until after finalassembly and checkout to do this, on theremote chance that you might have toremove one of the character displays.
o C14
o C15
o Solder the leads and clip them off close to theboard.
Note: If these components are provided with long,wirewrap leads, you will probably find iteasiest to insert, solder, and clip them oneat a time because of crowded quarters. Theorder shown above with the board turnedbottomside up will be most convenient foryou if you hold the soldering pencil in yourleft hand. If you solder right-handed, youmay prefer to work from DS6 to DS1.
oooooo
o Install one of the 40-pin DIP sockets, for the8279 Keyboard-Display Controller, at A 13,and solder it in.
o Install the 74LS156 scan decoder at A 12, andsolder it.
2-15
The easiest method of doing this is to insert eachbutton in its turn, bend its leads over on the backof the board to hold it in place, and go on until allbuttons are in place, then solder all of them in onepass, with the board lying flat on the work surfaceand weighted down to make sure the switches areuniformly held firmly against the front surface ofthe board.
o RESET o VECT DC 00 o E o FINTR
o SINGLE o GO 0 8 0 9oA o BSTEP H l
o SUBST o EXAM 4 5 6 7MEM REG oSPH oSPl oPCH opCl
0 Install the twenty-four pushbutton switchesthat make up the keyboard. Be sure each o NEXT o EXEC 00 01 o 2 0 3
, I
button is rightside up and in its proper positionbefore solderi ng. 0 All soldered in place
2-16
CHAPTER 3FINAL ASSEMBLY AND CHECKOUT
3-1 GENERAL
Now that most of the components are soldered onyour circuit board, it's time to give your handiworka quick visual check to make sure all of the devicesare oriented correctly. The notched ends of the ICsshou Id all be toward your left, and the decimalpoints of the LED displays should be at the bottomline of the characters.
It is recommended that the basic kit computerbe checked out using the procedure in this chapterbefore adding any external options such as teletypewriter or expansion memory. It is well for youto have the assurance that you have a working cpuand display-keyboard before you add peripheralsto your system. It is therefore recommended thatyou first wire the strapping options in Table 3-1for the 8355 (or 8755) ROM-I/O that was furnishedwith the kit (and contains the SDK-85 SystemMonitor). Then install the strap in Table 3-2 forkeyboard operation, and in Table 3-4 for the basickit without expansion memory. (See paragraph 3-2.)
Paragraph 3-3 tells you how to hook up power tothe MCS-85 System Design Kit, and paragraph3-4 tells you how to start it up and see if it'sworking right. The subsequent paragraphs list theadd-on options you can use without inventing anynew circuitry on the board or off.
3-2 STRAPPING INSTRUCTIONS
The MCS-85 System Design Kit will accept 8355or 8755 ROM-I/O devices at positions A 14 andA 15. These different devices are not completelyelectrically interchangeable, so you must make thestrapping connections in Table 3-1, appropriate tothe type of device in each socket.
To make a strapping connection (jumper), bend ashort length of bare wire (such as the excess leadend cut from a resistor) to fit between the twoholes you wish to strap together, insert the endsof the wire in the holes, and solder them. Thenclip the remaining excess ends, just as you did withthe components. When you install a jumper andsolder it, be sure it doesn't touch any interveningtraces or pads.
IMPORTANT: For normal operation of the SDK85, it is mandatory to strap the following:
1. One of the three options in Table 3-1.
2. One of the two options in Table 3-2.
3. The two jumpers listed in Table 3-3.
4. Either basic kit operation or one of severalexpansion options listed in Table 3-4.
The keyboard-teletypewriter selection function maybe done with a miniature printed circuit-boardmount, single-pole, double-throw switch, S25, notfurnished in the kit, or may be strapped withwire. Table 3-2 lists the connections. Table 3-3lists keyboard strapping connections always made.
Tables 3-5 through 3-10 list all of the bus and portexpansion connector pinouts. Table 3-11 listssuggested connector types.
3-3 POWER SUPPLY WIRING(See Figure 3-6.)
Connect a +5 Volt, regu lated power supply with itspositive output at the +5V POWE R SUPPLY pointon the board. A 6-pin Molex connector will fit the
(Text continues on page 3-4.;
3-1
TABLE 3-1
ROM/PROM STRAPPING
Device 8355 8755 8755ALocation Figure 3-1 Figure 3-2a Figure 3-2b
A14 Strap Strap(The SDK-85
Monitor No Straps 28-29 29-30ROM) Required Strap StrapA15
31-32 32-33
Figure 3-1 No Strapping Required for 8355 ROMsTABLE 3-2
TELETYPEWRITER-KEYBOARDSTRAPPING
TELETYPEWRITER KEYBOARDFigure 3-3 Figure 3-4
Strap 22-23 Strap 23-24
TABLE 3-3DISABLING UNUSED KEYBOARD
CONTROLLER FUNCTIONS
Figure 3-5Always strap 9-10.
Always strap 11-12.
Note: These two straps not usually removed,since the MCS-85 System Design Kitdoes not have SHIFT or CONTROLkeys on its keyboard. These strapshave no effect on operation of thecorresponding key functions on ateletypewriter or other ASCII terminalthat is connected to the TTY interface.They are provided for your use if youwish to modify the SDK-85's keyboard functions and replace its monitor software with your own.
Figure 3-2a Strapping Connections for 8755 PROMS
3-2 Figure 3-2b Strapping Connections for 8755A PROMS
u( _...
1Figure 3-5 Disabling Unused Keyboard Controller FunctionsTeletypewriter Strapping Connection
Figure 3-6 Power Supply Connections
T
,~NTE
-q 0+10 VOLT SUPPLY
~I 6", 74500 IMJ 7415748216
-05 VOLT SUPPLY
1'J A7"
J 5 A
3-3
hole pattern on the board (see p. 3-13 for the partnumber). If you are going to use a teletypewriter,connect a -10 Volt power supply with its negativeoutput at the -10V point on the board. Connectthe positive side of the -10 Volt power supply tothe GND bus.
ICAUTION IDo not turn on power until instructed to do so.
3-4 INSTALLING LARGEIC DEVICES
When you've finished all soldering operations onthe board and are ready to fire it up, then it's timeto plug in the large ICs. Once more, please makenote of the precautions for handling these largeMaS devices.
(Text continues on page 3-6.)
TABLE 3-4BUS EXPANSION STRAPPING
FUNCTION
RST 6.5
HOLD
INTR
MemoryAddress
Locations
BASIC KITWITHOUT EXPANSION
MEMORY(Figure 3-7)
Strap 3-5
Strap 6-8
Strap 20-21
Leave 25-26-27 unstrapped.
AUGMENTED KITWITH EXPANSION
MEMORY(Figure 3-8)
(Also See Paragraph 3-7.)
Strap 3-4 if no input is connected toJ 1-20. Leave 3, 4, and 5 not strappedif input is to be supplied for thisrestart function.
Strap 7-8 if no input is connected toJ 1-14. Leave 6, 7, and 8 not strappedif input is to be supplied for th isfunction.
Strap 20-21 if no input is connectedto J 1-18. Leave 20-21 not strappedif input is to be supplied for thisfunction.
Strap 25-26 if all memory locationsare external, i.e., addressed via busexpansion drivers. * (See Figure 3-9.)Strap 25-27 to enable the bus expansion drivers only when the upper 32Kmemory locations (8000H-FFFFH)are addressed. (See Figure 3-10. )
*Note: No devices may be installed in positions A 13, A 14, A 15, A 16, and A 17 if this optionis strapped.
3-4
74LI116 r (ISCAN DECODER I U..
u
SO 10 iii AIDU.::> C,,,r-""'I"""'IVl'I ,-",",Iyen..:>
AlE &15
~ .. ][1A2~CHlDA .
8212HOLD
INT"I - A 15 ADDRESSINTR DRIVERRST6.5
RESET
RSTINI m I
A4)07
!
A6
I ~ ].
8212
[}) 8216'I AD -A7 ADDRFSS
EO AODRIVER
~ . ~ '; A7 DATA 8US BUFF
L-; L-Jn
8085
C9
8279
KEYBOARD DISPLAY CONTROLLER
LOC lB00H1900H
lI
J III
Figure 3-7 Strapping Required for Basic Kit (No Bus Expansion)
LJ L-Jn
Figure 3-8 Strapping Options for Bus Expansion Control Lines
J7
121
,12~EYBOARDI
Figure 3-9 Strapping Options for all External Memory Figure 3-10 Strapping Options for Internal/External Memory
3-5
ICAUTION ILarge-scale integrated circuits are fragile!Dropping, twisting, or uneven pressuremay break them. The discharge of staticelectricity can destroy them internally.Leave them embedded in the conductivefoam backing sheet until ready to installon the board. Never press down hardupon, twist, or bend the larger devices.Touch the exposed metal traces of theboard with your hand before insertingone in its socket. The soldering of largedevices directly on the circuit board isnot recommended. If your Kit is provided with 8755 EPROM, do not removethe opaque sticker covering the window.Ultraviolet radiation including sunlight,can erase the monitor software containedin the device.
Inspect each IC to see that its leads are reasonablystraight. (It's okay for the device to be a bit bowlegged.) The forked end of the soldering aid is agood tool for straightening bent leads. Carefullyplace an IC on its intended socket, oriented properly, with one row of its pins resting lightly inthe socket holes. With your fingers or with the soldering aid, gently tease the other row of pins intotheir socket holes. Be sure no single pins have escaped. Once all pins have started, press downgently with fingers or with something flat to seatthe device in its socket.
Each device must be oriented properly in its socketor it won't work. Every DIP device made has eithera notch of some kind or a dot at one end. On theSDK-85 board, each notch or mark must face tothe left. The markings on the board indicate thisorientation. They also show which device type
goes where. (See the pictorials on pages 2-9 and2-15. )
3-6
3-5 STARTING THE FIRST TIME
Once you are certain that all parts are properlyinstalled, the correct strapping options are soldered,and the power supplies connected, you are readyto start your MCS-85 System Design Computer.Clear the surface of your work table of any toolsor wire that could come in contact with the underside of the circuit board and short it, and be surethere aren't any wire clippings on top of the boardby accident.
Peel the coverings from the red window and lay iton the display. (Don't stick it down yet.)
Energize the +5 Volt power supply.
Press the B button on the keyboard. The displayshould respond by reading out "- 80 85."
If the above readout appears, go on to Chapter 4 ofthis book and tryout each button and function.Verify that each command produces the specifiedresult, and that all segments of each 7-segmentcharacter display light.
Once you know the displays are all working right,peel the backing from the two strips of doublesided tape and use them to stick the red window inplace.
3-6 WHAT I F IT DOESN'T?
If there is no response to the 8 command,
D Use the multimeter to check for the presenceand proper polarity of +5 Volts on the board.
D Check all of the strapping connections, andbe sure they are in the right places for theconfiguration you chose.
D Check carefully the seating of each and everypin of each of the four large ICs. Be sure nopins have accidentally bent over and missedthe socket.
D Go back over the Chapter 2 assembly procedure and scan and check off all of the component values and all of the solder connections.
D Check the orientation of all semiconductordevices.
D Inspect for solder bridges or loose solderjoints.
If all devices are properly soldered or firmly intheir sockets and still there's no result, it can bepresumed that there is a bad part somewhere. Thekeyboard switches can be checked using the multimeter, as mentioned in Chapter 2. If all switches areclosing positively when pressed, and opening whenreleased, further effective troubleshooting can beaccomplished if you have a dual-trace oscilloscopeof at least 5 MHz bandwidth, or a logic analyzer.
D Pin 37 of cpu All (8085) should show aclock output of 3.072 MHz (326 ns period).If it doesn't, there's something wrong with the8085 or the crystal.
D Pin 30 of A 11 should have a positive-goingpulse about 160 ns wide every JiS or so. Thisis the ALE pulse that indicates that the cpu isexecuting instructions.
D Pin 1 of address decoder A 10 (8205) shouldpulse. If not, your 8085 is probably bad.
D If pin 1 of A 10 pulses, check pin 15 of A 10. IfA 10-15 doesn't follow A 10-1, or has bad output voltage levels, the 8205 is either bad or installed wrong.
D If all else fails, call the Intel Service Hotline anddescribe the results of the foregoing procedure.
The numbers are:
(800) - 538-8014 when calling from out(800) - 538-8015 side California
(800) - 672-3507 California only
Note: The Service Hotline is available to provide limited support to help you getyour kit running. If we can't help youover the phone, you may be directedto return your kit to us and we'll fix itfor a flat fee and send it back to you.The Service Hotline is available Monday through Friday, between 8 AMand 3: 30 PM, Pacific time.
IMPORTANT: The Service Hotline is not ableto provide help to you in writing programs foryour kit or in making hardware modifications.Please rely on the documentation provided withyour kit for assistance.
TABLE 3-5INTERFACE CONNECTOR J7
PIN ASSIGNMENTS
PIN MARKING ASSIGNMENT
1 - Open14 - Open
2 - Open15 - Open
3 - Open16 - Open
4 - Open17 - Open
5 - Open18 - Open
6 - Open19 - Open
7 - Ground20 - Open
8 - Open21 - Open
9 - Open22 - Open
10 - Open23 - Open
11 - Open24 RX- Receive Return (-)
12 RX+ Receive (+)25 TX- Transmit Return (-)
13 TX+ Transmit (+)
3-7
3-7 CONNECTING ATELETYPEWRITER
If you wish to use a teletypewriter with yourSDK-85 computer, connect it at Interface Connector J7 as shown in Table 3-5. You may use eithera male connector or a female connector. (See
Table 3-11.) Only four pins of this connectorare assigned for Teletypewriter use; the remaining pins may be wire-wrapped to serve anyfunction you choose.
TABLE 3-6BUS EXPANSION CONNECTOR Jl PIN ASSIGNMENTS
ASSIGNMENT PIN PIN MARKING ASSIGNMENT I/O
GND 1 2 - OPEN -
GND 3 4 ClK Buffered ClK 0
GND 5 6 S1 Buffered S1 0
GND 7 8 SO Buffered SO 0
GND 9 10 ALE Buffered ALE 0
GND 11 12 HlDA Buffered HlDA 0
GND 13 14 HOLD Buffered HO lD I
GND 15 16 INTA/ Buffered INTA 0
GND 17 18 INTR INTR I
GND 19 20 RST 6.5 Buffered RST 6.5 I
GND 21 22 RST Buffered RESET OUT 0
GND 23 24 RSTIN/ RESET INPUT I
GND 25 26 D7 Buffered D7 I/O
GND 27 28I
Buffered D6 I/O
GND 29 30 CfJ Buffered D5 I/O:::>
I/OGND 31 32 co Buffered D4
GND 33 34e::(
Buffered D3 I/Ol-e::(
I/OGND 35 36 0 Buffered D2
GND 37 38 I Buffered D1 I/O
GND 39 40 DO Buffered. DO I/O
3-8
TABLE 3-7
BUS EXPANSION CONNECTOR J2 PIN ASSIGNMENTS
ASSIGNMENT PIN PIN MARKING ASSIGNMENT I/O
GND 1 2 ROY READY I
4 WRI-
GND 3 Buffered WR 0-
GND 5 6 RDI Buffered RD 0
GND 7 8 101M Buffered 101M 0
GND 9 10 A15 Buffered A 15 0
GND 11 12 Buffered A 14 0
GND 13 14 Buffered A 13 0
GND 15 16 Buffered A 12 0
GND 17 18 Buffered A 11 0
GND 19 20 Buffered A 10 0
GND 21 22CJ)
Buffered A9 0:::>co
GND 23 24 CJ) Buffered A8 0CJ)
GND 25 26 w Buffered A7 0a:GND 27 28
0 Buffered A6 00
GND 29 30« Buffered A5 0I
GND 31 32 Buffered A4 0
GND 33 34 Buffered A3 0
GND 35 36 Buffered A2 0
GND 37 38 Buffered A 1 0
GND 39 40 AO Buffered AO 0
3-9
TABLE 3-8I/O PORT CONNECTOR J3 PIN ASSIGNMENTS
ASSIGNMENT PIN PIN MARKING ASSIGNMENT
P1-6* 1 2 l P1-7
P1-4 3 4 P1-5PORT 1
P1-2 5 6 J P1-3
P1-0 7 8 P1-1
PO-6 9 10 l 7 PO-7
PO-4 11 12 f PO-5PORT 0
PO-2 13 14 J t PO-3
PO-O 15 16 P PO-1fr
P9-6 17 18 l P9-7
P9-4 19 20 P9-5PORT 9
P9-2 21 22 J P9-3
P9-0 23 24 P9-1
P8-6 25 26 l P8-7
P8-4 27 28 P8-5PORT 8
P8-2 29 30 J P8-3
P8-0 31 32 P8-1
GROUND 33 34 GROUND
*Note: 1. Pn-m stands for PORT n Bit m (e.g. P9-6 means PORT 9H Bit 6).
2. Ports 0 & 1 are Ports A and B of 8355 (A 14).
3. Ports 8 & 9 are Ports A and B of 8755 (A 15).
3-10
TABLE 3-9I/O PORT CONNECTOR J4 PIN ASSIGNMENTS
ASSIGNMENT PIN PIN MARKING ASSIGNMENT
P23H-4 1 2 l P23H-5
P23H-2 3 4 PORT 23H P23H-3
P23H-0 5 6 J P23H-1
P22H-6 7 8 l P22H-7
P22H-4 '9 10 P22H-5PORT 22H
P22H-2 11 12 J P22H-3
P22H-0 13 14 P22H-1
P21 H-6 15 16 l P21 H-7
P21 H-4 17 18 P21 H-5PORT 21 H
P21 H-2 19 20 J P21 H-3
P21 H-O 21 22 P21 H-1
OPEN 23 24 OPEN
GROUND 25 26 GROUND
Note: Port 21 H is Port AIPort 22H is Port B of8155 (A16).Port 23H is Port C
3-11
TABLE 3-10I/O PORT AND TIMER CONNECTOR J5 PIN ASSIGNMENTS
ASSIGNMENT PIN PIN MARKING ASSIGNMENT
P2BH-4 1 2 l P2BH-5
P2BH-2 3 4 PORT 2BH P2BH-3
P2BH-0 5 6 J P2BH-1
P2AH-6 7 8 l P2AH-7
P2AH-4 9 10 P2AH-5PORT 2AH
P2AH-2 11 12
JP2AH-3
P2AH-0 13 14 P2AH-1
P29H-6 15 16 l P29H-7
P29H-4 17 18 P29H-5PORT 29H
P29H-2 19 20
JP29H-3
P29H-0 21 22 P29H-1-
Timer OUT 23 24 TIMER Timer InOUT/IN
GROUND 25 26 GROUND
Note: Port 29H is Port A }Port 2AH is Port B of expansion RAM 8155 (A17).Port 2BH is Port CTimer is on the same 8155 (A 17).
3-12
TABLE 3-11SUGGESTED CONNECTOR TYPES
REFERENCE FUNCTION NO.OF MFR. MFR'S.DESIGNATION PINS PART NO.
J1 Bus Expansion 40 Spectra Stri p 800-576
J2 Bus Expansion 40 Spectra Strip 800-576
J3 I/O Ports· 34 Spectra Strip 800-579
J4 I/O Ports 26 Spectra Strip 800-583
J5 I/O Ports and Timer 26 Spectra Strip 800-583
J6 Not Used
J7 TTY Interface 25
Female} OptionalAMP 206584
Male AMP 206604
- Power Supply 6 Molex Model No. 1261
Recepticle 03-09-1064
Plug 03-09-2062
3-13
4-1 WHAT IT DOES
The things you can do with the basic SDK-85 kitare:
• Examine the contents of all memory and register locations
• Deposit program steps or data in RAM orregister locations
• Execute programs or subroutines uponcommand
• Reset (start) the monitor upon command
• Interrupt and start operation at a locationyou specify upon command
You may select either the keyboard and display onthe board or a teletypewriter as the console deviceby operating a switch or by placing a jumper wireat the appropriate place on the board. (See Chapter3.) Keyboard/display operation and teletypewriteroperation are described separately in the followingparagraphs.
Two of the keyboard buttons continue to functionin teletypewriter mode, as well as in keyboard/display mode. These are the 8 and the @ill keys.
4-2 THE BUTTONS AND DISPLAYS
Keyboard/display operation is done by pressingkeys on the keypad. Responses are displayed eitherby echoing the key pressed or by prompting youwith a message or prompt. When the 8 button ispressed, the monitor is ready to accept commands.For numeric arguments, the valid range is from 1to 4 hexadecimal digits for address information and1 to 2 hex digits for register and memory data.
Longer numbers may be entered, but such numberswill be evaluated modulo 2 16 or 28 respectively,
CHAPTER 4OPERATING INSTRUCTIONS
i.e., only the last four or the last two digits entered wi II be accepted.
As noted, the number system being used in theSDK-85 is the hexadecimal, or base-16 numbersystem. Table 4-1 lists the hexadecimal, decimal(base 10), and binary (base two) equivalents. Thetable also shows how each hex digit will appear inthe seven-segment LE D displays.
TABLE 4-1NUMBER SYSTEMS
LEDHEX DECIMAL BINARY DISPLAY
0 0 0000,-,L'
1 1 0001,,
2 2 0010-,,=
3 3 0011-,=,
4 4 0100 LI5 5 0101
,-=,6 6 0110
,-,=,7 7 0111 -,,8 8 1000
,-,,=,9 9 1001
,-,-,A 10 1010
,-,,-,B 11 1011 1=1C 12 1100 ,-
LD 13 1101 ,-IE 14 1110
,-,-F 15 1111 ,-,-
4-1
Whenever the monitor expects a command, the display shows a dash ("-") at the left edge of theaddress field (possibly along with an error message). When the monitor expects a parameter, adecimal point will be displayed at the right edge ofthe field into which the argument will be placed. Aparameter wi II be either an address or a byte ofdata which is used during the execution of acommand.
In the descriptions of the command modes, uppercase letters and numbers enclosed in boxes represent keyboard keys. Words or phrases in lower caseenclosed in brackets "<>" describe the nature ofthe command parameters you may input.
The () in the Format Statement indicates an optional argument.
Reset:
The EJ key causes a hardware reset, and startsthe monitor. The message "-80 85" will be displayed across the address and data field of the display if you are in display-keyboard mode. If inteletypewriter mode, the sign on message "SDK-85VE R X.X" will be printed. The monitor is ready toaccept a command after a reset, and saves no information about the state of any user program beforethe reset.
4-2
Substitute Memory:
~<address> ~«data»~«data» ...~
The substitute memory command allows you toread the contents of ROM memory and to examineand modify the contents of RAM memorylocations.
The address argument denotes the contents of thememory address to be examined, and may be from1 to 4 hex digits. If you enter longer numbers, onlythe last 4 digits entered are used). As soon as thenumber is terminated by the ~ key, the contentsof that location are shown in the data field, alongwith a decimal point at the right edge of the field.Entering a new number will cause that number tobe displayed in the data field; however, the contents of the memory location will not be changeduntil an~ or~ key is pressed.
Pressing B:J will place the contents displayed in thedata field into the displayed memory address. Thenthe address and contents of the next higher memory location will automatically be shown. Pressing~ will place the contents displayed in the datafield into the memory address displayed in the address field, and will also terminate the command.
Pressing B:J while the address FFFF is being displayed will cause address 0000 to be displayed.
SUBSTITUTE MEMORY EXAMPLE 1
Using~ to list the first few Monitorlocations:
Whenever the command changes the contents of amemory location, it also verifies that the changehas occurred correctly. If the contents of the location do not agree with what the new value shouldbe (i.e., if the memory location is in ROM or isnonexistent), an error message is generated.
KEYISuBSTI~
~
~
~
~
~
ADDR
0000.
0000
0001
0002
0003
DATA
3E.
00.
32.
00.
SUBSTITUTE MEMORY EXAMPLE 2
Using~ to enter a small program:
KEY ADDR DATA
~MEM
0 0002.
[£] 0020.
[£] 0200.
[£] 2000.
~ 2000 **
rn 2000 03.
0 2000 3E.
~ 2001 **
G1J 2001 04.
~ 2001 47.
~ 2002 **
[I] 2002 oc.
0 2002 CF.
ElNOTE: ** represents unpredictable values.
After loading the above program, use~again to go back and check locations 20002002 to see that they contain:
CORRESPONDING8085 ASSEMBLY
LANGUAGEADDRESS DATA INSTRUCTIONS--
2000 3E MVI A,47H
2001 47
2002 CF RST 1
This program will load the A register with thenumber 47 and jump back to the monitor.
4-3
Examine Registers:
~ <reg> ~ «data» ~ «data» ... ~
The examine command allows you to display andmodify the contents of the 8085 CPU registers.Pressing the~ key blanks both the address anddata fields, and displays a decimal point at the rightedge of the address field. At this point, you mustpress a register key (register names are denoted bylegends on the keyboard). Any other key will generate an error response.
If a register key is pressed, the name of the registerwill appear in the address field, and the contents ofthe register will appear in the data field, alongwith a decimal point at the right hand edge.Entering a number will cause the number to bedisplayed in the data field; however, the contentsof the register will not be changed until an~ or~ key is pressed.
Pressing ~ will place the contents displayed in thedata field into the register named in the addressfield, then will display the name and contents ofthe next register in sequence (See Table4-2). Pressing~ will place the contents displayed in the datafield in the register named in the address field, andwill also terminate the command.
Pressing~ while register PCl is being displayedhas the same effect as pressing~ .
TABLE 4-2REGISTER DISPLAY SEQUENCE
KEY/DISPLAYCODE REGISTER
A CPU register A
B CPU register B
C CPU register C
0 CPU register 0
E CPU register E
F CPU flags byte
I interrupt mask
H CPU register H
l CPU register l
SPH most significant byte ofstack pointer
SPl least significant byte ofstack pointer
PCH most significant byte ofprogram counter
PCl least significant byte ofprogram counter
The flag byte contains the 8085 CPU's conditionflags.
The format for the flag byte is:The format for the I register is the lower 4 bits ofthe accumulator following execution of a RIMinstruction. A "1" in an interrupt mask field denotes a masked condition. A "0" must be enteredto use that interrupt.
7 o
The format for the I register is:
7 0
IE 7.5 6.5 5.5
t--. INTERRUPT MASK
INTERRUPT ENABLE FLAG
4-4
x = UNDEFINED
For more information about the 8085's flags andinterrupt mask feature, consult the MCS-85 User'sManual.
EXAMINE REGISTER EXAMPLE 1
Using~ to initialize the 8085's stack pointerto 20C2:
EXAMINE REGISTER EXAMPLE 2
Using~ to examine the contents of the8085's Registers:
KEY
IUAM1~
ADDR
SPH
SPH
SPH
SPl
SPl
SPl
DATA
**
02.
20.
**
OC.
C2.
KEY ADDR DATA
~REG
0 A **
~ b **
~ C **
~ d **
~ E **
~ F **
~ **
~ H **
~ l **
~ SPH **
~ SPl **
~ PCH **
~ PCl **
EJ or ~NOTE: ** represents the contents of the
register whose name is in the addressfield of the display.
4-5
Go:
G «address» ~
Pressing the B key causes the contents of the program counter (PCH and PCl) to be displayed inthe addressed field, along with a decimal point atthe right edge of the field. The program counter isavailable for change, and any number entered (anumber is optional) becomes the new contents ofthe program counter.
Pressing the~ key transfers control of the CPUto the address in the address field (contents of theprogram counter). Before the transfer of control,the address and data display fields are cleared, andan 'E' is displayed at the left edge of the addressfield.
Pressing any other key but~ generates an errormessage.
The monitor regains control of the CPU only aftera 8 or after execution of an RST 0, RST 1, orJMP a instruction in program.
IMPORTANT:
Note that because of the way the GO and SINGLESTEP commands are implemented in the Monitor,Band S~~~~E will not work unless the 8085's stackpointer is pointing to an existing portion of RAMmemory. If at any time these two commands don'tseem to be working, set SPH to 20 and SPl to C2using ~ , then try it again. (locations 20C2 to20F F are reserved for the monitor program, therefore the stack pointer must be set to 20C2 or lowerso as not to interfere with the monitor.)
4-6
GO COMMAND EXAMPLE
Now you can execute the program you entered in Example 2 of the~ command.First, check to make sure the 3- location program is in memory, then the program will beexecuted.
Recall that this small program loads the Aregister with the number 47 and restarts themonitor. To verify that the A register nowholds 47 and to get more practice using ~,try the following sequence:
KEY ADDR DATA COMMENTS KEY ADDR DATA COMMENT
~ ~MEM REG
[2] 0002. 0 A 47. A reg now
[9] 0020.holds 47.
[9] 0200.[9] A 00.
[9] 2000.~ Now A holds
~ 2000 3E. MVI A, 47 0
~ 2001 47. 0 **** **
~ 2002 CF. RST 1 [2] 0002.
~ [9] 0020. Run the small
0 **** ** Program again
[2] 0002.[9] 0200.
[9] 0020.[9] 2000.
[9] 0200. ~ - 80 85
[9] ~2000. REG
~ - 80 0 A 47 Now A holds85 47 again
NOTE: ** ** denotes "don't care" valuesNow try placing other values in location 2001using~ and use 0 to execute the programagain, seeing how those values are loaded intothe A register after execution.
4-7
SINGLE STEP EXAMPLE
To resume full speed operation at this point,do the following:
Single stepping through the SOK-85 Monitor.This is what you should see on the display:
**
E1
22
F5
E1
E1
85
DATA
0010.
- 80
KEY ADDR
SINGLE ****STEP
rn 000a.
~ OOOb.
~ OOOC.
~ OOOF.
~ 0010.
Single stepping is implemented in the SOK-85hardware by repeatedly interrupting the processor.Since interrupts cannot be recognized during theEI and 01 instructions of the 8085, single step willnot stop at either of these instructions.
Single Step:
Pressing the sJ;W key causes the contents of theprogram counter (PCH and PCl) to be displayedin the address field of the display along with a decimal point at the right hand edge of the field. Thedata field contains the contents of the addressdenoted by the contents of the program counter.The program counter is made available for change,and any number entered (a number is optional)becomes the new contents of the program counter.
SJ;W «address» ~ ~ ...~
Pressing the~ key causes the CPU to execute theone instruction pointed to by the programcounter. After execution the monitor regains control of the CPU, and the address and data fieldsshow the new contents of the program cou nter(address of next instruction to execute) and contents of the byte addressed by the programcounter, respectively. The decimal point is turnedon at the right hand edge of the address field, indicating that the program counter is available again.
If the~ key is pressed, no instruction is executed.The address displayed in the address field is madethe contents of the program counter and the singlestep command is terminated. You may now examine or modify registers and memory locations toverify program execution. Pressing the Sm~E keytakes you back to the single step mode, and subsequent pressing of the~ key allows you to continue, instruction by instruction, through yourprogram.
4-8
Vector Interrupt:
The~ key is similar to the 0 key in the respectthat it takes control away from the monitor andgives it to another program. The interrupt keycauses immediate recognition of RST 7.5 interruptand control passes to location 3C in the monitor.This location contains an unconditional branch toinstruction location 20CE in user RAM. You mayplace any instruction you wish in Locations 20CEthru 20DO (e.g., a branch to a keyboard interruptroutine). The monitor does not regain control without specific action (a 8 command, or a RST 0,RST 1, or JMP 0 program instruction). In branchingback to the monitor, unless the RST 1 instruction isexecuted, the monitor loses all past informationabout the user program.
Since an interrupt is recognized by the hardware,the monitor cannot clear the display; thus the display may remain unchanged after interrupt.
IMPORTANT: Two conditions must be satisfiedfor the Vector Interrupt feature to be enabled:
1. Interrupts must be enabled (by executing anEI instruction).
2. RST 7.5 must be unmasked (mask reset bythe SI M instruction or by modifying the1- Register).
Program Debugging - The Use of Breakpoints
Along with the "cold start" reset caused when the8 button is pressed, the monitor also implementsa IIwarm start" procedure. Execution of an RST 1instruction will cause the monitor to enter this" warm start" routine. The monitor will display thesame message as a8 (/-80 85'), but all registersand user memory will be preserved in the state theywere in at the time of execution of the RST 1. Nosystem reset or initialization will be performed.
By placing RST 1 instructions at key RAM locations where you want to examine the CPU status,you can break from your program and then examine and set memory locations and registers, orsingle-step a portion of your program.
To resume execution of the user program, pressG. The PC value of the next instruction appearsin the address field of the display. Then press~to continue execution.
Error Conditions - Illegal Key
If a key is pressed which is illegal in its context(e.g., a command key is pressed when the monitoris expecting a number), the command is abortedand an error message is generated. Th is messagetakes the form II-Err", displayed in the addressfield. The monitor is then ready to accept a command. The error message will be cleared when acommand key is pressed. Therefore, you can cancela command before you press~ or~ by pressingany illegal key instead.
Memory Substitution Errors
If the substitute memory command determinesthat the contents of a memory location were notchanged correctly (i.e. location is in ROM or isnonexistent), the command is aborted and an errormessage is generated. This message also takes theform II-Err", displayed in the address field. Themonitor is then ready to accept a new command.The error message will be cleared when a commandkey is pressed.
4-3 TELETYPEWRITER OPERATION
Console Commands
This portion of the SDK-85 monitor communicatesvia a teletypewriter (console). Operation consistsof dialogue between the operator and the monitorin the monitor's command language. After youpress the 8 button on the SDK-85 keypad, themonitor begins the dialogue by typing a sign-onmessage on the console ("MCS-85 Kit") and thenrequests a command by typing a prompt character("."). Commands are in the form of a single alphabetic character specifying the command, followedby a list of numeric or alphabetic parameters.Numeric parameters are entered as hexadecimalnumbers. The monitor recognizes the characters 0through 9 and A through F as legal hexadecimaldigits. Longer numbers may be entered, but onlythe last four digits will be retained.
4-9
The only command requiring an alphabetic parameter is the "X" command. The nature of suchparameters will be discussed in the section explaining the command.
Use of the Monitor for Programming and Checkout
The monitor allows you to enter, check out, andexecute small programs. It contains facilities formemory display and modification, 8085 CPU register display and modification, program loading fromthe console device, and program initiation with abreakpoint facility. In addition, the ~ key on thekeyboard may be used to initiate your own keyboard interrupt routine.
Command Structure
In the following paragraphs, the monitor commandlanguage is discussed. Each command is described,and examples of its use are included for clarity.Error conditions that may be encountered whileoperating the monitor are described on page 4-13.
The monitor requires each command to be terminated by a carriage return. With the exception ofthe "s" and 'X" commands, the command is notacted upon until the carriage return is sensed.Therefore, you may abort any command, beforeentering the carriage return, by typing any illegalcharacter (such as RUBOUT).
Except where indicated otherwise, a single space issynonymous with the comma for use as a delimiter.Consecutive spaces or commas, or a space orcomma immediately following the command letter,are illegal in all commands except the "X" command (see below).
Items enclosed in parentheses "( )" are optional.
Display Memory Command, D:
o <low address>, <high address>
Selected areas of addressable memory may beaccessed and displayed by the 0 command. Theo command produces a formatted listing of thememory contents between <low address> and<high address>, inclusive, on the console. Eachline of the listing begins with the address of thefirst memory location displayed on that line,represented as 4 hexadecimal digits, followed byup to 16 memory locations, each one representedby 2 hexadecimal digits.
Program Execute Command, G:
G «entry point»
Control of the CPU is transferred from the monitor to the user program by means of the programexecute command G. The entry point should be anaddress in RAM which contains an instruction inthe program. If no entry point is specified, themonitor uses, as an address, the value on top ofthe stack when the monitor was entered.
G COMMAND EXAMPLE
G2000
Control is passed to location 2000.
D COMMAND EXAMPLE
09,26
0009 EF 20 E1 22 F2 20 F5
0010 E1 22 ED 20 21 00 00 39 22 F4 20 21 ED 20 F9 C5
0020 05 C3 3F 00 C3 57 01
4-10
Insert Instructions into RAM, I:
I <address><data>
Single instructions, or an entire user program, areentered into RAM with the I command. Aftersensing the carriage return terminating the command line, the monitor waits for the user to enter astring of hexadecimal digits (O to 9, A to F). Eachdigit in the string is converted into its binary value,and then loaded into memory,. beginning at thestarting address specified and continuing into sequential memory locations. Two hexadecimal digitsare loaded into each byte of memory.
Separators between digits (spaces, commas, carriage returns) are ignored; illegal characters, however, will terminate the command with an errormessage (see page 4-13). The character ESC or ALTMODE (which is echoed to the console as "$")terminates the digit string.
I COMMAND EXAMPLE 1
12010
112233445566778899$
This command puts the following pattern intoRAM:
2010 112233 44 55 66 77 88 99
I COMMAND EXAMPLE 2
12040
123456789$
This command puts the following pattern intoRAM:
2040 12 34 56 78 90
Note that since an odd number of hexadecimal digits was entered initially, a zero wasappended to the digit string.
Move Memory Command, M:
M <low address>, <high address>, <destination>
The M command moves the contents of memorybetween <low address> and <high address> inclusive, to the area of RAM beginning at <destination>. The contents of the source field remainundisturbed, unless the receiving field overlaps thesource field.
The move operation is performed on a byte-by-bytebasis, beginning at <low address>. Care should betaken if <destination> is between <low address>and <high address>. For example, if location 2010contains 1A, the command M2010, 201 F 2011will result in locations 2010 to 2020 containing"1 A 1A 1A .. .", and the original contents of memory will be lost.
The monitor will continue to move data until thesource field is exhausted, or until it reaches addressFFFF. If the monitor reaches FFFF withoutexhausting the source field, it will move data intothis location, then stop.
M COMMAND EXAMPLE
M2010,204F,2050
64 bytes of memory are moved from 2010204F to 2050-208F by this command.
4-11
Substitute Memory Command, S:
S <address> «data»
The S command allows you to examine and optionally modify memory locations individually.The command functions as follows:
1. Type an S, followed by the hexadecimal address of the first memory location you wish toexamine, followed by a space or comma.
2. The contents of the location are displayed,followed by a dash (-).
3. To modify the contents of the location displayed, type in the new data, followed by aspace, comma, or carriage return. If you donot wish to modify the location, type onlythe space, comma, or carriage return. Thenext higher memory location will automatically be displayed as in step (2).
4. Type a carriage return. The S command willbe terminated.
S COMMAND EXAMPLE
S2050 AA- BB-CC 01-13 23-24~
Location 2050, which contains AA, is un-changed, but location 2051 (which used tocontain BB) now contains CC, 2052 (whichused to contain 01) now contains 13, and2053 (which used to contain 23) now contains 24.
Examine/Modify CPU Registers Command, X:
x «register identifier»
Display and modification of the CPU registers isaccomplished via the X command. The X commanduses <register identifier> to select the particularregister to be displayed. A register identifier is asingle alphabetic character denoting a register,as defined in Table 4-3.
4-12
TABLE 4-3X COMMAND REGISTER IDENTIFIERS
IDENTIFIER REGISTERCODE
A Register A
B Register B
C Register C
D Register D
E Register E
F Flags byte
I Interrupt Mask
H Register H
L Register L
M Registers H and L com-bined
S Stack Po inter
P Program Counter
The command operates as follows:
1. Type an X, followed by a register identifier ora carriage return.
2. The contents of the register are displayed (twohexadecimal digits for A, B, C, D, E, F, I, H,and L, four hexadecimal digits for M, S, & P),followed by a dash (-).
3. The register may be modified at this time bytyping the new value, followed by a space,comma, or carriage return. If no modificationis desired, type only the space, comma, orcarriage return.
4. If a space or comma is typed in step (3), thenext register in sequence will be displayed asin step 2 (unless P was just displayed whichcase the command is terminated). If a carriagereturn is entered in step 3, the X command isterminated.
5. If a carriage return is typed in step (1) above,an annotated list of all registers and their contents is displayed.
Note: The bits in the flag byte (F) and interrupt mask (I) are encoded as follows:
The format for the F register:
Error Conditions - Invalid Characters
Each character is checked as it is entered from theconsole. As soon as the monitor determines thatthe last character entered is illegal in its context, itaborts the command and issues an "*,, to indicatethe error.
7 o
The format for the I register:
INVALID CHARACTER EXAMPLE
D2000,205G*
The character G was encountered in a parameter list where only hexadecimal digits anddelimiters are valid.
7 o
Note: For more information on the 8085's interrupt masks, please consult the MCS-85User's Manual.
Program Debugging - Breakpoint Facility
The monitor treats the RST 1 instruction (CF) asa special sequence initiator. Upon execution of anRST 1 instruction the monitor will automaticallysave the complete CPU status and output the signon message "MCS-85 Kit" to the console. You mayat that time display the contents of the CPU statusregister by initiating an "X" command. Afterexamining the machine status and making anynecessary changes you can resume execution ofthe program by inputting "G" and Carriage Returnon the console. You can step through large portions of your program by inserting RST 1 instructions at key locations.
Address Value Errors
Some commands require an address pair of theform <low address>, <high address>. If, on thesecommands, the value of <low address> is greaterthan or equal to the value of <high address>, theaction indicated by the command will be performed on the data at low address only. Addressesare evaluated modu 10 216. Thus, if a hexadecimaladdress greater than FFFF is entered, only the last4 hex digits will be used. Another type of addresserror may occur when you specify a part ofmemory in a command which does not exist in thehardware configuration you are using.
In general, if a nonexistent portion of memory isspecified as the source field for an instruction, thedata fetched will be unpredictable. If a nonexistentportion of memory is given as the destination fieldin a command, the command has no effect.
4-13
5-1 OVERVIEW
This portion of the SDK-85 User's Manual shouldprovide you with sufficient knowledge to writeprograms to exercise the basic system as well asproviding capability to use the basic kit as a nucleus around which you can build larger systems.
Figure 5-1 is a functional block diagram of theSDK-85. The components enclosed in dashed boxeshave places in the SDK-85 printed circuit board,but these are not needed for a minimum systemand are not included in the kit. In addition, somecontrol lines have been omitted from the blockdiagram for the sake of simplicity. The full SDK85 schematic diagrams have been included in anappendix for your reference.
The text to follow describes each of the elementsin the system:
CHAPTER 5THE HARDWARE
medium-sized systems. The 8085 multiplexes itsdata bus with the low 8 bits of its address bus.The 8155 and 8355/8755 Memory I/O componentsin the kit are designed to be compatible with thisbus structure, precluding the need for external buslatches.
Four vectored interrupt inputs are available inaddition to the standard 8080A-type interrupt.There is also a serial input and serial output dataline pair that is exercised under program control toprovide the SDK-85's simple teletype I/O.
The basic clock frequency of the 8085 in the kit is3.072 MHz (internally divided by 2 from the 6.144MHz crystal input).
5-2 SYSTEM COMPONENTS The 8155
The 8085 CPU & The System Buses
The 8085 CPU is an evolutionary enhancement ofIntel's industry standard 8080A. It is 100% software compatible with the 8080A while offering thebenefits of single power supply, higher integration,higher performance, and improved system timing.
The 8085 CPU is fully described in the Intel®MCS-85™ User's Manual so a detailed descriptionwi II not be repeated here.
As the system block diagram shows, the 8085derives its timing inputs directly from a crystal.In addition the 8085 drives the system with control signals available on-chip. No additional statusdecoding circuitry is required for most small- to
The 8155 is a highly integrated chip designed forcompatibility with the 8085's bus structure. It contains 256 bytes of static RAM memory, 22 programmable I/O lines, and a 14-bit timer/counter.The function of the 8155 is described in detail inthe Intel MCS-85 User's Manual.
One 8155 is included with the SDK-85 kit andspace for another has been provided on the ci rcu itboard. The RAM memory in the 8155 is availablefor storage of user programs as well as for temporary storage of information needed by systemprograms.
The 8155's timer is used by the SDK-85 monitor'sSingle Step routine to interrupt the processor following the execution of each instruction.
5-1
The 8355 & 8755 The 8279
The 8355 and 8755 are two more chips speciallydesigned for compatibility with 8085 systems. The8355 contains 2048 bytes of mask programmedread only memory (ROM) and 16 I/O lines. The8755 has an identical function and pinout to the8355, but contains ultraviolet erasable and reprogrammable read only memory (EPROM) instead ofthe ROM.
The 8279 is a keyboard/display controller chipthat handles the interface between the 8085 andthe keypad and LED display on the SDK-85 board.The 8279 refreshes the display from an internalmemory while scanning the keyboard to detectkeyboard inputs. The 8279 is described in detailin the MeS-85 User's Manual.
The 8205
The SDK-85 contains either one 8355 or one 8755that is programmed with the system monitor.Space for a second 8755 or 8355 has been allocatedon the PC board.
The basic SDK-85 also contains an 8205 chip (oneout-of-8 decoder) that decodes the 8085's memoryaddress bits to provide chip enables for the 8155,the 8355/8755, and the 8279.
CPUADDRESSDECODER
ROM/IO (8355)EPROM/IO (8755) RAM/IO/COUNTER KEYBOARD DISPLAY
ADDRESS DATAFIELD FIELD
FOR BUS EXPANSION
DATABUS
8216IL.. ...
r----'
8212 JPL .J
16 ADDRESSBUS
r----'8212
L.. ...
I I I I ~,-, n n.I,n /-, /-'.1I
Ct. ,=/. C/. D. D.C/.
I I II SDK-85 KEYBOARD LAYOUT
I1 I I
RESET ~NEg C D E F
I I I I~
SINGLE GO 8 9 A BSTEP H L
I I I I rv' SUBST EXAM 4 5 6 7MEM REG SPH SPL PCH PCL
SERIAL I I I I NEXT EXEC 0 1 2 3
~I/~T~O I I
: ,DTI--,:10 LINES I L ~
I ~ 'D I~ 74LS156IrD 1 II
r..; ~- -.., {r '" 7'7 8755 8155
I: I II 'III
II, 8355 ~II I8085 8205 8155 .II 8279 I I
-~L ~ L >- ~I I{ ~ L ;:,. L ;>. 1/> L ~ I ,(';:.. L ~ L ;:,. I
I I II I I
TA/ '" J7 I I'" )' I", 7' 1 V I~ 71-
ESS I I I XBUS I I I I y
I II I r
~7' I I I II ~
:~I I I I I ):
II Y
I I I II I I I I
'" 71 I '" ? " '\ ? r
~~~ II I I ~
I I Iy
ADDR
DAADDR
CONT
INTERRUPTINPUTS
I I I I
r - - ~ OPTIONAL. A PLACE HAS BEEN PROVIDED ON THE PC BOARD FOR THE DEVICE BUT THEL __ ... DEVICE IS NOT INCLUDED.
Figure 5-1 SDK-85 Functional Block Diagram
5-2
TABLE 5-18205 CHIP ENABLES
OUTPUT ACTIVE ADDRESS RANGE SELECTED DEVICE
CSO 0000-07FF 8755/8355 MONITOR ROM (A14)
CS1 0800-0FFF 8755/8355 EXPANSION ROM (A15)
CS2 1000-17FF N/C
CS3 1800-1 FFF 8279 KEYBOARD/DISPLAY CONTROllER (A13)
CS4 2000-27FF 8155 BASIC RAM (A16)
CS5 2800-2FFF 8155 EXPANSION RAM (A17)
CS6 3000-37FF N/C.CS7 3800-3FFF N/C
AXX = IC# on schematic diagram in Appendix
N/C = not connected - avilable for user expansion
5-3 SDK-85 MEMORYADDRESSING
Each memory/I/O chip in the basic SDK-85 Systemof Figure 5-1 is enabled by a signal coming fromthe 8205 address decoder. Table 5-1 lists each chipenable output accompanied by the address spaceover which it is active and the SDK-85 device thatis selected.
Note that the 8279 is really an-input/output devicethat is communicated with by the 8085 as thoughit were a series of memory locations.
The above chip enable table can be expanded toform a memory map that illustrates the active portions of the SDK memory (see Figure 5-2). Usingthe terminology of Figure 5-2, the basic SDK-85with no additional memory/I/O chips provides thememory blocks marked MONITOR ROM andBASIC RAM. You must confine your programsto a subset of the space available in the BASICRAM, the remainder of BASIC RAM being requiredfor monitor storage locations. A list of the monitorreserved RAM locations is provided in Table 5-2.
Note that RAM memory locations 20C2 through2000 are places for jump instructions pointing tothe places in memory for the computer to gofollowing the execution of an RST 5 instruction, anRST 6 instruction, an interrupt signal on theRST 6.5 input, etc. If you do not use any of theseinstructions or interrupt lines, then this RAM areais available for other programming.
When you add an expansion 8155 in the space provided on the SDK-85 board, the RAM locationsshown in Figure 5-2 as EXPANSION RAM aremade available for programming. The monitorreserves no space in the EXPANSION RAM, soall 256 locations are available for programming.
An extra 8355 or 8755 device when plugged intothe appropriate spot on the board gives you program memory space in the area denoted EXPANSION ROM in the memory map.
The areas marked "FOlD BACK" in Figure 5-2indicate address space that is unused, but unavailable for expansion, because these locations aremultiple mappings of the basic locations.
5-3
TABLE 5-2MONITOR-RESERVED RAM LOCATIONS
LOC. CONTENTS
20C2 User may place a JMP instr. to a RST 5 routine in,
locs 20C2 - 20C4.
20C5 JMP to RST 6 routine Loaded>20C8 JMP to RST 6.5 routine (hardwired user interrupt) by
20CB JMP to RST 7 routine user
20CE JIVP to "VECT INTR" key routine ,
20D1-20E8 Monitor Stack (temporary storage used by monitor)
20E9 E Register,
20EA D Register
20EB C Register
20EC B Register
20ED Flags
20EE A Register
20EF L Register > storage for user register images
20FO H Register
20F1 Interrupt Mask
20F2 Prog. Cntr. - Low byte
20F3 Prog. Cntr. - HI byte
20F4 Stack Ptr. - Low byte
20F5 Stack Ptr. - Hi byte~
20F6 Current Address
20F8 Current Data
20F9-20FC Output buffer & Temp Locs.
20FD Register Pointer
20FE Input Buffer
20FF 8155 Command/Status Register image
5-4
MEMORY ADDRESS
Please consult the MCS-85 User's Manual for theuse of the various special purpose registers referredto in the table (Direction Registers, Command/Status Registers, etc.), and for complete instructions for exercising the memory-I/O chips (8155/8355/8755) .
As was mentioned in the memory addressing sections, the 8279 is a peripheral chip that is selectedusing memory-mapped I/O. Table 5-4 shows thetwo memory locations that are used to communicate with the 8279. Consult the MCS-85 User'sManual for detailed operating instructions.
Accessing the 8279 Keyboard/Display Controller
and drivers in the SDK-85 system structure isshown in Figure 5-1.
Hardware Note: The timer/counter of the first8155 (RAM) is dedicated as a timer. It is hardwiredto receive the 8085's system clock (3.072 MHzClK) as its count input. This timer is used by thekeyboard monitor's SI NG lE STEP function, soyou should beware of timer conflicts if you desireto count and use the SI NG lE STEP function atthe same time. (See paragraph 6-2.)
As mentioned before, the 8155 and 8355/8755that come with the SDK-85 Kit have on-boardinput/output ports. These ports are accessed usingthe IN and OUT instructions of the 8085. Eachindividual port being referenced has a unique 8-bitaddress. Table 5-3 contains all the port addressesfor an expanded SDK-85 containing two 8155'sand two 8355/8755's.
IMPORTANT:As Figure 5-2 indicates, the optional expansionbuffers leading to the SDK-85 board's prototypingarea are enabled only over the address range8000- FFFF. If you desi re to use any of the"OP EN"expansion areas shown in Figure 5-2 (enabled bythe 8205 chip selects), you will have to becomefamiliar with the SDK-85 schematics at the backof this manual and implement custom modifications to the SDK-85 circuitry.
5-4 INPUT/OUTPUT PORTAND PERIPHERALDEVICE ADDRESSING
ACTIVE 8205CHIP ENABLE
}C~
}~
} CS3
} CS2
} CSl
}C~
i-./ OPEN ,.r/
EXPANSION RAM (FOLD BACK)
EXPANSION RAM(256 LOC.)
BASIC RAM (FOLD BACK)
BASIC RAM(256 LOC.)
1900 - KEYBD/DISPLY CTLRCOMMAND LOC.
1800 - KEYBD/DISPLY CTLRDATA LOC.
OPEN (2K)
EXPANSION ROM (2K)
MONITOR ROM (2K)
180017FF
290028FF
0000
080007FF
30002FFF
1000OFFF
280027FF
210020FF
20001FFF
FFFFI 1MEMORY SPACE WHEREEXPANSION BUFFERS
I ARE ENABLED r8000 __7FFF
Figure 5-2 SDK-85 Memory Map
Any of the areas marked "OPEN" in Figure 5-2 arefree for expansion. You may mount extra memorychips in the wire-wrap area of the SDK-85 boardor on other circuit boards. The 8205 addressdecoder has 3 uncommitted chip select lines toallow the addition of three 2048-byte memoryblocks without additional decoding circuitry.
If you want to expand on the basic SDK-85 youdon't have to stick to the multiplexed-bus MCS 85memory/I/O family. Mounting pads are present onthe circuit board that accommodate an 8212 latchfor address/data bus demultiplexing. To providethe current drive capability to operate much largersystems, spaces are also allocated for another 8212to buffer the unmultiplexed half of the address andfive 8216 buffer/drivers to buffer the data bus, andcontrol signals. The function of these componentsis described in detail in the 8085 manual. The functional positioning of the optional latch, buffers,
5-5
Figure 5-3 Data Format
Figure 5-4 Display Configuration
Example; a "4" would be represented as1001 1001 = 99 (Hex)
SEGMENT
8279 DISPLAYRAM OUTPUT
1....-- DESIGNATION
DATA FIELD
OJ
e ...
LSB
ADDRESS FIELD
~
a
fl'b~/Z/~
d d.p.
TABLE 5-4ACCESSING THE 8279
KEYBOARD DISPLAY CONTROLLER
deb a d.p. 9
LOCATIONREAD/ FUNCTIONWRITE
1800 Read Read KeyboardFIFO
Write Write Data toDisplay
1900 Read Read StatusWord
Write Write CommandWord
MSB
These are six active LED displays available for use.They are configured in a four-place address fieldand a two-place data field as in Figure 5-4.
The hardware is designed so that writing a zero intoa bit position turns on the corresponding LEDsegment.
TABLE 5-3SDK-85 I/O PORT MAP
The data format for character bytes being displayed by the 8279 is one bit corresponding toeach of the seven LE D segments plus one bit forthe decimal point. Figure 5-3 shows the bitconfiguration.
PORT FUNCTION
00 Monitor ROM PORT A
01 Monitor ROM PORT B
02 Monitor ROM PORT AData Direction Register
03 Monitor ROM PORT BData Direction Register
08 Expansion ROM PO RT A
09 Expansion ROM PO RT B
OA Expansion ROM PO RT AData Direction Register
OB Expansion ROM PO RT BData Direction Register
20 BASIC RAM COMMAND/STATUSRegister
21 BASIC RAM PORT A
22 BASIC RAM PORT B
23 BASIC RAM PORT C
24 BASI C RAM Low Order Byteof Timer Count
25 BASI C RAM High Order Byteof Timer Count
28 EXPANSION RAMCOMMAN D/STATUS Register
29 EXPANSION RAM PORT A
2A EXPANSION RAM PORT B
2B EXPANSION RAM PORT C
2C EXPANSION RAM Low Order Byteof Timer Count
2D EXPANSION RAM High Order Byteof Timer Count
5-6
The display digits are stored within the 8279 display RAM in the locations listed in Table 5-5.
5-6 THE SERIAL DATAINTERFACE
8279 DISPLAY RAMLOCATION PURPOSE
0 Address digit 11 22 33 4
4 Data Digit 15 2
6 UNUSED7 UNUSED
5-5
TABLE 5-5
PROCESSOR INTERRUPTALLOCATION
The SDK-85 has the capability of communicatingwith a teletype, using the 8085 serial input andserial output data lines (Sl D and SOD respectively)to send and receive the serial bit strings that encodedata characters.
To send data to the teletype, the 8085 must togglethe SOD line in a set/reset fashion controlled bysoftware timing routines in the SDK-85 monitor.
Input data is obtained by monitoring and timingchanges in the level of the Sl D pin. Again, a monitor routine is called upon to do the job.
These teletype communications routines are accessible to the user.
Both subroutines communicate at a data rate of110 baud, the standard rate for teletypewriters.
The 8085 has four Vector Interrupt input pins inaddition to an 8080A-compatible interrupt input.The name of each interrupt and its function in theSDK-85 hardware is listed in Table 5-6.
The function of the on-chip interrupts is describedin detail in the 8085 Manual.
TABLE 5-68085 ON-CHIP INTERRUPT ALLOCATION
INPUT FUNCTION
RST 5.5 Ded icated to 8279
RST 6.5 Avai lable User Interrupt
RST 7.5 @ill button interrupt
TRAP 81 55 Timer Interrupt
INTR Available User Interrupt
Since the 8085 serial input and output lines aredesigned for communicating with other integratedcircuits, additional electronic circuitry is neededbefore they can be connected to a terminal. TheTTY interface in the top right corner of the boardallows the SDK-85 to be connected to any teletype that uses 20 mA "current-loop" input andoutput.
5-7
5-7 CONVERTER CIRCUIT FORRS232C SERIAL PORT
If you are fortunate enough to have a CRT terminal that can operate at a 110-baud rate, and wishto use it with the SDK-85 computer, you mayfind that it is compatible only with "RS232c"voltage-level serial ports and not with currentloops. If this is the case,
o Wire the MC1488 and MC1489 convertercircuit (shown in Figure 5-5) into the wirewrap area of the SDK-85 board.
o Remove R6, and connect the input line ofthe converter circuit to its lower pad. (Youcould put a switch in this line if you wantedto.)
o Open both the TTY and KEYBOARD jumpers, and connect the output line of the converter to the middle pad, which is strapping
+5V
14
point 23. (If you are using a switch, one witha center off position could be used.)
o Connect your CRT as shown in Figure 5-5.
o Connect the 3 different voltages to thecircuit.
5-8 ADDITIONAL INTERFACES
Additional interface considerations are discussed inIntel Application Note AP-29, which also describesa low-cost cassette tape-recorder interface, thatcan be added to your SO K-85 kit. AP-29 can beordered by sending $1.00to: Literature Department,Intel Corp., 3065 Bowers Ave., Santa Clara, Ca.95051.
SID
8085
JUMPERPIN 23
11REMOVE .---+--f
R6
9J
<..>
<?
MC1489
7
13
CRTTERMINAL
DDDCJDDDDDDDD000000000000000000000000
4 CONVERTER INPUT LINESOD
+(9 TO 15)V -(9 TO 15)V
GND 20
2
MC1488
7
3
330pF
Figure 5-5 Modification for RS-232c Operation
5-8
6-1 THE SDK-85 MONITOR
The SDK-85 monitor program provides utilityfunctions employing either a teletypewriter or thekit's on-board keyboard and display as console.The program resides in 2k (k = 1024) bytes of theROM memory, between location 0 and location7FF. the routines that service each console de-vice are independent; the two devices do not function simultaneously. You may select either thekeyboard and display or the teletypewriter as theconsole device by actuating a switch (not furnished)or by changing strapping connections. Both can beused to perform substantially the same tasks. (SeeChapter 4.)
6-2 PROGRAMMING HINTS
Stack Pointer
The 8085 makes use of a 16-bit internal registercalled the Stack Pointer to point to an area ofmemory called the stack. The 8085's stack isused for saving many things, such as memoryaddresses for returns from subroutines.
It is important always to define the stack pointerat the beginning of your program to avoid storingdata in the wrong place. Locations 20C2 through2000 in RAM are reserved by the monitor forjump instructions when all interrupts are used.Thus, you should set the stack pointer initially at20C2 (by the use of the program instructionLXI SP, 20C2H (31 C2 20), the keyboard command
~ [;1J(20)~ (C2) EJ, or the teletypewriter"XS" command) in order to keep your own stackclear of data and programs you want to protect.If less than the full complement of interrupts is
CHAPTER 6THE SOFTWARE
utilized, some or all of the unused space above20C2 can be allocated to stack as described above.Remember that the stack must still occupy an unbroken string of contiguous memory locations.
RAM-I/O Command Status Register (CSR)
The basic 8155 command status register (port 20)is used to set up the on-chip I/O ports and timer.It can only be written to; it cannot be read. Youcan write to this register in your programs, butthere is a precaution you should take: at any timewhen you write to the CSR in the basic RAM, youshould also write the same pattern to RAM location20FF. The reason is this: The S~~~~E command causesthe monitor to change the CSR in order to setup the timer for execution of the command. If itis not told what value you previously put there (bysaving the value in 20FF), that value will inevitablybe overwritten and lost. Following each single step,the monitor reads location 20FF, logically DRs itstimer command to the content of that location, andwrites the CSR with the new command, therebyretrieving your previous configuration.
Access to Monitor Routines
You may "borrow" several of the SDK-85 monitorroutines to simplify your programming task. Table6-1 provides descriptions and calling addresses forthese routi nes.
6-3 PROGRAMMING EXAMPLES
The programming examples presented at the end ofthis chapter demonstrate how to use the monitorroutines to operate the keyboard and display.
6-1
TABLE 6-1MONITOR ROUTINE CALLING ADDRESSES
6-2
Calling Address
07FD
07FA
05EB
06C7
0363
036E
02E7
05F1
Mnemonic
CI
co
CROUT
NMOUT
UPDAD
UPDDT
RDKBD
DELAY
Description
Console Input
This routine returns a character (in ASCII code - see 8085/8080reference card for codes) received from the teletype to the callerin the A register. The A register and CPU condition codes areaffected by this operation
Console Output
This routine transmits a character (in ASCII code), passed fromthe caller in the C register, to the teletypewriter. The A and Cregisters, and the CPU condition codes are affected.
Carriage Return, Line Feed
CROUT sends carriage return and line feed characters to theteletype. The contents of the A, B, and C registers are destroyedand the CPU condition codes are affected.
Hex Number Printer
NMOUT converts the 8-bit unsigned integer in the A register into2 ASCII characters representing the 2 hex digits and prints thetwo digits on the teletypewriter. The contents of the A, Band Cregisters and the condition code flags are affected.
Update Address
Update address field of the display. The contents of the D-Eregister pair are displayed in the address field of the display.The contents of all the CPU registers and flags are affected.
Update Data
Update data field of the display. The contents of the A registerare displayed in hex notation in the data field of the display.The contents of all of the CPU registers and flags are affected.
Read Keyboard
This routine waits until a character is entered on the hex keypadand upon return places the value of the character in the A register. The A, H, and L registers and the flag flip flops are affected.
NOTE: For RDKBD to work correctly, you must first:
1. Unmask RST 5.5 using the SIM instruction.
Time Delay
This routine takes the 16-bit contents of register pair DE andcounts down to zero, then returns to the calling program. TheA, D, and E registers and the flags are affected.
TABLE 6-1MONITOR ROUTINE CALLING ADDRESSES (CONT'D)
Calling Address
02B7
Mnemonic
OUTPT
Description
Output Characters to Display
The routine sends characters to the display with the parametersset up by registers A, B, Hand L.
Reg A = 0 = use address field= 1 = use data field
Reg B = 0 = decimal point off= 1 = decimal point at right edge of field
Reg HL = starting address of characters to to sent.
CharacterDisplayed
o123456789AbCdEFHLPIrS
Blank
Hexadecimal memorycontent pointed toby the HL register
00010203040506070809OAOBOC00OEOF10111213140515
6-3
PROGRAM EXAMPLE - RDKBD
After executing 02000, the program waits until a key is pressed. Then the value of the key is placedin the A register and the monitor is restarted. Use~ to see that the key value is now in the A register.
ADDRESS DATA SYMBOLIC
2000 31 LX I SP, 20C2H2001 C22002 202003 3E MVI A, 08H2004 082005 30 SIM2006 CD CALL RDKBD2007 E72008 022009 CF RST 1
COMMENTS
; define stack pointer
; unmask interrupt; read keyboard value; into Reg A
; break point, go back to monitor
PROGRAM EXAMPLE - UPDDT
Display FF in data field of display.
ADDRESS DATA
2000 312001 C22002 202003 3E2004 FF2005 CD2006 6E2007 032008 76
SYMBOLIC
LXI SP, 20C2H
MVI A, FFH
CALL UPDDT
HLT
COMMENTS
; define stack pointer
; load FF into Reg A
; output Reg A to data field
; HALT
To change the display value use~ to vary the content of location 2004
PROGRAM EXAMPLE - RDKBD, UPDDT
Putting the two preceding examples together into one program causes the display to show the key value.
ADDRESS DATA SYMBOLIC COMMENTS
2000 31C220 LXI SP, 20C2H ; define stack pointer2003 3E08 MVI A, 08H2005 30 SIM ; unmask interrupt2006 CDE702 LOOP: CALL RDKBD ; read keyboard value into Reg A2009 CD6E03 CALL UPDDT ; output Reg A to data field200C C30620 JMP LOOP ; keep looping
6-4
PROGRAM EXAMPLE - ADD TWO NUMBERS IN HEX NOTATION
This program is an adaptation of the program above. The computer reads in two one-digit numbersusing RDKBD. Then it adds them, and displays the sum (base 16) on the LED display using UPDDT.
ADDRESS DATA SYMBOLIC COMMENTS
2000 31C220 LXISP,20C2H ; initialize stack pointer2003 3E08 MVI A, 08H2005 30 SIM ; unmask interrupts2006 CDE702 LOOP: CALL RDKBD ; get first number2009 47 MOV B,A ; save nu mber in B reg.200A CDE702 CALL RDKBD ; get second number2000 80 ADD B ; add the two nu mbers200E CD6E03 CALL UPDDT ; display the su m2011 C30620 JMP LOOP ; keep looping
Note: for decimal (base10) addition of digits 0-9, insert the DAA instruction (opcode 27) betweenADD B and CALL UPDDT in the above program.Additional Suggestion: Try modifying this program to perform 2-digit decimal number addition.(Hint: use the 8085's RLC instruction.)
PROGRAM EXAMPLE - 4-DIGIT HEX COUNTER
This program displays a 4-digit hexadecimal (base 16) count in the address field of the display usingthe UPDAD routine from the monitor.
ADDRESS DATA SYMBOLIC COMMENTS
2000 31C220 LXI SP 20C2 ; initialize stack pointer2003 13 LOOP: INX D ; add 1 to the 16-bit count2004 D5 PUSH D ; save the count in the stack2005 CD6303 CALL UPDAD ; display the count2008 110018 LXID,1800 ; set delay count200B CDF105 CALL DELAY ; wait out the delay200E D1 POP D ; restore the count to D & E regs200F C30320 JMP LOOP ; keep counting
6-5
PROGRAM EXAMPLE - DECIMAL COUNTER
The following program displays a count in the data field of the display. The count may be stopped bypressing the @ill button. The count resumes when any other key (except 8) is pressed. The liE" inthe address field of the display signifies that a user program is executing.
ADDRESS DATA
2000 312001 802002 202003 3E2004 082005 302006 FB2007 782008 3C2009 27200A 47200B C5200C CD2000 6E200E 03200F 162010 182011 CD2012 F12013 052014 C12015 C32016 062017 20
20CE FB
20CF 762000 C9
SYMBOLIC
LXI SP, 2080H
MVI A, 08
SIMLOOP: EI
MOV A, BINR ADAAMOV B, APUSH BCALL UPDDT
MVI 0, 18H
CALL DELAY
POP BJMP LOOP
EI
HLTRET
COMMENTS
; INITIALIZE STACK POINTER.
; USE THE 8085's SIM INSTR TO; ENABLE THE VECT INTR BUTTON.
; INCREMENT AND ADJUST THE COUNT; FOR DECIMAL COUNTING.
; DISPLAY COUNT IN DATA FIELD OF; DISPLAY.
; WAIT OUT A PROGRAMMABLE DELAY; PERIOD BEFORE CONTINUING.
; GO BACK TO THE BEGINNING.
; CONTROL BRANCHES TO LOCATION; 20CE WHEN VECT INTR IS PRESSED.; WAIT HERE FOR KEY DEPRESSION.; RESUME THE COUNT.
To execute the program, type in 0 2000 ~.
Try to stop the count right at 00 using the~ key.
Change the speed of the count by using~ to vary the contents of location 2010.
Additional Suggestions:
This counter can be turned into a digital stopwatch second counter by inserting the following instructions between DAA and MOV B, A in the above program:
200A200C200F
FE60C21020AF
CPI A,60JNZ 2010XRAA
; check to see if count = 60; continue if count :f 60.; if count = 60 then set thecount = 0
In addition, you will have to insert another MVI 0 and CALL DE LAY before POP B and vary bothdelay counts in order to get exactly one second between counts on the LED display.
Additional Programming Idea: Expand on the digital stopwatch program by displaying hours andminutes in the address field of the LE 0 display.
6-6
PROGRAM EXAMPLE - FLASH HELP
Load into Locations 2000 through 2007 (use the Substitute Memory command) the followingdata: 10, OE, 11, 12, 15,15,15,15. Then load and execute the following program (G2010~)'The display will flash "HELP".
COMMENTS
; define stack pointer; use data field; no decimal indicator; use characters starting; at Location 2006; output the two characters; to data field
ADDRESS DATA SYMBOLIC
2010 31C220 LXI SP, 20C2H2013 3E01 MVI A, 12015 0600 MVI B,O2017 210620 LXI H, 2006H
201A CDB702 CALL OUTPT
DPY:201D 3EOO MVI A,O201F 0600 MVI B,O2021 210020 LXI H, 2000H
2024 CDB702 CALL OUTPT
; use address field; no decimal indicator; use characters starting; at Location 2000; output the four characters; to address field
2027 11FFFF LXI D,OFFFFH*202A CDF105 CALL DELAY
202D 3EOO MOV A, 0202F 0600 MOV B, 02031 210420 LXI H, 2004H2034 CDB702 CALL OUTPT
2037 11FFFF LXI D,OFFFFH203A CDF105 CALL DELAY203D C31D20 JMP DPY
; set up delay value; time delay
; output BLAN KS to; Display
; time Delay; REPEAT
* Delay time proportional to value. Any number from 1 through FFFF may be chosen.
Additional Suggestions:
You may select any other 4-letter word from the characters on p. 6-3 and place the hex codes forthose letters in memory locations 2000-2003. Then restart the program from location 2010 andyour new word will flash on the display.
In addition, you may place the hex codes from p. 6-3 for a 2-letter word (like "HI") in memorylocations 2004 and 2005, and the 2-letter word will flash in between the flashes of the 4-letter word.
6-7
PROGRAM EXAMPLE - USING THE 8155 AND 8355 DEVICE OUTPUT PORTS
ADDRESS DATA SYMBOLIC COMMENTS
2000 31C220 LXI SP, 20C2H ; initialize stack pointer2003 3E03 MVI A,03 ; put 8155 command in A reg.2005 0320 OUT 20H ; program the 8155 CS R2007 3EFF MVI A, FF ; put 8355 DDR value in A reg.2009 0302 OUT 02 ; program PORT A DDR2008 0303 OUT 03 ; program PORT 8 DDR2000 03 LOOP: INX8 ; increment 16-bit count200E 79 MOV A, C200F 0321 OUT 21 ; send low byte of count2011 0300 aUTO ; to 8155 PORT A and
; to 8355 port A2013 78 MOV A, 82014 0322 OUT 22 ; send hi byte of
; count to 8155 port 82016 0301 OUT01 ; send hi byte of
; count to 8355 port 82018 C30D20 JMP LOOP ; loop back.
This program is an example showing how to configure the input/output ports of the 8155 and 8355devices as output ports. The command register of the 8155 is loaded with the value 03 at the beginning of the program to signify that both 8155 ports A and 8 will be outputs. Likewise, both portsA and 8 of the 8355 are programmed to be outputs by writing all one's (FF) to both Data DirectionRegisters in the 8355.
The program increments a 16-bit binary count and sends the cou nt out through the ports of the 8155and 8355. If you have a logic probe or oscilloscope, you can look at the corresponding outputs onconnector pads J3 and J4 on the SDK-85 PC board.
6-8
APPENDIX AMONITOR LISTING
ASM80 :Fl:SDK85.SRC MACROFILE MOD85 XREF PRIN'f(:Fl:SDK85.LS'l')
ISIS-II 8080/8085 MACRO ASSEMBLER, X108 SDK85 PAGE
LOC OBJ SEQ SOURCE STATEMENT
••••.••=.ABSTRACT
CMMND
PROGRAM ORGANIZATION
i0-NO WAIT STATESil·A WAIT STATE IS GENERATED FOR EVERY M CYCLEiTHE APPROPRIATE DELAY TIME MUST BE USED FOR
iTTY DELAY OR SET UP SINGLEiSTEP TIMER FOR EACH CASE
SDK85NAME
SET
CLEARCLDISCLOSTDISPCERRGTHEXHXDSPININTINSDGNXTRGOUTPTRDKBDRETFRETTRGLOCRSTORSETRGUPDADUPDDT
EXAMGOCMDSSTEPSUBST
MONITOR EQUATES
THE PROGRAM IS ORGANIZED AS FOLLOWS1) COLD START ROUTINE (RESET)2) WARM START - REGISTER SAVE ROUTINE3) INTERRUPT VECTORS4) KEYBOARD MONITOR5) TTY MONITOR6) LAYOUT OF RAM USAGE
THE KEYBOARD MONITOR BEGINS WITH THE COMMAND RECOGNIZER, FOLLOWED BYTHE COMMAND ROUTINE SECTION, UTILITY ROUTINE SECTION AND MONITORTABLES. THE COMMAND AND UTILITY ROUTINES ARE IN ALPHABETICAL ORDERWITHIN THEIR RESPECTIVE SECTIONS.THROUGHOUT THE KEYBOARD MONITOR, A COMMENT FIELD BEGINNINGWITH -ARG - " INDICATES A STATEMENT WHICH LOADS A VALUE INTOA REGISTER AS AN ARGUMENT FOR A FUNCTION. WHEN THE DESIRED VALUELIST OF KEYBOARD MONITOR ROUTINES
SET CONDITIONAL ASSEMBLY FLAG
THIS PROGRAM IS A SMALL MONITOR FOR THE INTEL 8085 KIT ANDPROVIDES A MINIMUM LEVEL OF UTILITY FUNCTIONS FOR THE USER EMPLOYINGEITHER AN INTER-ACTIVE CONSOLE (I.E. TELETYPE) OR TKE KIT'SKEYBOARD/LED DISPLAY. THE KEYBOARD MONITOR ALLOWS THE USER TO PERFORMSUCH FUNCTIONS AS MEMORY AND REGISTER MANIPULATION, PROGRAM LOADING,PROGRAM EXECUTION, INTERRUPTION OF AN EXECUTING PROGRAM, ANDSYSTEM RESET •.
PROGRAM: SDK-85 MONITOR VER 2.1
i***************************************************** *****************
,i***************************************************** *****************
COPYRIGHT (C) 1977INTEL CORPORATION3865 BOWERS AVENUESANTA CLARA, CALIFORNIA 95051
,i***************************************************** ******************
,i***************************************************** *****************
,i***************************************************** *****************
,i***************************************************** *****************
WAITS
RAMST EQU 2000H i START ADDRESS OF RAM - THIS PROGRAM ASSUMESTHAT 256 BYTES OF RANDOM ACCESS MEMORY BEGIN AT THIS ADDRESS.THE PROGRAM USES STORAGE AT THE END OF THIS SPACE FOR VARIABLES,SAVING REGISTERS AND THE PROGRAM STACK
123456789
10111213141516171819202122232425262728293031323334353637383940414243444546474rj
49505152535455565758596861626364656667686978717273747576777879888182838485868788899091929394959697
0000
2000
ISIS-II 8B88/8885 MACRO ASSEMBLER, X188 SDK85 PAGE
LOC OBJ SEQ SOURCE STATEMENT
MONITOR MACROS
i***************************************************** *****************
i***************************************************** *****************
,i***************************************************** *****************
BRANCH IF FUNCTION RETURNS FALSE
5 USER BRANCHES - 3 BYTES EACH
GE'r CONTROL CtJARACTERSET KEYBOARD/DISPLAY MODEGO FINISH COLD STARTTHEN JUMP BACK HERE
RAM USAGE - CURRENTLY, 23 BYTES ARE USED FOR/SAVING REGISTERS AND VARIABLES
MONITOR STACK USAGE - MAX OF 12 LEVELS
SAVE H & L REGISTERSGET USER PROGRAM COUNTER FROM TOP OF STACK/AND SAVE IT
i BRANCH IF FUNCTION RETURNS TRUE
iTIMER VALUE FOR SINGLE STEP IF ONE WAIT STATE INSERTED
23
24
WHEREWHERE
WHEREWHERE
WAITS237
15
A,KMODECNTRLCLOST
INDICATES USE OF ADDRESS FIELD OF DISPLAYCONTROL CHARACTER TO INDICATE OUTPUT TO/ADDRESS FIELD OF DISPLAYADDRESS FOR SENDING CONTROL CHARACTERS TO/DISPLAY CHIP
i COMMA FROM KEYBOARDi'INITIAL VALUE FOR COMMAND STATUS REGISTER
OUTPUT PORT FOR COMMAND STATUS REGISTERCONTROL CHARACTER TO INDICATE OUTPUT TO/DATA FIELD OF DISPLAYINDICATOR FOR DOT IN DISPLAYADDRESS FOR SENDING CHARACTERS TO DISPLAYINDICATES USE OF DATA FIELD OF DISPLAYMASK FOR TURNING ON DOT IN DISPLAYHIGH ORDER 1 INDICATES EMPTY INPUT BUFFERCONTROL CHARACTER TO SET DISPLAY OUTPUT TO/ALL ONES DURING BLANKING PERIODCONTROL CHAR. TO SET KEYBOARD/DISPLAY MODE
, (2 KEY ROLLOVER, 8 CHARACTER LEFT ENTRY)256 - RMUSE iSTART OF MONITOR STACK
INDICATOR FOR NO DOT IN DISPLAYNUMBER OF COMMANDSNUMBER OF REGISTER SAVE LOCATIONSPERIOD FROM KEYBOARDPROMPT CHARACTER FOR DISPLAY (DASH)CONTROL CHARACTER TO INDICATE INPUT FROM/KEYBOARDOUTPUT PORT FOR HIGH ORDER BYTE OF TIMER VALUEOUTPUT PORT FOR LOW ORDER BYTE OF TIMER VALUETIMER MODE - SOUARE WAVE, AUTO RELOADSTART TIMER
, UNMASK INPUT INTERRUPT256 - (RMUSE + SKLN + UBRLN) i START OF USER
i /BRANCH LOCATIONSI-WAITS iTIMER VALUE FOR SINGLE STEP IF NO WAIT STATE197
BoRES10
25H24H40H0C0H0EHRAMST +
1900H
o90H
I1Ho20H94H
1180aH108H80H0CCH
8REGISTERS
LSAVHPSAVPSWHFSAV SAVE FLIP/FLOPS & REGISTER AH,0 CLEAR H & LSP GET USER STACK POINTERSSAV i /AND SAVE ITH,BSAV+l i SET STACK POINTER FOR SAVING
i /REMAINING REGISTERSi SAVE B & Ci SAVE 0 & Ei LEAVE ROOM FOR VECTORED INTERRUPTS
EOU
EQU
EQU
EQUEQU
EOUEOUEQUEQUEQUEOU
IFEQUENDIFIFEOUENDIF
EOU
EQU
EQUEQUEOUEOU
EOUEQUEQUEQUEOUEOU
RST ENTRY POINT
RST 1 ENTRY POINT - WARM START
ORG 28H
MACROJCENDM
MACROJNCENDM
MVISTAJMP
.. RESET" KEY ENTRY POINT - COLD STARTRST 0 ENTRY POINT
TIMER INTERRUPT (TRAP) ENTRY POINT (RST 4.5)ORG 24HJMP STP25 BACK TO SINGLE STEP ROUTINE
ORGSAVESHLDPOPSHLDPUSHPOPSHLDL;aDADSHLDLXISPHLPUSHPUSHJMP
RMUSE
,UBRLN
ADFLDADISP
CLDBK:
KMODE
,TRUE
TIMER
,SKLN
,FALSE
COMMACSNITCSRDDISP
C~TRL
TIMHITIMLOTMODETSTRTUNMSKUSRBR
DOTDSPLYDTFLDDTMSKEMPTYKBNIT
MNSTK EOU RAMST +NODOT EQU 0iNUMC - DEFINED LATERiNUMRG - DEFINED LATERPERIO EOU 10HPRMPT EOU eFBHREAD EOU 40H
'rIMER
9899
la0101la2103104105106107108109110III11211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916816116216316416516616716816917017117217317417517617717817918018118218318418518618718H189190191192193194195196
aa18
00C5
0a17
20E9008a
0011030000200094
0aaF
a0aa0a9~
1900
0001180000010008008000CC
0~00
0000 3E00~002 3200190005 C3F101
00250a24004000C0000E20C2
8008
001000FB0840
8808 22EF28a80B El8a0C 22F220000F F58a10 El0all 22ED200014 2100000017 390018 22F420001B 21ED20001E F9001F C50020 050021 C33F00
0024a024 C35701
ISIS-II 8080/8~85 MACRO ASSEMBLER, X108 SDK85 PAGE
BEGINNING OF KEYBOARD MONITOR CODE
HARD WIRED USER INTERRUPT ENTRY POINT (RST 6.5)
INPUT INTERRUPT ENTRY POINT (RST 5.5)
;****.*.***.****************.***.**************************************
SET INPUT BUFFER EMPTY FLAG
INITIALIZE MONITOR STACK POINTER
BRANCH TO INPUT INTERRUPT ROUTINE
BRANCH TO RST 6.5 LOCATION IN RAM
GET HIGH ORDER BYTE OF COMMAND ADDRESS IN HPUT LOW ORDER BYTE IN LROUTINE ADDRESS IS NOW IN H & LBRANCH TO ADDRESS IN H & L
GET ADDRESS OF COMMAND ADDRESS TABLEADJUST COMMAND COUNTERACTS AS POINTER TO COMMAND ADDRESS TABLEADD POINTER TO TABLE ADDRESS TWICE BECAUSETABLE HAS 2 BYTE ENTRIESGET LOW ORDER BYTE OF COMMAND ADDRESS
OUTPUT PROMPT CHARACTER TO DISPLAYGET ADDRESS FOR CONTROL CHARACTEROUTPUT CONTROL CHARACTER TO USE ADDRESS FIELDADDRESS FOR OUTPUT CHARACTEROUTPUT PROMPT CHARACTERREAD KEYBOARDCOUNTER FOR NUMBER OF COMMANDS IN CGET ADDRESS OF COMMAND TABLE
RECOGNIZE THE COMMAND ?YES - GO PROCESS ITNO - NEXT COMMAND TABLE ENTRYEND OF TABLE ?NO - GO CHECK NEXT ENTRYYES - COMMAND UNKNOWNDISPLAY ERROR MESSAGE AND GET ANOTHER COMMAND
INTERRUPTS DISABLED WHILE MONITOR IS RUNNING(EXCEPT WHEN WAITING FOR INPUT)TTY OR KEYBOARD MONITOR ?IS TTY CONNECTED ?YES - BRANCH TO TTY MONITORNO - ENTER KEYBOARD MONITOR
; BRANCH TO RST 5 LOCATION IN RAM
; BRANCH TO RST 6 LOCATION IN RAM
; BRANCH TO RST 7 LOCATION IN RAM
OUTPTA,DTFLDB,NODOTH,SGNDT
RSET5
OUTPTA,EMPTYIBUFF
H,MNS'rK
2CHININ'r
ERR
H,CNTRLM,ADISPHM,PRMPTRDKBDB,NUMCH,CMDTB
30HRSET6
H,CMDADC; COUNTERBBA,MHH,ML,A ,
COMMAND
34HRST65
GO
38HRSET7
MCMD15HCCMD10
SIGN-ON MESSAGEA ARG - USE ADDRESS FIELD OF DISPLAYB,NODOT ARG - NO DOT IN ADDRESS FIELDH,SGNAD ARG - GET ADDRESS OF ADDRESS FIELD PORTION OF
/SIGN-ON MESSAGEOUTPUT SIGN-ON MESSAGE TO ADDRESS FIELDARG - USE DATA FIELD OF DISPLAYARG - NO DOT IN DATA FIELDARG - GET ADDRESS OF DATA FIELD PORTION OF/SIGN-ON MESSAGEOUTPUT SIGN-ON MESSAGE TO DATA FIELD
LXIOCR
CALLMVISTA
LXISPHL
CALLMVIMVILXI
RST ENTRY POINT
LXIMVIOCRMVICALLLXILXI
PCHL
ou'rpUTXRAMVILXI
; CONTINUE SAVING USER STATUSRIM GET USER INTERRUPT STATUS AND INTERRUPT MASKANI "FH KEEP STATUS & MASK BITSSTA ISAV SAVE INTERRUPT STATUS & MASKMVI A,UNMSK UNMASK INTERRUPTS FOR MONITOR USESIM01
DADDADMOVINXMOVMOV
JMP
ORGJMP
RIMRLCJC
HVECTORED INTERRUPT" KEY ENTRY POINT (RST 7.5)ORG 3CHJMP USINT BRANCH TO USER INTERRUPT LOCATION IN RAM
ORGJMP
ORGJMP
CMFJZINXOCRJNZ
JMP
ORGJMP
SOURCE STATEMENT
FUNCTION: CMMND - COMMAND RECOGNIZERINPU'rS: NONEOUTPU'rS: NONECALLS: RDKBD,ERR,SUBST,EXAM,GOCMD,SSTEPDESTROYS: A,B,C,D,E,H,L,F/FIS
.*.*. RST 6 ENTRY POINT
.**.*
;***************.********************************.*********************
RES10:
,;* ••***.* •• *** •• *••**** •• *.*.*.***.***•••••*•• **.* ••***•• *.*•••*•••• ***
,CMMND:
CMD15:
CM01":
SEQ
19719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726ij269270271272273274275276277278279280281282283284285286287288289290291292293294295
0028 C3C220
0084 C31502
0087 217C03008A 00
0078 BE007C CA8700007F 23008~ 000081 C27B00
005E CDB7020061 3E800063 32FE20
0~66 21E9200069 F9
003C003C C3CE20
002C002C C38E02
00300030 C3C520
004E AF004F 06000051 21A603
003F 200040 E60F0042 32F1200045 3E0E0047 300048 F3
00340034 C3C820
0054 CDB7020057 3E010059 06000~5B 21AA03
0049 20004A 07004B DAFA03
0091 E9
008B 09008C 090080 7E008E 23008F 660090 6F
~~6A 2100190060 369~
006F 250070 36FB0072 CDE7020075 0104000078 217ij03
LOC OBJ
. 00380038 C3CB20
~IS-Il ij~d0/8085 MACRO ASSEMBLER, X108 SDK85 PAGE
LOC OBJ SEQ SOuRCE STATEMENT
FUNCTION: GOCMD - EXECUTE USER PROGRAMINPUTS: NONEOUTPUTS: NONECALLS: DISPC,ROKBD,CLEAR,GTHEX,ERR,OUTPTDESTROYS: A,B,C,D,E,H,L,F/F'S
FUNCTION: EXAM - EXAMINE AND MODIFY REGISTERSINPUTS: NONEOUTPUTS: NONECALLS: CLEAR,SETRG,ERR,RGNAM,RGLOC,UPDDT,GTHEX,NXTRGDESTROYS: A,B,C,O,E,H,L,F/F'S
FUNCTION: SSTEP - SINGLE STEP (EXECUTE ONE USER INSTRUCTION)INPUTS: NONEOUTPUTS: NONECALLS: DISPC,RDKBD,CLEAR,GTHEX,ERRDESTROYS: A,B,C,D,E,H,L,F/FIS
NO - CLEAR DISPLAY AND TERMINATE COMMAND
YES - GET REGISTER SAVE LOCATION IN H & LUPDATE REGISTER CONTENTS
DISPLAY USER PROGRAM COUNTERREAD FROM KEYBOARDIS CHARACTER A PERIOD ?YES - GO EXECUTE THE COMMANDNO - ARG - CHARACTER IS STILL IN AREPLACE CHARACTER IN INPUT BUFFERARG - DOT IN ADDRESS FIELDCLEAR DISPLAYARG - USE ADDRESS FIELDGET HEX DIGITSWAS LAST CHARACTER A PERIOD ?NO - DISPLAY ERROR MSG. AND TERMINATE COMMANDPUT HEX VALUE FROM GTHEX TO H & LHEX VALUE IS NEW USER PC
OUTPUT REGISTER NAME TO ADDRESS FIELDGET REGISTER SAVE LOCATION IN H & LGET REGISTER CONTENTSSTORE REGISTER CONTENTS AT CURRENT DATAARG - DOT IN DATA FIELDUPDATE DATA FIELD OF DISPLAYARG - USE DATA FIELD OF DISPLAYGET HEX DIGITS - WERE ANY DIGITS RECEIVED?NO - DO NOT UPDATE REGISTER CONTENTS
DISPLAY USER PROGRAM COUNTERREAD FROM KEYBOARDWAS CHARACTER A PERIOD ?YES - CLEAR DISPLAY AND TERMINATE COMMANDWAS LAST CHARACTER ,I?YES - GO SET TIMER
FROM KEYBOARD WAS NEITHER PERIOD NOR COMMAREPLACE THE CHARACTER IN THE INPUT BUFFERARG - DOT IN ADDRESS FIELDCLEAR DISPLAYARG - USE ADDRESS FIELD OF DISPLAYGET HEX DIGITS - WERE ANY DIGITS RECEIVED ?NO - DISPLAY ERROR MSG. AND TERMINATE COMMAND
YES - ARG - NO DOT IN ADDRESS FIELDCLEAR DISPLAYARG - USE ADDRESS FIELD OF DISPLAYARG - NO DOT IN ADDRESS FIELDGET ADbRESS OF EXECUTION MESSAGE IN H & LDISPLAY EXECUTION MESSAGE
, RESTORE USER REGISTERS INCL. PROGRAM COUNTER;/I.E. BEGIN EXECUTION OF USER PROGRAM
WAS LAST CHARACTER A pERIOD ?; YES - CLEAR DISPLAY AND TERMINATE COMMAND
WAS LAST CHARACTER ',' ?NO - DISPLAY ERROR MSG. AND TERMINATE COMMAND
; YES - ADVANCE REGISTER POINTER TO;/NEXT REGISTER
ANY MORE REGISTERS ?YES - CONTINUE PROCESSING WITH NEXT REGISTER
COMMAND ROUTINES
: ARG - DOT IN ADDRESS FIELD OF DISPLAY; CLEAR DISPLAY; GET REGISTER DESIGNATOR FROM KEYBOARD AND:/SET REGISTER POINTER ACCORDINGLY
WAS CHARACTER A REGISTER DESIGNATOR?NO - DISPLAY ERROR MSG. AND TERMINATE COMMANDERR
ERR
B,NODOTCLEARAB,NODOTH,EXMSGOUTPTRSTOR
PSAV
EXMS5EXMI5CLOIS
IBUFFB,DOTCLEARB,ADFLDGTHEXPERIOERR
PERIOCLDISCOMMAERRNXTRG
DISPCRDKBDPERIOGIl
B,DOTCLEARSETRG
RGNAMRGLOCA,MCURDTB,DOTUPDOTB,DTFLDGTHEXEXM10EXM10RGLOCH,E
DISPCRDKBDPERIOCLDISCOMMASTP20
CHARACTERIBUFFB,DOTCLEARB,ADFLDGTHEXERR
MVICALLCALL
CPIJZCPIJNZCALL
MVICALLXRAMVILXICALLJMP
CALLCALLCPIJZCPIJZ: NO STAMVICALLMVICALLFALSE
TRUEJCJMP
FALSEJNC
CALLCALLCPIJZ
STAMVICALLMVICALLCPIJNZXCHGSHLD
CALLCALLMOVSTAMVICALLMviCALLFALSEJNCCALLMOV
296 :**********************************************************************297298299 ,300 :**********************************************************************3013S2303304305386307 ,388 EXAM:389318311312313314315+316 EXM85:317318319320321322323324325326+327328329 EXH18:338331332333334335336337338+339348 ;341 ;**********************************************************************342 ;343344345346347348 ,349 GOCMD:358351352353354355356357358359360361362363364 G10:365366367368369370371372373 ,374 :**********************************************************************375376377378379380381 ,382 SSTEP:383384385386387388389390391392393394395
0100 32FE200110 06010112 COD7010115 06000117 CD2B02
00FD CD00029100 CDE7020103 FE100105 CAE90101"S FEll019A CA2601
8192 "611""94 CDD7111897 CD4413
.,C5 OA9011I.C8 C3E9.1
le9A 021582
8190 COl913IIAI COFC02IIA3 7EIIA4 32F828ItA7 8681""A9 C06BI3IIAC 161181AE C02BI2
1181 028811IIB4 CDFCI2IIB7 73
IIBS FEllIIBA CAE911"80 FEll'"BF C21512.IC2 COASI2
88CB CDII92.8CE CDE7929101 FE198803 CAEC89
9806 32FE298809 8681180B C00791IIOE 9691IIEI C0289291E3 FE1981E5 C2159219E8 EBIIE9 22F229
IIEC 86SS8SEE CDD781S8F1 AFSIF2 8609SSF4 21A2930SF7 CDB702S8FA C31B03
ISIS-II 8181/8085 MACRO ASSEMBLER, X118 SDK85 PAGE
,i····················································· .
FUNCTION: SUBST - SUBSTITUTE MEMORYINPUTS: NONEOUTPUTS: NONECALLS: CLEAR,GTHEX,UPDAD,UPDDT,ERRDESTROYS: A,B,C,D,E,H,L,F/F'S
STP20:
STP21:
FOR
EI INSTRUCTIONNOYES - SET USER INTERRUPT STATUS
HEX VALUE FROM GTHEX TO H & LHEX VALUE IS NEW USER PCWAS LAST CHARACTER FROM GTHEX A PERIOD ?YES - CLEAR DISPLAY AND TERMINATE COMMANDNO - MUST HAVE BEEN A COMMA
SAVE NEW USER INTERRUPT STATUS
GET USER INTERRUPT MASKKEEP INTERRUPT STATUSSAVE USER INTERRUPT STATUSGET USER PCGET USER INSTRUCTION01 INSTRUCTION ?NOYES - RESET USER INTERRUPT STATUS
GO GET READY FOR ANOTHER INSTRUCTION
ARG - DOT IN ADDRESS FIELDCLEAR THE DISPLAYARG - USE ADDRESS FIELD OF DISPLAYGET HEX DIGITS - WERE ANY DIGITS RECEIVED?NO - DISPLAY ERROR MSG. AND TERMINATE COMMAND
WAS ',' THE LAST CHARACTER FROM KEYBOARD?NO - GO TERMINATE THE COMMANDARG - NO DOT IN ADDRESS FIELDUPDATE ADDRESS FIELD OF DISPLAYGET CURRENT ADDRESS IN H & LGET DATA BYTE POINTED TO BY CURRENT ADDRESSSTORE DATA BYTE AT CURRENT DATAARG - DOT IN DATA FIELDUPDATE DATA FIELD OF DISPLAYARG - USE DATA FIELDGET HEX DIGITS - WERE ANY HEX DIGITS RECEIVED?(SAVE LAST CHARACTER)NO - LEAVE DATA UNCHANGED AT CURRENT ADDRESS
ASSIGN HEX VALUE RETURNED BY GTHEX TO/ CURRENT ADDRESS
i 8RANCH HERE WHEN TIMER INTERRUPTS AFTERi/ONE USER INSTRUCTION
SAVE PSWGET USER IMAGE OF WHAT'S IN CSRCLEAR 2 HIGH ORDER BITSSET TIMER STOP BITSTOP TIMERRETRIEVE PSWSAVE H & LGET USER PROGRAM COUNTER FROM TOP OF STACKSAVE USER PC
TEMP
8o
PSAVPERIOCLDIS
(EI)STP23A,08H
ERR
ISAV08HTEMPPSAVA,M(01)STP21ASTP22
CURAD
B,DOTCLEARB,ADFLDGTHEXERRERR
PSWUSCSR3FH40HCSRPSWLSAVHPSAVPSWHFSAV SAVE FLIP/FLOPS AND A REGISTERH,I CLEAR H & LSP GET USER STACK POINTERSSAV i SAVE USER STACK POINTERH,8SAV+1 i SET MONITOR STACK POINTER
i/SAVING REMAINING USER REGISTERSSAVE B & CSAVE 0 & EGET USER INTERRUPT MASKKEEP MASK 8ITSGET USER INTERRUPT STATUSOR IT INTO MASKSAVE INTERRUPT STATUS & MASKUNMASK INTERRUPTS FOR MONITOR USE
17HH,TEMPMISAVA,UNMSK
SSTEP
COMMASUB15B,NODOTUPDADCURADA,MCURDTB,DOTUPDDTB,DTFLDGTHEXPSWSUB10SUB10CURAD YES - GET CURRENT ADDRESS IN H & LH,E STORE NEW DATA AT CURRENT ADDRESSi MAKE SURE DATA WAS ACTUALLY STORED IN CASEi/CURRENT ADDRESS IS IN ROM OR IS NON-EXISTAN1A,E ; DATA TO A FOR COMPARISON
STA
MOV
CPIJNZMVI
LOAANISTALHLDMOVCPIJNZXRAJMP
MVI A,(TIMER SHR 8) OR TMODE i HIGH ORDER BITS OF TIMER VALUEi /OR'ED WITH TIMER MODE
OUT TIMHIMVI A,TIMER AND IFFH i LOW ORDER BITS OF TIMER VALUEOUT TIMLOLOA USCSR GET USER IMAGE OF WHAT'S IN CSRORI TSTRT SET TIMER COMMAND 8ITS TO START TIMEROUT CSR START TIMERJMP RSTOR RESTORE USER REGISTERS
PUSHLOAANIoaIOUTPOPSHLDPOPSHLDPUSHPOPSHLDLXIDADSHLOLXISPHLPUSHPUSHRIMANILXIORASTAMVISIMJMP
MVICALLMVICALLFALSEJNCXCHGSHLD
JNCXCHGSHLDCPIJZ
C?IJNZMVICALLLHLDMOVSTAMVICALLMVICALLPUSHFALSEJNCLHLDMOV
SOURCE STATEMENT
STP23:
STP22:
,STP25:
,SUBST:
SU805:
SEQ
396+397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439441441442443444445446447448449451451452453454455456457458459460461462463464465466467468469470471472473+474475476477478479480481482483484485486487488489490+491492493494495
113B FEFB1130 C245110141 3E08
0142 32FD20
0145 3E40
0147 03251149 3EC50148 03241140 3AFF210151 F6CI0152 03210154 C31803
0126 3AF1201129 E608012B 32FD21112E 2AF2201131 7E0132 FEF30134 C23Bll1137 AF0138 C34211
119C FEll019E C2CFllI1A1 161101A3 CD5FI301A6 2AF620I1A9 7E01AA 32F82001AD 061101AF CD6B030182 06110184 CD2B020187 F5
1188 D2C40101BB 2AF62101BE 73
1188 16018180 CDD7111190 06111192 CD2802
0195 0215120198 E80199 22F621
01BF 7B
LOC OBJ
011A 0215020110 EBI11E 22F2201121 FE101123 CAE901
1157 F58158 3AFF218158 E63F8150 F648815F 03208161 F11162 22EF211165 £11166 22F2211169 '5116A £11168 22£028116E 2111111171 391172 22'4281175 21E0211178 F91179 C5117A 05.178 21117C £617117£ 21'D211181 861182 32r121.185 3£.£1187 3.0188 C3FD80
ISIS-II 8089/8085 MACRO ASSEMBLER, X108 SDK85 PAGE 6
IN B
WAS DATA STORED CORRECTLY?NO - DISPLAY ERROR MSG. AND TERMINATE COMMAND
INCREMENT CURRENT ADDRESS
RETRIEVE LAST CHARACTER
WAS LAST CHARACTER I. I ?NO - DISPLAY ERROR MSG. AND TERMINATE COMMANDYES - CLEAR DISPLAY AND TERMINATE COMMAND
ARG - USE ADDRESS FIELD OF DISPLAYARG - FLAG FOR DOT IN ADDR. FIELD ISARG - ADDRESS OF BLANKS FOR DISPLAYOUTPUT BLANKS TO ADDRESS FIELDARG - USE DATA FIELD OF DISPLAYARG - NO DOT IN DATA FIELDARG - ADDRESS OF BLANKS FOR DISPLAYOUTPUT BLANKS TO DATA FIELDRETURN
ARG - NO DOT IN ADDRESS FIELDCLEAR THE DISPLAYGO GET ANOTHER COMMAND
GET USER PROGRAM COUNTERMAKE IT THE CURRENT ADDRESSGET THE INSTRUCTION AT THAT ADDRESSMAKE IT THE CURRENT DATAARG - DOT IN ADDRESS FIELDUPDATE ADDRESS FIELD OF DISPLAYARG - NO DOT IN DATA FIELDUPDATE DATA FIELD OF DISPLAY
GET CONTROL CHARACTERINITIALIZE KEYBOARD/DISPLAY BLANKINGINITIAL VALUE OF COMMAND STATUS REGISTERINITIALIZE CSRINITIALIZE USER CSR VALUEBACK TO MAIN PROCEDURE
UTILITY ROUTINES
A
H,BLNKSOUTPTA,DTFLDB,NODOTH,BLNKSOUTPT
B,NODOTCLEARCMMND
A,KBNITCNTRLA,CSNITCSRUSCSRCLDBK
PSAVCURADA,MCURDTB,DOTUPDADB,NODOTUPDDT
XRA
LXICALLMVIMVILXICALLRET
LHLDSHLDMOVSTAMVICALLMVICALLRET
MVICALLJMP
MVISTAMVIOUTSTAJMP
SOURCE STATEMENT
CMP MJNZ ERR
LHLD CURADINX HSHLD CURADPOP PSWJMP SUB05
CPI PERIOJNZ ERRJMP CLDIS
FUNCTION: CLEAR - CLEAR THE DISPLAYINPUTS: B - DOT FLAG - 1 MEANS PUT DOT IN ADDRESS FIELD OF DISPLAY
- 0 MEANS NO DOTOUTPUTS: NONECALLS: OUTPTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: CLEAR SENDS BLANK CHARACTERS TO BOTH THE ADDRESS FIELD
AND THE DATA FIELD OF THE DISPLAY. IF THE DOT FLAG ISSET THEN A DOT WILL APPEAR AT THE RIGHT EDGE OF THEADDRESS FIELD.
FUNCTION: CLDIS - CLEAR DISPLAY AND TERMINATE COMMANDINPUTS: NONEOUTPUTS: NONECALLS: CLEARDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: CLDIS IS JUMPED TO BY COMMAND ROUTINES WISHING TO
TERMINATE NORMALLY. CLDIS CLEARS THE DISPLAY ANDBRANCHES TO THE COMMAND RECOGNIZER.
FUNCTION: DISPC - DISPLAY PROGRAM COUNTERINPUTS: NONEOUTPUTS: NONECALLS: UPDAD,UPDDTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: DISPC DISPLAYS THE USER PROGRAM COUNTER IN THE ADDRESS
FIELD OF THE DISPLAY, WITH A DOT AT THE RIGHT EDGEOF THE FIELD. THE BYTE OF DATA ADDRESSED BY THE PROGRAMCOUNTER IS DISPLAYED IN THE DATA FIELD OF THE DISPLAY.
FUNCTION: CLOST - COLD STARTINPUTS: NONEOUTPUTS: NONECALLS: NOTHINGDESTROYS: ADESCRIPTION: CLOST IS JUMPED TO BY THE MAIN COLD START PROCEDURE,
COMPLETES COLD START INITIALIZATION, AlP JUMPS BACKTO THE MAIN COLD START PROCEDURE.
496497498 SUB10:499500501502503504 SU815:585506507508509 ,518 ;************************.*********************************************511512513 ,514 ;*********************************.* •• *••*.*•• ****.***.*********•••*•••515516517518519520521522523524525526 ,527 CLEAR:528529530531532533534535536537 ,538 ; ••••*••••••*••••••••••••••• *•••*••••••••••••*•• *•••••••••••••••*••••••539548541542543544545546547548 ,549 CLDIS:558551552553 ,554 ; ••••*•••••••*••••••*•••••••••••••••••••••••••••*•••••••••••••••••*••••555556557558559561561562 ,563564 ;565 CLOST:566567568569578571572 ,573 , ••• *••••••••••••••••••••••*•••••••••••••*•••••• *.* •• *** •• *•• *••••*.*.*574 ,575576577578579588581582583584 ,585 DISPC:586587588589598591592593594595
SEQLOC OBJ
01C0 BE01Cl C21502
01C4 2AF62001C7 2301ca 22F62001ca F101CC C39C01
01CF FE100101 C215020104 C3E901
0107 AF
0108 219A0301DB CDB70281DE 3E01I1EI 8608I1E2 219AI3lIES CDB712I1E8 C9
81E9 161181EB CDD711I1EE C36611
0208 2AF2288213 22F6288286 7E8287 32F828828A 8681820C CD5F83828F 86888211 CD6B838214 C9
I1F1 3ECCI1F3 321119I1F6 3EII81F8 0321I1FA 32FF21lIFO C31818
ISIS-II 8888/8885 MACRO ASSEMBLER, X188 SDK85 PAGE
**********************************************************************
SOURCE STATEMENT
:~.*.***.*.*.******.***~**** ••*.*•••*.* •••• *.~*.*.*•• **••**************
,:**********************************************************************
ARG - USE ADDRESS FIELDARG - NO DOT IN ADDRESS FIELDARG - ADDRESS OF ERROR MESSAGEOUTPUT ERROR MESSAGE TO ADDRESS FIELDARG - USE DATA FIELDARG - NO DOT IN DATA FIELDARG - ADDRESS OF BLANKS FOR DISPLAYOUTPUT BLANKS TO DATA FIELDGO GET A NEW COMMAND
SAVE LAST CHARACTER: SHIFT HEX DIGIT FLAG TOi/CARRY BIT; RESTORE LAST CHARACTERi RETURN
READ KEYBOARDIS CHARACTER A HEX DIGIT?NO - GO CHECK FOR TERMINATORYES - ARG - NEW HEX DIGIT IS IN AARG - RETRIEVE HEX VALUEINSERT NEW DIGIT IN HEX VALUERETRIEVE DISPLAY FLAG
; SET HEX DIGIT FLAG;/(I.E. A HEX DIGIT HAS BEEN READ)
SAVE DISPLAY AND HEX DIGIT FLAGSSAVE HEX VALUETEST DISPLAY FLAGSHOULD ADDRESS FIELD OF DISPLAY BE USED ?YES - USE HEX VALUE AS ISNO - ONLY LOW ORDER BYTE OF HEX VALUE SHOULD/BE USED FOR DATA FIELD OF DISPLAYPUT LOW ORDER BYTE OF HEX VALUE IN 0
RESET HEX DIGIT FLAGSAVE DISPLAY AND HEX DIGIT FLAGSSET HEX VALUE TO ZEROSAVE HEX VALUE
ARG - HEX VALUE TO BE EXPANDED IS IN 0 & EEXPAND HEX VALUE FOR DISPLAYARG - ADDRESS OF EXPANDED HEX VALUE IN H & LARG - PUT DISPLAY FLAG IN AARG - DOT IN APPROPRIATE FIELDOUTPUT HEX VALUE TO DISPLAY
i 'GO GET NEXT CHARACTERCHARACTER wAS NOT A HEX DIGIT
RETRIEVE HEX VALUERETRIEVE HEX DIGIT FLAG IN CWAS LAST CHARACTER ',' ?YES - READY TO RETURNNO - WAS LAST CHARACTER '. I ?
i YES - READY TO RETURNINVALID TERMINATOR - IGNORE ANY HEX DIGITS READ
SET HEX VALUE TO ZERORETURN FALSE
AB,NODOTH,ERMSGOUTPTA,DTFLDB,NODOTH,BLNKSOUTPTCMMND
oINSDGBC,l
GTH18
RDKBD10HGTH20
A,B
BoA,B
HXDSP
D,E
C,0B0,0o
a,AA,C
A,BB,DOTOUTPTGTH05; LASToBCOMMAGTH25PERIOGTH25i NO 0,8RETF
XRAMVILXICALLMVIMVILXICALLJMP
CALL
MVIPUSHLXIPUSH
MOV
MOVMOVRRCMOVRET
POPCALLPOPMVI
CALLCPIJNC
PUSHPUSHMOVRRCJNC
MOVMVICALLJiofP
LXIJMP
POPPOPCPIJZCPIJZ
FUNCTION: GTHEX - GET HEX DIGITSINPUTS: a - DISPLAY FLAG - 0 MEANS USE ADDRESS FIELD OF DISPLAY
- 1 MEANS USE DATA FIELD OF DISPLAYOUTPUTS: A - LAST CHARACTER READ FROM KEYBOARD
DE - HEX DIGITS FROM KEYBOARD EVALUATED MODULO 2**16CARRY - SET IF AT LEAST ONE VALID HEX DIGIT WAS READ
- RESET OTHERWISECALLS: RDKBD,INSDG,HXDSP,OUTPTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: GTHEX ACCEPTS A STRING OF HEX DIGITS FROM THE KEYBOARD,
DISPLAYS THEM AS THEY ARE RECEIVED, AND RETURNS THEIRVALUE AS A 16 BI't:' INTEGER. IF MORE THAN 4 HEX DIGITSARE RECEIVED, ONLY THE LAST 4 ARE USED. IF THE DISPLAYFLAG IS SET, THE LAST 2 HEX DIGITS ARE DISPLAYED IN THEDATA FIELD OF THE DISPLAY. OTHERWISE, THE LAST 4 HEXDIGITS ARE DISPLAYED IN THE ADDRESS FIELD OF THEDISPLAY. IN EITHER CASE, A DOT WILL BE DISPLAYED AT THERIGHTMOST EDGE OF THE FIELD. A CHARACTER WHICH IS NOTA HEX DIGIT TERMINATES THE STRING AND IS RETURNED ASAN OUTPUT OF THE FUNCTION. IF THE TERMINATOR IS NOTA PERIOD OR A COMMA THEN ANY HEX DIGITS WHICH MAY HAVEBEEN RECEIVED ARE CONSIDERED TO BE INVALID. THEFUNCTION RETURNS A FLAG INDICATING WHETHER OR NOT ANYVALID HEX DIGITS WERE RECEIVED.
FUNCTION: ERR - DISPLAY ERROR MESSAGEINPUTS: NONEOUTPUTS: NONECALLS: OUTPTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: ERR IS JUMPED TO BY COMMAND ROUTINES WISHING TO
TERMINATE BECAUSE OF AN ERROR.ERR OUTPUTS AN ERROR MESSAGE TO THE DISPLAY ANDBRANCHES TO THE COMMAND RECOGNIZER.
,ERR:
,GTHEX:
GTH85:
GTH18:
GTH25:
GTH20:
SEQ
596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649658651652653654655656657658659668661662663664665666667668669678671672673674675676677678679688681682683684685686687688689698691692693694695
0215 AF0216 06000218 219E03021B CDB702021E 3E010220 06080222 219A030225 CDB7020228 C36600
LOC OBJ
022B 8E000220 C5022E 1100088231 05
8232 CDE7028235 FE188237 025582
823A 01023B CD9F82823E C1823F 8E81
0241 C58242 05824j 788244 8F8245 024982
8248 53
8249 CD6C82
024C 788240 8681824F CDB7020252 C33282
8255 010256 C18257 FEll8259 CA6782025C FE10825E CA6782
8261 1108888264 C3F702
8267 478268 798269 8F026A 78826B C9
ISIS-II d080/8085 MACRO ASSEMBLER, X108 SOK8S PAGE
LOC OI3J SEQ SOURCE STATEMENT
.* ••• *•••••••••••••••••••••••••• *•••• *••• *••••• *••••••••••••••••••••••
,;** ••• ** •••••••• *•••• *.* •••••• *••• ***.*••• *•••• ** ••• ** •••••••••••••••••
,; ••••••• *•••••••••••• *••••••••••••••••••••••••••••••••••••••••••••• *•••
FUNCTION: NXTRG - ADVANCE REGISTER POINTER TO NEXT REGISTERINPUTS: NONEOUTPUTS: CARRY - 1 IF POINTER IS ADVANCED SUCCESSFULLY
GET FIRST DATA BYTECONVERT 4 HIGH ORDER BITS/TO A SINGLE CHARACTER
GET ADDRESS OF OUTPUT BUFFERSTORE CHARACTER IN OUTPUT BUFFERGET FIRST DATA BYTE AND CONVERT 4 LOW ORDER/BITS TO A SINGLE CHARACTERNEXT BUFFER POSITIONSTORE CHARACTER IN BUFFERGET SECOND DATA BYTECONVERT 4 HIGH ORDER BITS/TO A SINGLE CHARACTER
NEXT BUFFER POSITIONSTORE CHARACTER IN BUFFERGET SECOND DATA BYTE AND CONVERT LOW ORDER/4 BITS TO A SINGLE CHARACTERNEXT BUFFER POSITIONSTORE CHARACTER IN BUFFERRETURN ADDRESS OF OUTPUT BUFFER IN H & L
INSERT LOW ORDER DIGIT
SAVE H & LSAVE F/F'S & REGISTER AADDRESS FOR CONTROL CHARACTER OUTPUTOUTPUT CONTROL CHARACTER FOR READING/FROM KEYBOARDADDRESS FOR CHARACTER INPUTREAD A CHARACTERZERO 2 HIGH ORDER BITSSTORE CHARACTER IN INPUT BUFFERRESTORE F/F'S & REGISTER ARESTORE H & L
PUT H & L BACK IN 0 & E
PUT 0 & E IN H & LSHIFT H & L LEFT 4 BITS
A,D
0FHH,OBUFFM,AA,D0FHHM,AA,E
0FHHM,AA,E0FHHM,AH,OBUFF
HPSWH,CNTRLM,READ
HA,M3FHIBUFFPSWH
HHHHLL,A
MOVRRCRRCRRCRRCANILXIMOVMOVANIINXMOVMOVRRCRRCRRCRRCANIINXMOVMOVANIINXMOVLXIRET
PUSHPUSHLXIMVI
OCRMOVANISTAPOPPOPRET
XCHGDADDADDADDADADOMOVXCHGRET
FUNCTION: ININT - INPUT INTERRUPT PROCESSINGINPUTS: NONEOUTPUTS: NONECALLS: NOTHINGDESTROYS: NOTHINGDESCRIPTION: ININT IS ENTERED BY MEANS OF AN INTERRUPT VECTOR (IV2C)
WHEN THE READ KEYBOARD ROUTINE IS WAITING FOR ACHARACTER AND THE USER HAS PRESSED A KEY ON THEKEYBOARD (EXCEPT "RESET" OR "VECTORED INTERRUPT").ININT STORES THE INPUT CHARACTER IN THE INPUT BUFFER ANDRETURNS CONTROL TO THE READ KEYBOARD ROUTINE.
FUNCTION: INSDG - INSERT HEX DIGITINPUTS: A - HEX DIGIT TO BE INSERTED
DE - HEX VALUEOUTPUTS: DE - HEX VALUE WITH DIGIT INSERTEDCALLS: NOTHINGDESTROYS: A,F/F'SDESCRIPTION: INSDG SHIFTS THE CONTENTS OF 0 & E LEFT 4 BITS
(1 HEX DIGIT) AND INSERTS THE HEX DIGIT IN A IN THE LOWORDER DIGIT POSITION OF THE RESULT. A IS ASSUMED TOCONTAIN A SINGLE HEX DIGIT IN THE LOW ORDER 4 BITS ANDZEROS IN THE HIGH ORDER 4 BITS.
FUNCTION: HXDSP - EXPAND HEX DIGITS FOR DISPLAYINPUTS: DE - 4 HEX DIGITSOUTPUTS: HL - ADDRESS OF OUTPUT BUFFERCALLS: NOTHINGDESTROYS: A,H,L,F/F'SDESCRIPTION: HXDSP EXPANDS EACH INPUT BYTE TO 2 BYTES IN A FORM
SUITABLE FOR DISPLAY BY THE OUTPUT ROUTINES. EACH INPUTBYTE IS DIVIDED INTO 2 HEX DIGITS. EACH HEX DIGIT ISPLACED IN THE LOW ORDER 4 BITS OF A BYTE WHOSE HIGHORDER 4 BITS ARE SET TO ZERO. THE RESULTING BYTE ISSTORED IN THE OUTPUT BUFFER. THE FUNCTION RETURNS THEADDRESS OF THE OUTPUT BUFFER.
,HXDSP:
,ININT:
,INSDG:
69669769869970070170270370470S7067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527S3754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
026C 7A0260 0F026E 0F026F 0F0270 0F0271 E60F0273 21F9200276 770277 7A0278 E60F027A 230278 77027C 7B0270 0F027E 0F027F 0F0280 0F0281 Eb0F8283 230284 770285 7B0286 E60F0288 230289 77028A 21F9200280 C9
028E E5028F F50290 2100190293 3640
0295 250296 7E0297 E63F0299 32FE20029C "Fl0290 El029E C9
029F EB02A0 2902Al 2902A2 2902A3 2902A4 8502A5 6F02A6 EB02A7 C9
ISIS-II 8888/8885 MACRO ASSEMBLER, X188 SDK85 PAGE 9
- 0 OTHERWISE
SOURCE STATEMENT
;RDKBD:
,;**********************************************************************
GET REGISTER POINTERDOES POINTER POINT TO LAST REGISTER?YES - UNABLE TO ADVANCE POINTER - RETURN FALSENO - ADVANCE REGISTER POINTERSAVE REGISTER POINTERRETURN TRUE
USE DATA FIELD ?YES - GO SET UP TO USE DATA FIELDNO - COUNT FOR ADDRESS FIELDCONTROL CHARACTER FOR OUTPUT TO ADDRESS/FIELD OF DISPLAY
SET BUFFER EMPTY FLAGRETURN WITH INTERRUPTS DISABLED
COUNT FOR DATA FIELDCONTROL CHARACTER FOR OUTPUT TO DATA FIELD/OF DISPLAY
GET OUTPUT CHARACTERSAVE OUTPUT CHARACTER ADDRESS IN 0 & EGET DISPLAY FORMAT TABLE ADDRESSUSE OUTPUT CHARACTER AS A POINTER TO/DISPLAY FORMAT TABLEGET DISPLAY FORMAT CHARACTER FROM TABLETEST COUNTER WITHOUT CHANGING ITIS THIS THE LAST CHARACTER ?NO - GO OUTPUT CHARACTER AS ISYES - IS DOT FLAG SET ?NO - GO OUTPUT CHARACTER AS ISYES - OR IN MASK TO DISPLAY DOT WITH/LAST CHARACTER
COMPLEMENT OUTPUT CHARACTERSEND CHARACTER TO DISPLAYRETRIEVE OUTPUT CHARACTER ADDRESSNEXT OUTPUT CHARACTERANY MORE OUTPUT CHARACTERS ?YES - GO PROCESS ANOTHER CHARACTERNO - RETURN
RGPTRNUMRG-1RETFARGPTRRETT
M,EMPTY
A,M
OUT05C,4A,ADISP
H,DSPTBLL,AA,MH,CHOUT288OUT20DTMSK
DSPLY
HCOUT15
C,2A,DDISP
MVIMVI
LOACPIJNCINRSTAJMP
STA CNTRL
JMP OUTl0
RacJCMVIMVI
MOVXCHGLXIADDMOVMOVMOVOCRJNZOCRJNZORI
CiofASTAXCHGINXOCRJNZRET
MVI01RET
LXI H,IBUFF ; GET INPUT BUFFER ADDRESSMOV A,M ; GET BUFFER CONTENTS
; HIGH ORDER BIT • I MEANS BUFFER IS EMPTYORA A ; IS A CHARACTER AVAILABLE ?JP RDKI8; YES - EXIT FROM LOOPEI ; NO - READY FOR CHARACTER FROM KEYBOARDJMP' RDKBD
FUNCTION: RDK8D - READ KEYBOARDINPUTS: NONEOUTPUTS: A - CHARACTER READ FROM KEYBOARDCALLS: NOTHINGDESTROYS: A,H,L,F/F'SDESCRIPTION: RDKBD DETERMINES WHETHER OR NOT THERE IS A CHARACTER IN
THE INPUT BUFFER. IF NOT, THE FUNCTION ENABLESINTERRUPTS AND LOOPS UNTIL THE INPUT INTERRUPTROUTINE STORES A CHARACTER IN THE BUFFER. WHENTHE BUFFER CONTAINS A CHARACTER, THE FUNCTION FLAGSTHE BUFFER AS EMPTY AND RETURNS THE CHARACTERAS OUTPUT.
FUNCTION: OUTPT - OUTPUT CHARACTERS TO DISPLAYINPUTS: A - DISPLAY FLAG - 0 = USE ADDRESS FIELD
1 = USE DATA FIELDB - DOT FLAG - 1 OUTPUT DOT AT RIGHT EDGE OF FIELD
o NO DOTHL - ADDRESS OF CHARACTERS TO BE OUTPUT
CALLS: NOTHINGDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: OUTPT SENDS CHARACTERS TO THE DISPLAY. THE ADDRESS
OF THE CHARACTERS IS RECEIVED AS AN ARGUMENT. EITHER2 CHARACTERS ARE SENT TO THE DATA FIELD, OR 4 CHARACTERSARE SENT TO THE ADDRESS FIELD, DEPENDING ON THEDISPLAY FLAG ARGUMENT. THE DOT FLAG ARGUMENT DETERMINESWHETHER OR NOT A DOT (DECIMAL POINT) WILL BE SENTALONG WITH THE LAST OUTPUT CHARACTER.
CALLS: NOTHINGDESTROYS: A,F/F'SDESCRIPTION: IF THE REGISTER POINTER POINTS TO THE LAST REGISTER IN
THE EXAMINE REGISTER SEQUENCE, THE POINTER IS NOTCHANGED AND THE FUNCTION RETURNS FALSE. IF THE REGISTERPOINTER DOES NOT POINT TO THE LAST REGISTER THEN THEPOINTER IS ADVANCED TO THE NEXT REGISTER IN THE SEQUENCEAND THE FUNCTION RETURNS TRUE.
,;**********************************************************************
NXTRG:
OUT10:
OUT05:
OUT20:
OUT15:
,OUTPT:
RDKI8:
SEQ
795796797798799d00801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869878871872873874875876877878879888881882883884885886887888889898891892893
02A8 3AFD2002AB FE0C02AD D2F70202B0 3C02B1 32FD2002B4 C3FA02
02C6 320019
02B7 0F02B8 DAC20202BB 0E040280 3E90
02BF C3C602
02C2 0E0202C4 3E94
LOC OBJ
02C9 7E02CA EB02CB 21840302CE 8502CF 6F0208 7E8201 618202 258203 C2DC028206 058207 C2DC8282DA F688
82DC 2F8200 32881882E8 E882E1 2382E2 8082E3 C2C98282£6 C9
82£7 21FE2882£A 7£
12£8 B712EC F2F38212£' r882r8 C3£782
12'3 368882F5 F382F6 C9
ISIS-II 8080/80H5 MACRO ASSEMBLER, X108 SDK85 PAGE 10
LOC OBJ SEQ SOURCE STATEMENT
; SET CARRY TRUE; . COMPLEMENT CARRY TO MAKE IT FALSE
; SET CARRY TRUE
; MULTIPLY POINTER VALUE BY 4;/(REGISTER NAME TABLE HAS 4 BYTE ENTRIES); GET ADDRESS OF START OF REGISTER NAME TABLE; ARG - ADD TABLE ADDRESS TO POINTER - RESULT IS;/ADDRESS OF APPROPRIATE REGISTER NAME IN H & L
ARG - USE ADDRESS FIELD OF DISPLAY; ARG - NO DOT IN ADDRESS FIELD; OUTPUT REGISTER NAME TO ADDRESS FIELD
; GET REGISTER POINTER
RGPTR GET REGISTER POINTERH,0 /IN H & LB,RGTBL GET REGISTER SAVE LOCATION TABLE ADDRESSB POINTER INDEXES TABLEL,M : GET LOW ORDER BYTE OF REGISTER SAVE LOC.H, (RAMST SHR 8) GET HIGH ORDER BYTE OF
/~EGISTER SAVE LOCATION
AB,NODOTOUTPT
RGPTRH,0HHB,NMTBLB
THE TIMING OF THIS ROUTINE IS CRITICAL TO THECORRECT OPERATION OF THE SINGLE STEP ROUTINE.IF ANY MODIFICATION CHANGES THE NUMBER OF CPUSTATES NEEDED TO EXECUTE THIS ROUTINE THEN THETIMER VALUE MUST BE ADJUSTED BY THE SAME NUMBER.
STCRET
STCCMCRET
RET
LHLDMVILXIDADMOVMVI
XRAMVICALLRET
LHLDMVIDADDADLXIDAD
THIS IS ALSO THE ENTRY POINT FOR THE TTY MONITORTO RESTORE REGISTERS.
FUNCTION: RETT - RETURN TRUEINPUTS: NONEOUTPUTS: CARRY • 1 (TRUE)CALLS: NOTHINGDESTROYS: CARRYDESCRIPTION: RETT IS JUMPED TO BY ROUTINES WISHING TO RETURN TRUE.
RETT SETS CARRY TO 1 AND RETURNS TO THE CALLER OFTHE ROUTINE INVOKING RETT.
FUNCTION: RETF - RETURN FALSEINPUTS: NONEOUTPUTS: CARRY • 8 (FALSE)CALLS: NOTHINGDESTROYS: CARRYDESCRIPTION: RETF IS JUMPED TO BY FUNCTIONS WISHING TO RETURN FALSE.
RETF RESETS CARRY TO 0 AND RETURNS TO THE CALLER OFTHE ROUTINE INVOKING RETF.
FUNCTION: RGLOC - GET REGISTER SAVE LOCATIONINPUTS: NONEOUTPUTS: HL - REGISTER SAVE LOCATIONCALLS: NOTHINGDESTROYS: B,C,H,L,F/F'SDESCRIPTION: RGLOC RETURNS THE SAVE LOCATION OF THE REGISTER
INDICATED BY THE CURRENT REGISTER POINTER VALUE.
*••• *
FUNCTION: RGNAM - DISPLAY REGISTER NAMEINPUTS: NONEOUTPUTS: NONECALLS: OUTPTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: RGNAM DISPLAYS, IN THE ADDRESS FIELD OF THE DISPLAY,
THE REGISTER NAME CORRESPONDING TO THE CURRENTREGISTER POINTER VALUE.
FUNCTIO~:' RSTOR - RESTOR USER REGISTERSINPUTS: NONEOUTPUTS: NONECALLS: NOTHINGDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: RSTOR RESTORES ALL CPU REGISTERS, FLIP/FLOPS,
INTERRUPT STATUS, INTERRUPT MASK, STACK POINTERAND PROGRAM COUNTER FROM THEIR RESPECTIVE
SAVE LOCATIONS IN MEMORY. BY RESTORING THE PROGRAMCOUNTER, THE ROUTINE EFFECTIVELY TRANSFERS CONTROL TOTHE ADDRESS IN THE PROGRAM COUNTER SAVE LOCATION.
894 ,895 ; ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
89689789889998891190298390490S ;906 RETF:917918989918 ,911 ; ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••912913914915916917918919928921 ,922 RETT:923924925 ,926 ; ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••927928929930931932933934935 ,936 RGLOC:937938939940941942943944945 ,946 ; ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••947948949950951952953954955956 ,957 RGNAM:958959968961962963964965966967968969 ,970 ; ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••971972973974975976977978979981981 ;982983984985986987988989991991992 ;993 RSTOR:
02FC 2AFD2002FF 26000301 01ED030304 090305 6E0306 2620
0308 C9
12F7 3712F8 3F12F9 C9
12FA 3782FB C9
0389 2AFD28038C 2680038£ 29038F 290318 01B9830313 09
8314 AF0315 06000317 CDB702031A C9
ISIS-II 8181/8185 MACRO ASSEMBLER, X118 SDK85 PAGE 11
RESTORE USER STACK POINTER
PUT USER PROGRAM COUNTER ON STACKRESTORE H & L REGISTERSJUMP TO USER PROGRAM COUNTER
DUMMY INSTRUCTIONS - WHEN SINGLE STEP ROUTINE/IS BEING USED, THE TIMER IS RUNNING AND/EXECUTE TIME FOR THIS ROUTINE MUST NOT/VARY.
SET MONITOR STACK POINTER TO START OF STACK/WHICH IS ALSO END OF REGISTER SAVE AREARESTORE REGISTERS
GET CURRENT ADDRESSARG - PUT CURRENT ADDRESS IN 0 & EEXPAND CURRENT ADDRESS FOR DISPLAYARG - ADDRESS OF EXPANDED ADDRESS IS IN H & LARG - USE ADDRESS FIELD OF DISPLAYARG - DOT FLAG IS IN BOUTPUT CURRENT ADDRESS TO ADDRESS FIELD
GET USER INTERRUPT MASKENABLE SETTING OF INTERRUPT MASK AND/RESET RST7.5 FLIP FLOP
; RESTORE USER INTERRUPT MASKINTERRUPT STATUS
GET USER INTERRUPT MASKSHOULD USER INTERRUPTS BE ENABLED ?NO - LEAVE INTERRUPTS DISABLEDYES - ENABLE INTERRUPTS FOR USER PROGRAM
LXI H,MNSTKSPHLPOP DPOP BPOP PSWLaLD SSAVSPHLLHLD PSAVPUSH HLHLD LSAVRET
CALL RDKBD READ FROM KEYBOARDCPI 10H IS CHARACTER A DIGIT?JNC RETF NO - RETURN FALSE - CHARACTER IS NOT A
/REGISTER DESIGNATORSUI YES - TRY TO CONVERT REGISTER DESIGNATOR TO
/ INDEX INTO REGISTER POINTER TABLEWAS CONVERSION SUCCESSFUL?
JC RETF NO - RETURN FALSEMOV C,A INDEX 'l'O B & CMVI 8,0LXI H,RGPTB GET ADDRESS OF REGISTER POINTER TABLEDAD B INDEX POINTS INTO TABLEMOV A,M GET REGISTER POINTER FROM TABLESTA RGPTR SAVE REGISTER POINTERJMP RETT RETURN TRUE
LDA ISAVORI 18H
SIMRESTORE USERLOA ISAVANI 88HJZ RSR85EIJMP RSR11
STCJNC RSR11
LHLD CURADXCHGCALL HXDSP
XRA A
CALL OUTPTRET
LOA CURDT GET CURRENT DATAMOV D,A ARG - PUT CURRENT DATA IN DCALL HXDSP EXPAND CURRENT DATA FOR DISPLAY
ARG - ADDRESS OF EXPANDED DATA IS IN H & LMVI A,DTFLD ARG - USE DATA FIELD OF DISPLAY
ARG - DOT FLAG IS IN BCALL OUTPT OUTPUT CURRENT DATA TO DATA FIELD
SOURCE STATEMENT
FUNCTION: SETRG - SET REGISTER POINTERINPUTS: NONEOUTPUTS: CARRY - SET IF CHARACTER FROM KEYBOARD IS A REGISTER DESIGNATOR
RESET OTHERWISECALLS: RDKBDDESTROYS: A,B,C,H,L,F/F'SDESCRIPTION: SETRG READS A CHARACTER FROM THE KEYBOARD. IF THE
CHARACTER IS A REGISTER DESIGNATOR, IT IS CONVERTED TOTHE CORRESPONDING REGISTER POINTER VALUE, THE POINTER ISSAVED, AND THE FUNCTION RETURNS 'TRUE'. OTHERWISE, THEFUNCTION RETURNS 'FALSE'.
FUNCTION: UPDAD - UPDATE ADDRESS FIELD OF DISPLAYINPUTS: B - DOT FLAG - 1 MEANS PUT DOT AT RIGHT EDGE OF FIELD
o MEANS NO DOTOUTPUTS: NONECALLS: HXDSP,OUTPTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: UPDAD UPDATES THE ADDRESS FIELD OF THE DISPLAY USING
THE CURRENT ADDRESS.
OUTPUTS: NONECALLS: HXDSP,OUTDTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: UPDDT UPDATES THE DATA FIELD OF THE DISPLAY USING
THE CURRENT DATA BYTE.
994995996997998999
18881811110218831884 RSR05:18051886181710081009 RSR10:101011111012101310141015101610171018101911201021 ,1122 ;**********************************************************************1023102410251026102710281029103010311032103310341035 ,1036 SETRG:10371038103910401041104210431044104510461047104810491050105110521053 :**********************************************************************1054105510561057105810591060106110621063 ,1064 UPDAD:106510661067106810691070107110721073 ,1074 :**********************************************************************10751076 FUNCTION: UPDDT - UPDATE DATA FIELD OF DISPLAY1077 : INPUTS: B - DOT FLAG - 1 MEANS PUT DOT AT RIGHT EDGE OF FIELD1078 8 MEANS NO DOT117910801081108210831184 ,1185 UPDDT:1.086118718881189189018911892
SEQ
0344 CDE7020347 FE100349 D2F702
034C 0603
034E DAF7020351 4F0352 06000354 21AC030357 090358 7E0359 32FD20035C C3FA02
LOC OBJ
131B 3AF121131E F618
8321 31
1321 3AF1211324 E6181326 CA2D838329 PB132A C33113
8320 37832E 023113
1331 21E9201334 F98335 011336 C11337 F11338 2AF421133B F9033C 2AF220133F E51341 2AEF211343 C9
1367 CDB702036A C9
136B 3AF820136E 57136F CD6C02
1372 3El1
0374 CDB702
035F 2AF6200362 E80363 CD6C02
0366 AF
ISIS-II 8080/8085 MACRO ASSEMBLER, X108 SDK85 PAGE 12
MONITOR TABLES
1····**·******··*·····*···**·*··*··*···*····*·*·****··**.*.*•• *.**.****
,1**********************************************************************
,1*************************************************·*··*.**••*.****••***
EXECUTION MESSAGE
ERROR MESSAGE FOR ADDR. FIELD
FOR ADDRESS OR DATA FIELD
P
L
R (LOWER CASE)
BLANK
H
B (LOWER CASE)
ADDRESS OF SINGLE STEP ROUTINEADDRESS OF EXAMINE REGISTERS ROUTINEADDRESS OF SUBSTITUTE MEMORY ROUTINEADDRESS OF GO ROUTINE
o (LOWER CASE)
5 AND S67
GO COMMANDSUBSTITUTE MEMORY COMMANDEXAMINE REGISTERS COMMANDSINGLE STEP COMMANDNUMBER OF COMMANDS
EIGHT, FIVE 1 SIGN ON MESSAGE (DATA FIELD)
/FOR ADDRESS FIELDBLANK,BLANK,EIGHT,ZERO SIGN ON MESSAGE (ADDR. FIELD)
12813H14HISH$-CMDTB
BLANK,BLANK,BLANK,BLANK
BLANK,LETRE,LETRR,LETRR
SSTEPEXAMSUBSTGOCMD
LETRE,BLANK,BLANK,BLANK
$ - DSPTB0F3H
6080B5H0F4H
66H ,$ - DSPTB$ - DSPTB0D6H0D7H
70H ,$ - DSPTB0F78 8
76H , 9$ - DSPTB
77H , A$ - DSPTB0C7H ,$ - DSPTB
93H , C$ - DSPTB0E5H ,$ - DSPTB
97H , E$ - DSPTB
17H , F$ - DSPTB
67H$ - DSPTB
83H$ - DSPTB
37H$ - DSPTB
60H ,$ - DSPTB
05H ,$ - DSPTB
00H
DISPLAYFORMAT CHARACTER
TABLE FOR TRANSLATING CHARACTERS FOR OUTPUT
EQUDBDBDBDBDBEQUEQUDBDBDBEQUDBDBEQUDBEQUDBEQUDBEQUDBEQUDBEQUDBEQUDBEQUDBEQUDBEQU08EQU08EQUDB
DBDBDBDBEQU
OWOWOWow
,1**********************************************************************
SOURCE STATEMENT
RET
LETRP
,1**********************************************************************
LETRF
EIGHT
LETRC
NUMC
LETRI
LETRH
BLANK
FIVELETRS
LETRB
,1 COMMAND TABLE, COMMAND CHARACTERS AS RECEIVED FROM KEYBOARDCMOTB:
,ZERO
LETRD
LETRA
LETRE
LETRR
LETRL
,BLNKS: 03
,1··*****·*****·***·************···*****·***********·*·***.****.******.*
,DSPTB:
11 COMMAND ROUTINE ADDRESS TABLE, (MUST BE IN REVERSE ORDER OF COMMAND TABLE)CMDAD:
: MESSAGES FOR OUTPUT TO DISPLAY
11741175 SGNAD: DB
1172 ERMSG: DB
1173 EXMSG: DB
1176 SGNDT: DB
11771178
SEQ
1093109410951096109710981199118811811102110311041185110611071108118911181111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171
1378 121379 13137A 14137B 151814
037C FD01137E 92010380 8B011382 ca01
00000384 F30385 600386 B50387 F40388 66000500150389 06038A 07038B 700.,18038C F70380 76000A038E 77000B038F C7000C0390 9300001391 E5101E0392 97001F0393 1700100394 670kill0395 8300120396 3700130397 6001140398 0500150399 00
1377 C9
039A 15039B 15039C 150390 15039E 15939F 0E03A0 1403A1 1403A2 0E03A3 1503A4 1503A5 15
03A6 1503A7 1503A8 08
03A9 ''''03AA 0803AB 05
LOC OBJ
ISIS-II 8888/8885 MACRO ASSEMBLER, X108 SDK8.5 PAGE 13
SOURCE STATEMENT
,,*********************************************.*.*************.*** •••••
,, ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• * ••••
; REGISTER SAVE LOCATION TABLE; ADDRESSES OF SAVE LOCATIONS OF REGISTERS IN THE ORDER IN WHICH, THE REGISTERS ARE DISPLAYED BY THE EXAMINE COMMAND,RGTBL:
DB ASAV AND 0FFH A REGISTERDB BSAV AND IFFH B REGIS'rERDB CSAV AND eFFH C REGISTERDB DSAV AND IFFH 0 REGISTER03 ESAV AND IFFH E REGISTERDB FSAV AND 0FFH FLAGSOB ISAV AND 0FFH INTERRUPT MASKDB HSAV AND IFFH H REGISTERDB LSAV AND IFFH L REGISTERDB SPHSV AND IFFH STACK POINTER HIGH ORDER BYTEDB SPLSV AND IFFH STACK POINTER LOW ORDER BYTEDB PCHSV AND IFFH PROGRAM COUNTER HIGH ORDER BYTE
REGISTER POINTER TABLETHE ENTRIES IN THIS TABLE ARE IN THE SAME ORDERAS THE REGISTER DESIGNATOR KEYS ON THE KEYBOARD.EACH ENTRY CONTAINS THE REGISTER POINTER VALUE WHICHCORRESPONDS TO THE REGISTER DESIGNATOR. REGISTERPOINTER VALUES ARE USED TO POINT INTO THE REGISTERNAME TABLE (NMTBL) AND REGISTER SAVE LOCATIONTABLE (RGT8L).
DB 6 INTERRUPT MASKDB 9 SPHDB II SPLDB 11 PCHDB 12 PCLDB 7 HDB 8 LDB I ADB 1 BDB 2 CDB 3 0DB 4 EOil 5 FLAGS
JNMT8L: , REGISTER NAME TABLE
, NAMES OF REGISTERS IN DISPLAY FORMATDB 8LANK, BLANK, BLANK, LETRA , A REGISTER
DB BLANK,BLANK,BLANK,LETRB B REGISTER
DB BLANK, BLANK, BLANK, LETRC C REGISTER
DB BLANK,BLANK,BLANK,LETRD o REGISTER
DB BLANK, BLANK, BLANK, LETRE E REGISTER
DB BLANK,BLANK,BLANK,LETRF FLAGS
DB BLANK,BLANK,BLANK,LETRI INTERRUPT MASK
DB BLANK, BLANK, BLANK, LETRH H REGISTER
DB BLANK, BLANK, BLANK, LETRL L REGISTER
DB BLANK,LETRS,LETRP,LETRH STACK POINTER HIGH ORDER BYTE
DB BLANK,LETRS,LETRP,LETRL STACK POINTER LOW ORDER BYTE
DB BLANK,LETRP,LETRC,LETRH PROGRAM COUNTER HIGH BYTE
DB BLANK,LETRP,LETRC,LETRL PROGRAM COUNTER LOW BYTE
,RGPTB:
1216
1215
1218
1212
1217
1218
1289
1288
12201221122212231224122512261227122812291231123112321233123412351236123712381239
1219
1213
1214
1211
SEQ
11791181118111821183118411851186118711881189119811911192119311941195119611971198119912881211128212131284128512861217
83AC 1683Ao 8913AE 8A83AF 188381 IC83Bl 878382 188383 888384 II8385 828386 838387 848388 85
83ED EE03EE EC83EF EB03F0 EA03Fl E913F2 ED83F3 Fl03F4 F013F5 EF03F6 F513F7 F483F8 F3
8389 15.38A 15.388 15.38C 8A1380 1513BE 15138F 1513CI 8883Cl 1583C2 1513C3 1513C4 8C83C5 1583C6 1583C7 1583C8 1013C9 1513CA 1513CB 1513CC 8E13CO 1513CE 1513CF 150301 IF1301 151302 150303 151304 130305 158306 150307 151308 100309 1583DA 1513DB 1513DC 111300 1583DE 0583DF 1203E0 l~
03El 1503E2 IS03E3 1203E4 1103E5 1503E6 12~3E7 ~C
03Ets 1003E9 1503EA 1203E8 0C03EC 11
LOC 08J
ISIS-II 8080/8085 MACRO ASSEMBLER, X108 SOK85 PAGE 14
ABSTRACT
PROGRAM ORGANIZATION
GETCM
SDK-85 TTY MONITOR
~CODE FOR BREAK CHARACTER (ESCAPE)LOCATION OF START OF BRANCH TABLE IN ROMCODE FOR CARRIAGE RETURNCODE FOR ESCAPE CHARACTERMASK TO SELECT LOWER HEX CHAR FROM BYTEMASK TO INVERT HALF BYTE FLAGCODE FOR LINE FEEDDENOTES LOWER HALF OF BYTE IN ICMDLENGTH OF SIGNON MESSAGE - DEFINED LATERSTART OF MONITOR STACK - DEFINED IN/KEYBOARD MONITORNUMBER OF VALID COMMANDS - DEFINED LATERMASK FOR CHECKING MEMORY ADDR DISPLAYMASK TO CLEAR PARITY BIT FROM CONSOLE CHARSTART ADDRESS OF RAM - DEFINED INKEYBOARD MONITOR
PCLSV AND 0FFH i PROGRAM COUNTER LOW ORDER BYTE($ - RGTBL) i NUMBER OF ENTRIES IN
i /REGISTER SAVE LOCATION TABLE
IBH07FAH0DHIBH0FH0FFH0AHo
0FH07FH
DBEQU
SOURCE STATEMENT
NUMRG
i***************************************************** ************
MONITOR EQUATES
,i***************************************************** ************
CICNVBNCOCROUTDELAYECHOERRORFRETGETCHGETHXGETNMHILONMOUTPRVALREGDSRGADRSRETSTHF0STHLFVALDGVALDL
DCMDGCMDICMDMCMDSCMDXCMD
,i***************************************************** *****************i***************************************************** *****************
THE LISTING IS ORGANIZED IN THE FOLLOWING WAY. FIRST THE COMMANDRECOGNIZER, WHICH IS THE HIGHEST LEVEL ROUTINE IN THE PROGRAM.NEXT THE ROUTINES TO IMPLEMENT THE VARIOUS COMMANDS. FINALLY,THE UTILITY ROUTINES WHICH ACTUALLY DO THE DIRTY WORK. WITHINEACH SECTION, THE ROUTINES ARE ORGANIZED IN ALPHABETICALORDER, BY ENTRY POINT OF THE ROUTINE.
MACROS USED IN THE TTY MONITOR ARE DEFINED IN THE KEYBOARD MONITOR.
LIST OF FUNCTIONS
THIS PROGRAM WAS ADAPTED, WITH FEW CHANGES, FROM THE SDK-88 MONITOR.THIS PROGRAM RUNS ON THE 8085 BOARD AND IS DESIGNED TO PROVIDETHE USER WITH A MINIMAL ~NITOR. BY USING THIS PROGRAM,THE USEa CAN EXAMINE AND ~HANGE MEMORY OR CPU REGISTERS, LOADA PROGRAM (IN ABSOLUTE HEX) INTO RAM, AND EXECUTE INSTRUCTIONSALREADY IN MEMORY. THE MONITOR ALSO PROVIDES THE USER WITHROUTINES FOR PERFORMING CONSOLE I/O.
,i***************************************************** *****************i********·*·····················********************** *****************
,BRCHR EQUBRTAB EQUCR EQUESC EQUHCHAR EQUINVRT EQULF EQULOWER EQUiLSGNON EQUiMNSTK EQU
iNCMDS EQUNEWLN EQUPRTY8 EQUiRAMST EQU
SEQ
124012411242124312441245124612471248124912501251125212531254125512561257125812591268126112621263126412651266126712681269127.127112721273127412751276127712781279128.1281128212831284128512861287128812891298129112921293129412951296129712981299138813011302138313B4130513861307138813891318131113121313131413151316131713181319132B1321132213231324132513261327132813291330133113321333133413351336133713381339
000F007F
001B07FA000D001B000F00FF.,00A0000
LOC OBJ
03F9 F20080
ISIS-II 8080/8085 MACRO ASSEMBLER, X108 SDK85 PAGE 15
LOC OBJ SEQ SOURCE STATEMENT
SIZE OF ENTRY IN RTAB TABLESHIFTED START BITSTOP BITUNSHIFTED START BITCODE FOR ICMD TERMINATING CHARACTER (ESCAPE)DENOTES UPPER HALF OF BYTE IN ICMD
COMPARE TABLE ENTRY AND CHARACTERBRANCH IF EQUAL - COMMAND RECOGNIZEDELSE, INCREMENT TABLE POINTERDECREMENT LOOP COUNTBRANCH IF NOT AT TABLE ENDELSE, COMMAND CHARACTER IS ILLEGAL
FETCH NEXT CHAR TO C REGSEND IT TO THE CONSOLEPOINT TO NEXT CHARACTERDECREMENT BYTE COUNTERRETURN FOR NEXT CHARACTER
GET COMMAND CHARACTER TO AECHO CHARACTER TO USERPUT COMMAND CHARACTER INTO ACCUMULATORC CONTAINS LOOP AND INDEX COUNTHL POINTS INTO COMMAND TABLE
IF GOOD COMMAND, LOAD ADDRESS OF TABLE/OF COMMAND ROUTINE ADDRESSES
ALWAYS WANT TO RESET STACK PTR TO MONITOR'/STARTING VALUE SO ROUTINES NEEDN'T CLEAN UPPROMPT CHARACTER TO CSEND PROMPT CHARACTER TO USER ~ERMINAL
WANT TO LEAVE ROOM FOR RST BRANCH
;INTER-BIT TIME DELAYiOUTPUT INTER-BIT TIME DELAY;4 BIT TIME DELAY;DELAY UNTIL READY TO SAMPLE BITS
,INTER-BIT DELAY,OUTPUT INTER-BIT TIME DELAY,4 BIT TIME DELAY;DELAY UNTIL READY TO SAMPLE BITS
PRINT SIGNON MESSAGE
RESTART ENTRY POINT
COMMAND RECOGNIZING ROUTINE
I-WAITS116411644656582
WAITS9309303720465
80H40HICIH1BH0FFH
H,CADR
H,MNSTK
H,SGNON , GET ADDRESS OF SIGNON MESSAGEB,LSGNON ; COUNTER FOR CHARACTERS IN MESSAGE
C,' ,ECHOGTC03
MGTC10HCGTC05ERROR
C,MCOHBMSGL
GETCHECHOA,CB,NCMDSH,CTAB
EQUEQUEQUEQUEQUEQU
IFEQUEQUEQUEQUENDIF
IFEQUEQUEQUEQUENDIF
LXI
LXIMVI
CALLCALLMOVLXILXI
CoiPJZINXOCRJNZJMP
MOVCALLINXOCRJNZ
LXISPHLMVICALLJMP
FUNCTION: GETCMINPUTS: NONEOUTPUTS: NONECALLS: GETCH,ECHO,ERRORDESTROYS: A,B,C,H,L,F/F'SDESCRIPTION: GETCM RECEIVES AN INPUT CHARACTER FROM THE USER
AND ATTEMPTS TO LOCATE THIS CHARACTER IN ITS COMMANDCHARACTER TABLE. IF SUCCESSFUL, THE ROUTINECORRESPONDING TO THIS CHARACTER IS SELECTED FROMA TABLE OF COMMAND ROUTINE ADDRESSES, AND CONTROLIS TRANSFERRED TO THIS ROUTINE. IF THE CHARACTERDOES NOT MATCH ANY ENTRIES, CONTROL IS PASSED TOTHE ERROR HANDLER.
iRTABSSSTRTSTOPBSTRTTERMUPPER
13411341134213431344134513461347 iDELAY VALUES IF NO WAIT STATE134813491350 IBTIM1351 OBTIM1352 TIM41353 WAIT13541355 ,1356 iDELAY VALUES IF ONE WAIT STATE135713581359 IBTIM1360 OBTIM1361 TIM41362 WAIT136313641365 ,1366 , •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••13671368136913711371 ,1372 , •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••137313741375 ,1376 , ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••1377 ;1378137913811381 ,1382 ; ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••13831384 ,1385 GO:138613871388 MSGL:1389139113911392139313941395 ,1396 i····················································· .13971398139914101401 ,1402 , •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••141314041415141614171418141914111411141214131414141514161417 ,1418 GETCM:141914211421142214231424 GTC03:142514261427142814291430 GTC05:1431143214331434143514361437 G'rC1";:14381439
048C048C12300246
0080004000C0001B00FF
0421 BE~422 CA2D04ia425 230426 000427 C22104042A C31106
0408 21E920041B F9040C 0E2E040E CDF8050411 C31404
0420 21A007
13FA 218CI713FD 1614
13FF 4E1411 CDC4151413 231414 IS0415 C2FF03
0414 CD1F060417 CDF805041A 79041B 010600041E 21AE07
ISIS-II 8080/8085 MACRO ASSEMBLER, X108 SDK85 PAGE 16
ADO WHAT IS LEFT OF LOOP COUNTADD AGAIN - EACH ENTRY IN CADR IS 2 BYTES LONGGET LSP OF ADDRESS OF TABLE ENTRY TO APOINT TO NEXT BYTE IN TABLEGET MSP OF ADDRESS OF TABLE ENTRY TO HPUT LSP OF ADDRESS OF TABLE ENTRY INTO LNEXT INSTRUCTION COMES FROM COMMAND ROUTINE
ADDRESS IS 2 BYTES LONG
ENDING ADDRESS TO DESTARTING ADDRESS TO HL
GET 2 NUMBERS FROM INPUT STREAM
ECHO CARRIAGE RETURN/LINE FEEDDISPLAY ADDRESS OF FIRST LOCATION IN LINE
USE BLANK AS SEPARATORGET CONTENTS OF NEXT MEMORY LOCATIONDISPLAY CONTENTSSEE IF ADDRESS OF DISPLAYED LOCATION IS/GREATER THAN OR EQUAL TO ENDING ADDRESSIF NOT, MORE TO DISPLAY
CARRIAGE RETURN/LINE FEED TO END LINEALL DONE
GET ADDRESS (IF PRESENT) FROM INPUT STREAMBRANCH IF NO NUMBER PRESENT
IF MORE TO GO, POINT TO NEXT LOC TO DISPLAYGET LOW ORDER BITS OF NEW ADDRESSSEE IF LAST HEX DIGIT OF ADDRESS DENOTES/START OF NEW LINENO - NOT AT END OF LINEYES - START NEW LINE WITH ADDRESS
RESTORE REGISTERS AND BEGIN EXECUTION(RSTOR IS IN KEYBOARD MONITOR)
IF NO STARTING ADDRESS, MAKE SURE THAT/CARRIAGE RETURN TERMINATED COMMANDERROR IF NOT
ELSE, GET TERMINATORSEE IF CARRIAGE RETURN
: ERROR IF NOT PROPERLY TERMINATED; WANT NUMBER TO REPLACE SAVE PGM COUNTER
BBA,MHH,ML,A
RSTOR
A,DCRERROR
GETHXGCM05GCM05A,DCRERRORH,PSAVM,CHM,BGCM10
c,l
COMMAND IMPLEMENTING ROUTINES
DADDADMOVINXMOVMOVPCHL
MVI C,2CALL GETNMPOP 0POP H
CALL CROUTMOV A,HCALL NMOUTMOV A,LCALL NMOUT
MVI C, ,CALL ECHOMOV A,MCALL NMOUTCALL HILO
FALSE DCM15JNC DCM15CALL CROUTJMP GETCM
INX HMOV A,LANI NEWLN
JNZ DCM10JMP DCM05
MVI
MOVCPIJNZ
JMP
CALLFALSEJNCMOVCPIJNZLXIMOVINXMOVJMP
SOURCE STATEMENT
FUNCTIOL~: DCMDINPUTS: NONEOUTPUTS: NONECALLS: ECHO,NMOUT,HILO,GETCM,CROUT,GETNMDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: DCMD IMPLEMENTS THE DISPLAY MEMORY (0) COMMAND
FUNCTION: GCMDINPUTS: NONEOUTPUTS: NONECALLS: ERROR,GETHX,RSTTFDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: GCMD IMPLEMENTS THE BEGIN EXECUTION (G) COMMAND.
FUNCTION: ICMDINPUTS: NONEOUTPUTS: NONECALLS: ERROR,ECHO,GETCH,VALDL,VALDG,CNVBN,STHLF,GETNM,CROUTDESTROYS: A,8,C,D,E,H,L,F/F'SDESCRIPTION: ICMD IMPLEMENTS THE INSERT CODE INTO MEMORY (I) COMMAND.
1440144114421443144414451446144714481449 :**********************************************************************14501451145214531454 ,1455 :**********************************************************************145614571458145914601461146214631464 ,1465 DCMD:14661467146814691470 DCM05:147114721473147414751476 DCM10:14771478147914801481148214831484+148514861487 DCM15:14881489149014911492149314941495 ,1496 :*******************************************************~.********
149714981499150015011502150315041505 ,1506 GCMD:150715081509+151015111512151315141515151615171518 GCM05:1519152015211522 GCM10:1523152415251526 ,1527 ;*****************************************************************152815291530153115321533153415351536 ,1537 ICMD:1538
SEQ
0437 0E02~439 CD5B06043C 010430 El
043E CDEB050441 7C0442 CDC7060445 700446 CDC706
0449 0E20044B CDF805044E 7E044F CDC7060452 CDA006
0455 D25E040458 CDE805045B C30804
045E 23045F 700460 E60F
0462 C249040465 C33E04
0468 CD2606
046B 027004046E 7A046F FE0D0471 C211060474 21F2200477 710478 230479 70047A C38304
0470 7A047E FE0D0480 C21106
0483 C31B03
LOC OBJ
0430 0~
0431 090432 7E0433 230434 660435 6F0436 E9
0486 0E01
ISIS-II 8888/8885 MACRO ASSEMBLER, X108 SOK85 PAGE 17
,;*********************************************************,~********
SOURCE STATEMENT
,;*****************************************************************
CALr, 8ETNM GET SINGLE NUMBER FROM INPUT STREAMMVI A,UPPERSTA TEMP TEMP WILL HOLD THE UPPER/LOWER HALF BYTE FLAGPOP 0 ADDRESS OF START TO DE
MOVE ANOTHER BYTE
ELSE, CHECK TO SEE IF VALID HEX DIGITIF NOT, BRANCH TO HANDLE ERROR CONDITION
DESTINATION ADDRESS TO HLMOVE BYTE TO DESTINATIONINCREMENT DESTINATION ADDRESS
TEST FOR DESTINATION ADDRESS OVERFLOWIF SO, CAN TERMINATE COMMANDINCREMENT SOURCE ADDRESSELSE, GET BACK ENDING ADDRESSSEE IF ENDING ADDR)=SOURCE ADDRIF NOT, COMMAND IS DONE
GET A CHARACTER FROM INPUT STREAM
ECHO ITPUT CHARACTER BACK INTO ASEE IF CHARACTER IS A TERMINATING CHARACTERIF SO, ALL DONE ENTERING CHARACTERSELSE, SEE IF VALID DELIMITERIF SO SIMPLY IGNORE THIS CHARACTER
ILLEGAL CHARACTERMAKE SURE ENTIRE BYTE FILLED THEN ERROR
HERE FOR ESCAPE CHARACTER - INPUT IS DONEADD CARRIAGE RETURN
USE DASH FOR SEPARATORGET NEW VALUE FOR MEMORY LOCATION, IF ANY
TOGGLE STATE OF FLAGPUT NEW VALUE OF FLAG BACKPROCESS NEXT DIGIT
GET NUMBER TO HL - DENOTES MEMORY LOCATION
GET TERMINATORSEE IF SPACEYES - CONTINUE PROCESSINGELSE, SEE IF COMMANO - TERMINATE COMMAND
GET CONTENTS OF SPECIFIED LOCATION TO ADISPLAY CONTENTS ON CONSOLE
GET A NUMBER, IF PRESENT, FROM INPUT
SOURCE ADDRESS TO HL
GET SOURCE BYTE
GET 3 NUMBERS FROM INPUT STREAMDESTINATION ADDRESS TO BCENDING ADDRESS TO HLSTARTING ADDRESS TO DE
SAVE ENDING ADDRESS
CONVERT DIGIT TO BINARYMOVE RESULT TO CSTORE IN APPROPRIATE HALF WORDGET HALF BYTE FLAGSET F/F'S8RANCH IF FLAG SET FOR UPPERIF LOWER, INC ADDRESS OF BYTE TO STORE IN
,,
A,D, ,
INVRTTEMPICM05
GETCM
SCM10
HH,DL,E
A,MH,BL,CM,ABA,BCGETCMoHHILOGETCMGETCM'MCM05
STHF0ERROR
GETCHC,AECHOA,CTERMICM25VALOLICM05ICM05VALOGICM20ICM20CNVBNC,ASTHLFTEMPAICM10D
STHF0CROUTGETCM
C,3GETNMBHD
A,MNMOUTC, '-'ECHOGETHX
GETHXBH
MVICALLPOPPOPPOP
MOVCALLMVICALLCALL
CALLPUSHPOP
CALLCALLJMP
XRISTAJMP
CALLJMP
PUSHMOVMOV
MOVMOVMOVMOVINXMOVORAJZINXPOPCALLFALSEJNCJMP
MOVCPIJZCPIJNZ
CALLMOVCALLMOVCPIJZCALLTRUEJCCALLFALSEJNCCALLMOVCALLLOAORAJNZINX
FUNCTION: SCMDINPUTS: NONEOUTPUTS: NONECALLS: GETHX,GETCM,NMOUT,ECHODESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: SCMD IMPLEMENTS THE SUBSTITUTE INTO MEMORY (S) COMMAND.
FUNCTION: MCMDINPUTS: NONEOUTPUTS: NONECALLS: GETCM,HILO,GETNMDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: MCMD IMPLEMENTS THE MOVE DATA IN MEMORY (M) COMMAND.
,MCMD:
MCMI5:
ICM25:
ICM21:
ICM05:
ICM10:
SCMI5:
,SCMD:
SCM10:
SEQ
15391540154115421543154415451546154715481549155015511552+155315541555+1556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159115911592159315941595
1596159715981599160016111612168316141685161616071608+16091611161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637
14C7 CD340784CA CDEB0514CD C38804
04D0 0E030402 CD5B0604D5 Cl04D6 El0407 Dl
0488 CD5B0604dB 3EFF8480 32F0200490 01
8491 C01F868494 4F8495 COF8058498 798499 FE1B849B CAC784849E C07987
84A1 DA918484A4 C05E07
84A7 02C18484AA COBB8584AO 4F84AE CD3F878481 3AF0288484 878485 C2898484B8 13
1489 EEFF1488 32F028848E C39184
04C1 CD340784C4 C31106
14F0 CD260604F3 C514F4 El
14F5 7A04F6 FE2014F8 CA000504FB FE2C04FD C20804
0500 7E0501 CDC7061504 0E2D0506 CDF8050509 CD2606
0408 E50409 62040A 6B
040B 7E040C 6884DD 6904DE 7784DF 1314E8 7884E1 Bl14E2 CA881414E5 1384E6 E184E7 CDA816
84EA 02181414EO C3D884
LOC OBJ
ISI5-II 8080/~085 MACRO ASSEMBLER, X108 SDK85 PAGE 18
LOC OBJ SEQ SOURCE STATEMENT
,;*****************************************************************
FUNCTION: XCMDINPUTS: NONEOUTPUTS: NONECALLS: GETCH,ECHO,REGDS,GETCM,ERROR,RGADR,NMOUT,CROUT,GETHXDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: XCMD IMPLEMENTS THE REGISTER EXAMINE AND CHANGE (X)
COMMAND.
XCMD:
XCM05:
; ADDRESS OF SAVE LOCATION FROM TABLE
ECHO IT
ECHO SPACE TO USER
USE DASH AS SEPARATORSEE IF THERE IS A VALUE TO PUT INTO REGISTERNO - GO CHECK FOR NEXT REGISTER
ELSE, SAVE THE TERMINATOR FOR NOWGET BACK LENGTH FLAGPUT ADDRESS OF SAVE LOCATION INTO HLSET FIF'SIF 8 BIT REGISTER, BRANCHSAVE UPPER 8 BITSPOINT TO SAVE LOCATION FOR LOWER a BITS
STORE ALL OF 8 BIT OR LOwER 1/2 OF 16 BIT REG
SIZE OF ENTRY IN RTAB TABLEPOINTER INTO REGISTER TABLE RTABADD ENTRY SIZE TO POINTERDO NEXT REGISTER
BRANCH IF NOT CARRIAGE RETURNELSE, DISPLAY REGISTER CONTENTSTHEN TERMINATE COMMAND
SET F/F'SBRANCH IF NOT AT END OF TABLEELSE, OUTPUT CARRIAGE RETURN LINE FEEDAND EXIT
PUT SPACE INTO TEMP AS DELIMITER
PUT POINTER ON STACK
GET TERMINATORSEE IF A BLANKYES - GO CHECK POINTER INTO TABLENO - SEE IF COMMANO - MUST BE CARRIAGE RETURN TO END COMMAND
GET REGISTER IDENTIFIER TO CCONVERT IDENTIFIER INTO RTAB TABLE AD DR
PUT POINTER TO REGISTER ENTRY INTO HL
FETCH LENGTH FLAG FROM TABLESAVE ADDRESS OF SAVE LOCATION
ELSE, STORE LOWER 8 BITS OF NUMBER ENTERED
MOVE ADDRESS TO HLSAVE LENGTH FLAGGET 8 BITS OF REGISTER FROM SAVE LOCATIONDISPLAY ITGET BACK LENGTH FLAGSAVE IT AGAINSET F/F'SIF 8 BIT REGISTER, NOTHING MORE TO DISPLAYELSE, FOR 16 BIT REGISTER, GET LOWER 8 BITS
DISPLAY THEM
GET 'l'ERMINATORSAVE IN MEMORYCLEAR STACK OF LENGTH FLAG AND ADDRESS10F SAVE LOCATIONGO INCREMENT REGISTER TABLE POINTER
IF NO VALUE PRESENT, BRANCH
INCREMENT ADDRESS OF MEMORY LOCATION TO VIEW
,. GET REGISTER IDENTIFIER
SHR 8
, ,
M,C
A,DTEMPooXCM27
C, '-'ECHOGETHXXCM30XCM3"A,DTEMPPSWHAXCM2SM,BH
D,RTABSHoXCM10
GETCHC,AECHOA,CCRXCM05REGDSGETCM
TEMP
XCM15
A,MAXCM18CROUTGETCM
GETCM
HE,MD,RAMSTHB,MooHBA,MNMOUTPSWPSWAXCM20HA,MNMOUT
C,ARGADR8HC,ECHOA,CTEMP
SCM15SCM15M,C
HSCM05
MOV
MOVSTAPOPPOPJMP
LXIPOPDADJMP
MVICALLCALLFALSEJNCMOVSTAPOPPOPORAJZMOVDCX
MOVCALLPUSHPOPMVICALLMOVSTA
CALLMOVCALLMOVCPIJNZCALLJMP
MOVORAJiUCALLJHP
LOACPIJZCPIJNZ
PUSHMOVMVIINXMOVPUSHPUSHPOPPUSHMOVCALLPOPPUSHORAJZDCXMOVCALL
FALSEJNCMOV
INXJMP
XCM27:
XCM28:
XCM25:
XCM30:
XCMI8:
XCM15:
XCM10:
SCM15:
16381639+164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170"17011782170317041785178617971788178917181711+17121713171417151716171717181719172817211722172317241725172617271728172917301731173217331734
057E 71
8567 8E208569 CDF885856C C02696
856F 0287858572 7A9573 32F0288576 F18577 E19578 879579 CA7E05057C 700570 2B
0587 7A0588 32FD200588 010S8C 018580 C37F0S
957F 1103990582 E10583 190584 C33605
0514 CDIF060517 4F0518 CDF805051B 79051C FE0D051E C227050521 CDEA060524 C30804
0536 3AFD200539 FE20053B CA4305053E FE2C0540 C20804
0543 7E0544 B70545 C24E050548 CDEB05054B C39804
054E E5954F 5E9559 16200552 230553 460554 059555 058556 E19557 C59558 7E0559 CDC786955C Fl9550 F5955E B7855F CA67850562 2B8563 7E8564 CDC786
0527 4F0528 CDIB07052B C5052C El0520 0E20052F COF8050532 790533 32FD20
0510 23~511 C3F504
050C 021005050F 71
ISIS-II 8888/8885 MACRO ASSEMBLER, X188 PAGE 19
UTILITY ROUTINES
SOURCE STATEMENT
i***************************************************** *************
;*****************************************************************
SAVE BCB<--0, C<--' BITS TO RECEIVE
RESTORE SAVED REGISTERS
WAIT UNTIL MIDDLE OF NEXT BITGET THE BITINTO CARRYGET PARTIAL RESULTSHIFT IN NEXT DATA BITREPLACE RESULTDEC COUNT OF BITS TO GOBRANCH IF MORE LEFTELSE, WANT TO WAIT OUT STOP aIT
GET RESULT
SUBTRACT CODE FOR '0' FROM ARGUMENTWANT TO TEST FOR RESULT OF 0 TO 9IF SO, THEN ALL DONEELSE, RESULT BETWEEN 17 AND 23 DECIMALSO RETURN AFTER SUBTRACTING BIAS OF 7
THAT'S IT
GET INPUT BITINTO CARRY wITH ITBRANCH IF NO START bITWAIT UNTIL MIDDLE OF BIT
SAVE DE
SEND A BITWAIT FOR TTY TO HANDLE IT
SAVE BCSAVE DESTART BIT MASKB WILL COUNT BITS TO SEND
PICK UP BITS LEFT TO SENDLOW ORDER BIT TO CARRYPUT REST BACKSHIFTED ENABLE BITSHIFT IN DATA BITCOMPLEMENT DATA BITDEC COUNTSEND IF MORE BITS NEED TO BE SENTELSE, SEND STOP BITS
D,IBTIMDELAY
A,B
A,C'0 1
18
B,ACCI10D,IBTIMDELAYA,BBD
o
BoA,STRTB,7
CI05D,WAI'l'DELAYBB,8
D,OBTIMDELAYA,C
C,AA,SSTRT
88HBC005A,STOPB
LXICALLRIMRALMOVRARMOVOCRJNZLXICALLMOVPOPPOPEIRET
MOVSUICPIRMSUIRET
RIMRALJCLXICALLPUSHLXI
01PUSH
01PUSHPUSHMVIMVI
SIMLXICALLMOVRARMOVMVIRARXRIOCRJPMVISIM
FUNCTION: CNVBNINPUTS: C - ASCII CHARACTER '0 1 -'9 1 OR 'A'-IF'OUTPUTS: A - 8 TO F HEXCALLS: NOTHINGDESTROYS: A,F/F'SDESCRIPTION: CNVBN CONVERTS THE ASCII REPRESENTATION OF A HEX
CNVBN INTO ITS CORRESPONDING BINARY VALUE. CNVBNDOES NOT CHECK THE VALIDITY OF ITS INPUT.
FUNC'l'ION: CIINPUTS: NONEOUTPUTS: A - CHARACTER FROM TTYCALLS: DELAYDESTROYS: A,F/F'SDESCRIPTION: CI WAITS UNTIL A CHARACTER HAS BEEN ENTERED AT THE
. TTY AND THEN RETURNS THE CHARACTER, VIA THE AREGISTER, TO THE CALLING ROUTINE. THIS ROUTINEIS CALLED BY THE USER VIA A JUMP TABLE IN RAM.
FUNCTION: COINPUTS: C - CHARACTER TO OUTPUT TO TTYOUTPUTS: C - CHARACTER OUTPUT TO TTYCALLS: DELAYDESTROYS: A,F/FISDESCRIPTION: CO SENDS ITS INPUT ARGUMENT TO THE TTY.
i······································*···**·*····*** ************
,i******·********************************************** *****************
CI10:
,CNVBN:
CI:
CI05:
,CO:
COI5:
SEQ
17351736173717381739174017411742174317441745174617471748174917581751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517cl6178717881789179017911792179317941795179617971798179918801801180218031804180518061807188818891810181118121813181418151816181718181819182818211822182318241825182618271828182918381831183218331834
0592 20~593 17~594 DA92050597 114602059A CDF1050590 C5059E 010800
0590 F30591 05
05Al 118C0405A4 CDF10505A7 2005A8 1705A9 7805AA IF05AB 47~5AC 0005AD C2A10505B0 118C0405B3 CDF10505B6 780587 Cl0588 010589 FB058A C9
05B8 7985BC 0630858E FE0A85C0 F885C1 060785C3 C9
05C4 F38SC5 C585C6 0585C7 3EC085C9 8687
85CB 3885CC 118C8485CF CDF1858502 798503 IF85D4 4F8505 3E808507 IF1508 EE8815DA 8515DB F2CB8585DE 3E4885E8 38
LOC OBJ
ISIS-II 8080/8085 MACRO ASSEMBLER, X108 SDKB5 PAGE 20
:*******************************************************************
:**********************************************************************
,ECHO:
FUNCTION: FRETINPUTS: NONE
ALL DONE
WAIT 4 BIT TIME (FAKE PARITY + 3 STOP BITS)
RESTORE SAVED REGISTERS
IF ARGUMENT NOT 0, KEEP GOING
DECREMENT INPUT ARGUME~T
SEND * TO CONSOLESKIP TO BEGINNING OF NEXT LINETRY AGAIN-POR ANOTHER COMMAND
D,TIM4DELAYo8
C,CRECHO
oA,DEDELAY
C, '*'ECHOCROUTGETCM
LXICALLPOPPOPEIR2T
MVICALLRET
DCXMOVORAJNZRET
MOV 8,C SAVE ARGUMENTMVI A,ESCCMP 8 SEE IF ECHOING AN ESCAPE CHARACTERJNZ ECH0S NO - BRANCHMVI C,' $' YES - ECHO AS $
CALL CO DO OUTPUT THROUGH MONITORMVI A,CRCMP B SEE IF CHARACTER ECHOED wAS A CARRIAGE RETURNJNZ ECH10 NO - NO NEED TO TAKE SPECIAL ACTIONMVI C,LF YES - WANT TO ECHO LINE FEED, TOOCALL CO
MOV C,8 RESTOR~ ARGUMENTRET
MVICALLCALLJMP
SOURCE STATEMENT
FUNCTION: ERRORINPUTS: NONEOUTPUTS: NONECALLS: ECHO,CROUT,GETCMDESTROYS: A,B,C,F/F'SDESCRIPTION: ERROR PRINTS THE ERROR CHARACTER (CURRENTLY AN ASTERISK)
ON THE CONSOLE, FOLLOWED BY A CARRIAGE RETURN-LINE FEED,AND THEN RETURNS CONTROL TO THE COMMAND RECOGNIZER.
FUNCTION: DELAYINPUTS: DE - 16 BIT INTEGER DENOTING NUMBER OF TIMES TO LOOPOUTPUTS: NONECALLS: NOTHINGDESTROYJ: A,D,E,F/F'SDESCRIPTION: DELAY DOES NOT RETURN TO CALLER UN1'IL INPUT ARGUMENT
IS COUNTED DOWN TO 0.
FUNCTION CROUTINPUTS: NONEOUTPUTS: NONECALLS: ECHODESTROYS: A,B,C,F/F'SDESCRIPTION: CROUT SENDS A CARRIAGE RETURN (AND HENCE A LINE
FEED) TO THE CONSOLE.
FUNCTION: ECHOINPUTS: C - CHARACTER TO ECHO TO TERMINALOUTPUTS: C - CHARACTER ECHOED TO TERMINALCALLS: CODESTROYS: A,8,F/F ' SDESCRIPTION: ECHO TAKBS A SINGLE CHARACTER AS INPUT AND, VIA
THE MONITOR, SENDS THAT CHARACTER TO THE USERTERMINAL. A CARRIAGE RETURN IS ECHOED AS A CARRIAGERETURN LINE FEED, AND AN ESCAPE CHARACTER IS ECHOED AS $.
CROUT:
,:*****************************************************************
,:*************************************************.*****************
DELAY:
ECH10:
ECH0S:
ERROR:
,:**********************************************************************
1835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701~11
187218731874lti7518761877187818791880188118CJ2188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933
SEQ
05E8 0E0D05ED CDFS0505F0 C9
05F8 4105F9 3EIB05FB 8805FC C2010605FF 0E24
0601 CDC4050604 3E0D0606 880607 C20F06060A 0E0A060C CDC405
060F 480610 C9
05Fl 1805F2 7A05F3 B305F4 C2F10505F7 C9
0611 8E2A0613 CDF8050616 CDEB058619 C38804
LOC 08J
85El 11301285E4 CDF18505E7 0105E8 Cl05E9 FB05EA C9
ISIS-II 8888/8885 MACRO ASSEMBLER, X188 SDK85 PAGE 21
,;*****************************************************************
,;**********************************************************************
,;**********************************************************************
CALLS: GETHX,HILO,ERRORDESTROYS: A,B,C,D,E,H,L,F/F'S
SAVE HLINITIALIZE RESULTINITIALIZE DIGIT FLAG TO fALSE
YES - ALL DONE, BUT WANT TO RETURN DELIMITER
IF NOT DELIMITER, SEE IF DIGITERROR IF NOT A VALID DIGIT, EITHER
GET A CHARACTER
ECHO THE CHARACTERSEE IF DELIMITERNO - BRANCH
MOVE RESULT TO BCRESTORE HLGET FLAGSET F/F'SIF FLAG NON-0, A NUMBER HAS BEEN fOUNDELSE, DELIMITER WAS FIRST CHARACTER
CONVERT DIGIT TO ITS BINARY VALUESET DIGIT FLAG NON-0*2*4*8*16CLEAR UPPER 8 BITS OF BC PAIRBINARY VALUE OF CHARACTER INTO CADD THIS VALUE TO PARTIAL RESULTGET NEXT CHARACTER
FIRST SET CARRY TRUETHEN COMPLEMENT IT TO MAKE IT FALSERETURN APPROPRIATELY
GET CHARACTER FROM TERMINALTURN OFF PARITY BIT IN CASE SET BY CONSOLEPUT VALUE IN C REGISTER FOR RETURN
HH,0E,0
GETCHC,AECHOVALDLGHX10GHX10D,CHBHA,EASRETFRET
VALDGERRORERRORCNVBNE,0FFHHHHHB,0C,ABGHX05
CIPRTY0C,A
PUSHLXIMVI
CALLANIMOVRET
CALLMOVCALLCALLFALSEJNCMOVPUSHPOPPOPMOVORAJNZJZ
STCCMCRET
CALLFALSEJNCCALLMVIDADDADDADDADMVIMOVDADJMP
FUNCTION: GETCHINPUTS: NONEOUTPUTS: C - NEXT CHARACTER IN INPUT STREAMCALLS: CIDESTROYS: A,C,F/F'SDESCRIPTION: GETCH RETURNS THE NEXT CHARACTER IN THE INPUT STREAM
TO THE CALLING PROGRAM.
SOURCE STATEMENT
OUTPUTS: CARRY - ALWAYS 0CALLS: NOTHINGDESTROYS: CARRYDESCRIPTION: FRET IS JUMPED TO BY ANY ROUTINE THAT WISHES TO
INDICATE FAILURE ON RETURN. FRET SETS THE CARRYFALSE, DENOTING FAILURE, AND THEN RETURNS TO THECALLER OF THE ROUTINE INVOKING FRET.
FUNCTION: GETHXINPUTS: NONEOUTPUTS: BC - 16 BIT INTEGER
o - CHARACTER WHICH TERMINATED THE INTEGERCARRY - 1 IF FIRST CHARACTER NOT DELIMITER
- 0 IF FIRST CHARACTER IS DELIMITERCALLS: GETCH,ECHO,VALDL,VALDG,CNVBN,ERRORDESTROYS: A,B,C,D,E,F/F'SDESCRIPTION: GETHX ACCEPTS A STRING OF HEX DIGITS FROM THE INPUT
STREAM AND RETURNS THEIR VALUE AS A 16 BIT BINARYINTEGER. IF MORE THAN 4 HEX DIGITS ARE ENTERED,ONLY THE LAST 4 ARE USED. THE NUMBER TERMINATES WHENA VALID DELIMITER IS ENCOUNTERED. THE DELIMITER ISALSO RETURNED AS AN OUTPUT Of THE fUNCTION. ILLEGALCHARACTERS (NOT HEX DIGITS OR DELIMITERS) CAUSE ANERROR INDICATION. IF THE FIRST (VALID) CHARACTERENCOUNTERED IN THE INPUT STREAM IS NOT A DELIMITER,GETHX WILL RETURN WITH THE CARRY BIT SET TO 1;OTHERWISE, THE CARRY BIT IS SET TO 0 AND THE CONTENTSOF BC ARE UNDEFINED.
FUNCTION: GETNMINPUTS: C - COUNT OF NUMBERS TO FIND IN INPUT STREAMOUTPUTS: TOP OF STACK - NUMBERS FOUND IN REVERSE ORDER (LAST ON TOP
OF STACK)
GETHX:
GHX05:
GHx10:
,GETCH:
,FRET:
SEQ
1934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000+200120022003200420052006200720082009201020112012+201320142015201620172018201920202021202220232024202520262027202820292030283120322033
0626 E50627 210000062A 1E00
062C CD1F06062F 4F0630 CDF8050633 CD7907
0636 0245060639 510b3A E5063B C1063C £10630 7B063E B7063F C232070642 CA1C06
0645 CD5E07
0648 021106064B CDBB05064E 1EFF0650 290651 290652 290653 290654 06000656 4F8657 098658 C32C06
061F CD90050622 E67F0624 4F0625 C9
861C 378610 3F061E C9
LOC OBJ
ISIS-II 8080/8085 MACRO ASSEMBLER, X108 SDK85 PAGE 22
*****************************************************************
CALLS: NOTHINGDESTROYS: F/F'SDESCRIPTION: HILO COMPARES THE 2 16 BIT INTEGERS IN HL AND DE. THE
INTEGERS ARE TREATED AS UNSIGNED NUMBERS. THE CARRYBIT IS SET ACCORDING TO THE RESULT OF THE COMPARISON.
FUNCTION: HILOINPUTS: DE - 16 BIT INTEGER
HL - 16 BIT INTEGEROUTPUTS: CARRY - 0 IF HL<DE
- 1 IF HL>-DE
SOURCE STATEMENT
DESCRIPTION: GETNM FINDS A SPECIFIED COUNT OF NUMBERS, BETWEENAND 3, INCLUSIVE, IN THE INPUTSTREAM AND RETURNS THEIR VALUES ON THE STACK. IF 2OR MORE NUMBERS ARE REQUESTED, THEN THE FIRST MUST BELESS THAN OR EQUAL TO THE SECOND, OR THE FIRST ANDSECOND NUMBERS WILL BE SET EQUAL. THE LAST NUMBERREQUESTED MUST BE TERMINATED BY A CARRIAGE RETURNOR AN ERROR INDICATION WILL RESULT.
2'S COMPLEMENT OF DE TO DE
ADD HL AND DE
YES - MAKE SECOND EQUAL TO THE FIRST
THIS OPERATION SETS CARRY PROPERLYRESTORE ORIGINAL DE CONTENTS
IF NOT, FILL REMAINING ARGUMENTS WITH 0FFFFH
SAVE BCSAVE A IN B REGISTERSAVE HL PAIRCHECK FOR DE • 8000H
GET THE 3 ARGUMENTS OUT
SEE IF FIRST >- SECONDNO - BRANCH
WE'RE AUTOMATICALLY DONE IF IT ISINCREMENT HL BY 1WANT TO TEST FOR 0 RESULT AFTER/INCREMENTINGIF SO, HL MUST HAVE CONTAINED 8FFFFHIF NOT, RESTORE ORIGINAL HLSAVE DEWANT TO TAKE 2'S COMPLEMENT OF DE CONTENTS
DECREMENT RESIDUAL COUNT1 IF NEGATIVE, PROPER RESULTS ON STACK
ELSE, GET RETURN ADDRREPLACE TOP RESULT ~ITH RETURN ADDRTRY AGAIN
PUT FIRST ON STACK - GET RETURN ADDRPUT SECOND ON STACK
1 PUT THIRD ON STACKPUT RETURN ADDRESS ON STACK
1 ELSE, SAVE NUMBER ON STACKDECREMENT MAXIMUM ARGUMENT COUNTDECREMENT ACTUAL ARGUMENT COUNTBRANCH IF NO MORE NUMBERS WANTEDELSE, GET NUMBER TERMINATOR TO ASEE IF CARRIAGE RETURNERROR IF SO - TOO FEW NUMBERSELSE, PROCESS NEXT NUMBER
PUT MAXIMUM ARGUMENT COUNT INTO L1 GET THE ACTUAL ARGUMENT COUNT
FORCE TO MAXIMUM OF 3IF 0, DON'T BOTHER TO DO ANYTHIINGELSE, PUT ACTUAL COUNT INTO H
GET A NUMBER FROM INPUT STREAMERROR IF NOT THERE - TOO FEW NUMBERS
A
GNM30
H
oBH
BB,AHA,DEHIL05HA,HLHIL05HoA,0FFHDO,AA,0FFHEE,ADA,LEA,HoD
H,A
L,3A,C3
BoHHILOGNM25GNM25D,HE,L
BLGNM15
GETHXERRORERRORBLHGNM10A,DCRERRORGNM85
XTHLPUSHPUSHPUSH
OCRRMPOPXTHLJMP
MVIMOVANIRZMOV
POPPOPPOPCALLFALSEJNCMOVMOV
PUSHMOVPUSHMOVORAJZINXMOVORAJZPOPPUSHMVIXRAMOVMVIXRAMOVINXMOVADDMOVADCPOP
PUSHOCRJNZ
MOV A,D WHEN COUNT ", CHECK LAST TERMINATORCPI CRJNZ ERROR 1 ERROR IF NOT CARRIAGE RETURNLXI B,0FFFFH ; HL GETS LARGEST NUMBERMOV A,L GET WHAT'S LEFT OF MAXIMUM ARG COUNTORA A CHECK FOR 0JZ GNM20 IF YES, 3 NUMBERS WERE INPUT
CALLFALSEJNCPUSHOCROCRJZMOVCPIJZJMP
ILO:
GNM30:
GNM15:
GNM25:
GNM20:
GNM05:
,GETNM:
GNM10:
SEQ
2034283520362837203828392048284128422843204428452846284728482049205020512852+285320542055205620572058205920602061206220632064206520662067206820692070207120722073207428752076207720782079+288828812"82208328842885208620872888208928902091209220932094209520962097209820992100210121022183210421052106210721"82109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133
0690 0295060693 540694 50
06A" C506A1 4706A2 E50GA3 7A06A4 B306A5 CAC10606A8 23"6A9 7C"6AA B50GAB CAC10606AE El06AF 058G80 3EFF06B2 AA06B3 578684 3EFF06B6 AB0687 5F0688 130689 70868A 8386BB 7C868C 8A0680 01
0695 E38696 050697 C58698 E5
0699 3D069A F8869B El069C E30690 C39906
8658 2E838650 798658 E6838668 C88661 67
0662 C026"6
0665 0211060668 C50669 20"66A 250668 CA77"60~6E 7A066F FE000671 CAl1060674 C36286
0677 7A0678 FEIo867A C211061670 01FFFF0680 700681 870682 CA8A06
1685 C50686 200687 C28586
168A Cl068B 01068C El0680 CDA006
LOC OBJ
ISIS-II 8181/8885 MACRO ASSEMBLER, X188 SOK85 PAGE 23
;********************************************************************
,;****************************************~*****************************
,~**********************************************************************
FUNCTION; PRVALINPUTS: C - INTEGER, RANGE 0 TO FOUTPUTS: C - ASCII CHARACTERCALLS: NOTHINGDESTROYS: B,C,H,L,F/F'SDESCRIPTION: PRVAL CONVERTS A NUMBER IN THE RANGE 0 TO F HEX TO
THE CORRESPONDING ASCII CHARACTER, 0-9,A-F. PRVALDOES NOT CHECK THE VALIDITY OF ITS INPUT ARGUMENT.
RESTORE ORIGINAL CONTENTS OF ARESTORE ORIGINAL CONTENTS OF BCRETURN WITH CARRY SET AS REQUIRED
IF HL CONTAINS 0FFFFH, THEN CARRY CAN/ONLY BE SET TO 1
RESTORE ORIGINAL CONTENTS OF REGISTERSSET CARRY AND RETURN
ADDRESS OF TABLECLEAR HIGH ORDER BITS OF BCADD DIGIT VALUE TO HL ADDRESSFETCH CHARACTER FROM MEMORY
RESTORE SAVED VALUE OF HL
ECHO CHARACTER
GET UPPER 4 BITS TO LOW 4 BIT POSITIONSMASK OUT UPPER 4 BITS - WANT 1 HEX CHAR
CONVERT LOWER 4 BITS TO ASCIISEND TO TERMINALGET BACK ARGUMENTMASK OUT UPPER 4 BITS - WANT 1 HEX CHAR
SAVE HL - DESTROYED BY PRVALSAVE ARGUMENT
~OAD HL WITH ADDRESS OF START OF TABLE
GET PRINT SYMBOL OF REGISTER
TEST FOR 0 - END OF TABLEIF NOT END, BRANCHELSE, CARRIAGE RETURN/LINE FEED TO END/DISPLAY
OUTPUT EQUALS SIGN, I.E. A=POINT TO START OF SAVE LOCATION ADDRESS
~ GET LSP OF SAVE LOCATION ADDRESS TO ESHR 8 ,PUT MSP OF SAVE LOC ADDRESS INTO D
POINT TO LENGTH FLAGGET CONTENTS OF SAVE ADDRESSDISPLAY ON CONSOLEGET LENGTH FLAGSET SIGN F/FIF 0, REGISTER IS 8 BITS
A,BB
HA,BBSRET
H,DIGTBB,0BC,M
HPSW
HCHARC,APRVALECHOPSWHCHARC,APRVALECHOH
H,RTAB
ECHOC, t.'ECHOHE,MD,RAMSTHoNMOUTA,MAREGIS
C,MA,CAREG10CROUT
MOVPOPRZT
POPMOVPOPJMP
LXIMVIDADMOVRET
PUSHPUSHRRCRRCRRCRRCANIMOVCALLCALLPOPANIMOVCALLCALLPOPRET
LXI
MOVMOVORAJNZCALLRET
CALLMVICALLINXMOVMVIINXLOAXCALLMOVORAJZ
SOURCE STATEMENT
FUNC'l'ION: REGDSINPUTS: NONEOUTPUTS: NONECALLS: ECHO,NMOUT,ERROR,CROUTDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: REG OS DISPLAYS THE CONTENTS OF THE REGISTER SAVE
LOCATIONS, IN FORMATTED FORM, ON THE CONSOLE. THEDISPLAY lIS DRIVEN FROM A TABLE, RTAB, WHICH CONTAINSTHE REGISTER'S PRINT SYMBOL, SAVE LOCATION ADDRESS,AND LENGTH (8 OR 16 BITS).
FUNCTION: NMOUTINPUTS: A - 8 BIT INTEGEROUTPUTS:. NONECALLS: ECHO,PRVALDESTROYS: A,B,C,F/F'SDESCRIPTION: NNMOUT CONVERTS THE 8 BIT, UNSIGNED INTEGER IN THE
A REGISTER INTO 2 ASCII CHARACTERS. THE ASCII CHARACTERSARE THE ONES REPRESENTING THE 8 ·BITS. THESE TWOCHARACTERS ARE SENT TO THE CONSOLE AT THE CURRENT PRINTPOSITION OF THE CONSOLE.
HIL85:
,NMOUT:
PRVAL:
,REGDS:
REGl":
REG05:
SEQ
21342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522~6
220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233
LOC OBJ
86BE 7886BF C116C0 C9
06C1 E116C2 7806C3 C186C4 C33207
06E2 21B40706E5 060006E7 0~
06E8 4E06E9 C9
06EA 21C407
06C7 E506Ce F506C9 0F06CA 0F06CB 0F06CC 0F06CO E60F86CF 4F0600 COE2060603 COF8050606 F10607 E68F0609 4F060A COE2060600 CDF80506E0 El06E1 C9
06ED 4E06EE 7906EF B706F0 C2F70606F3 CDEB0506F6 C9
06F7 CDF80506FA 0E3006FC CDF80506FF 2307"" 5E0701 16200703 230704 1A"7"5 COC7060708 7E0709 B7"70A CA1207
ISIS-II 8~80/80ti5 MACRO ASSEMBLER, X108 SDK85 PAGE 24
i***************************************************** ************
i**********~******************************************************
,;*****************************************************************
,;*****************************************************************
HL GETS ADDRESS OF TABLE STARTDE GET SIZE OF A TABLE ENTRY
ELSE, 16 SIT REGISTER SO MORE TO DISPLAYGET LOWER 8 BITSDISPLAY THEM
POINT TO START OF NEXT TABLE ENTRYDO NEXT REGISTER
GET REGISTER IDENTIFIERCHECK FOR TABLE END (IDENTIFIER IS 0)IF AT END OF TABLE, ARGUMENT IS ILLEGALELSE, COMPARE TABLE ENTRY AND ARGUMENTIF EQUAL, WE'VE FOUND WHAT WE'RE LOOKING FORELSE, INCREMENT TABLE POINTER TO NEXT ENTRYTRY AGAIN
SET CARRY TRUERETURN APPROPRIATELY
GET HALF BYTE FLAGSET FIF'SIF SET TO UPPEN, DON'T DO ANYTHINGELSE, WANT TO STORE THE VALUE 0DO IT
IF A MATCH, INCREMENT TABLE POINTER TO/SAVE LOCATION ADDRESSRETURN THIS VALUE
DoNMOUT
A,MAERRORCRGA10oRGA05
C,' ,ECHOHREG05
H,RTABD,RTABS
HB,HC,L
C,0STHLF
TEMPA
LXILXI
INXMOVMOVRET
DCXLDAXCALL
MVICALLINXJMP
MOVORAJZCMPJZDADJMP
LDAORARNZMVICALLRET
Sl'CRET
SOURCE STATEMENT
FUNCTION: STHF0INPUTS: DE - 16 BIT ADDRESS OF BYTE TO BE STORED INTOOUTPUTS: NONECALLS: STHLFDESTROYS: A,B,C,H,L,F/F'SDESCRIPTION: STHF0 CHECKS THE HALF BYTE FLAG IN TEMP TO SEE IF
IT IS SET TO LOWER. IF SO, STHF0 STORES A 0 TOPAD OUT THE LO~ER HALF OF THE ADDRESSED BYTEiOTHERWISE, THE ROUTINE TAKES NO ACTION.
FUNCTION: SRETINPUTS: NONEOUTPUTS: CARRYCALLS: NOTHINGDESTROYS: CARRYDESCRIPTION: SRET IS JUMPED TO BY ROUTINES WISHING TO RETURN SUCCESS.
SRET SETS THE CARRY TRUE AND THEN RETURNS TO THECALLER OF THE ROUTINE INVOKING SRET.
FUNCTION: RGADRINPUTS: C - CHARACTER DENOTING REGISTEROUTPUTS: BC - ADDRESS OF ENTRY IN RTAB CORRESPONDING TO REGISTERCALLS: ERRORDESTROYS: A,B,C,D,E,H,L,F/F'SDESCRIPTION: RGADR TAKES A SINGLE CHARACTER AS INPUT. THIS CHARACTER
DENOTES A REGISTER. RGADR SEARCHES THE TABLE RTABFOR A MATCH ON THE INPUT ARGUMENT. IF ONE OCCURS,RGADR RETURNS THE ADDRESS OF THE ADDRESS OF THESAVE LOCATION CORRESPONDING TO THE REGISTER. THISADDRESS POINTS INTO RTAB. IF NO MATCH OCCURS, THENTHE REGISTER IDENTIFIER IS ILLEGAL AND CONTROL ISPASSED TO THE ERROR ROUTINE.
FUNCTION: STHLFINPUTS: C - 4 BIT VALUE TO BE STORED IN HALF BYTE
DE - 16 BI' ADDRESS OF BYTE TO BE STORED INTOOUTPUTS: NONECALLS: NOTHINGDESTROYS: A,B,C,H,L,F/F'SDESCRIPTION: STHLF TAKES THE 4 BIT VALUE IN C AND STORES IT IN
HALF 'OF THE BYTE ADDRESSED BY REGISTERS DE. THEHALF BYTE USED (EITHER UPPER OR LOwER) IS DENOTEDBY THE VALUE OF THE FLAG IN TEMP. STHLF ASSUMESTHAT THIS FLAG HAS BEEN PREVIOUSLY SET(NOMINALLY BY ICMD).
RGA85:
,RGADR:
REGIS:
RGAI0:
,SRET:
STHF0:
SEQ
2234223522362237223822392248224122422243224422452246224722482249225022512252225322542255225622572258225922682261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333
871B 21C407871E 110388
0721 7E0722 870723 CA11060726 B90727 CA2E07072A 190728 C32107
872E 23072F 448738 408731 C9
0732 370733 C9
0734 3AFD20~737 B7073d C~
k:1739 ~E00
073B CD3F~7
073E C~
LOC OBJ
0700 IB070E lA070F CDC706
0712 0E200714 CDF8050717 230718 C3ED06
ISIS-II 8881/8885 MACRO ASSEMBLER, X118 SDK85 PAGE 25
MONITOR TABLES
SOURCE STATEMENT
;*****.***********************************************************
:*.** •••••• *•••• *•••• *•• *••••••• ***.***.***.***************************
IF UPPER HALF, GET BYTECLEAR UPPER 4 BITSSAVE BYTE IN BGET VALUE
ALIGN TO UPPER 4 BITSOR IN ORIGINAL LOwER 4 BITSPUT NEW CONFIGURATION BACK
MOVE ADDRESS OF BYTE INTO HLGET VALUEFORCE TO 4 BIT LENGTHPUT VALUE BACKGET HALF BYTE FLAGCHECK FOR LOWER HALFBRANCH IF NOTELSE, GET BYTECLEAR LOWER 4 BITSOR IN VALUEPUT BYTE BACK
ERROR IF NONE OF THE ABOVE
NO - CODE GREATER THAN 'F'OKAY - CODE IS 'A' TO 'F I
, INCLUSIVE
CHECK FOR COMMA
CHECK FOR CARRIAGE RETURN
TEST CHARACTER AGAINST '0'IF ASCII CODE LESS, CANNOT BE VALID DIGITELSE, SEE IF IN RANGE '0 1-'9'CODE BETWEEN '0' AND '9'CODE EQUAL 19'NOT A DIGIT - TRY FOR A LETTERNO - CODE BETWEEN '9' AND lA'
LENGTH OF SIGNON MESSAGE
CHECK FOR SPACE
TABLE OF ADDRESSES OF COMMAND ROUTINES
oHA,C0FHC,ATEMPASTH05A,M0F0HCM,A
A,M0FHB,AA,C
BM,A
SIGNON MESSAGECR,LF,'SDK-85 VER 2.1',CR,LF
SRETFRET
A,C
S~ET ..CRSRET
A,C'0 'FRET19 1
SRETSRETIA I
FRETIG'FRETSRET
$-SGNON
MOVANIMOVMOVRRCRRCRRCRRCORAMOVRET
PJSHPOPMOVANIMOVLOAORAJNZMOVANIORAMOVRET
DB
MOVCPIJZCPIJZCPIJZJMP
MOVCPIJ:~
CPIJMJZCPIJMCPIJPJMP
FUNCTION: VALDLINPUTS: C - CHARACTEROUTPUTS: CARRY - 1 IF INPUT ARGUMENT VALID DELIMTER
- 0 OTHERWISECALLS: NOTHINGDESTROYS: A,F/F'SDESCRIPTION: VALDL RETURNS SUCCESS IF ITS INPUT ARGUMENT IS A VALID
DELIMITER CHARACTER (SPACE, COMMA, CARRIAGE RETURN) ANDFAILURE OTHERWISE.
CALLS: NOTHINGDESTROYS: A,F/FISDESCRIPTION: VALDG RETURNS SUCCESS IF ITS INPUT ARGUMENT IS
AN ASCII CHARACTER REPRESENTING A VALID HEX DIGIT(0-9,A-F), AND FAILURE OTHERWISE.
FUNCTION: VALDGINPUTS: C - ASCII CHARACTEROUTPUTS: CARRY - 1 IF CHARACTER REPRESENTS VALID HEX DIGIT
- 0 OTHERWISE
,: ..........•......................................................
STHLF:
STH05:
VALDL:
,VALDG:
SGNON:
,:***********.******************************************.**********
2424 LSGNON EQU24252426 CADR:
SEQ
233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523662387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423
073F 050740 E10741 790742 E60F0744 4F0745 3AF0200748 B70749 C25207074C 7E0740 E6F0074F 810750 770751 C9
0752 7E0753 E60F0755 470756 790757 0F0758 0F0759 0F075A 0F075B B0075C 77075D C9
0779 79077A FE2C077C CA3207077F FE0D07d1 CA320707d4 FE200786 CA32070789 C31C06
07dC 000780 0A078E 534448200792 383520200796 20564552079A 20322E31079E 00079F 0A0014
175E 79875F FE381761 FA1C068764 FE390766 FA32071769 CA3207176C F£41876E FA1C061771 FE478773 F21C060776 C33207
LOC OBJ
ISIS-II B06~/8085 MACRO ASSEMBLER, X108 SDK85 PAGE 26
i··················*·*·······*·*····*···*···*···**·*·* .*.*.* ••**.*.* •• *
IN THE FOLLOWING LOCATIONS, THE USER MAY PLACE JUMP INSTRUCTIONS TOROUTINE3 FOR HANDLING THE FOLLOWING:-
A) RST 5,6 & 7 INSTRUCTIONSB) HARDWIRED USER INTERRUPT (RST 6.5)C) KEYBOARD "VECTORED INTERRUPT" KEY (RST 7.5)
SOURCE STATEMENT
2520 RST65: DB
ROUTINE
BRANCH TABLE FOR USER ACCESSIBLE ROUTINES
TTY CONSOLE OUTPUTTTY CONSOLE INPUT
NUMBER OF VALID COMMANDS
START OF USER BRANCH LOCATIONS
TABLE OF PRINT VALUES OF HEX DIGITS
TABLE OF VALID COMMAND CHARACTERS
JUMP TO RST 6 ROUTINE
JUMP TO RST 6.5 (HARDWIRED USER INTERRUPT)
JUMP TO RST
DUMMY
BRTAB
USRBR
COCI
0,0,0
0,0,0
'0 ''1 ''2 ''3 ', 4 ''5 I
'6 ', 7 ''8 ''9 ''A''B''C''0''E''F'
i TABLE OF REGISTER INFORMATION'A ' i REGISTER IDENTIFIERASAV AND 0FFH i ADDRESS OF REGISTER SAVE LOCATION8 i LENGTH FLAG - 8-8 BITS, 1-16 BITS$-RTAB i SIZE OF AN ENTRY IN THIS TABLE'B 'BSAV AND 0FFHo'C'CSAV AND 0FFH8'0 'DSAV AND 8FFH8'E'ESAV AND 0FFHo'F'FSAV AND 8FFH8'I'ISAV AND 0FFH8'H'HSAV AND 0FFHo'L'LSAV AND 0FFHo'M'HSAV AND 8FFH1'5'SSAV+l AND 0FFH1'piPSAV+l AND 0FFH1o END OF TABLE MARKERSo
0,0,0
10''G 'I I I
'M''5''X'$-CTAB
oXCMDSCMDMCMDICMDGCMDDCMD
Dv.OwOwOWOWOWOw
DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
DBDBDBDBDB03EQU
JMPJMP
ORG
ORG
DBDBDB
RTABS EQUDB03DBDBDBDBDBDBDBDBDBDBDBDBDBDBDB03DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
,RTAB:
,RSET5: DB
NCMDS,DIGTB:
,CTAB:
2519 RSE'r6: DB
SEQ
24272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924682461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992580258125022503250425052506258725082509251025112512251325142515251625172518
20C2
20C2 002~C3 002ldC4 002eC5 1d020C6 0020C7 ~0
20CS 0020C9 0020CA ~0
07FA
0784 300785 310786 320787 3307S8 3407B9 35078A 3607B8 3707BC 3887BO 3987BE 4187BF 4207C8 4387Cl 4487C2 4587C3 46
07FA C3C40507FD C39005
07AE 4407Af 470780 4907Bl 4007B2 5307B3 580006
07C4 4187C5 EE07C6 00080387C7 4207C8 EC87C9 0007CA 4307C8 EB07CC 0007CD 4407CE EA87CF 008700 458701 E90702 880703 460704 ED8705 800706 490707 Fl0708 000709 48070A F0070B 80070C 4C8700 EF070E 00070F 4007E0 F007El 0107E2 5387E3 F507E4 0107E5 5007E6 F307E7 0187E8 0007E9 00
LOC OBJ
07A0 000~
07A2 140507A4 f004k'7A6 000407A8 860407AA 680407AC 3704
ISIS-II 8181/8185 MACRO ASSEMBLER, X118 SoK85 PAGE 27
LOC OBJ SEQ SOURCE STATEMENT
20CS 00 2521 RSE'.£'7 : OJ 0,0,0 JUMP TO Rs'r 7 ROUTINE20CC 0020Cf: H620CE 00 2522 USINT: DB 0,0,0 JUMP TO "VECTORED INTERRUPT" KEY ROUTINE20CF 0162000 00
2523 ,2524 i***************************************************** *****************2525 ,2526 i SPACE IS RESERVED HERE FOR THE MONITOR STACK2527 ,2528 i***************************************************** *****************2529
20E9 2530 ORG MNSTK i START OF MONITOR STACK25312532 SAVE LOCATIONS FOR USER REGISTERS2533 ,
20E9 00 2534 ESAV: DB 0 E REGISTER20EA 00 2535 DSAV: DB 0 0 REGISTER20EB 00 2536 CSAV: DB 0 C REGISTER20EC· 00 2537 BSAV: DB 0 B REGIS'rER20Eo 00 2538 FSAV: DB 0 FLAGS20EE 00 2539 ASAV: DB 0 A REGISTER20EF 00 2540 LSAV: DB 0 L REGISTER20F0 00 2541 HSAV: DB 0 H REGISTER20Fl "0 2542 ISAV: DB 0 INTERRUPT MASK
2543 PSAV: PROGRAM COUNTER20F2 00 2544 PCLSV: 03 0 LOW ORDER BYTE20F3 00 2545 PCHSV: DB 0 HIGH ORDER BYTE
2546 SSAV: STACK POINTER21F4 00 2547 SPLSV: DB 0 LOW ORDER BYTE20F5 00 2548 SPHSV: DB 0 HIGH ORDER BYTE
2549 ,2550 i***************************************************** *****************2551 ,2552 i MONITOR STORAGE LOCATIONS2553 ,
20F6 8000 2554 CURAD OW CURRENT ADDRESS28F8 00 2555 CURDT DB CURRENT DATA0104 2556 OBUFF OS OUTPUT BUFFER
2557 TEMP: TEMPORARY LOCATION FOR TTY MONITOR2558 TEMPORARY LOCATION FOR SINGLE STEP ROUTINE
28FD II 2559 RGPTR DB 0 REGISTER POINTER20FE 00 2560 IBUFF DB 0 INPUT BUFFER21FF 18 2561 USCSR DB 8 USER SHOULD STORE IMAGE OF CSR HERE EACH TIME
2562 /CSR IS CHANGED. OTHERWISE, SINGLE STEP2563 /ROUTINE WILL DESTROY CSR CONTENTS.2564 END
PUBLIC SYMBOLS
EXTERNAL SYMBOLS
US~R S.YMBOLS
AoFLD A 0108 AoISP A 8898 ASAV A 20EE BLANK A 0015 BLNKS A 839A BRCHR A 0"lB BRTAB A 07FABSAV A 21EC CAoR A 07A8 CI A 1590 CI05 A 1592 CI10 A 05Al CLoBK A 000a CLDIS A 81E9CLOST A I1F1 CLEAR A 8107 CMOl1 A 087B CMo15 A 8887 CMDAo A 837C CMDTB A 8378 CMMNO A 0066CNTRL A 1988 CNVBN A 15BB CO A 8SC4 C00S A 05CB COMMA A 0011 CR A 8000 CROU'f A 05EBCSAV A 21EB CSNIT A 8800 CSR A 0828 CTAB A 87AE CURAo A 2BF6 CURDT A 21F8 oCM85 A 843EDCH11 A 1449 oCM1S A 84SE oCMo A 8437 ooISP A 8894 DELAY A 85F1 oIGTB A 87B4 oISPC A 8280DOT A 8881 OSAV A 28EA oSPLY A 1888 oSPTB A 8384 oTFLD A 8881 oTMSK A 0808 ECH05 A 8681ECH11 A 860F ECHO A 85F8 EIGHT A 8008 EMPTY "A 8880 ERMSG A 839E ERR A 8215 ERROR A 8611ESAV A 28E9 ESC A 811B EXAM A 8892 EXM05 A 8090 EXM18 A 88B8 EXMSG A 03A2 FALSE + 8001FIVE A 8005 FRET A 161C FSAV A 20EO G18 A 08EC GCM0S A 8470 GCM10 A 0483 GCMD A 0468GETCH A 861F GETCM A 1488 GETHX A 1626 GETNM A 865B GHX8S A 062C GHX10 A 8645 GNM05 A 1662GNM18 A 1677 GNM15 A 1685 GNM28 A 068A GNM25 A 0695 GNM30 A 0699 GO A 83FA GOCMo A 08CBGTCI3 A 1414 GTC8S A 8421 GTC11 A 1420 GTH8S A 8232 GTH10 A 0249 GTH28 A 8255 GTH25 A 0267GTHEX A 122B HCHAR A 118F HILlS A 86Cl HILO A 06A0 HSAV A 20F0 HXoSP A 026C IBTIM A 048CIBUFF A 21FE ICMI5 A 1491 ICM11 A 84B9 ICM28 A 84C1 ICM25 A 14C7 ICMo A 0486 ININT A 828EIHSoG A 129F INVRT A 10FF ISAV A 28F1 KBNIT A 81CC KMOoE A O100 LETRA A 080A LETRB A 888BLETRC A IIIC LETRo A 8080 LETRE A 808E LETRF A 880F LETRH A 0018 LETRI A 8013 LETRL A 8011LETRP A 0012 LETRR A 8814 LETRS A 8885 LF A 088A LOWER A 8088 LSAV A 20EF LSGNON A 8814MCMI5 A 8408 MCMo A 0400 MNSTK A 28E9 MSGL A 03FF NCMDS A 8806 NEWLN A 088F NMOUT A 86C7NMTBL A 8389 NODOT A e8"8 NUMC A 8804 NUMRG A 8000 NXTRG A 02A8 OBTIM A 848C OBUFF A 28F9OUT05 A 82C2 OUT18 A 02C6 OUT15 A 82C9 OUT28 A B20C OUTPT A 02B7 PCHSV A 28F3 PCLSV A 28F2PERIO A 8018 PRMPT A 80FB PRTY0 A 807F PRVAL A 06E2 PSAV A 28F2 RAMS'l' A 2800 RDK18 A 02F3ROKBo A 02E7 READ A 8040 REG0S A 06ED REG10 A 06F7 REGIS A 0712 REGDS A 86EA RES10 A 083FRETF A 82F7 RETT A 82FA RGA8S A 8721 RGA18 A 072E RGAoR A 871B RGLOC A 02FC RGNAM A 8309RGPTB A 83AC RGPTR A 20FD RGTBL A 83ED RMUSE A 0817 RSET5 A 28C2 RSET6 A 28CS RSET7 A 28CBRSR85 A 8320 RSR10 A 1331 RST65 A 20C8 RSTOR A 031B RTAB A 07C4 R'l'ABS A 0003 SCM85 A 04F5SCM10 A 0518 SCM15 A 8510 SCMo A 84F0 SETRG A 0344 SGNAO A 03A6 SGNOT A 03AA SGNON A 078CSKLN A 0818 SPHSV A 20FS SPLSV A 28F4 SRET A 0732 SSAV A 20F4 SS'fEP A 88FO SSTRT A 8088STH85 A 8752 STHF0 A 0734 STHLF A 073F STOPB A 8040 STP28 A 0126 STP21 A 013B STP22 A 0142STP23 A 8145 STP25 A 8157 STRT A 00C8 SUB8S A 019C SU810 A 01C4 SUB15 A 0lCF SUBST A 018BTEMP A 20FO TERM A 881B TIM4 A 1238 TIMER A 08C5 TIMHI A 0025 TIMLO A 0824 TMODE A 0848TRUE + 0880 TSTRT A 80C8 UBRLN A 000F UNMSK A 000E UPDAO A 035F UPODT A 036B UPPER A 00FFUSCSR A 28FF USINT A 20CE USRBR A 20C2 VALOG A 075E VALDL A 0779 WAIT A 0246 WAITS A 0000XCM85 A 0527 XCM18 A 8536 XCM15 A 8543 XCM18 A 054E XCM20 A 0567 XCM25 A 057E XCM27 A 057FXCM38 A 8587 XCMo A 8514 ZERO A 8880
ASSEMBLY COMPLETE, NO ERRORS
ISIS-II ASSEMBLER SYMBOL CROSS REFERENCE, X108 PAGE
AOFLO 105# 358 393 470AOISP 106# 269 835ASAV 1228 2464 2539#BLANK 1164# 1171 1171 1171 1171 -1172 1173 1173 1173 1175 1175 1207 1207 1207 1208 120d
1208 1209 1209 1209 1210 1210 1210 1211 1211 1211 1212 1212 1212 1213 1213 12131214 1214 1214 1215 1215 1215 1216 1217 1218 1219
BLNKS 530 534 615 1171#BRCHR 1324'BRTAB 1325# 2503BSAV 184 446 1229 2468 2537#CAOR 1438 2426#CI 1754# 1960 2506CI05 1757# 1760CI10 1765# 1774CLOBK 169' 571CLOIS 331 339 386 400 507 549#CLOST 168 565#CLEAR 31k'J 357 366 392 469 527# 551CM010 275# 280CM015 277 283#CMOAO 284 1114#CMOTB 274 1103, 1108CMMNO 264# 552 617CNTRL 108# 167 268 567 754 843CNVBN 1556 1796# 2013CO 1390 1815# 1899 1904 2505C005 1821# 1832COMMA 110# 332 387 477 680CR 1326# 1511 1520 1662 1855 1900 2058 2063 2406 2423 2423CROUT 147.1 1485 1572 1685 1854' 1925 2219CSAV 1230 2471 2536#CSNIT 111# 568CSR 112' 426 435 569CTAB 1429 2435. 2442CURAD 475 481 491 499 501 587 1065 2554#CURDT 320 483 589 1086 2555#DCM05 1470' 1493DCM10 14761 1492OCM15 1484 1487#OCMO 14651 2433OOISP 1131 840DELAY 1762 1767 1776 1824 1836 1871# 1875OIGTB 2191 2444'OISPC 350 383 585#DOT 1151 309 321 356 391 468 484 590 674OSAV 1231 2474 2535'DSPLY 116' 860DSPTB 847 1122' 1128 1134 1135 1139 1142 1144 1146 1148 1150 1152 1154 1156 1158 1160
1162 1164DTFLD 117' 248 323 486 532 613 1090DTMSK 118. 856ECH05 1896 1898'ECH10 1902 1905'ECHO 1422 1426 1478 1546 1636 1660 1672 1708 1856 1892' 1924 1997 2168 2173 2222 2224
2239EIGHT 1139' 1175 1176EMPTY 119' 253 891ERMSG 611 1172.ERR 282 315 333 361 396 473 497 506 608'ERROR 1436 1512 1521 1569 1922' 2012 2052 2059 2064 2267ESAV 1232 2477 2534'ESC 1327' 1894EXAM 308' 1116EXMI5 316' 338EXMl1 326 329'EXMSG 369 1173'FALSE 156' 314 325 395 472 489 1483 1508 1554 1607 1638 1710 1999 2011 2051 2078FIVE 1134' 1176FRET 1942' 2018 2378 2383 2385 2410'SAV 180 442 1233 2480 2538'Gl8 353 364'GCNI5 1519 1518'GCNl8 1517 1522'GCNO 1516' 2432GETCR 1425 1544 1658 1959' 1995GETCN 1418. 1486 1573 1603 1608 1631 1665 1680 1686 1926GETHX 1587 1623 1637 1709 1990' 2058GETNN 1467 1539 1588 2143'GHX.5 1994' 2822GHX18 2188 2889'GNN85 2849' 2868GNM10 2056 2061'GNM15 2069' 2072GNM20 2068 2073.GNH25 2079 2082'GNM30 20871 2092GO 233 1385.GOCMD 349' 1118GTC03 1423 14241GTC05 14301 1435GTC10 1432 1437'GTH05 651' 676GTH10 665 669'GTH20 654 677'GTH25 681 683 687'GTHEX 324 359 394 471 487 6461HCHAR 1328' 2165 2170HIL05 2115 2119 21371HILO 1481 1606 2077 2109'HSAV 1235 2486 2492 2541'HXOSP 671 709' 1067 1088IBTIM 1350' 1766 1775IBUFF 254 355 390 760 883 2560#
ISIS-II ASSEMBLER SYMBOL CROSS REFERENCE, X108 PAGE
ICM05 1543' 1552 1566ICM10 1561 15631ICM20 1555 15671ICM25 1549 1570'ICMD 1537' 2431ININT 202 751.INSDG 657 7791INVRT 1329i 1564ISAV 226 403 454 994 999 1234 2483 25421KBNIT 1201 566KMODE 1221 166LETRA 1142# 1207LE'I'RB 1144# 12"8LETRC 11461 1209 1218 1219LEl'RD 1148i 1210LE'rRE 1150# 1172 1173 1211LETRF 1152' 1212LETRH 11541 1214 1216 1218LETRI 11601 1213LETRL 1156. 1215 1217 1219LETRP 11581 1216 1217 1218 1219LETRR 11621 1172 1172LETRS 11351 1216 1217LF 13301 1903 2423 2423LOWER 1331'LSAV 175 437 1019 1236 2489 25401LSGNON 1387 2424.MCM05 15921 1609MCMD 15861 2430M~STK 1241 265 1010 1419 2530MSGL 1388' 1393NCMDS 142H 2442'NEWLN 13361 1490NMOUT 1473 1475 1480 1634 1698 1705 21581 2230 2236NMTBL 962 12051NODOT 125' 244 249 365 368 479 533 550 592 610 614 966NUMC 273 11081NUMRG 807 12411NXTRG 334 8051OBTIM 13511 1823OBUFF 716 734 25561OUT05 833 838'OUT10 837 842'OUT15 8441 864OUT20 853 855 858'OUTPT 247 252 370 531 535 612 616 675 8311 967 1071 1092PCHSV 1239 25451PCLSV 1240 25441PERIO 1281 330 352 360 385 399 505 682PRHPT 129. 271PRTY0 13371 1961PRVAL 2167 2172 2190'PSAV 177 363 398 406 439 586 1017 1513 2498 25431RAMST 93' 124 137 942 1690 2227RDK10 887 890'RDKBD 272 351 384 652 882' 889 1037READ 1301 755REG05 22141 2241REG10 2218 22211REGIS 2233 2237'REGDS 1664 2212'RES10 188 223.RETF 686 808 9061 1039 1044RETT 811 922. 1051RGA05 22641 2271RGA11 2269 22721RGADR 1668 22611RGLOC 318 327 9361RGNAM 317 957'RGPTB 1147 1181.RGPTR 816 810 937 958 1050 25591RGT8L 939 1227' 1241RHUSE 98' 124 137RSET5 197 25181RSET6 287 2519'RSET7 217 2521'RSRI5 1181 18841RSR11 1883 1886 1809'RST65 212 2528'RSTOR 371 427 993' 1523RTA8 2213 2262 2462' 2466RTA8S 1723 2263 2466'seNI5 1626' 1643SCM11 1629 1632'SCM15 1639 16411SCND 1622' 2429SDl85 71SETRG 311 1836'SGNAD 245 1175'SGNDT 258 1176'SGNON 1386 2422' 2424SILN Ill' 137SPHSV 1237 2548'SPLSV 1238 2547'SRET 2117 2141 2291' 2380 2381 2386 2405 2487 2409SSAV 183 445 1815 2495 2546'SSTEP 382' 457 1115SSTRT 13411 1828STH05 2342 2348'STHF0 1568 1571 2309'STHLF 1558 2314 2334'STOPB 13421 1833STP20 388 402'
ISIS-II ASSEMBLER S~M80L CROSS REFERENCE, X10~ PAGE
STP21 409 412'STP22 411 4161STP23 414 4181STP25 192 4291STRT 13431 1819SUa05 476' 503SUB10 490 4981SUa15 478 5041suaST 4671 1117TEMP 405 417 452 1541 1559 1565 1674 1676 1713 1729 231e, 2340 2557'TERM 1344' 1548TIM4 1352' 1835TIMER 140' 419 422TIMHI 132' 421TIMLO 133' 423THODE 134' 419TRUE 152' 337 1551TSTRT 1351 425UBRLN 1031 137UNHSK 1361 227 455UPDAD 480 591 10641UPDDT 322 485 593 10851UPPER 1345j 1540USCSR 424 432 570 25611USINT 221 2522'USRBR 1371 2516VALDG 1553 2010 23751VALDL 1550 1998 2402'wAIT 13531 1761WAITS 801 139 1349XCM05 1663 1666'XCM10 1675# 1726XCM15 1678 16811XCMlti 1684 16871XCM20 17~2 1706.XCM25 1717 17201XCM27 17221 1732XCM30 1711 1727#XCMD 1057# 2428ZERO 11281 1175
CROSS REFERENCE COMPLETE
ISIS-II ASSEMBLER SYMBOL CROSS REFERENCE, Xl08 PAGE 4
RGNAM 317 957#RGPTB 1047 11801RGPTR 806 810 937 958 1050 2559#RGTBL 939 12271 1241RMUSE 981 124 137RSET5 197 25181RSET6 207 25191RSET7 217 2521#RSR05 1001 10041RSR10 1003 1006 1009#RST65 212 2~20#
RSTOR 371 427 9931 1523RTAB 2213 2262 2462# 2466RTABS 1723 2263 2466#SCM05 16261 1643SCM10 1629 16321SCM15 1639 1641#SCMD 16221 2429SDK85 71SETRG 311 10361SGNAD 245 1175#SGNDT 250 11761SGNON 1386 2422# 2424SKLN 1011 137SPHSV 1237 2548#SPLSV 1238 25471SRET 2007 2141 2291# 2380 2381 2386 2405 2407 2409SSAV 183 445 1015 2495 2546#SSTEP 382# 457 1115SSTRT 13411 1828STH05 2342 23481STHFO 1568 1571 23091STHLF 1558 2314 23341STOPB 13421 1833STP20 388 4021STP21 409 412#STP22 411 416#STP23 414 418#STP25 192 4291STRT 1343# 1819SUB05 476# 503SUB10 490 4981SUB15 478 5041SUBST 467# 1117TEMP 405 417 452 1541 1559 1565 1674 1676 1713 1729 2310 2340 25571TERM 1344# 1548TIM2 13521 1835TIMER 1401 419 422TIMHI 1321 421TIMLO 1331 423TMODE 134# 419TRUE 1521 337 1551TSTRT 1351 425UBRLN 1031 137UNMSK 1361 227 455UPDAD 480 591 1064#UPDDT 322 485 593 10851UPPER 1345# 1540USCSR 424 432 570 25611USINT 221 2522#USRBR 137# 2516VALDG 1553 2010 23751VALDL 1550 1998 24021WAIT 13531 1761WAITS 801 139 1349XCM05 1663 1666/1XCM10 16751 1726XCM15 1678 16811XCM18 1684 1687#XCM20 1702 17061XCM25 1717 17201XCM27 17221 1732XCM30 1711 1727iXCMD 1657# 2428ZERO 11281 1175
CROSS REFERENCE COMPLETE
APPENDIX BDIAGRAMS
8 7 6 5 4 3
B
c
o
o ~~;~. oeoeDoe~e e e e e
eGDDDOSINGLE GO • 'I A ISTEP H le e e e e e-eGGQQQSutST EXAM • S I> 7MEM "G SPH SPL PCH PCle e e e e e -
I.·...·11...,,·IDDDD
--..10©~9~6'e1
.1SS
LO< 288eH-2efFH
POITS 28H-2SH
::CLK:: .:'...'• ..., __ ,oil
:=:::"\'"....TA/.. •....r. __.....,--:~7-::; -•• I _a:;•• ~.- g::; ::C
1.. ~-•• I --::.9"':';-~_
LJ
---'=l-J Ct9=n AI
7eIlI
_1~:cI2'::~~2~f~~ IIlIi
EE~.r,-- IIIIII ;~I~SI2;~-;D;IIII ~:::lr 'A. 17 II 19
.-~ ·C~K· --- -6::~, ,.. --e::Jo4131
~~~•..:.YI. ~132
~'"
..--
--
..
--
--
-----
--
..
------
------
"'SV
eGND
--
--
------------
.........................................................MCS -85 SYSTEM DESIGN KIT
::..ii......::::....ii::::......ii::::..::......::..::::........::..::..::::::::..::••• • .SV • • •
:: • .GND. • •......................................................................
.:~:: ::--..- -.:- :..- _.:: :::: ;;
.- lei.--.:: =:.- -.:- :..- _.:: ::.- -..: ~~
.- 1:i.- -..- -.:: =::- :..-_..-_.:: ::.: ~~
B
o
c
A
MIl lIME" AVE.IMTA ClARACAUf....1
----34
,....---~-~I--....;..-~~~--+------.,r--..,....r--:~r.--- ~A
567
A
I 7 6 5 4 3
B
c
A
051- DS~
[?;>.TI L- 31 3
3
SOt:.. eo4001117
4
1--__I-- -4-__-Ic:.zO
I----~----+----I~~~~IIO
I----~----+----I~
1----1------4----133
56
FDV\JER 5UPPLL(
7
"40 RSl 5.15RESET ("')llT ~ RESE.T VDD INT 4c~7"k ~ eLK
'NRI10 ~~ ,'2 i'l
1~137&Rn Icc:;:=\/ '2.2(5 2 1 ~A~ 2.1 c/o ~I >4-
)S5 "in
~~<.:i'IF ~, 7
~ CTLAI3
+5VBC~ ~2a
.3KA0 'Cl
AI ?(L>o~2~
-tSV '::::. eA2. 25
I'3~ <>lIeD~ ?4
"'f'\
u~"3
....61/ ~z~I E0 3/ ~242.
B'~"'5 ~ <>let5~ 2~ ..-?V ~~1co
R2.1'1
~ ~3t::: ~7
BD+S'J~~
GW ~~~~Rle3K. ~
~O~ Jij ~r~ RI6+sy ~ ~1
~K. QS
RI2 -tl;Y~~;::)1(
Gl4\:::::. 2"J
Q,~ ~1
~K Q3
+5V ~ ZN~1
I
ct A '4CC. ei0 ,1<17 RZO ~'Z.3 1<2'- IU"7 Re 20rII RII RI4
L:tt Ie 2'T€~~
24 2.4 24 24 24 24 c. ... e2C ~
J 6 q e IG :~~~~ 10 4 3 S ~ II 12. I
~. ,.! ffi:~':.1"" I";~ -.. Gte F~ E ~ D~ C. ~ e •"k I"1 y~ ~=....t
i~"SlZ 513 S24 SIr; Sv i $1"7 '50 16
~~1-'1f2' 1[3' 1f4 ~~5" ~~' ~~. AI2RIO
~ ~ ~,'~ 1M'n) ~,' TO ~,~ TO"'4LSI~ -=
I 1: SoP\.. I ~C.L -, e10 ~IO os, on OM 1)16 D$.l' I I '(S~ r PC~2~
hi~' ~y ht~!, hf'';,l'l. hI·~' ~-1t,55 ~ 2.z.~.,
"e>' "0" E'~"F" RI3cl0 -= GIl'
2t\115201sl~1~1~1~ ~~14 ~~7~
:~ -= /oM QI2.i::N
"EXE.C· "NEXT' ·00" "SUB5T" '·E.xAl-I\"·51NGL.E"RIel
c.~,., MEM REG SiEP 2.10 -= t::# ~13
2N
R22~l
<t5V 210 /Jj QI42.t\1ITill_OV2.~'
C, + .1 (iF ~ - G - 5 - t~R2~ -=~1O 4j ~IS
ct\12.~O'vF: , «:4 -
rHIS PIN OUT "RR~NGEME~r
REPRE~Et-JT'S '" INDIVIDUJlIL -,5EGMENT LED D'~PL"Y'So (TI L ~13).ALL ANODE. CONNEC.TIONS O~ THECORRESPONDING SEGMENTS ARE WIREDTOGETHER. CATHODES ARE WJ~EO
5EP~RATELY T.Q E~CH TRANSISTOIiiJ (QIO - Q15)
GI\D
..JII ~ 5 7
GN D ....,;:;.+-1:...,:.1+-I~~~IS~ I
2 27 'l.!> ~l
53 , '1 3~
I\.OTES:
LWLESS OTH£RYVI"lc SPEC I FI Eo.,
I. RESISTOR VALUES ARE \ NOHMS) ~ VV, ± 5%.
.~
8
D
8
A
c
B
c
D
PORT ~3H
PORT ~2H
~TcIH
ILntl DEIl:RPfIClIC
I--- 15EE SHEE.T 1.
J:1
il~T0OC~
~TtLt:~,~,
:t il roffi t
~~~~
±I II I
I I
I I
I I
'3l
il~~~
~
~~=:-.~ il ~nI-':-
r4tTL~
34
I
56
-+fSV+J;;\I R4
It<
7
RS41
"R2R34 4., 1<2.00IW
-lev
~~~~ii!~ ob\r--~..:-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_""+--_....l-+.~~'5 PA .3~~--t----------fI4l
r----------II--+.i'~Co q.~~--+------------I;-- ---:C=.!~::.::~:::.../-----------++~f-+-~+::::.:;~::::::::::::::::::~t:::JI;[j~u: ~~;~=====:===================:j
r-r---...:---...:-----...:-------R;s,.:,:E~::~:;-t:~r?!=lVo~~~O;..U~T~================tttii:4~bt=:.t1~:'=====,---==Jt~=~::c2~~ ~1:t-1I'::~--+------------I
~~ AOJ ~~;t----+__----------Ir-C=5,,-,12l=/~"-+-+-+-+-+-+-+_-+-~~-+--+-~""--+~~-'d~~ 71-::."'.::~--+---------------JVI IJ~VDD IJ 5~
qQ~ ,rb~M- "'~~2!~li\V~ ~I~~ ~ de.)I, "zoo!10~ .-+-+-+-+-_t-+-+-+-+-+_~+--_;a~5i !~~~;==:=====================~n
-: '0>," r::'... ~'" ~IO AD :~I~,;:----+++++I---------------t---~~ ..:.::==~:,~~:-:-:=~~:,~==:::~ :~5~ ;:::;~~~~=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..=:..~~'~::+t
5VRA'i"""fOO\lill 5 7 2 (&""') -,t--"'I=-----------------l»J
g ; i~ IO~/ I" 3,;~?> S2 3.91< ~+'N ~t-.,;"'3~--------------l
~TC~ --4.....-------~'7 R'ST"1.15 ..... , Af> to~~ P6 ~~~;=========================.r~~.,~ . . . "VEC.T" 1. Cl2 "u A,O) Afj ~;t_------------Ha.J- INTR r}.cf All A'" AOJ ~ ~ 5~~-------------1
-::-01 0085 All ."', ? ~IO ~t-:;1L!~---------------l
\~ ....:.RS~:T---'S.=5=__ ---:"'::.....jR5T 55 £~ +SV~<j>~l:~~6 .55 ~~ ~DlD.5 T B R5i iJ:>t'5 AIS -= ",.,. ....,....., C53/ IZS2...~ ~~ T I ~~I'OLD IO/M ~ ~~VCc. AI<D 0~1=_------------.r;~ ~
6cO 65 ALE "" CC 155 b ~ I~ RSTOUT 32 CS41 0 I 3 W2- 2
'II.£._ ¢20 ~_8 X_'3 ~ RDJ ~, C.E PI'. 4 :2. -tr ~~ I 1 10 ~~ 37 :5 ~ 5
I NTR 15 .r---------....------.....:'\L~,.'''TR '~TAI~ \ "\~ ~ ~ CD
RESET IN/ 2+ I ,....!e....:~T1N "Lg~~ I ..,,'/ : ~ ;" :It ~R3\ '15S <3.1 1<0 I ; ~ ~ I 1: i
iTc~v'V"I<......___+_.e--..JVV'\r.....J+;5" Teo '-+-+-+-4--~~~~:~ !~ \ ~ PB: ± ~~5E.T' 1ClD ~T~ +S\J 5205".3~ .-+-+-+-t-i------:-~~T/IN ~ ;t ~
1_II-'f ~ £3 6D-"o:::!O~--.J WRI ~ C2I
~++-+-+-+4--~4 E~ CD )# .-+..-++-++-_-_-_-_-_-_-_--=:~' ~~-f IN ~ ti: I
E I V55 1.-.1t .-t------I.::!,b-I ALE PC .3~:=:=========================fli= ~o ...-----2dIO!M I~ 7 ~
~ ~o~'6S T/OJV~
B
8
J2.READ< 2.
DTX ~tillTX RET 2:'
I I
I I
I I
II
; II
I I
I I
I I
I I
RX 2-RX RET Z4
I I
~
C
A
234567
+~~_.....----....,....., ~l..3Q~c AI, ~~I=:--------------.f~0
'--++-HI-+-+-++-~:....+-+-++_+"C=.:S:!...::::!.5!....1----!0:::!d ~\5 5 c ~ ~
,~[1~~~~------------------H~+~H~-~~~~-----------~~~~=~~~~===TI~:~il:~I~ Il~~Yr7------------------H-H+H-++~_1H_~++~--------------==--=:;~=~~~~===~:~~~ PB j ,2. ...!!.. 2.,---..L-.-------------------+lq-t~:.i~~~I::::ii:~~~~+l-+--H-++-H~~-------------~-_+_l~U+_---~7 <\-~ 1: ~ PORT ~"H
~ ({j x~ ~ Ii: ~.( 0 ~ ~ ~ ~ ~ 91~ ~ ......_1.--_-_-_-_-_-_-_.,.:..:..r~~lO/M 5 s 1:: ~~I~ ~ '-~ '----.,-J 4= ALE >7 If ~ '7
~ ~ ~~~ ~ ~ '------lOt...,;()l;..J~/It.l ~ '~ ± ?~ 'NRI PC(.3" tk. tt ~ PORT ~H
8_1 ~ ~5 ±<!-N f'J_ 18 ,7.3 T/IN.,1j.........-:: (0 ..---5Vrr . T rF- "I""'E~ oUTI~20 \~O I ~ TIMe~ IN
8.~--
A
D
ILTRI DESCRIPTION
1 1 SEE Sl-E.ET .i...
3456
~~3::.:- --.
C();z5~
D8\~-----,
QOIA ID82~ J2.002~ L.-. -+- ~ ----j tJ-\'CJ M/
DB 31--I!..>oL-~-----l~-=-~~~~~~~~~~~~~~~~j::~::::~::~~~~~::~::~::~~~~~~::~::::::~::::~::::~::~::::::~::~~::~::::::::::::::~::::::::::~::::::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=-'__1: ~'-~~ /t:D3~
'JCc.+9It 1<0
7
(
10/C. 4 h\~
CZ& ~R=D::..:;/--- ~_7'--tD\1
ALE 0) DIl
8
o
B
A
c
B-~
B-A1.B-A2B-A'?:JB-A4B-ASB-,A(c,S-Af
A4521<0
~t- D\2.
~t-D\I
02. 3 0\2
liCe.D8/ ~~~-----,[X)I~
DOO J.-:3=---_+___~
Do0lL--
OB2~ ~ ~ B.D0
D02 .!..:L I I ~-----------------------______1~ ~·.g1
DB3~1.::::3~+_+-------------------------____j* B - 03D0319:. ~ 8-04-
,.---------------------------.L~~I ~~~
f35~ ~------------+s-'N------------1t!i: B - 07
~~~ ~ tSY "2.4
.---+------+-:-::S/';"-;"t-l,fD--......-----if-++-+--~r~l~:"):s============b='i~~ :~'Cl:I ':o[!:r~O"'-~============_-~----<-i§:.31.,;'" I'JC.C I ...........J~(,fr,~ --!!?!~~ ~ I~ ~
~r-D~ D8><.-': ,...-ID..LJ...J -=22.~~ Arc fl 2.1 ~
CX>lZ'....'-=-+-----+--+-+---' r--A.....\....E----------..,qlsrJ 5212D8/..,:CD=-+-__--l +5V~e::t':2 INT~DO t 1-=5~_--~---l r MD \I'£J
DB 2~10=-i--I--_--' ~ ~12.D02J...:\~\+-+_--4----J
DB 3.-.:-13=+-+-+-__--.1
003.-.:-14-~++_-------J
Dl 4 DI0
0Zl 7 DII
,lSt- D\3
~.DIE.~f---+-+-+-+++-+-+---'<1' CS
~5 IIIe A5(4~
Ao.Jl4LS14
4
e D PR G. 5
3 CLJ::... &. <0c.R
HlDA
Iel'Ie D PR Gl. '3
II c.w:.. ~C.L~
13 A~74LS14
~---++_+_-__+_---------------------------------R...:..:'5:..-T--'-l:,-.S-=-- 0;:9r---i_+_+---+---------------------------------.:...lH-=O:..=L'-'=D~-~'O
,.#~-----------...;I-------------------------------------------------t~~- AL~
,------------+------------------~-~------------------------------1~8- RESc-1,-- -4-- -----1ri:- ~--~\.K
.-----+--------------------------------------------------i~B·~0
.---+---------------------------------------------------j~~~I~\~'Kc.DB~ .3
C00~
D81~OOI~
DB2~\.:::=.O-----I
tD2~
D83~\=3'-------J
fX)3~
AS V55~E:2I<O -
A3 VSS~e:>2\(Q -
A'2.. YS5~ec.l<D -
-+SV'ICD
~ (5-t D\£~
~ C5-t OlEN~~<O:::""-_+-+-+-l-":2.::""7a..~)~~
74500'
,...-----+-s\J-'t-I-<D-------+-01 I NTAI , A8 0'.3",,-+~~__--+-1-a5 DIE~
'Ice. 000...,:3::....---1---------1 r--.-.+-<I-+-+----+-'<II csC00~081 I-'(£)=---~--------'
.DOI~
DB2~lo~--+---------J
C02rJl,
De>3~13~--+---------l
D03~
eLK <:3 A'O B 7'-------"'~---.... I b-
7.¥4-S-00---+---,'l.- ----J
A'tJ ALE A~
AS AIS
(
-=-----+--+-+-+507 bll
---,-H=L=D;;...;A:'-"""'f-+-+-+-...+_'J-tD\2
INTAI 12 DI3
{
GlK 7 D\ I
~ ---=5::..:1.=--~r-+-++-----'~'-tD' 2
z~ 1-~~~~~\?~----------------1~----------------------------- ~~~C;;f'i~~"------'A3 A\~
.11t-IOLD ~1I4t---"'------+--11-+-+--+---'-t4 D\0
67Je~
A
B
c
7 6 5 4 3 2
Manual Order Number 98004518
REQUEST FOR READER'S COMMENTS
The Microcomputer Division Technical Publications Department attempts to provide documents that meetthe needs of all Intel product users. This form lets you participate directly in the documentation process.
Please restrict your comments to the usability, accuracy, readability, organization, and completeness ofthis document.
1. Please specify by page any errors you found in this manual.
2. Does the document cover the information you expected or required? Please make suggestions forimprovement.
3. Is this the right type of document for your needs? Is it at the right level? What other types ofdocuments are needed?
4. Did you have any difficulty understanding descriptions or wording? Where?
5. Please rate this document on a scale of 1 to 10 with 10 being the best rating.
ZIP CODE _STATE _
NAME DATE _
TITLE _
COMPANyNAME/DEPARTMENT~~~~_~~~~~_~~~~~_~~_~~__~
ADDRESS_~~~~~~~~~~~~~~~~~_~~~~~~~~~~~~~_
CITy _
Please check here if you require a written reply. 0
WE'D LIKE YOUR COMMENTS ..•
This document is one of a series describing Intel products. Your comments on the back of this form willhelp us produce better manuals. Each reply will be carefully reviewed by the responsible person. Allcomments and suggestions become the property of Intel Corporation.
BUSINESS REPLY MAILFIRST CLASS PERMIT NO. 1040 SANTA CLARA, CA
POSTAGE WILL BE PAID BY ADDRESSEE
Intel CorporationAttn: Technical Publications MIS 6-20003065 Bowers AvenueSanta Clara, CA 95051
IIIIII NO POSTAGENECESSARY
IF MAILED
IN U.S.A.
I.i
INTEL CORPORATION, 3065 Bowers Avenue. Santa Clara, CA 95051 (408) 987-8080
Printed in U.S.A.