SIMPSON PERSONAL FILE DO NOT REMOVE
Transcript of SIMPSON PERSONAL FILE DO NOT REMOVE
SIMPSON PERSONAL FILEDO NOT REMOVE
FLIGHT TRANSPORTATION LABORATORY
REPORT R84-2
A MICROPROCESSOR DRIVEN
LIQUID CRYSTAL GRAPHICS DISPLAY
FOR AIRCRAFT USE
Lee Howard Marzke
June 1984
PAGE 1GRAPHIC L CV AIRcRAFT vISPLA Y
FTL REPORT R84-2
A MICROPROCESSOR DRIVEN
LIQUID CRYSTAL GRAPHICS DISPLAY
FOR AIRCRAFT USE
Lee Howard Marzke
A complete graphics system for use in modular avionics is
built around a liquid crystal flat panel display. Screen refresh
is handled by display controller that provides a bit mapped
representation of the display in RAM. A 8085 based single board
computer is programmed to allow user defined graphics symbols to
be moved about easily, and a character generator is included to
facilitate the display of ASCII strings. The computer uses a
RS-232 interface to receive commands. A demonstration program
is also included which demonstrates a simple instrument landing
system (ILS) type display without the need for an external device.
GRAPHIC LCD ARCR~AFT DISPLAY PAGE2
ACKNOWLEDGEMENTS
I would like to thank the following people for their
special contributions:
- Professor Antonio Elias for being my thesis advisor and
for suggesting the general purpose display idea.
- Carter Pfaelzer for day to day help when I was defining my
thesis, and sugestions when ever I had problems.
- SIRRUS FLOW TECHNOLOGY INC. , especially Carl Johnson for
the use of his OSBORN computer to develop the software.
- Spencer Webb for his invaluble encouragement, and for use
of his facilities at TERADYNE INC. to draw schematics and
program EPROMS' s.
- Scott Hathcock, my roomate, for putting up with the mess
at our apartment during construction, and for constant
prodding to help keep me on schedule.
- Fred Schloetzer for encouraging me to come to MIT in the
first place.
GRAPHIC LCD AIRCRAFT DISPLAY PPAGE 3
TABLE OF CONTENTS
0. Abstract.........................
1. Introduction ...............
2. Functional Description .......
2. 1 Set up and operation ....
2. 2 Command format ..........
2.3 Demonstration ILS display
3. Technical Description .......
3.1 Liquid crystal ..........
3.2 Circuit ...............
3.3 Program ...............
4. Conclusions ................
5. Bibliography ...............
APPENDICES
............ 2
.6
.9
.9
11
18
21
21
23
31
34
35
Pictures .....
Schematics and parts layout
........ 36
........ 42
C. SHARP LM-24003G display ................ 53
MCG-8085 single board computer
Program Listings ..............
........ 57
........ 69
GRAPHIC L CD AIRCRAFT DISPL A Y PAGE 4
LIST OF FIGURES
1. Graphics Display unit ................. 8
2. Graphics Display unit (Block Diagram) . . 10
3. Symbol #02 ............................... 13
4. Screen coordinates....................17
5. ILS demonstration screen ................. 19
6. Liquid Crystal cell cross section ...... 22
7. LCD Twisted Nematic effect ............ 22
8. SHARP Display Unit ....................... 26
9. Timing Generator...................... 27
10. Control Logic........................ 28
11. Data Flow during display refresh ....... .29
12. Data flow during computer access ....... .30
TABLES
1. GDU Commands ........................ 16
2. Assignments in ILS Demonstration ....... .20
GRAPHIC L CV AIRCRAFT 7ISPL A Y PAGE 5
1. 0 INTRODUCTION
This thesis consisted of building a high resolution
flat panel display for aircraft use. Such displays can be
used to emulate just about any of the current mechanical
flight instruments in the cockpit. Other applications
would include collision avoidance displays, electronic
checklists, or compleatly new forms of flight instruments.
Many cathode ray tube (CRT) based displays are
currently in use in aircraft such as the Boeing 767. CRT
displays are large, bulky, and consume large amounts of
power; they are, however, still the best for high
resolut ion applicat ions.
Of the flat panel technologies such as
electrolumenescent, plasma, and liquid crystal (LCD), the
LCD types have by far the lowest power consumption, and have
the best contrast in high ambient light environments. The
disadvantages of the LCD display are a limited viewing
angle range, and moderate resolution.
The display chosen consists of a dot matrix LCD unit of
128 by 240 pixels, with onboard drive electronics. As the
technology improves, higher resolution and lower cost
units will make LCD the best choice for the future.
As currently configured the display system is driven
from a RS-232 communication port. Fast graphic display
response is possable over such a slow link because all
symbols to be used are stored in the graphic display unit' s
(GDU) internal RAM. Real time commands thus need only
specify new coordinates for a symbol or new text.
Advantages of such displays in small airplanes would
include the ability to multiplex different instruments on
GRAPHIC L CD AIRCRAFT DISPL AY PAG63E 6
the same screen, saving weight and panel space.
The entire project consisted of the following:Choosing a suitable display based on the aboveconsiderations, design and construction of a displaycontroller, and finally assembly language programming tostore and move text strings and symbols.
I became interested in this projectfor flying as a hobby, and my desire
containing hardware design, real
development, and prototype construction.
because of my loveto do a projecttime software
GRAPHIC LCD AIRCRAFT DISPL A Y PAGE 7
tM4OC DNAY tIET
CONTRAST
I/O 32
POWER 31
32
I/O CONNECTOR
R G G TX N N X
D D
MOLEX
FEMALE SHELLMALE PINS
31
POWER CONNECTOR
- +* + G1 1 5 N
D2 2
MOLEX
MALE SHELLFEMALE PINS
FIG. 1 GRAPHICS DISPLYAY UNIT
GRAPHIC LCD AIRCRAFT DLISPLAY PAGE 8
2. FUNCTIONAL DESCRIPTION
2.1 SETUP
The graphics display unit (GDU) shown in Fig. 2 is a
complete system allowing the user to define graphic symbols
of variable size and shape and move them around on the
screen. Symbols may overlap one another and can be erased
easily. Individual points may also be accessed, and text is
easily displayed because of the internal character
generator. The software recognizes strings of ASCII
characters as commands, thus permitting debugging of
command strings with a terminal. A demonstration program is
also included on EPROM to demonstrate the functioning ofthe unit without the need for a terminal.
The GUU requires the following: (see Fig. 2)
POWER - 5V at 1.5 amp(Ji) - +12V at 0. 1 amp
- -12V at 0.1 amp
COMMUNICATION RS-232 Port(J2)
GRAPHIC L CD AIRCRAFT DISPLAY PAqGE 9
AIRCRAFT LCD GRAPHICS DISPLAYBLOCK DIAGRAM
2 Graphics display system.
GRAPHIC LCO AIRCRAFT D7.SPLAY 1
Fig.
PAGE 10
2. 2 COMMAND FORMAT
When power is applied and the reset button is pressed a
sign-on menu should appear on the LCD display. The setting
of the contrast control is critical and should be set fully
counter clockwise if the display appears blank or a symbol
is missing. The following discussion will assume a terminal
is connected to the RS-232 port for demonstration of the
individual commands.
The switch under the "DISPLAY" prompt (sv3) is
depressed to use the RS-232 port for input. A space
character must first be sent to allow computation of the
BAUD rate, the GDU will respond with a "#" prompt.
Two types of objects may be defined and stored in the
GDU, "strings" of ASCII characters, and user defined
graphic "symbols" of selectable height and width. Each
string or symbol is associated with a two digit hex number,
hereafter shown as **. This number may range from 00H to3FH, the upper two bits being used internally to
distinguish between strings and symbols. Once a string or
symbol is defined it may be moved on the screen by an
instruction to move string ## or symbol ## to the specified
coordinates.
Other commands allow individual points on the screen
to be turned on one at a time, the screen to be cleared, and
functions to be called that define or move many symbols.
The following symbology is used below:
## - Two digit hex number that identifies a
particular string or symbol. (O0H - 3FH)
XX - Two digit hex number. (OOH - EFH)
GAPHIC LCD AIRCRAFT DISLAY PACE 11
Two digit hex number (0OH - 7FH)
<CR> - Carriage Return
ASCII STRINGS
A string is first defined by typing 'A##/STRINGCCR>'
'STRING' may contain ASCII characters from 2 0 H to 6 0 H(numbers, uppercase letters, and symbols). To display the
string, type 'A##, XX, YY<CR>', where XX and YY define the x
and y coordinate of the left edge of the string. Thereafter,
if the same string is referenced with new coordinates, the
string vill be erased and redisplayed at the new location.
The 'STRING' may be changed by reentering
'A##/NEWSTRING<CR>', however 'NEWSTRING' must contain the
exact number of characters as the original string by
appending spaces where necessary. The first definition of a
string, therfore, must be long enough to reserve space for
later changes.
EXAMPLE: A02/BEARINGCCR>
A02,10,20 (CR>
A02/COURSE[] <CR>
A02,20,20<CR>
Defines string 02 to be"BEARING"Puts string 02 onscreen at location10, 20Redefines string 02 tobe "COURSE". Note addedspace " [] " to makestring 7 characterslong.Moves string 02 tolocation 20,20
The spacing of characters may be changed from the
GRAPHIC L CD AIRCRAFT DISPL A Y
YY
PAGE 12
normal two pixels between characters (wide) to one pixel
spacing (narrow) by the 'N' and 'W' commands respectively.
GRAPHIC SYMBOLS
A graphic symbol is defined by entering
'D#,HHWWBBBBB. . <CR)' The height, HH (in pixels) may be
any hex number from 1 H to 127H. The width, WW is measured inwords (multiples of 8 pixels wide) and may range from 1 to3 0 H. 'BBBB... ' represents groups of 8 bits (2 hex dig. )defining the graphic symbol sequentially (as if reading abook) 8 pixels at a time .
EXAMPLE: D02, 0501, 010204F8FF(CR>Defines the graphic symbol shown belowhaving a height of 5, and a width of 1 (8pixels).
8400H G F E D C B A
A B
5 C
E
HEX VALUE010204FSFF
Fig. 3 Symbol *02
Once the symbol is defined it may be written to the
screen by entering 'P**, XX, YY<CR>', where the upper left
corner of the symbol is placed at the indicated
R.APHIC LCD AIRcRAFT LISPL Y PAL'~ 13
coordinates. Another ' P' command will place another copy of
the symbol on the screen at a different location. To move a
symbol use 'M##,XX,YY<CR>', which first erases the last
location of the symbol, then places a copy at the new
coordinates.
To have a transparent symbol in which underlying
symbols can still be seen, place the symbol on the screen
vith the 'X' command. This command exclusive or's the
symbol with the current contents of screen memory. To erase
the symbol, execute this command a second time - this
removes the symbol leaving the origional background
intact.
POINTS
To turn on a specific point the 'L' command is used.
The format is 'LXXYY, XXYY, XXYY<CR>, where XXYY are the x
and y coordinates of the points. For example to turn on the
points (10,10) and (10,11) the command would be
'LlO, 1011<CR>'. Any number of points may be entered this
way. Because these points are not stored they can not be
moved or erased without clearing the screen or displaying a
symbol on top of them.
MISCELLANEOUS COMMANDS
The screen may be cleared with the Clear (C) command.
The Ini t (I) command clears the screen and erases all stored
symbols and strings.
Incoming characters are normally echoed by the
command recognizer for use with a terminal. Echo may be
GRAPHIC L CD AIRCRAF T DISPL A Y PAGE 14
turned off with the Kill echo (K) command and back on with
the Echo on (E) command.
FUNCTIONS
The Function (F) command starts execution of a user
defined program that may define symbols and strings, or
move existing ones.
The hexidecimal byte following the F command is placed
in the accumulator and a call is made to address 3050H-
GRAPHIC L CD AIRCRAFT DISPL A Y PAGE 15
TABLE 1
COMMAND SUMMARY
A##, XX, YY<CR>
A##/MESSAGE<CR>
C<CR>
D##,HHHWW,BBBB... <CR>
E<CR>
F##<CR>
ICCR>
K<CR>
LXXYY, XXYY, XXYY. . <CR>
M##, XX, YY<CR>
N<CR>
P##, XX, YY<CR>
W<CR>
X##,XX, YY<CR>
Z<CR>
Move ASCII string ## tolocation XXYY
Change ASCII string ## toMESSAGE
Clear Screen
Define symbol ## of height HHand width WW according to thebits that follow.
Echo on
Cal1s user defined function ##.
Init (Clear all strings,symbols and screen).
Kill echo of command charactersto terminal.
List of points to turn on.
Move graphic symbol ## from oldlocation to XX,YY
Narrow character spacing.
Put graphic symbol ## at XX, YY
Wide character spacing.
XOR graphic symbol ## withcontents of screen at XX,YY
Erase graphic symbol ## fromit's most recently usedcoordinate.
Jump to monitor.
GRAPHIC L CD AIRCRAFT aISPL A Y PAME 16
A V7"67 .L bCA v GD7 ODI-dVb f
SEEUtODM ME= S 9 -IM
AL OL 09A I
Nx-4 NOWSOd Aas 011 oi o O
T-Ti7T
t 4
I I
--
t
4TT
KS.?'
Z T .-3Vd
'0
2.3 DEHONSTRATION ILS DISPLAY
To enter the demonstration program the button under
the 'DEMO' prompt (sv4) is depressed from the menu screen. A
simple Instrument Landing System (ILS) type display
appears on the left side of the display, with prompts over
each of the 'soft' buttons. The pointers of the ILS
instrument move when the appropriate buttons pushed, both
moving at the same time if desired.
If the left"<" and right "> buttons are depressed
simultaneousely, the two pointers will move in repetitive
pattern. To exit this mode hold down one of the four soft
buttons until the pattern stops. Pressing all four buttons
will cause a jump to the command mode without clearing any
symbols, so that experimentation with the instrument is
possible.
GRAPHIC L CD AIRCRAFT DISPL A Y PAGE 18
ILS DEMONSTRATION
RESET 'SOFT' SWITCHES
5. ILS Demonstration Screen
GRAPHIC L CD AIRCRAFT DISPL A Y
Fig.
PAGE 19
TABLE 2
LIST OF ASSIGNMENTS IN ILS
SYMBOLS:
01 - Horizontal bar
02 - Vertical bar
03 - Hollow boxes
04 - Up triangle, "TO"
05 - Center mark
06 - Down triangle, "FR"
07 - up arrow
08 - down arrow
09 - right arrow
OA - Left arrow
STRINGS:
01 - Time "00: 00: 00"
02 - "120"
03 - "300"
04 - "MOVE BARS"
DEMDNSTRATION PROGRAM
COORDINATES:
(10, 37)
(37, 10)
(2B,00), (2B,EO)
(61, 26)
(33, 34)
(61, 39)
(C7, 7A)
(E8, 7A)
(A6, 78)
(85, 78)
(00, 79)
(2E, 03)
(2E, 67)
(A6, 6E)
GRAPHIC LCD AIRCRAFT DISPL Y PAGE 0
3. TECHNICAL DESCRIPTION
3.1 LIQUID CRYSTAL CELL
The liquid crystal display used in this project
depends upon the twisted nematic effect. The individual
molecules of the liquid crystal are asymmetric and tend to
align themselves with one another. This alignment may
extend over distances up to 1 mm. The LCD cell contains a
thin film of a liquid crystal with alignment layers forcing
the liquid crystal to twist 90 degrees from face to face.
Because of the large refractive index anisotropy in the
liquid crystal, the plane of polarized light is guided
through the cell twisting with the crystal.
The cell is sandwiched between two crossed
polarizers. In its 'off' state the incoming polarized light
is rotated, allowing the light to pass through the second
polarizer.
The cell is turned 'on' by applying an AC signal across
the LCD cell, forcing all the liquid crystal molecules to
align with the electric field. Now the incoming light is not
rotated and is blocked from passing through the cell, so the
pixel element appears dark.
Insulating layers are added on top of each electrode
to insure that no DC current flows through the cell, since
the resulting electrolisis of the liquid crystal would ruin
it.
GRAPHIC L CD AIRCRAF T DISPL A Y PAGE 21
LIQUID CRYSTAL CELL
ROW ELECTRODE
INSLYLATORALIGNMENT LAYER
LIQUID CYRST
ALIGNMENT LAYER
INSULATOR
COLUMN ELECTRODE
REFLECTOR
GLASS COVER
S
- - - --
ES
GLASS SLE3STRATE
-f
FIG. 6 LCD - CROSS SECTION
POLARIZER ,% POLARIZER
EFIELD
POLARIZER PC
FIG. 7 TWISTED IEMATICEFFECT
TRANSPARENT
GRAPHIC LCD AIRCRAFT DISPL A Y
LARIZER
tOPAQLE
PAGE 22
spACER
--- m-----
CELL CFF cf11 av
3.2 CIRCUIT DESCRIPTION
The LCD screen is bit mapped into display RAM which is
shared with the 8085 single board computer (SBC). The
display controller hardware constantly refreshes the LCD
screen with the data in display RAM.
The SHARP display requires data for the top half and
bottom half of the screen concurrently as well as various
clock signals. (see Fig. 8) The data is sent in serial form
at 600 Kbits/sec. over two lines, with another four lines
required for clock signals. The data for the two sections of
the display are stored in seperate RAM's. The addresses for
display RAM are shown in Fig. X. The hardware thus provides
the following:
- constant refresh of the screen- display RAM shared with the 8085- all the clocks necessary to run the display
TIMING GENERATOR:
All timing and clocks are derived from the 3MHz 8085
processor clock input 3MH. (see Fig. 9) This signal is
divided by five by the decade counter U4 to generate the 600
KHz CP2 clock, which is the serial data rate used by the
controller. CP2 clocks the shift registers in the display
RAM section, is divided by eight by counter U5 to provide
the address counter clock ADCLK, and is used to derive the
other clocks for the display. Gate U13a resets U5 when BRES
goes low at the end of every page.
Counters U6 and U7 divide CP2 by 240 to provide a clock
CP1 that is high for the last pixel of every line. U6 and U7
are wired as a divide-by-30 counter that is enabled once
GRAPHIC LCD AIRCRAFT DISPL Y PAGE 23
every eight cycles of CP2 by ADCLK.
A divide-by-64 counter is implemented by U14 and U15
to provide a signal LLINE that is high for the entire last
line of the display. J-K flip-flop U10a sets at the falling
edge of CP1 if LLINE is high, then resets at the next CP1,
generating a signal FLINE that is high for the entire first
line of the display. This pulse is delayed approximately
5us by R1, C1 and U16 to provide the page clock signal S to
the display. FLINE toggles U9a to provide M, which causes
the LCD drive polarity to alternate on succesive pages.
ADDRESS COUNTER
An 11 bit address counter is implemented by U11 and U12.
ADCLK increments the counters sequentially through all of
the valid addresses in display RAM. The 8 bits of each word
are shifted out serially to the display between succesive
counts. The counters are reset to zero at the beginning of
each page by ADRES.
DISPLAY RAM
The 240 by 128 pixel display is mapped into 4K words of
RAM consisting of U21 and U22. The upper half of the display
resides in all but the last 1 2 8 H locations of U21, and the
lover half similiarly in U22. This gap of 128 locations
between the upper and lower storage locations of the screen
must be handled by software.
The display RAM is shared between the display
controller and the computer. The computer addresses the
RAM as a 4K x 8 block of memory, however the controller
addresses it as a 2K x 16 block because it must send data
simultanously to both halves of the display. The address
GRAPHIC L CD AIRCRAFT DISPL A Y PAGE 24
lines of display RAM are switched between the controller
and computer by the MUX' s U18, U19, and U20. The data paths
from the two RAM's are connected to seperate shift
registers U25 and U26, but are also wire or'ed together
through data buffers U23, U24,U27 and U28 to the computer
data bus.
The shift registers are loaded with the a word from
memory immediatly after each count of the display address
counter by a low level on SRLOAD.
CONTROL LOGIC
This section (Fig. 10) controls the sharing of display
RAM between the processor and display controller.
The amount of time for a memory access by the computer
is so small (< lus) that the display controller has almost
unrestricted use of display RAM. Thus, the MUX's are
normally selected to the counter, the data buffers are off
(high impedance), and the shift registers are sending data
to the display (Fig. 11).
When the computer accesses display RAM several things
must occur. When chip U1 detects an address in the range of
4 0 0 0 H to 4FFFH (display RAM) it deselects the correct RAM
preventing access by the display controller. The MUX's
select the the computer address bus for input. Finally the
data buffers are enabled in the correct direction by
U2, U3, and U8 depending on the status of the read and write
lines (Fig. 12)
GRAPHIC L CD AIRCRAF T DISPL A Y PAGE 25
m"AP LM-24003G GRAPICS DISPLAY
DATA(TOP)
"CP2"
BITOL
Al
240 BIT SERIAL IN / PARALLEL OUT SHIFT REGISTER
LATCH AND LCD DRIVERS
240 064 .X.6 mm dot
.7 x .7 mm spacing 0
60J640
0(
LATCH AND LCD DRIVERS
(BOT) 240 BIT SERIAL IN / PARALLEL OUT SHIFT REGISTER
LINE CLK
-s-PAGE CLK
"M"ALT PAGE CLK
LCD DRIVE ELECTRONICS(drive polarity inversion every frame)
(tmpraur -opnee)
Fig. 8 SHARP DISPLAY
GRAPHIC LCV AIRCRAFT DISPL A Y
RESET
C0
R UON<
ER
C0
R UO N
TER
RESET
PAGE~ 2
I
+5V
-12V
TIMING GEERATOR / ADDRESS COLUTER
BLOCK DIAGRAM
3MHZIN
COUNTEF
OTI-ER
t EXPAND
LOGIC
ED ELSEHWERE
Fig. 9 TIMING GENERATOR
GRAPHIC LCO AIRCRAFT ISPLA Y GPAGE 27
CONTROL LOGIC - BLOCK DIAGRAM
DATA LINES
CONTROL LOGIC
OTHER
EXPANDED ELSEWHERE
Fig. 10 CONTROL LOGIC
GRAPHIC L CD AIRCRAFT DISPL A Y
- il
PAGE 28
LCD CONTROE.R - BLOCK DIAGRAM
5 U1,2,3f8
CONTROL RM ENABLEflux CONTROL
LOGIC'- BUFFER CONTROL
8
16 Data
Address8
8085 SINGLE BOARD COMPUTER
Fig. 11 DATA FLOW IURING DISPLAY REFRESH
GRAPHIC L CD AIRCRAFT DISPL A Y
CONTROLLERBLOCK ACTIVE
CONTROLLERBLOCK DORMANT
Tt OTHER
EXPANDEDELSEWHERE
PAGE 29
LCD CONTROLLER - BLOCK DIAGRAM
CONTROLLERBLOCK DORMANT
OTHER
EXPANDEDiL-l ELSEWHERE
Fig. 11 IDATA FLOW DURING RAM ACCESS
GRAPHIC LCD AIRCRAFT DISPLAY PAGE 30
3.3 PROGRAM DESCRIPTION
The LCD program is organized around a command
recognizer which accepts data from the serial port and
calls the appropriate subroutines.
INITALIZATION
INIT: -- Entry point for cold start.
GO: -- Warm start entry point. Does not disturb
currently defined symbols.
COMMAND RECOGNIZER
GETCMD Commands are read from the input buffer by
executing RDBUF. A lookup is done in the table, CTAB to find
the address of the command routine, which is then passed
control. An unrecognized command causes a jump to the error
routine which sends a '*' to the console.
COMMAND IMPLEMENTING ROUTINES
For each of the characters recognized by GETCMD, a
command routine exists to process the data in the command
string, and call the appropriate graphics subroutines.
MVE GRAPHICS ROUTINES
POINT allows any pixel on the screen to be turned on or
off.
PUT places a graphics symbol on the screen at the
specified coordinates.
PUTX places a graphics symbol on the screen by
performing an exclusive-or (XOR) with the data currently on
the screen. This allows a symbol to overlap another, and it
GRAPHIC LCD AIRCRAFT DISPLAY PAGE 37
may easily be removed by doing a second XOR.
The subroutine DROTR shifts the accumulator right
from one to seven places. Carry-in is from the C register
and carry-out is placed back in the C register. The value in
RMASK must be valid prior to calling DROTR by executing
GETMSK. This is done to avoid selecting the correct mask on
every call of DROTR.
SCREEN ADDRESSING ROUTINES
At a specified pixel, SCADR calculates the address of
display RAM, and location of this pixel within the
indicat ed word.
INCSAD computes the next address of display RAM vithin
the vindow defined by the hieght, vidth, and coordinates of
a specified symbol.
SYMBOL STORAGE / LOOKUP ROUTINES
SYMADR determines the storage location of a symbol.
GETSYM accepts data defining a graphic symbol,
consisting of its height, vidth, location, and form.
ADDSYM adds a symbol to the symbol table along vith the
next free address for storage.
STRING STORAGE / LOOKUP ROUTINES
ADDSTR accepts a string and adds it to the symbol
table.
PUTSTR places a string on the screen.
CLRSTR erases a string by printing an equivalent
number of spaces.
INPUT / OUTPUT ROUTINES
GRAPHIC LCD AIRCRAFT DISPLA Y PAGE 32
RDBUF reads one character from the bottom of the input
buffer and returns it in the accumulator. The circular
buffer is 1 0 0 H bytes long. If the buffer is empty and the
demo program is not running, the console input routine is
called. If, however, the demo program is running (FUNBYT =
FF) control is passed back to the demo program.
WRBUF writes one character to the top of the circular
input buffer. Buffer overflow causes a jump to the error
routine.
DEMONSTRATION PROGRAM
The demonstration program was written to test the
graphics program, as well as illustrate the simulation a
simple aircraft instrument. As such, it writes ASCII
command strings to the input buffer, instead of calling the
individual routines. Because control of the display over a
RS-232 port would involve sending the same sequence of
commands, this program is excellent example of how to
define and move symbols and strings.
GRAPHIC L CD AIRCRAFT DISPL Y 3PAGE 33
4. CONCLUSIONS
This project has demonstrated that a fairly low cost,modular, flat panel flight instrument is feasable. The LCD
display would be the best choice for the general aviation
market where price, size, power consumption, and weight are
very critical.
The graphics software currently allows many objects
to be moved about on the screen, as well as the display of
character strings. Symbol rotations could be simulated by
storing copies of the different orientations and switching
between them. These functions would allow the generation of
quite complex flight instrument symbology.
Many functions could be added to the current system
such as:
- Drawing a line between two specified points.
- Adding special attributes to symbols such as
automatic blink.
- Adding a touch sensitive panel in front of the
display so that mode choices may be selected by
touching the screen.
GRAPHIC L CD AIRCRAFT DISPL Y PAGE .34
5. BIBLIOGRAPHY
Alan R. Miller, 8080/Z80 Assentle Language Prograning , John Wiley andSons, Inc., 1981.
Microprocessor and Peripheral Handbook, Intel Inc., 1983.
Modern Display Technologies and Applications , AGARD AR-169, NorthAtlantic Treaty Organization, Advisory Group for AerospaceReasearch and Development, edited by Prof. Ir.D.Bosman, TwenteUniversity of Technology, Netherlands, October 1982.
Motorola Memorey Data Manual, Motorola Inc., 1982.
6$RAPHC LCD AIR CRAFT DMP'L A Y PAGE 35
APPENDIX A.
PICTURES
GRAPHIC LW AIRCRAFT DLSPLAY PAQ-5
y
I4
INSIDE GRAPHICS UNIT
.-7 . .. .. .. ..
IT
ig-
MC-885
CIRCUIT BOARDS (FRONT)
KN
BOARD A BOARD B
litU'
- c -JUL
.. ... ... .
C)7
seem,
1- -
/}
MCG-8085 BOA*O A BOARD B
CIRCUIT BOARDS (BACK)
LM-24003G DRIVE ELECTRONICS ON BACK OF BOARD
SD
GRAPHICS DISPLAY UNIT WITH ILS DEMO RUNNING
APPENDIX B.
SCHEMATICS AND PARTS IAYOUT
GR'AMC LCD AAqCAFT DILAY 42PAQF 42
PARTS LIST
Ul
U2, 8
U3, 17
U4
U5, 6, 7
U9
Ulo
Ul, 12
U13
U16
U18, 19,
U21, 22
U23, 24,
U25,26
U29
Cl
R1
PAGE 43GRAAPHIC LCC AIRCRAFT 7I'LA Y
- 74S 138
- 74LS27
- 74LS04
- 74LS90
- 74LS163
- 74LS74
- 74LS76
- 74LS393
- 74LSOO
- 74LS28
- 74LS157
- HM6116
- 74LS243
- 74LS165
- 74LS241
-. 001 pF
-1K f
,14,15
20
27, 28
CARD PINOUT
BOARD A
GNDGNE
AOAlA2A3A4A5
A6ADDRESS BUS
A10
AllA12A13A14RD-UR-CS15-
CP1CP2
Dl
D2
D1D2D3D405D607
+5v
+5V
DISPLAY SIG.
DATA BUS
GRAPH/C L CV AIRCRAFT DISPL A Y
BOARD B
CPlCP2S
01D2
CP2BSB TOMIBD1BD28
DISPLAY
3MHZ
RD*
INT S.5I. 0.
RSTAGAl
CS15*10/M*
INCNDOUT
RS-232
+5V+5V
DOD1,D203 DATA BUS04D50607
-12V+12VLCD +
3 MHZ
PATF 4W
LOGIC TIMING DIAGRAM
SEGINNINC OF PACE E1NNINC OF LINE
LINE # 634 64 1-*4 2- -3
CP1
CP2
ADCLK. LCOW SERIAL SHIFT REGISTERS AFTER ADDRESS INCENT
SRLOAD'
LLINE
ADRES
8RES
FLINE
sS D
MD
BIT* 2 1 2 3 4 5 6 7 8 9 -. 7 7 8 8 .-.4 8 9 0 10
12 2--239
2 1 2-.2 2 1 24 3 40 9 0
D: CLOCK FOR DISPLAY
BOARD A -COMPONENT LAYOUT
;$@;W~.:......!!.....
.. ....... U28 U27 -Tx:U26
....BUF BUF SR
6116 6116.... ... .......I...
U2 U24U2
S BUF SRA, BUF :%SR R
U18
88 UX: : -: : . . . ..
U 8 .. ..... .1
U38
NVND
...............................
U7
CNT.. ........ .................................. . ............ .............. ......................... 7-7'7""'r.................. .... ...... .............
U4
CNT............ .... ............ ..................... . ............... ............
~C1
U16NOR
........-
CNT
U6
CNT
.. U5
LCNT:T
GRAPHC L CX) AIRCRAFT DPLAY 6
U20
MUX
-': U11. ..
ACT
FF
U1 .. .. ...: . . ..CS ..
......... .- .................................................... - - -.............. ..
U9
FF............ .................................................................. ... ..... . .......................................I ............................. ............. ..
U2
NAND.......................................................... ...uI.... ..... m ..... hII..... ..... m.....I
...U19 :
../.:-.:.... .. .. . . . . . . - . . ..
U12 88
SACT
PACE 46
i ilf.-Y
.............................* * . . ... . .. . .. .. ................................................
..............
U17
r I VNINV
..............
.. .. .....U13
NAND. AND..............................- -------------
. U14 .....
. .. N T .. . . .
BOARD B - CObAPONENT LAYOUT
.. ....... ..... .... ....."", ... .... - w .. f .....
f.z .,!f ... !f.f! .............................. ............................. .. ..... .. .... .... ................... ............ -........... ...... .. .... ... .. .. I .. ..... ... .. .. .. - .. ................ ................................* ............................... ................................................. .............. .. .....I ................................................. ........................I ...................................... .............. .............................................................................................. .. .. .... .
.................... .............................. ......................... ................... ....................................... .... .... .. .......-.... ............ ........ ... ............................ ......... .... .. .................................................................................... .... ........................... .................. -... ... .. ......... .... ..... .......... ... .. .- .. ................................................................ ....... ............................... .. .. ... .. ... .... ..... .. ... .. .... .. ...... .... .. ... ..... .. ... ..... I .. ... ... a.......... ........ - -- *- ** ........... ..... ..... ................ ............ ... ........... ...................................*.,.,.,., ....... ............................ .....................................I ....... ........................... .......... .... ............................... ..................................................... ............. ............................................................. ............................................. .............................................* * .................I ........................................................................................ ... ................................................................. .. ........ ...................... .. .. .. . . . . . . . .. .. . I ............ ...... '7777'=.. .. .. .. . . .. .. . . .. .. . . .. . ... . .. .. . .. . .. .. . . . .. . .. .. .. . . .. .. .. . .. .. .. .. .. .. . .. .. .. . .. .. .. . .. .. .. . .. .. .. .. . .. * * * * . .. .. . .. .. .. . . .. .. ........... ............... .. . .. .. .. . . .. .. . .. .. .. .. . .I .. .. .. . .. .. ............ . .. . .. . .. .. . . .. ....... .........
............ ....... ......... ........... . .. .. .. . .. .. .. ..
.. .. . . .. ... . .. . . . .. .. .. - .. . .. . .. .. .. . .. ... . . ... . ... . . ...... .. .. . . . .. .. . .. .. .. .. . .. . . .. .. . .. .. . . .. .. .. .. . .. .
.... . .. . .. . . . . .. .. . . .. .
. .. .. .. . .. . .. ... .. .. . .. .. .. . ... .. . .. .. .. .. . . .. .. .I .. .. . .. .. .. . .. . . . .. .. . .. . .. .. . .. .. .. . ....... .. .* .. . .. .. .. . I . . .. .. .. . .. .. .. . .. . .. .. .. . . . . . .. .. .. . .. . . .. .. -. .. .. . .. .. .. .. .. . .. . .. .. . .. .. .. . . .. . .. ...... .......
. .. .. .. . . .. . .. .. .. . . .. .. .. - . .. .. . . .. . . .. . . .. .. .. .. .. .. ... .. .. . . .. .. . . .. .. . . .. . . .. . . . .. .. ..
.. . .. .. . . .. . . . . .. .. .. .. . ....... .. .. .. .. .. I .. .. .. .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. .. . .. .. .. . . . .. . .
. .. . .. .. .. . .. .. .. . . .. . .. .. . .. .. ... . .. .. . . . .. .. .. . .. .. .. . . .. .. . . .. . .. . . . .. . . .. .. .. . . .. . .. .
. .. . .. . .. .. .. . .. . . .. .. .. . .. .. .. . .. .. .. . .. .. .. . .. .
. . ... . . .. .. . .. .. .. . . . .. . . . .. .. .. . . .. . .. . ......... . . .. .. .. .. .. . .. .. .. .. .. . . .. .. . .. .. . . .. ......... . .. ..... .... . .. .. .. . .. .. .. . . .. . .. . .. .. .. .. . .. .. .. . .. .. . .. .. .. . ....
..............'n, .. .. . .. .. .. . ...... ......... . .. ... . . .
........................ . .. .. .. .. . .. . .. .. . .. .. .. .. . .. . . .. .. I . . .. .. .. . . .... . .. .. . .. . .. .. . .. .. . .. .. .. ... . .. .. .. .. .. . .. ... . * *' ' - * . . .. .. .. . .. .. ... .... .. .. . .. .. .. . . . . . .. . . . . .. I . , .. . .. .. .. . .. .. . .. . .. .. .. . .. .. . . . . .. .............. , * *'*"*'*"-*,***,%**%%""' **%"'***'**" *"**** * * ",.,: ... * , ".., * *,.** * * * *... .. .. .. .. . .. .. . .. . . .. ...................................................... .. . . ... . . . .. . .. .. .. .. . . .. . .. . .. . . .. . . .. . . * . . . . . ... . .. .. .. .. ... .... . . .. . .. .. ... I .. .. . .. .. .. . .. .. . .. . . .. .. .. .. .. . . .. .. .. . .. . . .. .. . . .. .. ... .. .. . .. .. .. . . .. .. .. . .. .. .. .. . . .. .. .. .. .. . .. .. . .. . .. . .. .. .. . .. .. . .. ...
., .. .. .. . .. .. .. .. .. . . .. . .. . .. . .. .. . . . .. ... .. . ... . .. .. . .. .. . . .. .. .. .. . .. .. I . .. . .. .. .. .. ... .. .. . .. .. .. . . .
. .. .. I . .. . . .. .. .. . .. . . .. . . .. . .. .. .. . . .. . .. I . . .. . .. . .. .. ... .. .. . .. .. .. .. .. .. . .. .. . . . .. . .. .. .. .. . .. .. . .. .. .. .. . .. .. . .. . .. .. .. . .. .. .. .
......... ........ ................ ..........., : ... .. . .. . .... .. .. . . . . .. .. . .. .. .I . .. .. .. .. .. .. . .. .. .. . .. . . . . .. . .. . ..
................
...... ...........
. .. .. . .. . . .. . . .. .. .......... . .. .... .. . .. . .. . .. . .. . . .. . . . .. .......................................... ......... .... . .. .. .. .. . .. . . . .. .. .. . . . .. . . .
.. .. .. .. .. . . .. .. .. . .. . I . .. .. . .. .. .. . .. .. .. . .. .. .. . .. .. .. .. ... .. ... . .. . ..*. . . ." . .. .. . .. .. .. .. . .. .. .. . * .. .. ... .. .. . ... . . .. .. . .. .. .. . .. .. . .. . .. t . .. . .. .. ..
.. . .. .. . .. .. . . .. .. .. .. . .. .. .. .. . . .. . .. . .. .. .. ... . .. .. .. . .. .. . . . . .. ..
.. ............. . .. . .. .. . .. .. . .. .. . . . . .. .. . . .. .... .. . . .. . . .. . .. .. . . .. .. .CToUIL
... ... ...... ... ...... ............... .. . ..... . ..... .. .... .. - . ... ... . ...... . .... ... . .................. . ........ ....... .... ............ .... .................... .... ... ..... .B U F . .............. ... ..... m..... ................................... .... ...... .... ...... ............... ....X*%*.*.%,,V .* .. .... ... ... . .. ... .... .. .. .. .......... .. .......... .. ...................... ..... . .............. ....................... ...................... ............................................................................. ...
1"..--------- -
GR4q -#C L CV AIRCRAFT DISPL A Y PAGF 47
-6 5 4 3 2 1
10b
+ L5766 D
+5U
+5U U12 12C
LS393
GnU d 0u uF x 8 **A ----Gnd dc l
Gnd U13c12
U11 13 iSRLOAD
usBU4LS393 s n_
+ ,,siS3 s
2 OCAE Cn U17b 4U3 33~ R2
4 AP3____ 'aE
-- T R P - )a B3MHz I 'C 2R
____ ~RIOBCP2
AORES
10 CP2+
- " U13b 6 CR
U7 U + U4 U15
B SIMMYCT" + mz Tcr" U12c 1r918e U10aT , P
--- Do 0, - DD 0. .- D194 LLINE 4I 1 FLINE 6D e-D. 0. - D, o -2 > U12a L56U9a
10 T mIPPLE ct CLc IPL T RCP yE - FICARRY 1* CRPP ---- P - .... - 5,sLCL LMCL LD) CL 7
v v 13
L+ 9 Ul3c8
TITLE: DATE:
LCD DISPLAY CONTROLLER / A 10 AUG 84
ENGINE"ER: LEE MARZKE PAGE 01 OF 0287 654 ............ 2
RD r
wR
1A14
1A12
Dem. 14
1A77
Y. U3a 2 92
LS1577
S-,1 Y. -;
5,± Y4_____4_9_______HIla Y,
1R15 _______r_____ I_
IRI lsIja
11. Y.1A02
IRS U19
LS157
11. YIl Y
104
U11. 4
514U20
LS157nux103
11, Y4
Y0,
', II. ;
l04- -- 1. Y.'
222222222222
1198765432101M
UJSc
U3d
U32
U21
6116
-D
U22 24
4, 6116
1820 21 12
WRM*
WRB1
RBO [RDBO
U26
LS16
U25
k i LS16;
ffi~zI
U27LS243
3 1* 11L
34 4411
44 4.d10
13 1
LS243 U28
AL 4.
_L5243_ U24
U23-] 1243 I
4A 441
I
_1 D2
1A4
1A3
1A2
IRO
TDO
D2
D3
D4
D5
D6
en DS
I i WRBQ
I
i i i
1 ,
+5
+5VI
-12am
+12mm
3MHZ
WR*
RD*
INT 5.5
T. 0.
RST
C515w
I0/1*
IRI
IP2
-,= IN 7
-4 GNJ RS-232
4mourl
L129
-1 >cT.D
i-xc E-T-S
Tx-c- ST.-
CL
CID
07
US 8251.ADo
104
D3as
:12
-00
FT-5 RX.Dy
RX0 S-DETan
SCREEN lEMORY LOCATIONS
COLUMN
11012345678901
1 400 * ......... .. .................................. ................................. .
... .. ................. .......... ................ ...
-i ... .. ... .................... ... .............. ..... ....
.. ... .... ....... ............. .... .. ... ....... .....
... . . ... .. .. ... . ... .... . ..... . ... ....... ....
. ... . ...... ..... . . . ... ....
....... ..... .. ........ .. ........ ............ .............
.... .... .... ..... ...... ... .. ....
. ... ... .. . ..... . .. .
111111228901
222222222222222223333333336789013456789
4000 4001 )
401E
476 }... ........ .....
.. ........ ... ...e... ..... ...... .... .... e... ... ....... . . . . ......... ....... ... ....e...
4F7F
12345678
8 PIXELS / WORD
WLq&RVI rMY
- MEMORY LOCATION 4000
Aw N
401C 401
40
.... ... ... .... .... ... .......... .... .................. ............. ... .... ......... ....
.. ... .................... ..... .................. .... ............ .... .... .... .
.... ............ .... .. .... ....... ... .... ..... ...... ..... ...... ........ ..... .. ... .. ... ..
... ..... ......... ... ... ............ .... ... ....... ...... . ... ..: , f 47
MEMORY MAP
ADDRESS(HEX)
FFF Ct mu'1000 "
RAM BS113FF1400
RAM BS217FF1800
FREE CS
1FFF2000
M-RAM CS420FF2100
MON-RAM
27FF IMAGE
2800"'*
FREE CSS2FFF3000
DEMO CS6EPROM
37FF3800
cmm C573FFF RAM
-CPU CARD
4000
DISPLAY RAM47FF4800
DISPL AY RAM
4FFF - --
^C COTOLER
PORT #
20
21
22
23
24
25
I/O PORTS
COMMAN\D-
STATUS REG.
PORT A
PORT B
PORT C
TIMER L.O.
TIMER H.O.
TIMERIN OUT
8155 I/O CHIP
3MHZCPU CLOCK
INT 7.5(1 mS interupts.)
0000
"SOFT'SWITCHES
Nw
APPENDIX C.
SHARP LM-24003G DISPLAY
GRAPHIC L JV AIRCRAFT DIL Y PAGE 53
N DescriptionThe Sharp LM-24003G is a graphic display unit of 240 x 128 full dots which combines a dot-matrix LCD panel and driverC-MOS LSI on a single printed wiring board.It can display graphs, diagrams and characters as bit mapped patterns It is suitable to various types of equipment, such as,compact OA equipment and measuring instruments which require needs of slim, light weight and low power consumption.
*Features* Displaying graphs and diagrams in addition to characters* Very easy to be mounted on other equipment due to compact, slim body and low power consumption* Stable display in wide range of temperature due to built-in temperature compensation circuit* Easy-to-read display with wide viewing angle and high contrast.* The unit operates from +5, -12 power supplies.
EApplications* OA system. Word processor, POS terminal, Computer terminal, etc.* Measuring instruments: Panel meter, Scaler, Analogue digital tester, etc.
* Outline Drawing
Outline Dimensions (Units: mm)
-Pin No 1
Pon No.1
Dot Display Details (Units: mm)
-- e--- -- a---------- - 0
!1 06f,
09,,,,,,,,,,,,,,,,,--------(88
7-
LW A#AQT LMS AY PAW Y PAGE_2 56
N Mechanical Specifications
Item Specifications Unit
Unit outline dimensions 241 (W) x 125.3 (H) x 14 (D) mm
Effective viewing area 179.9 (W) x 101.5 (H) mm
Display format 240 (W) x 128 (H) full dots
Dot size 0.6 (W) x 0.6 (H) mm
Dot spacing 0.1 mn
Dot color Dark blue
Background color White
Weight Approx. 300 gr
EAbsolute Maximum Ratings
Item Symbol Min. Max. Unit Remark
Supply voltage (Logic) Voo-Vss 0 7 V
Supply voltage (LCD driver) VoD-VEE 0 20 V
Input voltage VIN 0 Voo V
Storage temperature T, -25 +55 *C
Operating temperature T,, 0 +50 *C
M*Electro-optical Characteristics (Ta = 25*C
Item Symbol Min. Max. Unit Conditions
Supply voltage (Logic) Voo-Vss 4.75 5.25 V
Supply voltage (LCD driver) VEE-Vss -13 -11 V
Input signal voltage VIH 0.7 VO VOo V "High" level
VIL 0 0.3 V 00 V "Low" level
Input leakage current IL - 20 pA VIN=5V
Power consumption Pd - 100 mW Voo=5V VEE=-12V
01 40 - degree Co_2Viewing angle 02 - 15 degree Cog 2
Contrast ratio Co 2.0 **2.5 0=15*
* Temparature eripansatiom cireit is buit-ingTypical valu"
Mhtrfae Timing Chart
T-~400ss
CP,.
D 1, - J' _j _ F F0 1- 1 -a--
DI.:
S: 2ps min --- Os mmn
S.(Contraced)4T
-T -W T 4 r -I-1
N Interface SignalsConnector used: MOLEX 5046-10ACompatible connector: MOLEX 5051-10
Pin No.* Symbol Description ___ Effective Level1 S Scan start-up signal "H"2 CP1 Input data latch signal H - L
3 CP2 Data input clock signal H - L
4 D1, Display data signal (Upper half of screen) H (ON), L (OFF)5 M Drive waveform alternating signal H, L6 V0 Power supply for LCD drive(+)
7 Voo Power supply for logic circuit
8 Vss Ground potential -
9 D12 Display data signal (Lower half of screen) H (ON), L (OFF)
10 VEE Power supply for LCD drive_(-) -
For the location of Pin No., refer to outline dimensions.
a Circuit Block Diagram
I1eemarks) This is tentative information and subject to be changed without notice For detail specifications, contact our sales department
SHARPSAOP CORPORTION OSAKA JAPAN
M eRNATIONAL BUSINESS GROUPELCTRONIC COMPONENTS SALES DEPT
3-1. NAGAIKE-cHO ABENO KU. OSAKA 545, JAPAN~ OSAK A (0616211 221
TECaX NO AAB LASOMETA JE3428(OSKPA)
NORTH SHARP ELECTRONICSAMERICA CORPORATION Distributed by
to Sharp Plaza Par-m NJ 07652. USAElectuom Coponets Dv,,soPHONE (201 265-500TELEX NO 426903 ISHARPAM PARA)
EUROPE SHARP ELECTRONICS(EUROPE) GMBHS'70-a4e320tHa.bo,9I FR Germanyftirco, Comrpcnur, 5,,ocPHONE 4040) 23775 281350TELEX NO 2161 867 (HEEG 0
'a3 @SHARP CORP. DI-16 Sept. '83 1,000W Printed in Jean
4 7 AY
D,
CPI, CP2 , MVoo. Vs5
VE, VO
IC1, IC 2 , IC9 , IC1 0: Scan Electrode Driver1C3 -IC 8 , IC1 1 ~1C16 :Signal Electrode Driver
~W N
APPENDIX D.
MCG-8085 COMPUTER
GRAP#C L CW AJRCRAFT DIS A Y PAGE 57
MCG-85 TM
unrnnn
THE GENERALSTANDARD UNIT FEATURES
HARDWARE4 8085A CPU
1 Serial RS232C Port* 2 Programmable 8 Bit Parallel Ports0 1 Programmable 6 Bit Parallel Porte 5 Interrupts, 3 with Maskable Priority* 2304 Byte RAM Capacity On-Board (2048 can be
CMOS RAM)* 256 Byte RAM Includede 4096 Byte of ROM Capacity On-Boarde 2048 Byte of RAM Capacity Included (Programmed
with Expeditor System Monitor)e 2048 Bytes of User Selectable RAM or ROM Capacity
On-Board* Programmable 14 Bit Counter/Timere Power-On Resete External Push-Button Reset Switch* 6.144 MHz Crystal (Provided with Board)e Operates on any Crystal Frequency (1 MHz - 10 MHz)e Data Bus Buffer Capacity On-Board* 44 Pin Edge Card* All Chips On Sockets* Parallel Ports Available on On-Board Socketse Address, Data and Control Bus Available at Edge
Connectore Ample On-Board Prototyping Space* 4 Spare Edge Connector Pins Availablee 6 Spare Pins Available at one of the On-Board Parallel
1/0 Sockets
SOFTWARE"EXPEDITOR" 2K SYSTEM MONITOR
* Programmed on 2716 EPROM* Automatic Baud Rate Detection (50-19.2K Baud)* CP/M' or ISIS' Systems can be used for Program
DevelopmentSYSTEM COMMANDS
- Substitute Memory* Move Memory* Display Memory- Execute- Fill Memory with Constant- Kill Echo- Examine Registers- Insert- String Search and Replace- Assemble- List Disassemble Code
DOWNLOAD COMMANDS. Read Hex Paper Tape Format- Write Hex Paper Format- Hex Sequential Load- Ascii Sequential Load
* 9 Terminal 1/0 and Utility Routines* 6 Test and Compare Routines* 4 Code Check or Convert Routines* Optional Line Assembler on 2716* Optional Disassembler on 2716
A TLAIS COM PLIERS IDNisON of ATLANTIS COMPUTERIZED SERVICES CORP
31-14 BROADWAY, A5[ORIA, N.Y. 11106 (212) 728-6700
GM4R LCD APAQWAFT LZ5PA Y PAG~ 58
NAROWARE 118CNPTlON
THE USIA CPUThe 8085A CPU Is 100% software compatible with the
8080A while offering the benefits of a single power supply,higher Integration, higher performance and improved systemtiming The 8085A CPU is fully described In the Intel MCS-85User's Manual. The 8085A derives Its timing inputs from thecrystal. In addition, the 8085A drives the system with controlsignals available on-chip. No additional status decoding cir-cuitry is required for most systems. The data bus is multiplex-ed with the 8 low bits to drive the system's memory com-ponents. This is not true in the case of the 8155 which Is inter-nally latched and is therefore driven directly from the 8085A.
8085A INTERRUPTSFour vectored interrupt Inputs are available in addition to
the standard 8080A type Interrupt, (rRAP, INT5.5, INT6.5,1M7.5 and INT). There is also a serial Input (SID) and serial out-put (SOD) data line pair that is used as the system's softwareuart.8155
The 8155 is a highly integrated chip designed for com-patibility with the 8085A's bus structure. It contains 256 bytesof RAM, 22 programmable parallel 1/O lines and a 14 bitcounter/timer.
74LS138 (Address Decoder)The MCG-85 contains a 74LS138 chip that decodes the85A's memory address bits to provide the chip enables for
the 8155, 2716, 5516, 2114s, 6514s and the 2016.
MCG-85 MEMORY ADDRESSINGEach memory I/O on the basic MCG-85 is enabled from the
74LS138 address decoder. The memory map lists each chipoutput enable accompanied by the address space over whichN is active and the MCG-85 device that Is selected. Further-more, any areas marked open are free for expansion; the74LS138 has 4 uncommitted chip select lines to allow for theaddition of four 2048 byte memory blocks without additionaldecoding circuitry.
MEMORY CAPACITY AND DESCRIPTIONThe total on-board capacity of the MCG-85 s 6K bytes, in ad-
dtion to the 256 bytes of Static RAM contained on the 8155.The General can accommodate the following memory chips:2716 24 pin 2048 X 8 5V, 2K EPROM or equivalent3016 24 pin 2048 X 8 2K Static RAM or equivalent9616 24 pin 2048 X 8 2K CMOS RAM or equivalent2114 18 pin 1024 X 4 Static RAMS or equivalent1614 18 pin 1024 X 4 CMOS RAM or equivalentFor the exact on-board combinations, please reference theMCG-85 Block Diagram. The MCG-85 will accept any memoryspeed. Memory supplied as a standard feature with each unitIs a 2K EPROM (2716) containing the "Expeditor Monitor" andthe 256 bytes of RAM available on the 8155.
RS232 SERIAL PORTThe 1488and 1489 provide the RS232 signal levels for the
General. They are the RS232 Driver and receiver respectively.One gate of the 1488 is used for TX data and one gate of the1489 is used for RX data. This leaves three gates available forfuture expansion.
PARALLEL 1/0 PORTSIncluded on the MCG-85 are 22 parallel 1/O lines (on 8155).
They are configured as follows: two 8 bit ports and one 6 bitport (please reference parallel port connector diagram). ThepWrts are available on two on-board 16 pin sockets. Connec-tions can easily be made using 16 pin headers.
TheUtsmss ius busise .. ee wedtad e -neseedf the user wishs to drive aditln off4-rd memoryperipherals. They are not necessary for system operation.
ON-BOARD PROTOTYPING SPACEThe MCG-85 has a small area on-board dedicated for p
totyping. There are 122 pre-drilled holes with solder maskboth sidesithat can accommodate chips with different pinconfigurations.
SOFTWARE DESCRIPTIONAll the software for communication, program development
and program storage, is provided standard with each unit, inthe Expeditor System Monitor. The software features are listedon the front cover. For the system's operation an RS232 typeterminal and a power supply are required. When properly inter-faced to the aforementioned hardware, the General, during"bootup" will automatically calculate the baud rate of the ter-minal (50 -19.2K baud) and transfer the program to the com-mand recognizing routine. At this point, the General will ac-cept any valid command.
SOFTWARE DEVELOPMENTKnowledge of 8085 Machine language is required, in order to
program the General directly, using the commands and utilityroutines on the Expeditor Monitor. In our User's Manual, weprovide useful examples of sample programs (parallel toserial, serial to parallel conversions, data acquisition, interruptdriven AID, remote control of the MCG-85 from host computer,etc.) which will suggest program development methods andpotential uses for the MCG-85.
*PROGRAM DEVELOPMENT UNDER CPM*The General, through the download commands (R&W),
enable the user to develop programs on a CP/M basedcom-puter. The majority, if not all of the CP/M disks existing containan 8080 assembler. This assembler is 100% compatible withthe 8085 instruction set. By using this assembler and takingadvantage of the more powerful editor of the CPM based con-puter, programs can be developed quickly, without the need ofa development system. Subsequently, at each stage ofdevelopment, the code can be downloaded into the MCG-85 byusing the "PIP" CPM command and the "R" (Read Hex PaperTape Format) command of the MCG-85 and tested without theneed for an EPROM to be burned each time. After each worksession, the programs developed for the General can be storedon the floppy disk of the CPIM based system for safe keepingand recall for later use thus eliminating the need for retypingthe code into the General from the beginning each time.
UPLOADINGUsing the "W" (Write Hex Paper Tape Format) command will
enable the user to save programs developed on the General ona system that supports a disk drive. Through this method,machine language programs can be saved and later retrievedthrough downloading thus eliminating the need for reenteringcode.
THE GENERAL IN DEDICATED SYSTEMSIn the event that the MCG-85 is intended to be used as a
Dedicated Controller, and because it has a software UART Fnot a hardware UART, the UART part of our monitor may ,copied and incorporated into the Dedicated Controller pro-gram. It is about 100 bytes long and can very easily be in-tegrated into the software.
This method of program deveoipment can also be used with an ISISr based erany other computer which wdi generate 8060 code in Hex Paper Tape Formst
U4WV LW -IFY AMWN
NAME: The Micro Computer General 85 - MCG-85.PHYSICAL DIMENSIONS: 4.5 x 6.5 inches.PRINTED CIRCUIT BOARD MATERIAL: Fire Retardant Glass Epoxy.SOLDER MASK: Both Sides.TYPE OF CHIPS USED: 1st Grade Commercial.SUPPLIERS: Only Franchised Distributors. References on Request.
ELECTRICAL CHARACTERISTICSCURRENT REQUIREMENTS FOR FULLYCONFIGURED BOARD
+5V at 1A±12 at 20MA
FUNCTIONAL CHARACTERISTICSSTANDARD UNIT
ADDITIONAL REQUIREMENTSFOR OPERATIONBAUD RATE
CRYSTAL
PARALLEL O
SERIAL PORTTIMER PORTEDGE CONNECTOR BUSCONNECTOR USEDAPPLICATIONS
SUPPORT CARDS ANDRELATED PERIPHERALS
Completely functional computer card monitor softwarein ROM and illustrative User's Manual.3 voltage power supply and RS232 terminal.
50-19.2K baud rate. The baud rate of the terminal used iscalculated automatically by the Expeditor System soft.ware.6.144 MHz crystal provided with the MCG-85 (can operatewith crystal frequencies from 1-10MHz with no modifica-tions).Dip socket access for the two 8 bit and one 6 bit parallelports.RS232 port available at edge connector.Dip socket access to the 8155 timer.ATLANTIS COMPUTERS 44 Pin MCG BusTM.44 pin edge connector; .156 centers.Industrial controls; dedicated test and monitoringsystems; communication subsystems; small scale dataprocessing; A to D, D to A conversions and processing;data logging; data acquisition; prototyping and ex-perimentation.The MCG-85 is supported by a full line of cards, all onthe MCG Bus"m which is the standard we have establish-ed; see inserts for all available cards.
INTEL and ISIS are registered Trademarks of INTEL CORPORATION.CP/M Is a registered Trademark of DIGITAL RESEARCH, INC.
MCG Bus Is a Trademark of ATLANTIS COMPUTERS.
CALL US FOR DETAILED INFORMATIONATLANTIS COMPUTERS' design engineers will be glad to work with you and investigate your specific applications and requirements.
Call direct (212) 728-6700 or write ATLANTIS at the address below.
PRODUCT DEVELOPMENT A PROBLEM?bhe.00 you hire expensive outside consultants, give us a call. We can design, prototype and develop customized software for any project involvingth MCG-85.
ATLAIIS COMPUIMERS . .. COMERIZED SEICES CORP
31-14 BROADWAY, ASORA, N.Y. 11106 (212) 728-6700
*.Mk 1e114 eD COWUTEi'
A. EDGE CONNECTOR PINOUT
PUNCTION CODE PIN PIN CODE FUNCTIONsound GRD 1 A Vcc +5 Volts%ceve data RX 2 B DO
YTansmit data TX 3 C DiWROMPaogrammingVoltage EPV 4 0 02-12 volts -12v 5 E 03+12 volts +12v 6 F 04
7 H *Clock CILK 8 J A2
RESET INIO1M
Fnad RDAIOAltAgA8A12A13A14A15
ROY
AlAOA3A4wD7D6D5A5A7A6INT75INT6 5INT5 5
PORT CONNECTOR PINOUT
. (JL) Timerout B7 (JR)* Timerin B
P C5 85 P P0 C4 B4 0 0
. R C3 83 R R
. T C2 B2 T T#C1 a1 #f #
OAUD 23 Co 80 22 21
AD-A15 ADDRESS BUS, 00-07 BIDIRECTIONAL DATA BS*Available pins for user modification
MCG-85 MEMORY MAP
MONITOR ROM (2K) CSO
EXP EPROM(2K) CS1
EXP RAM1(1K) BS1
EXP RAM2 (1K) BS2
BASIC RAM (256 BYTE)CS4
BASIC RAM IMAGE
OPEN(2K) CS3
OPEN(2K) CS5
OPEN (2K) CS6
OPEN (2K) CS7
r, W L. W -0 -,KT A -I
MCG 85RESET
SWITCH
ADDRESSDECODER-
1488
1489RS232
OORT SIGNALTLEVELS
2716WITH
EXPEDITORMONITOR
8155PARALLEL I/O
TIMER256 BYTES RAM
8085ACPU
6.144MHzCRYSTAL
DATA BIJSBUFFER
EXPANSION(OPTIONAL)
A
2 K MEMORYEXPANSION2716, 2016
or 5516(OPTIONA L)
2 K EXPANSION44 PIN ACCOMMODATES
MCG BUS 2114's or 6514 s(OPTIONAL)
ATL.4 rTIS COM PLIERS DMSION OF ATLANIS COMPUTERIZED SERVlCES CORP
31-14 BROADWAY, ASORL4, N.Y. 11106
£W 1 LW AcAC9QT LKEWLA Y
(212) 728-6700
PA 62
PROTOTYPINGAREA
DIP SOCKETSPARALLEL I/O
TIMER
A. GENERAL CONNANDS
*Substitute command. SXXXX (SP) :The substitute command allows the user to modify memorylocations individually. The command works as follows.
a) Type an S followed by a 4 hex digit address of the first
memory location you wish to examine, followed by a space.b) The contents of that memory location are displayed,followed by a dash.c) To change the contents of the location displayed, typein the new data, followed by a space. The contents of the
next higher memory location will automatically be displayedand be available for modification.d) Type a carriage return. the S command willautomatically be terminated.
*ove memory command. MXXXX,YYYY,ZZZZ (cr)The move memory command moves the contents of memory between
hex locations XXXX and YYYY to destination field starting ataddress ZZZZ.
*Display memory command. DXXXX,YYYY (cr)The display memory command will produce a formatted listingof the memory contents between XXXX and YYYY. Each line ofthe listing begins with the address of the first memorylocation displayed on that line, represented by four hexdigits followed by up to sixteen memory locations each onerepresented by two hex digits.
'Execute command. GXXXX (cr) :Control is transferred from the monitor to the programstarting at address XXXX. If XXXX is not specified themonitor uses as an address the value on top of the stack.
'Fill memory with constant. FXXXX,YYYY,DD (cr)The fill command will put a single byte constant denoted byDD in all the memory locations between XXXX and YYYY.
*Kill echo command. K (cr) :Initially the MCG-85 will echo characters that are receivedfrom the console device. Upon issuing the K command the MCG85 will toggle the echoing on and off. MCG-85 will not echoreceived characters after the K command has been issued.This will allow communication with devices that operate inHALF DUPLEX mode, also this command will insure trouble freeoperation (no missing characters) when downloading.
'Elamine registers command. X (register identifierDisplay and modification of the CPU registers is possiblewith this command. The X command uses a register identifierto select the particular register to be examined. Aregister identifier is a single alphabetic character(A,B,C,DE,F,I,H,L,S,P,H)
'Insert command. IXXXX (cr)Insert command can be used to insert a single instruction oran entire proram in memory. The monitor waits for the userto type in a string of hex digits. Each digit in the stringis converted to its binary value, and then loaded intomemory. Two hex digits are loaded into each byte of memory.
&?APHIC LW A1RCRAFT DI&PL A Y PAQF 63
*sTring search and replace T XXXX (cr).Proats user for search string, then finds the firstoccurance of that string starting at address XXXX. Displaysthe address of the string occurence at which time the userhas the option of replacing the string by typing in the newstring or the user can go on to the next occurence of thesearch string by hitting (cr). The command terminates whenuser types (e3c).[e.g. You wish to change all calls to a subroutine which wasoriginally at 2080 but is now at 20A4. If your programstarts at 2000 you would type T2000(cr). The monitor wouldpromt you for the search string in this case that would beCD8020. The monitor would then search for the firstoccurance of the string, at which time it would print itsaddress on the console and allow you to change contents ofmemory starting at that address. To continue search type(cr), to end search type (ese)
*Assemble AXXXX(cr).If the optional line assembler is mounted on the MCG-85,then assemble user lines starting at address XXXX.
C. TERMINAL 1/0 ROUTINES + UTILITY ROUTINES
OCI (Character input ) [0065H]Waits for an ASCII character to be received from the consoleand returns its value in the A register.
*CO (Character output ) (0068H]Transmits the ASCII character in C to the console. Thecharacter is printed at the current print position.
*SNOUT (Hex number printer ') [006BH]The 8 bit quantity in A register is printed at the consoleas two hex digits.
'CROUT (Carriage return line feed ) [006EH]Sends carriage return and line feed to the console.
'CRSEND (Send characters until carriage return ) [0071H]The contents of H,L contain the address of the characters tobe sent to the console sequentially until a carriage returncharacter is found in the string.
*BSEND (Send characters until B=0 ) (0074]Register B contains the number of characters to be send tothe console, H,L contains the beginning address of thestring.
*CSEND (send character in C reg. B times) [b077H]Register B contains the number of times the character inregister ,C will be sent to the console.
'ASCGET (Input characters until B=0 ) [007AH]Input characters from the console until content of Bregister is equal to zero. Register H,L contain address ofwhere string will be stored. The CARRY is set if routineterminated by carriage return before B=0.
*GETBYT (Get two characters and form byte ) [007DH]First character from input stream becomes lower hex digit,second character becomes high hex digit of the byte returnedin A.
l~APH*IJC & -X? AJRLAFT SI.A Y q- 64PA&c M4
DOWNLOAD CONNANDS
*Read hex paper tape format. R (cr)Accepts information in the hex paper tape format. It startsout by looking for the colon leader, then it picks out therecord length and the address of the record. After thisparameters have been acquired incoming ASCII characters arestripped down to 4 bit HEX digit format. It takes twoincoming ASCII characters to form a byte whLeh 'is stored inmemory. The command terminates when a record length of 00is detected. The format it expects follows.[ :10203000CD40203E25....23 3This record is 16 bytes long and it is to be placed startingat address 2030. The first byte of the record is CD, thecheckum is 23.
*Write hex paper tape format. W XXXXYYYY,ZZ (cr)Writes 16 byte records in the hex paper tape format.Records start at address XXXX and continue until all datahas been sent up to address YYYY.The parameter ZZ (if ZZ=DD then delay is on) determines if adelay of 12 seconds should occur before the W command startssending out formatted data. At the end of each line thereis a .5 second pause to allow for software delays.
*en NOTE *** BY USING THIS COMMAND A USER CAN SAVE AMACHINE LANGUAGE PROGRAM ON A COMPUTER THAT HAS A STORAGEFACILITY.
*Hex sequential load. H XXXXYYYY (cr)This command will consider any incoming characters as 8 bitquantities that are to be stored in successive memorylocations starting at address XXXX until the commandterminates when we reach the address YYYY.
*ASCII sequential load. C XXXXYYYY (cr)ASCII load expects its input to be ASCII encoded hex digitswhich are converted to bytes and stored in memory locationsstarting at XXXX until YYYY. This command accepts groups oftwo ASCII characters only if they are preceeded by a space.
[This command is used when we want to transfer hex data fromany computer system that has a display memory command) tothe MCG-85 ].
E. CODE CHECK OR CONVERT.
OVALDIG (Check for valid hex digit ) [008FH]Checks if register A contains a valid hex digit. CARRY isset if A contains valid hex digit, carry is clearedotherwise.
*PETAL (Converts HEX to ASCII ) (0092H)Converts the hexadecimal digit in register C to an ASCIIcharacter in register C.
*CNVNIBBLE (Converts ASCII to HEX digit ) [0095H)Converts the ASCII character in A to a HEX digit in A.
*CETBYTE (Convert ASCII to two HEX digits ) [0098H]Assumes the contents of B,A registers contain two ASCIIcharacters. From these characters it forms two HEX digitsas a byte of data returned in the A register.
GRAPHIC LC AIRQRAFT DPL A Y PACE 65
D. TEST + COMPARE ROUTINES.
*HILO (Compare 16 bit integers ) [0080H]Compares the 16 bit integers in HL and DE. The CARRY flagis set if the contents of HL are larger than than or equalto the contents of DE; the CARRY is cleared if the contentsof HL are less than the contents of DE.
*STRING (Strinj[compare ) [0083H)Register pair DE contain the address of STRINGI; HL containthe address of STRING2. Register B contains the length ofthe string. The CARRY is set if the strings are equal,otherwise the CARRY flag is cleared.
OSTRUE (Set carry and return ) [0086H]Strue is JUMPED to by routines wishing to indicate success.Strue sets the CARRY flag to indicate success and thenreturns to the calling program.
*SFALSE (Clear carry and return ) [0089H)Sfalse is JUMPED to by routines wishing to indicate failure.Sfalse clears the CARRY flag to indicate failure and thenreturns to the calling program.
*BCDADD (Binary coded decimal addition ) [008CH]Register pair HL contains the address of the FIRST number,while register pair DE contains address of SECOND number.Register B contains 1/2 the number of BCD digits to beadded. The sum replaces the FIRST number.
ODELAY -(Delay proportional to content of DE ) [009BH]The contents of register pair DE are decremented to producea delay of a few microseconds to approximately 1/2 second.
F. RESTART INSTRUCTIONS
RST 1, RST 2, RST 3. RST 4, RST 6. RST 7 all cause a "warmstart". Upon executing any of the previous restartinstructions control is transferred to location 0008H. Thecontents of all registers are saved and therl displayed onthe screen, control is then transferred to the commandrecognizing routine.
RST 5 will sound the bell at the console and then transfercontrol to the command recognizing routine. (RST 5 will notcause the contents of the registers to be saved.)
GRAPHIC LCD AIRCRAFT DIS cLA Y PAGE 66
The following is a summary of the instruction set
8080/85 CPU INSTRUCTIONS IN OPERATION CODE SEQUENCE
Op OP OPCODEJ MNEMONIC JCODE1 MNEMONIC 1CODEJ MNEMONIC.
00 NOP
0f LXI 8,01602 STAX B
03 INX 8
04 INR B
05 DCR B06 MVI 8,08
07 RLC
08 -
09 DAD 8
OA LDAXB
08 DCX BOC INR C
00 DCR C
OE MVI CD8
OF RRC
10 --
11 LXI 0,016
12 STAX D
13 INX D
14 INR D
15 DCR D
16 MVI D,08
17 RAL
18 --
19 DAD D
IA LDAXD
iB DCX 0
IC INR E
ID DRC E ,
1E MVI E,D8
IF RAR
20 RIM
2) LXI H,D16
22 SHLD Adr
23 INX H
24 INR H
25 DCR H
26 MVI H,D8
27 DAA
28 -- '
29 DAD H
2A LHLD Adr
DCX H
INR LDCR L
MVI LD01
CMA
SIM
LXI SPD16
STA Adr
INX SP
INR M
DCR M
MVI M,D8
STC
DAD SP
LDA Adr
DCX SP
INR A
DCR A
MVI A,DD
CMC
MOV 6,8
MOV B,C
MOV B,D
MOV B,E
MOV B,H
MOV B,L
MOV BlM
MOV BA
MOV C,8
MOV C,C
MOV C.D
MOV C,E
MOV C.H
MOV C,L
MOV CM
MOV C,A
MOV D,B
MOV D,C
MOV DD
MOV D,E
MOV DH
MOV D,L
MOV D,M
MOV DA
MOV E,8
MOV E,C
MOV E,D
MOV E,E
MOV E,H
MOV E,L
MOV E,M
MOV EA
MOV H,B
MOV H,C
MOV H,D
MOV H,E
MOV H,H
MOV H,L
MOV H,M
MOV HA
MOV LB
MOV L,C
MOV LD
MOV L,E
MOV LH
MOV L,L
MOV L,M
MOV LA
MOV MD
MOV MC
MOV M,D
MOV M,E
MOV M,H
MOV ML
HLT
MOV MA
MOV A,8
MOV A.C
MOV A,D
MOV A,E
MOV A,H
MOV A,L
MOV AM
MOV AA
ADD B
DO S constant, or log-cal/arilhmetic expression that evaluates
to an 8 bit data quantity.Adr - 16 bit address
oP OP OPCODE MNEMONIC CODELMNEMONIC CODE MNEMONIC__
81
82
8384
as
86878889
8A
88
SCOD
SE8F
9192
9394
95
%6
97
98
999A
98
9C
90
9E
9F
AO
AlA2
A3A4
AS
A6A7
A8
A9
AA
AB
ADD C
ADD D
ADD E
ADD H -
ADD L
ADD M
ADD A
ADC B
ADC C
ADC D
ADC E
ADC H
ADC L
ADC M
ADC A
SUB B
SUB C
SUB 0
SUB E
SUB H
SUB L
SUB M
SUB A
588 8
SBB C
SBa D
588 E
SBB H
SOB L
SOB M
SBB A
ANA B
ANA C
ANA D
ANA E
ANA H
ANA L
ANA M
ANA A
XRA B
XRA C
XRA D
XRA E
AC
AD
AEAF
B0
Bl
B2
B3
84as
86
87
88
89
BA
B8
BC
BD
BE
F
CO
Cl
C2
C3
C4
CS
C6
C7
CS
C9
CA
CB
CC
CD
CE
CF
DO
01
D2
D3
D4
DS
D6
XRA H
XRA L
XRA M
XRA A
ORA B
ORA CORA D
ORA E
ORA H
ORA L
ORA M
ORA A
CMP 8
CMP C
CMP D
CMP E
CMP H
CMP L
CMP M
CMP A
,RNZPOP 8
INZ AdrJMP Adr
CNZ Adr
PUSH B
ADl DO
RST 0
RZRET Adr
jZ Ar
CZ Adr
CALL Adr
ACI DO
RST 1
RNC
POP D
)NC Adr
OUT D8
CNC Adr
PUSH D
SUI D8
D7
D8
D9
DA
D
DC
DD
DE
DF
E0
El
E2
E3
E4
ES
E6
E7
ESE9
EA
ED
EC
ED
EE
EF
F0
F1
F2
F3
F4
FS
F6
F7
F8
F9
FA
FEFC
FD
FE
FF
RST 2
RC
IC Adr
IN 08
CC Adr
SBI 08
RST 3
RPO
POP H
JPO Adr
XTHL
CPO Adr
PUSH H
ANI D
RST 4
RPE
PCHL
jPE Adr
XCHG
CPE Adr
XRI D8
RST 5
RP
POP PSWIP Adr
DI
CP Adr
PUSH PSW
ORI 08
RST 6
RM
SPHL
JM Adr
El
CM Adr
CPI D8
RST 7
D16 * constant, or logical/arithmetic expression that evaluates
to a 16 bit data quantity
ALL MNEMONICS C 1974, 1975, 1976, 1977 INTEL CORPORA TION
GRAPHIC L CD AIRCRAFT 11PL A Y PAGE 67
ASCII CODESThe 8080 and 8085 use the sevcn-bit ASCII Lode, with the high-order eighth bit(parity bit) always reset.
GRAPHICOR ASCIICONTROL (HEXADECIMAL)
NUL 00SOH 01STX 02ETX 03EOT 04ENO 05ACK 06BEL 07BS 08HT 09LF 0AVT OBFF OCCR ODSO GES1 OFDLE 10DC1 (X-ON) 11DC2(TAPE) 12DC3 (X-OFF) 13DC4 (T APE 14NAK 15SYN 16ETB 17CAN 18EM 19SUB 1AESC 1BFS iCGS 1DRS 1EUS IF
SP 202122
# 23
S 24% 25
& 262728
292A
GRAPHI-C LCV AIRCRAFT DMIL A Y
GRAPHIC OR ASCIICONTROL (HEXADECIMAL)
V 56W 57X 58Y 592 SA
585C50
A () 5E- 5F
60
61
b 62c 63
d 6465
1 66
9 67h 68
69
6A
k 686C
m 6D.n 6E
0 6F
p 70q 71r 72s ' 73t 74
u 75
ii 76
w 77x 78
y 79
2 7A787C
(ALT MODE) 7D7E
DEL(RUBOUT) 7F
PA 68
APPENDIX E.
PROGRAM LISTINGS
GRAPHIC LCD AIRCRAFT L Y ML 69PAG|E'Q 69
0524 =
0466 =
009B =0479 =
0800
0800 AA
.* *
* L CCCCC DDDDD AAA SSSSS N11M *
* L cc DO D A A SS MMM *
* L cc DD D AAAAA SS M M M *
L CC DD D A A SS M M *TLTS CCCCC DDD 0 A A SSSSS M M *
;REVISION HISIORY: VERSION: 1.2
;DATE: CHANGES:;23 APR 84 WRITTEN BY LEE MARZKE;13 MAY 84 FIXED MANY BUGS IN PUT,PUTX, AND DROTR16 MAY 84 ADDED GETBAUD CALL, AUTOBAR
* ********** ******** ******* *** * *** ******* ***** ***** ***
IHIS IS A GRAPHICS AND TEXT DISPLAY PROGRAM FOR THESHARPE LM-24003G LCD DISPLAY. IT IS WRITTEN 'IO RUNON 'THE MCG-8085 COMPUTER HAVING A LHM-24000 DISPLAY
;CONTROLLER BOARD.TEXT STRINGS AND GRAPHIC SYMBOLS ARE DEFINED AT
;INITILIZATION. THE TEXT STRINGS MAY THEN BE CHANGEDAND B3'In STRINGS AND SYMBOLS MAY BE M0VED T0 ANY;COORDINATE ON THE SCREEN.
CRIFSSADASCmSKSY1MSKDEMOFUNCT
EQUATESODHOAH4000H03FH080H03000H03050H
0801080208050808080A080D0810
081308140817081A081D081 E081F082008230826082708280829082C
082D0830083108340837083A083D083F08420845
;CARRIAGE RETURN;LINE FEED;START OF DISPLAY RAM;ASCII MASK;SYMBOL MASK;DEMO, FUNCTION EPROM;ENTRY FOR FUNCTION COMMAND
- MONITOR CALLS
MRES EQU 0000H ;MONI'TOR COLD STARTMo EQU 000811 ;MONITER WARM START (MUST BE
- CALLED)wCI EQU 0065H ;?MmITOR INPUT ROUTINE
; RETURNS ASCII CHAR. IN A.CO EQU 0068H ;MONI'IOR OUTPUT ROUTINE
; SENDS ASCII CHAR IN C.MCRLF EQU 006EH ;SENDS CR, LF 'IO CONSOLEHILD EQU 0080H ;16 BIT COMPARE OF DE,HL
AF3216113202113E07321711CD1308C32D08
AF321111211211111811732372211411110013732372CDE508C9
31A811AF320011320111CD170D3A0030FEBBCA0130CD7904C35308
; CARRY SE' IF HL>=DECCEV EQU 0524H ;CONVERTS IWO ASCII CHAR. IN
; A, B TO HEX DIGIT IN AVALDL EQU 0466H ;RET WITH CARRY SET IF CHAR.
; IN C. IS A VALID DELIMITERDELAY EQU 009BH ;DELAY PROPIONAL 'IO D,EGETBAUD EQU 047911 ;CALCUIATE BAUD FROM SPACE CR
ORG 0800H
DB OAAH ;AUIOSTART BYTE
;COLD START HEREINIT:
INSTAB:
XPASTASPAMVISTACALLJMP
XRASPALXILXImoVINXMOVLXILXIMOVINXM0VCALLRET
AEFLAGFUNBYTA, 07HCSPACEINSTABGO
ANUMSYMH, NEWSYMD, SYMTABM, EIfM, DH, NEWDATD, DATAM, EH
;A=O;DCHO ON;FUNCTION OFF
;CHARACTER SPACINGINIT SYM. TABLE
INIT SYMBOL TABLE
' WARM STARr MTRY HERE
LXIXRASPASPACALLLDACPIJzCALLJMP
SP, STACK; INIT STACKA ;A=0BUFTOPBUFBOTCRLFDF24 ;SEE IF DEMO ROM PRESENTOBBH ;DEM0 PRESENT BYTEDEMO+1 ;YES, JUMP 'TO DEMO 1MGE77BAUDGETCmD ;NO
JUMP TABLE
000DOOOA4000003F008030003050
0000 =0008 =
0065 =
0068 =
006E =0080 =
0850 ORG 0850H0850 C3AFOC WRBUF: JMP0853 C35608 GEECMD: JMP
; COMAND IMPLEMENTING BOUTINESWRBUFRGETCM.
; CMAND RBCGNIZER RUTINE
FUNCTION: GET CCMtANDINPUTS: NONEOUTPUTS: NONECALLS: RDBUF, ECHO, ERRORDESTRDYS: A,B,C,H,L,FDESCRIPIION: GETCMD RECEIVES AN INPUT CARACTER FRM
THE INPUT BUFFER AND ATTEMPTS 70 LOCATEIT IN THE CXMAND WHARACTER TABLE.IF SUCCESSFUL THE RUTINE CORRESPONDINGTO TflS CGARACTER IS SELCTED FROM ATABLE OF COMMAND ROUTINE ADDRESSES, ANDCCNTROL IS TRANSFERRED TO THIS 10UTINE.
SP,STACK;LCD STACK POINTER SEEC, '#'
EHORDBUFB, NCMDSH,CIABMGTC1OHCGLC05ERRORH,CADRBBA,M,HH,ML,A
C, '*'ECHOCRLFGETCmD
;PROMPT CHARACTER
;NUMBER OF COMMANDS;COMMAND TABLE;COMPARE TABLE ENTRY AND CHAR.;CMD. RECOGNIZED;ELSE, INC TABLE POINTER;DEC LOP CX)UNT;BRANCH IF NOT AT TABLE END
;ADR OF TABLE OF COM. FOUTINE; ADDRESSES-ADD REMAINDER OF LOOP COUNT; 'WICE BECAUSE ENTRY 2 WORDS
THE FOLLOWING SHORTHAND IS USED BELtW:## - SYMBOL IDENT (TWO HEX DIGITS)XX - X POSITION " "
YY - Y POSITION o "
HH - HEIGHT IN PIXELSWW - WIDTH IN WORDS (UNITS OF 8 PIXELS)BBB.. - HEX DIGITS (IN GROUPS OF IWO) REPRESENTING
THE SYMBOL '0 BE SI ORED.STRING - ASCII STRING IN THE RANGE OF 20H TO 60H<CR> - CARRIAGE RETURN
;NOTE: THE UPPER TWO BITS OF ## ARE MASKED AND SET TO:00 - FOR ASCII STRINGS01 - FOR SYMBOLS
FORMAT: A##/STRING <CR
0888 CDDOOC088B E63F088D F5088E CDDFOC0891 FE2F0893 CABF080896 4F0897 CD6604089A D27D08089D Fl089E CD610B08A1 D27D0808A4 E508A5 CD580C08A8 El08A9 CDDOOC08AC 7708AD 23O8AE CDF30C08B1 CDDOOC08B4 7708B5 2B08B6 CDE50C08B9 CDO30C08BC C3530808BF Fl08CO F508C1 CD610B08C4 D2D50808C7 E508C8 23
AmD: CALLANIPUSHCALLCPIJz?oVCALLJNCPOPCALLJNCPUSHCALLPOPCALLm0VINXCALLCALLMOVDCXCALLCALLJMP
AC10: POPPUSHCALLJNCPUSHINX
A##,XX,YY <CR>
GETBYrASCMSKPSWGEIG CR',/'
AC10C,AVALDLERRORPSWSYMADR.ERIORHCLRSTRHGEEBYT'M,AHGEEDLGETBYrM,AHGETCRPUTSTRGETOMDPSWPSWSYMADRAC15HH
> (ENTERS OR CHANGES STRING)(CIANGES X,Y POSITION)
;SAVE SYM #
;CHANGE STRING VALUE?;YES
;NO, MOVE STRING LOCATION
;SYM #;GET STORAGE ADR;STRING NY FUND;SAVE IT;ERASE OLD STRING
;X POS
;Y POS
;GET SYM #;SAVE AGAIN
;SYMBOL FCUND?;YES, SAVE ADR
08560859085B085E0861086408670868086B086C086D087008730876087708780879087A087B087C
31A811OE23CD030DCD7DOCO1OE0021380DBECA730823ODC26708C37D0821460D09097E23666FE9
GEI'M: LXIMVICALL
GC03: CALLLXILXI
G0T05: CMPJzINXECRJNZJMP
GT10: LXIDADDADMDVINXM0VM0VPCHL
ERROR: MVICALLCALLJMP
087D OE2A087F CDO30D0882 CD170D0885 C35308
=~aId L = DNLY'kS H12JOu~VVO.DNI3vds u12.Iv~1V1 2aim
01.flL dWCE-1Ddf9 7W323VdsD VJS
HLO'V IAW :C9,04<013> M :dLVMj02
G1DJao d~f
HmiTM'JMD~iaH 's2.LvicrdooDx jaol rnuIxD q'pjD :U.r~<H3> AA 'Xx## :aJVMJ02
SaLVNI0rdODD A 'X ILV '1OHWAS Jl
CHM dWC
Z13J2D TiV3
='2Id 9 = ONIZ)VdS Uli3VHV-D" H90 IV IAW :(ON~rONIZ)VdS 82JJWdVH3 M~ddVN <HZ3> N JHA
CROMOL2 dWP
JNIOd ix2N im.e caW3J dwP
VWVM A 32S -' rCnVA fON., V'3 ACI'
ILNI~d TIV3JNT~d J2S1' HaiO'V IAW
V'3 A011* 0d117 A 129 J.,a129 TIV
V'0I AGW*ollco x J29-, j.TUaa9 'rw :QjJJ
<'d;) *'AX'AXX'AA0C UVWOA3
0VM L2 dWrHa3L 1 TMV
luao' IV IW 0
UWAMJ2 dNP9V.ISNI 7m1V'd1-l29D TMV :CFDI
alsylL 'I0GWAS LINI1
<1i> I uwo
GICU12 diw
80ESED3052(13-TTLTE£
L02C
0860GL60VL608L60
JNfLMSd
H3J2DMSd
013>O
ROESED SL60V090C13 ZL6060903 3960
80ESEZ) 39603052(13 696011L1ZE 9960
902£ t,960
80ESED
602C80C0LZUt'09903
609SV3)
6003(1332£
LS300003
dol
TV :Gw~.r
aNDMZ9 dNP113120 TIvD
cH39 NO NR1flL- 9xfl3 vilsV cQi2Z .V vuli *cmNoOK) <HDn01> 2 UV I
ClaNIM2 AGVaHW2 3l 1101112-T960US60US60BS60S 560tI560T56031760317606t760Lt76091V6051760Zt76011760ZE60
caq,-l'19113129D
WASJ29mlld
**10J29H117ud1
SS31100V dfl )40071- 11OWASJMC1I I AVS MSd
)IS4Ias
dWPTIVDTIV3
dOd7m3
DrTIV3HSfld1110IRNTMV
ocosUD13
D0SWcDSA
D00OGC
80ESEDX)5203TT9TZE
aV
T05£
0813
AS92:Qg~ 300003
<HD3> *8888M 11#0:.JVMjd :
tt 0(t
110(
80£5£3 9C60305203 8£60119TZE S£60
332£ £E60
80ESM3 0E6080ETG3 GZ603052(13 VZ60
90ESE3 LZ60
1211 63SID3 W, B032C0
0118H TIVD 000893Z3'W ACW ~ TL
H XNI SqDI33'W A01 T IL
)050' lxil 0500T1Ot'0'H lxl 0170OTZ800 '3 lAW 1fHM 0020
ThrJM (W R80COW13 'fM 805203o
H113129 TIVO M01OY 305203
ON., msd
# WAS1
PSd110V WAS! H
H
<ED3> D :Jl'IwJQA -
dWPTIV3
dOddWPTMD
dOddOdTJlVDXNI
80ES£D 60180801730 96380
:STO 13 5080G80£5£3 Z(180D0£C13 3380
13 238012 0380
DOZZC3 VD80EZ 6D80
K 60EZ6031603T60
6T609160£ 160Z T60
3060306060608060S060Z06033803380Da80V1480L£480
9a80C£480038032809980(O80V380L280S280
Zge03Q80D080
K svam
XOR SYMBOL WITH SCREEN AT X,Y COORDINATESFORMAT: X##,XX,YY <CR>
X##/<CR> - USES OLD COORDS0983 CDB609 XCMD: CALL GXYHL0986 CD380A CALL PUtrx0989 C35308 JmP GETMD
09CB CDFBOC09CE CDDOOC09D1 7709D2 2309D3 5709D4 CDF30C09D7 CDD0C09DA 7709DB 2309DC 4F09DD 4209DE C509DF 5609E0 2309E1 5E09E2 2309E3 CDE50C09E6 Cl09E7 EB09E8 C909E9 4609EA 2309EB 4E09EC 2309ED C3DE09
; MOVE SYMBOL F1M OLD POSITION 'IO X,Y COORDINATES- FORMAT: M##,XX,YY <CR>MD: CALL GETBYT ;GET ADDRESS
ANI ASCGSKORI SYHItSKCALL SYMADR.JNC ERRORPUSH H ;SAVE ADDRESSt0V B, M ;OLD X POSINX HMDV C,M ;OLD Y POSINX HMDV D,M ;GET HEIGHTINX HFDV E, M ;GET WIDTHINX HXQGCALL PUI'X ;ERASE OLDPOP H -GET ADRESSCALL XYHL ;XOR NEWCALL PUI'XJMP GETCMD
; FORMAT: Z <CR>09BO CDE50C ZCMD: CALL GEICR09B3 CD0800 CALL mo
CALLCALLMDVINXMDVCALLCALLMOVINXMOVDV
XYH: PUSHMDVINX?4VINXCALL]POPXCHGRET
XY: MOVINXMDVINXJmp
GDLGETBYrM,A.HD,AGETDLGETBYTM, AHC,AB, DBD,MHE,MHGE'ICRB
B, MHC, MHXYH
;GET X POS.S'TORE IN SYMBOL
;SAVE X;GET DLIGET Y POS.;SIORE IT
;Y POSX POS
;GET HEIGHT
;GET WIDTH7SYM ADR + 4;iECK FOR CR;X,Y POS
-X POS
;Y POS
;OVE GRAPHICS 10UTINES
;FUJCTION: POINT;INPUTS: A - O,RESET POINT; ELSE SET POINT
B - X CORDINATEC - Y COORDINATE
;DESCRIPTION: SETS OR CLEARS SPECIFIED POINT ON SCREEN
JUMP IO ON'ITOR
INPUI'S: INPUT BUFFER [##,XX,YY]JOUTPUTS: H = HEIGHT, L = WIDTH
D,E = SYM ADR + 4B = X POS, C = Y POS
DESCRIPTION:GET X,Y POSITION AND SORE WITH SYMBOLRETRIEVE HIEGHT, WIDTH FROM SYMBOL
GKYHL: CALLANIORICALLJNC
XYHL: CALLCPIJz
GETBYT ;SYM IDENT 'I0 AASCMSKSYMMSKSYMADR ;IOKUP STIORAGE ADR.ERRORGETIR -CHECK FOR DELIMITER
XY ;IF /, USE OLD X.Y CORDS
09F0 F509F1 CDAFOA09F4 3E8009F6 CD960A09F9 4709FA 2F09FB A609FC 4F09FD Fl09FE B709FF 79OAOO CA040AOA03 BO0A04 77OA05 C9
POINT: PUSHCALLMVICALLbDV
ANAMDVPOPORAMDVJzORA
FNT05: MVRET
PSWSCADRA, 080HRTRB, A
MC,A.PSWAA, CPfr05BM,A
;GET ADDRESS,B=SBITS;MASK;IUTATE B TIMES;SAVE MASK
;MASK OUT POINT;SAVE
;SET FLAGS;DOESN'T CHANGE FLAGS;LEAVE POINT RESET;SET POINT;WRITE 'IO SCREEN MEM
098C098F0991099309960999099A099B099C099D099E099F09AO09A109A209A309A609A709AA09AD
CDDOOCE63FF680CD610BD27D08E546234E2356235E23EBCD380AElC1C309CD380AC35308
09B609B909BB09BD09C009C309C609C8
CDDOOCE63FF680CD610BD27DO8CDDFOCFE2FCAE909
INTENTIONALLY LEFT BLANK
GRAPHIC LCD AIRCRAFT DISPLAY PA GE 74
FUNCTION: PUT (PUT SYMBOL AT X,Y LOCATION)INPUTS: B - X POS
C - Y POSD,E - SYM. ADDRESS + 4
H - HEIGHTL - WIDTH
OUTPUTS: D,E - LAST SYM. ADDRESSCALLS: DROTR, GE'IMSK, INCSAD, SCADR
PUT: SHLDSHLDUSH
CALLCALLFOP
PUrOl: NOVPUTO2: XCiG
MOVCALLXCHGNOVINXCALLJNCPUSHPUSHIiLD
NOVPUSHLiLDANAORAFOPNOVPOPPOPORAJNZRET
SYMXCTSYE4DDSCADRGETMSKDC,M
-SAVE SYMBOL ADDRESS-GET SCREEN ADDRESS;SET MASK ORRECTLY;SYM. ADDRESS;SAVE 1ST WORD FOR CARRY IN
A,M ;GET SYMBOL WORDDROTR ;SHIFT IT RIGHT
M,ADINCSADPUTO2PSWHSADREA,MHFMASKLCHM,AHPSWAPUTOl
;WRITE TO SCREEN;NEXT SYM. ADDRESS;NEXr SCR. ADDRESS;RIGHT EDGE OF SYM? NO;YES, STORE A;SAVE HL;GET SAD RIGHT EDGE + 1;GET NEXT SCR. WORD
;GET ROTATE MASK;MASK CUT HO BITS;OR CARRY OUT BITS
;PUT BACK ON SCREEN;RFSIRE LAST ADR. TO H,L;RESTORE A (=0, DONE);SET FLAGS;DONE? NO;YES
FUNCTION: PUTX (XOR SYMBOL WITH SCREEN AT X.Y [DC);INPUTS: B - X POS
C - Y POSD,E - SYM ADRESS + 4
H - HEIGHTL - WIDTH
OUTPUTS: D,E - LAST SYM ADDRESSCALLS: DRITR, GETMSK, INCSAD, SCADR
OA38 220E11 PUTX: SHLD SYMXCT
OA3B 220C11OA3E D5OA3F CDAFOAOA42 CD9COA0A45 DlOA46 OEOOOA48 EBOA49 7EOA4A CD710AOA4D 47OA4E 3AOAllOA51 AOOA52 EBOA53 AEOA54 77OA55 13OA56 CD02OB0A59 D26BOAOA5C F5OA5D E5OA5E 79OA5F 2AD511OA62 AEOA63 77OA64 ElOA65 FlOA66 B7OA67 C2460AOA6A C9OA6B 79OA6C AEOA6D 77OA6E C3460A
SHILDPUSHCALLCALLPOP
PUTXOl: MVIPUTXD2: XoHG
OVCALLNOVIDAANAXCHGXRANOVINXCALLJNCPUSHPUSHNOVLHLDXRANOVPOPPOPORAJNZRET
PUTX03: MOVXRANOVJMP
SYMliDDSCADRGEIMSKDC, OOH'
A,MDROTRB,AFM4ASKB
MM,ADINCSADPUI'X3PSWHA,CSADREMM,AHPSWAPUTXOl
A, CMM,APUTXD1
;SAVE SYMBOL ADDRESS;GET SCREEN ADDRESS,SET MASK CORRECTLY;SYM. ADDRESS;CARRY IN NOT NEEDED
;GET SYMBOL WORD;SHIFT IT RIGHT
;MASK UPPER N BITS
;WRITE TO SCREEN;NEXT SYM. ADDRESS;NEXT SCR. ADDRESS;RIGHT EDGE OF SYM? NO;STORE DJNE BYTE;SAVE HL;GET CARRY CUT;YES
;RESTORE A (=0, DoNE):SET FLAGS;DONE? NO;YES;CARRY;XOR IN NEXT SCREEN IDCATION
OA060A09OAOCOAODOAl0OA13OA14OA15UA16OA17OA1A0AlBOAI COAIDOA20OA23OA24OA25OA28OA29OA2AOA2DOA2EOA2F0A30OA31OA32OA33OA34OA37
220E11220C11D5CDAFOACD9COADl4EEB7ECD710AEB7713CDO20BD2150AF5E52A05117EE52AQA.llA5B1El77ElFlB7C2140AC9
FUNCION: DROTR (DOUBLE WIDE SHIFT RIGHT)INPUTS: A - SHIFT REGISTER
C - OVERFLOW BITS IN(LEFr JUSTIFIED)
SBITS - # OF BITS TO SHIFT (N)FIMASK - MASK (8-N OF THE LSB'S SET)RMASK+1 - MASK (N OF THE MSB'S SET)
OUTPUTS: A - SHIFT REGESTERC - OVERFLDW BITS OUT
(LEFT JUSTIFIED)CALLS: RDTRDESTROYS: A,C,FDESCRIPTION: THE BITS IN THE A. REG. ARE
SHIFTED RIGHT N TIMES, WITHINFLOW FROM REG. C AND OVERFLOW70 REG. C. RMASK MUST BE SET(BY EXECUTING GE IMSK:) PRIOR TO
ENTRY.
PSW ;SAVE ASBITS ;GEBCK #B,A00HDIOrD5C,APSW
PSWDHBBMASKremB,AHC,AA, BLDB,DD, AA, EHDHD
; =07;NO;CLFAR CARRY OUT;YES, DONE
;SAVE DE;SAVE IL
SAVE CARRY IN;GET IUTATE MASK;SHIFT A REG.;SAVE;GET OVERFLW;PUT IN C
;MASK OVERFILW;CARRY IN TO E;RESIORE # IN TO B
;MASK;OR WITH SHIFTED BITS;RESTORE HL;RESIORE DE
OA71 F50A72 3A09110A75 47OA76 FE0OOA78 C27E0AOA7B 4FOA7C FlOA7D C9OA7E FlOA7F D50A80 E5OA81 C5OA82 2AOAllDA85 CD960A0A88 47QA89 A4OAA 4F0A8B 78OABC A5OA8D DlOABE 420A8F 57OA90 7B0A91 A40A92 B20A93 El0A94 Dl0A95 C9
0A96 050A97 F8OA98 OF0A99 C3960A
RITR: DCRRIRRCJMP
;DESTROYS: A,F
GETIMK: PUSH BPUSH HLXI H,MSKMDV C, BMVI B, OOHDAD B13V H,M14V A, HMA
MoV L,ASHLD RMASK
B ;DONE?;YES;NO, ROTATE RIGHT
rIR
TAE
0AAC ElOAAD C1OAAE C9DRCIR: PUSH
IDAOV
CPIJNZ3V
POPRET
DROT05: POPPUSHPUSHPUSHIILDCALL4V'
ANA4V
mVANAPOP'V!3V3V
ANAORAPOPPOPRET
;SAVE B;SAVE H
; GET N'TH ENTRY;IN TABLE
;COPLEMENT IT
21004078CDDAOAF5AF321011571922071179E67FCDE50AEB2A071119CD430B220711Fl07070732091147C9
H ;RESTORE HB ;RESIORE B
;SCREEN ADDRESSING 1OUTINES
FUNCTION: SCADRINPUTS: B - X POSITION
C - Y POSITIONSSAD - START OF DISPLAY RAM
OUTPUTS: H,L - ADDRESS OF SCREEN IDCATION SADSVB - BITS TO SHIFT RIGHT = SBITS
CALLS: FIXADDDESTIOYS: A,B,C,D,E,F,H,LDESCRIPTION: FROM THE X AND Y COORDINATES THIS
FXTINE CALCULATES THE CORRESPONDINGADDRESS OF DISPLAY RAM, AND TiE BITOFFSET.SSAD 30*Y + INT( X/8)SBITS= 8 * FRC( X/8)
SCADR: LXI H,SSADMOV A,B ;X IDCATIONCALL DIV8PUSH PSW ;SAVE X/8XRA A ; ZEROSTA1V4DADSHLDMoVANICALLXCHG[ILDDADCALLSHLDPOPRICRLCRLC!STAnDVRET
SCRBYTD,ADSADSVA,C07FHMULT30
SADSVDFIXADRSADSVPSW
SBITSB,A
;INIT TD 0
;ADD TO START SCREEN ADD.;SAVE IT;Y LOCATION;MASK
-GET SCR ADDRESS;ADD 30 Y-ORRECT FOR GAP IN DISP RAM;FINAL SCR ADDRESS;GET X/8
;NO OF SHIFTS
* FUNCTION: DIV8
OAAFOAB2OAB3OAB6OAB7OAB,8OABBOABC!OABDOACOOAClOAC3OAC6OAC7OACAOACBOACEOAD1OAD20AD3OAD4OAD5OAD8OAD9
;IYIATE A RIGHT B TIMES;DESTRDYS: A,B,F
OA9COA9DOA9EOAAIOAA2OAA4OAA5OAA6OAA7OAABOAA9
C5E5212FOD48060009667C2F6F220All
INPUTS: A - 8 BIT INTEGER-UTPU-S: A - FRACTION PART
D - INTEGER PARTCALLS: NOTHINGDESTFOYS: A, D, E, FDESCRIPTION: THE 8 BIT NUMBER IN A. IS DIVIDED BY
8 WITH THE INTEGER PART AND FRACTIONPART STORED IN D. AND A. RESPECTIVELY.
DIV8: RBCRRCRRC
IVANI
ANTfr
D, AOFH
E, AA, DOEOH
-DIVIDE BY 8;SAVE;INT PART-PU IN E-GET ROT BITS-FRC PART
FUNCTION: MULTPLY A BY 30INPUT: A - 8 BIT NUMBEROUTPUT: H,L - 16 BIT NUMBERDESTROYS: ABCHL,F
MULT30: PUSHRICRICRLCRICRIC
oVANIMOV
OVANI
DVPOPRICMOVANICMAMDVMOVANICMAMOV
DADRET
PSW ;SAVE IT
C, AOLFHB,AA, COEOHC,APSW
L,AO1H
H,AA, LOFEH
L,AHB
;32*Y
-GET CARRY
OB02 3AOEllOB05 3DOB06 320E11OB09 CAOOBOBOC 23OBOD C33EOBOHIO 3AOCllOB13 320E11OB16 3AOFIlOB19 3DOBlA 320F11OBID CA370BOB20 D5OB21 23OB22 220511OB25 2A0711OB28 111E00OB2B 19OB2C CD430BOB2F 220711OB32 DlOB33 B7OB34 C3410BOB37 23OB38 220511OB3B C3410B
-MASK CARRY;B,C NOW = 32Y;GET Y;2*Y
;GET CARRY;CtPLEMEMT IT
;MASK CARRY
;H,L NOW = -2Y;H,L = 30 Y
OB3E 37OB3F 3FOB40 C9
OB41 37OB42 C9
SFUNCTIW:z IRINPUTS: H,L
SYMX-SYMX
Syr*-SYMH~
OUTPUTS: AH,LSADRCARE
CALLS: FIXADDDESTROYS: A, F,DESCJRIPTION:
INCSAD: LDADCRSTAJZINXJMP
INC05: LDASTALDADCRSTAJZPUSHINXSHLDLIDLXIDADCALLSHLDOP
ORAJMP
INClO: INXSHLDJMP
FRET:
SRET:
RET
STCRET
E24ENT SCREEN ADDRESS OF SYMBOL- CURRENT SCREEN ADDRESS- SYMBOL X COUNTER
D - SYMBOL WIDTHT - SYMBOL HEIGHTCT - SYMBOL Y COUNTER
- 0 = DONE (0 FLAG SET)- NEXT SCREEN ADD. = SADSV- SCR ADR (SYM RIGHT EDGE) + 1- SET = CURRENTLY AT SYM RIGHT EDGE
H, LTUE NEXT SCREEN ADDRESS IS DETERMINEDAND PLACED IN SADSV. RETURNS WITH CARRYSET IF AT RIGHT EDGE OF SYMBOL AND WITHZERO FLAG SET IF AT END OF SYMBOL.ON INITIAL CALL SET SYMXCT = SYMWD,SYMYCT = SYMHT , AND SADSV = SCREEN ADR.
SYMXCTASYMXCTINC05HFRETSYMWDSYMT'
ASYMYcUINC10DHSADRESADSVD,01EHDFIXADRSADSVDASRETHSADRESRET
;DEC X COUNTER
;AT RIGHT EDGE ?;NO, INC. SAD
;GET SYMBOL WIDTH;PUT IN X COUNTER;GET Y COUNT;DECREMENT IT
;ALL DONE,SAVE DE;SCR ADR RIGHT EDGE + 1;S'IDRE IT;GET ADD OF BEG OF LINE;JUMP DOWN 'I NEXT LINE (+1EH)
;CORRECT FUR GAP IN DISP. RAM
;RESIORE DE;SET FLAGS (ZERO F CLR);DONE;LAST ADD+1;SAVE IT;(ZEFI F SET)
;RETURN WITH CARRY CLEAR
;RETURN WITH CARRY SET
OADAOADBOADCOADDOADEOAEOOAElOAE2OAE4
OFOFOF57E61F5F7AE6EOC9
OAE5 F5OAE6 07OAE7 07OAE8 07OAE9 07OAEA 07OAEB 4FOAE)C E61FOAEE 47OAEF 79OAFO E6EOOAF2 4FOAF3 FlOAF4 07OAF5 6FOAF6 E601OAF8 2FOAF9 67OAFA 7DOAFB E6FEOAFD 2FOAFE 6FOAFF 23OB00 09OBO C9
FUNCTION: FIX SCREEN ADDRESSINPUTS: H,L - SCREEN ADDRESS
SCRBYT - SCREEN BYTE (00 = TOP,FF = DT)
OUTPUTS: H, L - SCREEN ADDRESS (CORRECTED)SCRBYT - SCREEN BYTE
CALLS: NOTHINGDESTROYS: NOTHINGDESCRIPTION:
FIXADR: PUSHLDAORAJMPUSHLXICALLJNCLXIDADMVISTA
FIX05: POPFIX10: POP
RET
OB65 B7OB66 CA3EOB0B69 47OB6A 7COB6B 211811086E 110300OB71 BE0B72 CA7DOB0B75 19
OB76 05OB77 C2710BOB7A C33EOBOB7D 23OB7E 7EOB7F 23OB80 66OB81 6FOB82 C3410B
FIXADR IS CALLED BE'IWEEN EACHINCREMENT OF THE SCREEN ADDRESS.80 HEX (128 D) IS ADDED 'IO FIRSTSCREEN ADDRESS GREATER THAN 477FH 0
CORRECT FOR 'HE GAP IN DISPLAY RAM IN
THIS AREA. THE WORD SCRBYT IS THENTOGGLED IO FF HEX TO STOP FURTHERORRECTIONS.
PSWSCRBYTAFIX10DD, 4780HHILOFIX05D,080HDA, OFFHSCRBYT
;SET FLAGS;LOWiER HALF OF SCREEN? YESDONT KNOWLCWER
;HALF OF SCREEN?
;YES;ADD OFFSET
;TGGLE SCRBYI 1 FT
SYMBOL STORAGE / LOOKUP ROUTINES
FUNCTION: LOOKUP SYMBOL ADDRESS
INPUTS: A - SYMBOL IDENTOJTPUTS: H, L - ADDRESS OF SYMBOL
CARRY - CLEAR, SYMBOL wDT FOUND
DESTROYS: AB,D,E,H,L,FDESCRIPTION: LOCATES SYMBOL IDENT IN SYMTAB AND
RETURNS THE ADDRESS OF THE STORED SYMBOL.
CARRY IS SET IF FOUND.
0B61 67 SYMADR: MDVOB62 3A1111 [LA
H,A SAVE IDENTNUMSYM ;# OF SYMBOLS
ORAJzMDV
LXILXI
SYMO5: CMPJZ
DADDCRJNZJMP
SYMlO: INXMDVINXMDVMDVJMP
A ;SET FLAGSFRET 'DONE IF # SYMBOLS = 0B,A ;PUT IN BA, H ;GET IDENTH, SYMTAB ;ADR OF SYMBOL TABLED,03H ;LENGIH OF TABLE ENTRYMSYMlODBSYM05FRETiA,MHH,ML,ASRET
;NEXT TABLE ENTRY;DEC 1O0P COUNT
*GET ADDRESS*OF SYMBOL
;PUT IN H,L
; FUNCION: GET SYMBOL; INPUTS: A - SYMBOL IDENT; OUTPUTS: H,L - STORAGE ADDRESS; DESTFRYS: AB,C,D, H,L,F; DESCRIPTION: ADDS SYMBOL IDENT AND STORAGE ADDRESS
'I SYMBOL TABLE. THE BYTES DEFINING THESYMBOL ARE THEN PLUCKED FROM THE INPUTBUFFER AND STORED IN RAM.
B885 C BOB0888 2A1411088B 3EFF0880 77
OB8E 23OB8F 3EFFOB91 77OB92 23CrB93 CDDOOC0896 4F
0B97 320F11OB9A B7OB9B FACDOBOB9E 77OB9F 23OBAO CDDOOCOBA3 320C11OBA6 57OBA7 3COBA8 3COBA9 E6EGOBAB C2CDOBOBAE 72OBAF 23
GETSYM: CALL
MVIMoVINXmvi
INXCALLMOV
STAORAJM
MDVINXCALLSTAMDVINRINRANIJNZmDV
GTS05: INX
ADDSYMNEWIAT
A, OFFHM,AH
A, OFFHM,AHGETBYTC,ASYMYI'
AGTS15M,AHGETBYTSYMD
AOE0HGT155M, DH
;STORE X POS = FF
;SIORE Y POS = F
;GET HEIGHT OF SYM
;PUT IN Y ODUNTER
;ERROR - Too WIDE;SIORE HEIGHT
;GET WIDIH
*ERROR - TOO HIGH;STORE WIDTH
OB43 F5OB44 3A011OB47 B7OB48 FA5FOBOB4B D5OB4C 118047OB4F CD8000OB52 D25EOBOB55 118000OB58 190859 3EFFOB5B 321011OB5E DlOB5F FlOB60 C9
CALL GETBYr ;GET SYM DATAI4V M,A ;STORE ITDCR DJNZ Grs05 ;END OF DATA ?WA SYMWD!oV D,AIDA SYMYCrDCR ASTA SYMYCrJNz GrS05
GTS10: INXSHLDJMP
GTS15: LHLDDCRUILDDCRDCRDCR
HNEWIATSRETNUMSYMMNEWSYMM
;ERBOR - DELETE ENTRY
;FWCTIN: ADDSTR (ADD STRING);INPUTS: A - SYMBOL IDENT,OUTPUTS: H, L - STORAGE ADDRESS;CALLS: GETSTR, ADDSYM;DESTIRYS: A,B,C,D,E,F,H,L;DESCRIPTION: ADDS STRING TO SYMBOL TABLE, THEN GETS
STRING FROM THE INPUT BUFFER AND STORESIT.
OBF4 CDDBOB ADDSTR: CALLOBF7OBF8OBFAOBFBOBFCOBFDOBFEOC(01OC02
OBBO CDD00COBB3 77OBB4 15OBB5 C2AFOBOBB8 3AOCllOBBB 57OBBC 3AOFllOBBF 3DOBCO 320F11OBC3 C2AFOBOBC6 23OBC7 221411OBCA C3410BOBCD 2Al111OBDO 35OBD1 2A1211OBD4 35OBD5 35OBD6 35OBD7 35OBD8 C33EOB
E53EFF77237723CD220CElC9
PUSHMVIMOVINXMDVINXCALLPOPRET
ADDSYMHA,OFFHM,AHM,AHGETSTRH
SAVE STORAGE ADR
RESTORE STORAGE ADR
FUNCTION: ADD SYMBOLINPUTS: A - SYMBOL IDENTOUTPUTS: H, L - STORAGE ADDRESSDESTROYS: A,B, C,D,H,L,FDESCRIPTION: ADDS SYMBOL IDENT AND STORAGE ADDRESS
TO SYMBOL TABLE.
ADDSYM: LXIINRIELDMovINXXCHG
MVSTAXINXMOVSTAXINXXCHGSHLDXCHGREP
H, NMSYMM ;INC # OF SYMBOLSNEWSYM ;ADR FOR NEW TABLE ENTRYM,A ;SIORE SYM IDENTH
NEWMDAT ;ADR FMR NEW SYM DATAA, LD ;PUT NEWDAT POINTER IN SYMIAB
FUNCTION : PUTSTR (PUT STRING ON SCREEN AT X,Y CORD)INPUTS: H, L - ADDRESS OF STRINGOUTPUTS: B,C - X,Y COORDINATESDESCRIPTION: TAKES THE ChARACTER STRING POINTED TO
BY H,L AND PLACES IT ON THE SCREENSTARTING AT THE SPECIFIED X,Y POSITION.
OC03OC04OC05OC06OC07OC(08OC09OCOBOCOEOCOFOC120C15OC16OC17OClAOClB1ocic(OCIDOC20OC21
NEWSYM ;INC TABLE POINTER
46234E23C57EFEODCA200CEB210107CDO60AEBC13A17118047C5C3080CC1C9
PUTSTR: MOVINXMDVINXFUSH
PST05: M4VCPIJzXmHGLXICALLXCiHGPOPWAADDMDVPUSHiMP
PST1O: POPRET
B, MHC, M
A,MCRPST10
H, 0701HPUT
BGPACEBB, ABPST05
;SAVE X, Y COORDINATES
;END OF STRING?
;STR POINTER 'IO DE;HEIGHT=7, WIDUI=1
;OLD X,Y;GET IAR. SPACING
;SAVE NEW X,Y
STRING STORAGE / LOOKUP ROUTINES
* ** * ****** **** ** *** ***** *********************** *****FUNCTION: GETSTRINPUTS: H, L - STORAGE ADDRESS
DCR MJMP FRET
OB1OBDEOBDFOBE2OBE3OBE4OBE5OBE8OBE9OBEAOBEBOBECOBEDOBEEOBEFOBF2OBF3
211111342A12117723EB2A14117D12137C1213EB221211EBC9
DESCRIPTION:
GTSR: XCHGSTRO5: CALL
CPIJzSUL
ACCEPTS A STRING OF CARACTERS UP 'OTHE FIRST CARRAGE REIURN AND SIORES IHEmHARACTER DATA STARTING AT THE LOCATION
POINTED 'IO BY H,L
GEIGR ;GET CEAR. IN ACR ;CHECK FOR END OF INPUTSTR10020H :ASCII 20H FIRST CHAR. IN TABLE
MULT A BY 7 T0 GET LOCATION IN TABLE
ANI 03FH ;MASKLXI H,CHRTABMVI B,OHPUSH PSW
C,ABB, 07H
OC58 46OC59 23OC5A 4EOC5B 23OC5C 78OC5D FEFFOC5F C8OC60 7EOC61 FEODOC63 C8OC64 E5OC65 210107OC68 11640DOC6B C5OC6C CDO60AOC6F ClOC70 3A1711OC73 80OC74 470C75 El0C76 110700OC79 19OC7A C3600C
OC22OC23OC26OC28OC2B
OC2DOC2FOC32OC34OC35OC36OC37OC38OC39OC3AOC3BOC3COC3DOC3EOC3F
LOOP To GET 7 LINES OF DATA FOR EACH CHARACTER.
CLRSTR: MOVINXmDVINXMVyCPIRZ
CST05: MOVCPIRZPUSHLXILXIPUSHCALLPOPLDAADD
DVPOPLXIDADJMP
CHARACTER IN STRING.
B,M ;X P)SHC,M ;Y POSHA, BOFFH ;IF NOT ON SCREEN
;WERE DONEA,M ;GET DATACR ;END?
;YESH ; SAVE DATA POINTERH, 070111 7HEIGHT=7,WIDi=1D,CHRTAB;SPACE CHARACTERB ;SAVE X,Y POSITIONPUT :ERASE OLD STRINGB ;GET X,Y POSCSPACEB ;ADD CSPACE 'IO X PB,AHD,0007HDCSTO5
ALREADY
;GET DATA POINTER-NEXT CHARACTER
EBCDDFOCFEODCA4EOCD620
E63F21640D0600F507074F09Fl4F09074F090607
STRO7: MOV A,MXCHGMDV M,AXCHGINX HINX D[CR BJNZ STRJMP STR
STRIO: XMGMDV M,AINX HSHLD NEW]CALL CRIRET
;GET BYTE FROM TABLE ,
O7O5
;SIORE IT
;NEXT TABLE LDCATION;NEXT MEMORY LOCATION;DONE WITH CHAR. YET?;NO;YES, GET NEXT CHAR.
;PUT CR IN MEMORY AS END MARK
DAT
OC7DOC7EOC7FOC82OC85OC86OC89OC8AOC8DOC90OC91OC94OC97
FUNCTION: CLEAR STRINGINPUTS: H, L - ADDRESS OF STRING
DESCRIPTION: CLEARS STRING POINTED '1O BY H,L BYWRITING SPACES 'IO SCREEN FOR EVERY
E5C52100103A0011473A0111B8C2A10C3A0211B7CA990C2A0311F9
FUNCTION: READ FIRO CHARACTER INPUT BUFFER:UJT - ADESTROYS A,FDESCRIPTION: READS CNE CHARACTER FROM BOTIUM OF
INPUT BUFFER (BUFBOT).IF BUFFER EMPrY AND
FUNBYT = 00 'HEN CALL CI ROUTINEFUNBYT = FF THEN RETURN 'IO DEMO PROGRAM
RDBUF: PUSHPUSHLXILDAMDV
RDO5: LDAMP
JNZIDAORAJz
SPHL
HBH, BUFFBUF'IOPB,ABUFBOTBRD10FUNBYTARDO6STKSAV
;BUFFER EMPTY? *;FUNCTION RUNNING?;SET FLAGS;NO;YESRESTORE OLD STACK
;H,L NOW POINTS TO CHAR.; BYTE (JOUNTER = 7
INPUT / cUTPUT FOUTINES
OC41OC42OC43OC44OC45OC46OC47OC48OC4BOC4EOC4FOC50OC51OC54OC57
7EEB77EB231305C2410CC3230CEB7723221411CD170DC9
OS
OC98 C90C99 CD200DOC9C E67FOC9E C3AAOCOCAl 6FOCA2 F3OCA3 46OCA4 3COCA5 320111OCA8 78OCA9 FBOCAA ClOCAB ElOCAC C3410B
RETRDO6: CALL CI
ANI 07FIJMP RD1
RD10: moV L,ADINOV B,MINR ASTA BUFMV A, BEI
RD15: POP BFOP HJMP SRET
;RET 'I0 FUNCTICN
;MASK PARITY BIT*
OCD6 CD7DOCOCD9 E67FOCDB CD2405OCDE C9
OCDF CD7DOCOCE2 E67FOCE4 C9
; CHAR FROM BOT OF BUFF
B0T ; INC BUFBOT
FUNCTION: WRITE TO QIARACTER INPUT BUFFERINPUT: ADESTROYS: A,FDESCRIPTION:
OCAF CS WRBUFR: PUSHOCBO E5 PUSHOCB1 4F NOVOCB2 210010 LXIOCB5 3A0111 LDAOCB8 47 NVOCB9 3A0011 LDAOCBC 6F NOVOCBD 3C INRUCBE B8 GMPOCBF CACBOC JzOCC2 F3 DI0(C3 320011 STAOCC6 71 NOVOC7 FB EIOCC8 El POPOCC9 cl POPOCCA C9 RET
OCCB 3E01 BUFFUL: MVIOCCD CD0800 CALL
WRITES ONE CHARACTER TO 'I0P OF INPUTBUFFER (BUFIOP).B
C,AH, BUFFBUFBOTB, ABUFIOPL,AA
; STIORE A TEP;ADR OF BUFFER
OCE8OCE9OCECOCEDOCEFOCF2
OCF3OCF6OCF8OCFBOCFCOCFFOD02
OD03OD06OD07OD08ODOBODODODOEODOFODI 1OD14OD16
;H,L NOW POINTS TO DATA
B ;BUFFER OVERFM PBUFFUL ;YES
BUFIOP ;L4O, INC BUFITOPM,C ;CiAR TO TOP OF BUFF
HB
A,01H ;ERROR #1NO ;JUMP 'IO MONITOR
PEIURNS WITH HEX BYTE IN REG. A EQUAL TO THE VALUE OFTHE FIRST 'IWO ASCII DIGITS IN '11E INPUT BUFFER.
OCDO CD7DOC GETBYT: CALL RDBUF ;DESTROYS: A,B,C,FOCD3 E67F ANI 07FH ;MASK PARITY BITOCD5 47 MOV B,A
CDDFOC4FCD030D79FEODC27D08C9
CDDFOCFEODCA7D084FCD6604D27D08C9
3A1611B7COCD2BOD3EODB9COOEOACD2BODOEODC9
OD17 3A1611ODIA B7ODIB COODIC CD6EOOODIF C9
OD20 CD6500OD23 C5OD24 4FOD25 CDO30D
CALLANICALLRET
GEIGUR: CALLANIRET
GETCR: CALLmVCALLNOVCPIJNZRET
RDBUF07FHCONV
;MASK PARITY
RDBUF ;DESTROYS: A,F07FH ; MASK PARITY
GETCHR ;DESTROYS: A,C,FC,AEmHOA,CCRERROR
; GET NEXT CHARACTER - ERROR IF NOT DELIMITER.
GETDL: CALLCPIJz
GDL: NoVCALLJNCRET
GTmYRCRERRORC,AVALDLERROR
DESTIOYS: A,C,FLDA EFLAGORA A
CALL coMVI A,CRCMP CRNZMVI C,LFCALL coMVI C,CRRET
LDAORAfNzCALLRET
EFILAGA
MCRLF
CALL MCIPUSH BNOV C,ACALL ECHO
;DESTROYS: A,C,F
;INHIBIT ECHO
;IF NOT = 0;INPUT REG. C
;ECHO CR AS CRLF
;RET WITH CHAR IN C
; EHO SUPRESSED?
;YES;NO
;CHAR. INPUT IN A;DESTROYS ONLY A,F
5
CRLF:
Z-
E
O1
(HOZ=)~
dS
S'10GRKS
HOTO '1100H830'H060'HOO'HOC'HOTO
HOLO'H880HB00'HOEO'HOTO'H100'H130
H830'HO8OH080'HOLO'H100'H880'HOLO
HOLO'HOO
HOLO'H88 0H8DO'H8VO'H860'H880'HOLO
H000'HO80H00 'HOO'HOTO'H800'H900
H000'HOOO'HOOO0'000'H0001000'H1000
11000'130'HO'11000 'HOHO' 'OHOTO
HOZOHOOOHOOOH890 HO60
HO 'H800
HOZ0'HOEO'HOTO'HODO'HOO
HOE0'HVOHOLO'HOZ0'HOLO'HVO'HOZO
H090'HOTO
H830'H050'H830'HOGO'H0O0
HOBO'HOBO'HOBO'HOtO'0 0H000'11000
H000'H000'H00 H00'H0011190 '11060
HBVO '1101' '010'11)10'HOt'0
H8Z0 '1101.0'1010 'f18L0 'HO00HO0S0'HOSO
HO0 '11000
HOOO'1000'HOO 0H0S'11000
'SHZ=.J'~ 9SVD H1ddfl 'S98311Wf()1109 OkL '(ds) 140Z
X rd
92
9211092qu92go929292BG
so
-92
110
10892
8G28029G29G2SG2
9G2892
OTOT8306050EOT
OL88800E018083
11301080L80880L
OLOE
OL888D86880L
0008010018090
0ZOO0000000000
0000
00330000 00
000
0Z8V
OZOT8080800T0Z
0000
89068V01'0vV0v1
BT860t'030183203
03038EOLOV8LOE
050581305830909
00000000050509
0200
00008VJHD0000000000
22GO
62006200 .3000G
0300
19000
11£30 6320
90008xio
E630
0900
1190
99201900
aw2600
0600
311006LGO0 VO
36900
GO
6.01.1.00DL0001.00119006900
1900
GoDU
GDI
GWN0101
GNX Qw~Dd
GKyZ
Xwwm. HOO
V SSSHOOlv 0Nalm m 11001'1
-auiow~~ OL dkflC1
,Z,
8JO 0TXS IndI idJXRI t4k 0T TTINr011kfAS SA.WJ 11,
NO 01m 000021.ISD WAS NI m0 0 ,
=D~1S uVa'T1 IDS,ONPIHS IIDSV-' IV&
1100011 111110000111111000001119100000011
IaD 219 cas 1100000001
mMCMCmpa
MCmMCYOmMCMMCI
go02
929392go
909a
10
9392
0
gowlgogo
929292au
110La 9900
60DT VGGO60VE 8GO60CE 9SGO603E 0GGO
60V9 OGGO6039 0'00608L Db'O60E WGO600a B91000000 9tGO
= 3000Vs stGo
BS E'GO1. 9EGO
31 1EGO
9v TEGO
0 0EGO
00 VEGO£t, 60.10
90.8E10
33 LEO33 9CU0w1 SOo8A V'CO
00 TWO
sw'11111
MW JWX L. AB9 S -
G04V MCma
JaHi
DIV NII 8088 0900
60 U3C00009902 G1c00
62 VZOO12 6Z~l06U 8&00
me1
NS
smgvj, uawHatzirD Hajovavm -,
0DF7 F88F00808ODFC 8870ODFE 384080F088OE03 8870OE05 F808102020OEOA 2020OEOC 7088887088OEll 8870OE13 70888878080E18 10E0OElA 0000200020OElF 0000OE21 00002000200E26 2040OE28 1020408040OE2D 2010OE2F 0000F800F8OE34 00000E36 4020100810OE3B 2040OE3D 7088083020OE42 0020OE44 7088A8B8BOOE49 8078OE4B 20508888F80E50 88880E52 F08888F088OE57 88F00E59 7088808080OE5E 88700E60 F088888888OE65 88F0OE67 F88080F080OE6C 80F8OE6E F88080F0800E73 8080OE75 7888808098OE7A 8878OE7C 888888F888OE81 8888OE83 7020202020OE88 2070OE8A 0808080808OE8F 8870OE91 8890AOCOAOOE96 90880E98 8080808080OE9D 80F8OE9F 88D8A8ABASOEA4 8888OEA6 8888CaA898QEAB 8888OEAD 7088888888OEB2 8870OEB4 F08888F080
DB
DBDBDBIDBDBDBDBDBDBDB
DBDBDBDBDBDBDBDBDBDBDBIDBDBDBDBDB
DBJDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB
DBDBDBDBDB
08
OF8H, 080H, OFOH, 008H,0081108811,07011038H,040H,080H, 0F0H, 088H088H,070H0F8H,008H,010H,020H,020H020H,020H070H,088H,088H,.070H,088H088H,070H070H,088H,088H,078H,008H010H,0E0H000H,000H,020H,000H,020H000H,000H000H,000H,020H, 000H, 020H020H,040H010H,020H,040H,080H,04011020H,010H000H,000H, 0F8H, 000H, 0F8H000H,000040H,0201,010H,00811,010H020H,04011070H,0831,008H,030H,020H000H,020H070H,088H,0A8H,0B8H,0BH080H,0781020H,050H,088H,088, 0F8H088H,08811OFOH, 08811, 088H, OFOH, 088H088H, OFOH0701,0881,080H,080H,080H0888,0701OFOH, 088H,088H,08811,088H088H, 0F0H0F8H,080H,080H,0F0H,080H080H,0F8HOF8H, 080H,080H, OFOH, 080H080H,080H078H, 088H, 080H, 080H, 098H088H,078H088H,088H,088H,0F8H,088H088H,088H070H,020H,020H,020H,020H02011,070H00811, 00811, 00811,008H,008H088H,070H088H, 090H, 0A0H, OCOH, OA0H090H,088H1080H,080H,080H,080H,080H080H,0F811088H,0D8H,0ASH,0A8H,0A8H088H,08811088H,088H,0C8H,0A8H,098H088H,088H1070H,088H,088H,088H,088H088H,070H0FOH,088H,088H,0FOH,080H
08890E3BOECOM0EC20EC701129OEC9EOECEOEDOOED5OED7OEDCOEDEOEE3OEE5OEEAOEECOEFlOEF3OEF8OEFAOEFFOF01OF06OF08OFODOFOF0F140F16OFIBOFIDOF22OF24OF29
808070888888AB9068F08888FOA0908870888070088870F8A820202020208888888888887088888850502020888888ASA8Aa508888702070888888887020202020F80810204080F8F8COCOCOCOCOF800804020100800F818181818
00002050880000000000000000F840201000000000
07011,08811,088H,088H, 0A8H09011, 068HOFOH, 088H, 088H, OFOH, 0A0H090H,088H070H,088H,080H1,070H,008H088H,070H0F8H,0A8H,020H,020H,020H020H,020H088H,088H,088H,088H,088H08811,070H08811,08811,088H, 050H, 050H02011,020H088H,088H,088H,0A8H,0A8HOA8H, 05010881,0881,070H,020H,070H088H, 088H088H,088H,070H,020H,020H020H,020HOF811,0081H,010H,020H,040H080H, 0F8H0F8H,0COH,OCOH, 0CH,0C0HOCOH, 0F8H00011,080H,040H,020H,010H008H, 000HOF8H, 018H, 018H, 018H, 018H801811, 0F8100011,0001,020H,050H,088H
0001,0OH,000H,00H,00H00011, 0F8H040H,020H,010H,000H,000H000H,000H
VARIABLES
1000
100011001101110211031105110711091 10A110B110CllOD)
0RG
BUFF:BUFITOP:BUFBOT:FUNBYT:STKSAV:SADRE:SADSV:SBITS:RMASK:
SYMD:SYMI:
01000H
01001101H01H01H02H021102H01HOlH01H01H01H
;START ADR OF INPUI' BUFFER;'IOP OF BUFFER;BOT OF BUFFER;FUNCTION RUNNING BYTE;SP SAVE LOCATION;SCREEN ADR END OF LINE;SCREEN ADR TEMP SAVE;SCREEN BIT OFFSET;8-N LSB'S SET;14 MSB'S SET; SYM WITH;SYM HEIGHT
;Q
;R
;S
;T
;U
-V
;W
;X
;Y
;Z
(=[
A V
7d
'I[ L
_7V
WIV
GO
7 OQ
HdAV
6V
8o 88
D
wjO
N
) ot
0. ,..
Co
~9 a
z
#V .3
EV
d
;ILS INDICATOR DEMONSTRATION PROGRAM
EQUATESJMPINST EQURST7P5 EQUSIM EQURIM EQUCR EQUWRBUF EUGET'12D EDUPRVAL EQUDELAY EQUBCADD EDU
GETBAUD EDUENDCMD EUFUNON EQUFUNOFF EQUTIMEON ED
OC3H020FOH030H020HODH0850H0853110092H009BH05C8H
0479HOFH1OFFHOOHOFFH
30273029302C302D30303033303630383039303C303F3042
3050
;JUMP INSTRUCTION;RST 7.5 INTERUPT LOCATION;SIM, RIM NOT RECOGNIZED BY-THIS ASSEMBLER,CARRIAGE RETURN;CHAR IN A 'IO INPUT BUFFER;IED GET 00MAND JUT'INE;OONVERT C. FROM HEX 'IO ASCII;DELAY PROP IO CONTENTS OF D,E;BCD ADD, HL > NUMI, DE > NUM2
RESULT REPLACES NUMl;SET BAUD FROM2 SPACE CHAR;END OF COMMAND STRING MARK
;ENABLE TIME DISPLAY
ORG 03000HDB OBBH ;AUIOSTART BYTE
INITILIZATION
;THIS PROGRAM INITILIZES THE TIMER FOR IMS INTERUPTS;AND PORT A = OUTPUT, PORT B = INPUT, PORT C = INPUT
INIT: DILXI SP,FSTACK
;SET UP INTEJRPTSLXI H,RST7P5MVI M,JMPINSTLXI H,CLIOCK
;INIT STACK
;CODE FOR JUMP;ADR OF CLOCK ROUTINE
SHLD RST7P5+1;SET UP TIMER AND PORTS
MVI A,OOH ;TIMER L.O. COUNTOUT 024HMVI A,04CH ;TIMER H.O. COUNTOUT 025H :SQUARE W AVE CUTMVI A,0ClH ;START TIMEROUT 020H ;PORT A OUT
;PORT B IN,INIT VARIABLES
MVI A,010DSTA THSCNTSTA HNDCNTSTA TENCNT
3EFF320211AF325D12325E12325F123ElF3021FA32CDDB30CDEF30C35330
MVISTAXRASTASTASTAMVIDBLXICALLCALLJMP
A, OFFHFUNBYTATIMETIME+1TIME+2A,01FHSIMH, CmDS1SNDCMDDOMDSW
;FUNCTION ON
;ZERO;TIME = 0
;MASK ALL INTERUPTS
;SIGN cN MESSAGE;PROCESS OWbIMANDS
ORG 03050H
JUMP TABLE
3050 C3BF31 TFUCT: JMP FUNCT
;WAIT FOR USER IO PRESS BUPTON
3053 CDB3313056 FE023058 CA6930305B FE01305D C253303060 3EFF3062 3202113065 FB3066 C3C0313069 3E00306B 320211306E 3EOF3070 303071 3E453073 CDE6303076 CD79043079 C35308
SW: CALLCPI
CPIJNZMVISTAEIJMP
DOFF: MVISTAMVIDBMVICALLCALLJMP
GETSW ;GET SWITlI PRESS02H ;DEMO OFF MODE?DOFF ;YESOlH ;DEMO MODE?SW ;NOT VALID SWITCHA, FUNONFUNBYT ;FWUCT. ON
;ENABLE INTERUPTS FOR C[DCKDEMOl ;AIRCRAFT INSIURUMENT DEMOA,FUNOFF;ZEROFUNBYT ;FUNCT OFFA, OFH ;MASK INTERUPTSSIMA, 'E'SSCMD 'TURN ON ECHOGETBAUDGET'ID
;INTERUPT SERVICE FOUTINES
FUNCTION: CIDCKENTRY: INTERUPT DRIVENFUNCTION: SCEDULES PROGRAMS
307C307D307E307F3080
F5C5D5E53A5012
CLOCK: PUSHPUSHPUSHPUSHIDA
PSW ;SAVE ENVIRONMENTBDHTHSCNT ;THOUSANTS OUNT
00C3 =20F0 =0030 =0020 =000D =0850 =0853 =0092 =009B =05C8 =
0479 =00FF =00FF =0000 =00FF =
30003000 BB
3001 F33002 315012
3005 21F0203008 36C3300A 217C30300D 22F120
3010 3E003012 D3243014 3E4C3016 D3253018 3EC1301A D320
301C 3EOA301E 3250123021 3251123024 325212
30C7 CDDB3030CA 21531230CD CDDB3030DO CDEF3030D3 AF30D4 32601230D7 CD933130DA C9
ECR AJZ HNUTHSrA THSCNT
PRoGRAMS SCEDULED EVERY lMS BELOW
;NONE$$$S$$$$$$ $ $ $$ $$ $$ $
308A C3B930 JMP GOBACK308D 3EOA HNDITH: MVI A,010D308F 325012 STA 'IHSCNT
PROGRAMS SCEDULED EVERY 10MS BELCW
;NONE
IDA HNDCNTDCR AJZ TENTHSTA HNDCNTJMP GOBACK
TENTH: MVI A,010DSTA HNDCNr
PFOGRAMS SCEDULED EVERY lOOMS BELoW
;NON4E
DA TENCrDCR AJZ SECONDSrA TENCNrJmP GOBACK
SECOND: MVI A,Ol0DSPA TENCNT
PROGRAMS SCEDULES EVERY SEOCND BELiOW
CALL ADDSEC
GOBACK: POP H RES'IORE ENVI ONMENTPOP DPOP BPOP PSWEIRET
;FUNCTION: NENTIME;DESCRIPTION: UPDATES TIME STRING CN SCREEN
NEWTIM: LilAORARZLXI
TDBYTEA
H,MDS5
CALLLXICALLCALLXRASTACALLRET
SNDCMDH, TIMSTRSNXMDDOOD ;UPDATE TIMEATDBYTE ;TIME IS NOW CURRENTFLIP
;FUNCTION: SEND Cft1AND;INPUTS: H,L - POINTER '10 CNtNAND STRING;DESCRIPTICN: WRITES MESAGE 'I INPUT BUFFER
30DB30DC30DE30DF30E230E3
7EFEFF
CD500823C3DB30
30E6 CD500830E9 3EOD30EB CD500830EE C9
SNDCMD: MOVCPIRZCALLINXJMP
S-qlD: CALLMVICALLRET
A,M -GET CHROFFH ;END?
WRBUFHSNDCMD
WRBUF ;SEND SINGLE LITER COMANDA, CRWRBUF
;'IhIS ROUPINE CALLS GE'IUMD 'TO PROCESS THE OXH1ANDS IN;'IHE INPUTr BUFFER. WHEN THE BUFFER IS EMPTY, A REIURN;'IU THIS FUTINE WILL OCCUR.
30EF30F230F330F430F530F830FB
210000392B2B220311CD5308C9
DOCMD: LXIDADDCXDCXSHMCALL
RET
H, OHSPHHSrKSAVGETCMD
;GET SP;OPENSATE SAVED SPACK POINTR;FOR RETURN ADR FRO GETCMD;SAVE STACK POINTER;DO CDMMANDS;GUNMD RETURNS HERE IF;Fi1WBYr = FF
FUNCTION: ADD SECONDDESCRIPTION: UPDATES TIME REGISTER BY CNE SEOOND
30FC30FF310231043107310A
;TIME IS CURRENT IF 0
215D12CD3531FE60CAOA31C33F31AF
ADDSEC: LXICALLCPIJzJMP
ADDMIN: XRA
H, TIMEBCDAD1060HADDMINGETIMEA
;SECONDS;ADD 1 SEC;= 60 SEC?
3083 3D3084 CABD303087 325012
3092309530963099309C309F30A1
3A51123DCA9F30325112C3B9303EOA325112
30A4 3A521230A7 3D30A8 CAB13030AB 32521230AE C3B93030B1 3EOA30B3 325212
30B6 CDFC30
30B9 El30BA D130BB Cl30BC Fl30BD FB30BE C9
30BF 3A601230C2 B730C3 C830C4 217734
V NI afl'IA 1-LIM SN~nflL3dtMR1N 03S 1d30C 29 01. 1-rLIMS HOA SlIVM
SS3?ld 8.MIMS JM:OIO -
NTvDv 7udi, Io0N'VILW OO 'Sax-,
IXYMCI Slda13 SVr MW'
NIVOY avaH -IM130i 93Nfl£ea30
SAVSS.l18 ms Jfl TN )1SVW-
S3RLiw. avid.
tms1N CdWZH1
9 dI'DMSd d~dVI'8 ACW'8340 INVHEZ0 NI
XVT10 IVIAO'0l IX'I
MSd HSld830 INVI
HEM0 NI
88
Lt,a093
009600
a092EZ90
* 'l3Nd RHL NO SWa.ItYS JAOS, unw .1
S = C II8'VMS = Z I8EMS = 1 1,19 'N!~X ZMS = 0 IM8 -V : SJJ-1a~f
D3, JAW~ 92 1TMYd : &JII-'Ts-MUIMS UV3aJ 'NIJOW1
-S3NIM~fl SSHALIMS ,,JAcS, 0V391
081£AV1£SVTE
8VTE
MVEa61£C06TE
6+-8ISWIL VJSawadlta' IV AW
8+~1JWI~ VIlSI{' AW
L+HISWI, VJlSDIV ACW'
9+,dIsuW1 vJiSRIANOD TM3
a1411 WfliG+H.LswlL vJs
6: 1 V AW
DIV ACl4£+E1JSWI.1 VJs1iIANIc0 TN3T+awLL VmT
*:, IV IAW
1+HI34LL VJSDIV ACl4
HJSWLIL 'iJSIKUANM TM3Z+gwL.L 'fri:3j~Ij~J
ZTDSZE LLI£
ZTVSZE 091£6L 391E
Z16SZE 69T£1£3L(D 991EZT10SVE E9T1£ZTB8ZE 09T£
ZTLSE 819ST6L VS1£
ZT9SZE LS1£TESLC0 lv~lE
6L 8171£ZTESZE S1'£1£3L03 ZVTC1ZTASVC 3£1£
-ELSWIl NI 1I 93HCOIS OINV E)NIHISII3SV 0, H31S1911 NI 31411, SJ IANCD :N0J0jI0~
SwiJ 120 :N0I13NflA
j2a1GwD00l TMV
CWCINS 7M389211'D'H IX'I
Z DIG II3S- VI D0c0 II3SV -D JI0!M.&LX XS14 -V NV£
1211'IVAd 91M3
El'V ACWV'3 ACW'D's AC14830 INVMSd dOd
r1VA11d 7mV'VC3 AOW
36H1DUH381139TH
H030 INVMSd HSfld
630£300£80CT3
:d-3 SE8VTg
6D00O66I3
8Lat,TV7
3093T.4
O0Z6C0331v3030d030
0393UMM SA0
J211Lvi
T wnvsmcol HTO a :am06TE66TE961£E6TE
Z61E381£E381£E081£381£V81 £681£981£S8TEVOTE£E81£Z8TE181£dLIE3L1 £
ciav O.L *DIG A0 U1384MN1
380 V uON -
Z 1d V =I
Hnc T I V-S11rKc,1-Z
Z!NTW 09= -NIW I 0lav
1,
SJaNIW1IT
63 ULIEZT09ZE VLTC
12H00"i3 rTVDH10'19 IAW380'0 DCrl
SWIJ.AD dW['Z+gwilL vJS
V Y8X3WiJ2D dl4PAVO30V WrH17Z0 IdD
1U"ATXIg TIvD4-3Wll'H IXI1+aWLL 'iJS
V vaXaW1120 dWP
HIU80V zip8090 1d3
TCMg13e 7111+31411'H I)CI
awil vJls
T0 SETE
60 UE£1£S080CD VEI£
1090 BETE1£3£TI SETE 1cw136
*Wlcv
*ITflv
1£3££3z13sZc
V1£3££3ZTAGV31'T331 £E0
T13C1D
0933A1£SE(IDZT2S1ZZTSZ
3Z 1£lg1 £8R1 £
9G 1£E8 1£9ZTE011£
611£911£1711£111£R01£801£
GETSW: CALL NEWIM ;UPDATE TIMECALL RDSW ;READ SWIICH REGISTERCPI OHBNZ ;RFT IF SWITi DEPRESSEDJMP GETSW
FUNCr: NOP ;R1UINE 'Im BRANCH '10 ORRECT FUNCTIONNOT IMPLMENTED YET
;DEMO1 - SIMUIATION OF AN ILS TYPE AIRCRAFT INSTRUMENT
H,CMmS2 ;HOR. BAR, ASNDCMDDOmDH,CMDS3 ;VERT BARSNDXMDCD3DDmMDH,CMDS4 ;O3RDS OF BASNDCMDDXMDH,CMES6 ;HOLDW BOXSNDCMDDOCMDH,CMDS7 ;TRIANGLESSNDMDDOrMDH,CmDS9 ;POINTERSSNDoMDDOEMDA,037HXBAR ;INITIAL CRA,037HYBAR ;INITIAL CORA,08H ;UNMASK INTESIMEVVBAR ;LET USER E
0008H ;MONI'IUR
ND CENTER MARK
LRS, TIME STRING
D OF XBAR
UD OF YBAR;RUPTS
)VE BARS
;FUNCTION: DEVE BARS-DESCRIPTION: WHEN SW2 THROUGH SW5 PRESSED 'TE CORRECT
10UTINE 10 MOVE A BAR IS CALLED.
GETSIWOFHDOFF03HAJIUOBAR
;EXIT?
31B331B631B931BB31BC
CDBF30CD9D31FEOOCOC3B331
31BF 00
EM~Ol:
;MOVE LEFT?
;MVE RIGHT?
;MOVE UP?
;MOVE DOWN?
31CO31C331C631C931CC31CF31D231D531D831DB31DE31E131E431E731EA31ED31F031 F331F631F931FB31FE32003203320532063209
21C233CDDB30CDEF30210334CDDB30CD4936CDEF30210C34CDDB30CDEF30217C34CDDB30CDEF30210C35CDDB30CDEF3021B835CDDB30CDEF303E373261123E373262123E0830CDOC32CD0800
LXICALLCALLLXICALLCALLCALLLXICALLCAILLXICALLCALLLXICALLCALLLXICALLCALLMVISTAMVISTAMVIDBCALLCALL
3219321A321B321E321F322032213224322532263227322A322B322C322F32323235323732383239323C323F32403243324532463247324A324D324E32513253325432553258325B325C325F32613262326332663269
IFF5DC3232FlIFF5DC4032FlIFF5DC4E32FlIFDC5C32C30C323A6112FE1C83D326112CDA632C93A6112FE60C83C326112CDA632C93A6212FE10c83D326212CDC632C93A6212FE60C83C326212CDC632C9
RARPUSHccPOPPARPUSHccPOPRARPUSHccPOPRARccJMP
LEFT: LDACPIRZDCRSTACALLRET
RIGHT: LDACPIRZINRSTACALLRET
UP: LDACPIRZDCRSTACALLRET
DON: LDACPIZ
INRSTACALLRET
AUTOBAR:MVIABI: PUSH
CALLCALLPOPDCRJNZMVI
AB2: PUSH
PSWLEFTPSW
PSWRIGHTPSW
PSWUPPSW
DOWNMIJVBARXBAR010H
AXBARSNDXBAR
XBAR060H
AXBARSNDXBAR
YBAR010H
AYBARSNDYBAR
YBAR060H
AYBARSNDYBAR
$ $$ $$$$ $,
B, 010HBUPLEFTBBABlB,010HB
320C320F321132143216
VBAR:CDB331FEOFCC6930FE03CA6A32
CALLCPICZCPIJz
326A 0610326C C5326D CD4E323270 CD32323273 CI3274 053275 C26C323278 0610327A C5
327B327E327F32803283328532863289328C328D328E329132933294329732983299329C329F32AO32A3
32A632A932AC32AF32B232B532B832BB32BE32BF32C232C5
CD4032Cl05C27A320610C5CD5C32CD3232C105C285320610C5CD4032C105C29332CD9D31B7C20C32C36A32
21F032CDDB303A6112CDDD3221F532CDDB30CDEF30210070EBCD9BOOCDBF30C9
CALLPOPDCRJNZMVI
AB3: PUSHCALLCALLPOPDCRJNZMVI
AB4: PUSHCALLPOPDCRJNZCALLORAJNZJMP
(AR: LXICALLLDACALLLXICALLCALL
EDAR: LXIXCHGCALLCALLRET
32C6 21E832 SNDYBAR:LXI32C9 CDDB3032C 3A621232CF CDDD3232D2 3EOD32D4 CD500832D7 CDEF3032DA C3BB32
CALLLDACALLMVICALLCALLJMP
32DD CD7E31 SDBYT: CALL32E0 CD5008 CALL32E3 79 McOV32E4 CD5008 CALL32E7 C9 RET
32E8 4D30312C31BMDl: DB
32EF32FO32F432F532F832F9
RIGHTBBAB2B, 010HB
MVNLEFTBBAB3B, 010HBRIGHTBBAB4RDSWAMDVBARALTCEA
H, BCMD2 ;SEND NEW COORDS OF XBARSNDCMDXBARSNDBY,H,BCMD3SNDCMDDOCMDH,07000H;BAR MOVE DELAY
DELAYNEWTIM
H, BmD1 ;SEND NEW COORDS OF YBARSNDCMDYBARSNDBYTA,CRWRBUFrXIMDDXR
OrMrIMWRBUFA,CWRBUF
32FA32FB32FC3314331533243325332E332F33383339335A335B33643365336D336E3377337833833384338D338E33AC33AD33B633B733CO33C1
33C233C333C433EO33E133F733F834013402
FF4D30322CFF2C3130ODFT
DBB3MD2: DB
DBBCMD3: DB
DBDB
ENDCMD
'M02, 'ENDCMD
',10'CRENDCMD
;COMMAND STRINGS
4BOD4130312F4OD4130322F5OD4130312C3OD4130322C3004130352F5OD4130352C3OD4130332F44OD4130332C3OD4130342F4OD4130342C3OD4430312C3(OD5030312C3OD5030312C4ODFF
49OD4430312C3OD4430352C3OD5030352C3ODFF
3403 4430322C3340B FF
CMDS1: DBDB
1 DBDB
3 DBDB
3 DBDB
9 DB
DB3 DBDB
4 DBDBDBDB
4 DBDBDBDBDB
DBDBDBDBDBDBDBDB
DBDB
DB
3 DBDBDB
5CMDS3: DBDB
CR'A01/AIRCPAFT LCD DISPLAY'CR'A02/ELEwT MDE'CR'AO1, 30,00'
CR'A02,90,45'
CR'A05/S.B. THESIS, LEE MARZKE, 5/84'
CR'A05,10,20'
CR'A03/DEMO'
CR' A03, 7A, 5F'
CR'A04/DISPIAY'
CR'A04,95,6A'
CR'D01,0B011818181818181899DB7El8'
CR ;DOWN ARROW SYMBOL'P01,85,75'
CR' PO1,A6, 75'
CRENDCMD
CR ;HOROZONTAL BAR'D01, 010AFFFFFFFFFFFFFFFFFFFF'
CR'D05,07013E7F7F7F7F7F3E'
CR ;CENTER MARK'P05, 33, 34'
CRENDCMD
'D02,5001';VERTICAL BARENDCMD
'Mo1,10,1
cm: X-IC[HVU
:UVO:Hvgx
: ZJARCLL:Rwil
:HjswljlJNDNZLjj L)GNH
JK)SHL
CEO
99ZTC9ZTz9zT19ZI09ZTGSZTESZTZ ZTTSZTOSZTOSZTOOZIOOZT
arnvA XYMG aACW EVE -HZOHW UOH A0 RLVNIGHa)D X-' HTOUW 11M aO aIVNIGHOOD X- HTO
DNLLVUdn SGREN 2WLL 'aa=-' HTO(H'W'S) XM4 NI RWTV 14CO
GWDaM "do '2WLL IIDSV-' HVOHTOHTOHTO
HOMOMS 'ADMIS HOSO
sasasaSOSOsclSOsasasciscl
HOOZIO
cln'H3MTC)d:. Z8"8ZOTTOtO'LOa.
C10am'do
,6E'T9'90X.,do
Ed/OLL dria!'Itox,ED
,9Z'19'tOd.'aa. 2,laqmL NMOG-' 'do.OOtOOOJOOO2O0O2TOOaTO8aC,,OagLOOOOOOOOOZZBOtZBOBZ8,ODcjOzz80zz8OmqzO01, 900,,QL. 2'IDWMI dfl-' ED
IODIZOZZZOZZZOZZZOZZZozvvlOD6JO0OOOOOOO,-)JL0R4COOJT.OO,4T OO:1OOOjOOOtOz 00 1 , wa.
.L9'2Z'EOV,ED
IEOl3zlzOv,ED
10OC/cov,ED
jOZT/ZOV.ED
tq'UZ'EOd.
.0019ZEod.x0cl M(MOI I do
Lq.4.;t.4EOOOOD.ITOOOOBTOOOO81
,TOOOO8TOOOO9TOOOO8,,100008TOO008COOOOD,
COUOIEOG,MC)CM, /Tov,
CaCamNo
.OS09'OSOT'OZ:09'OZOT,.'09OS'O9OZ'OTOS'OTOZ,
.'0909'090T'OT09'OTOT'l.ED
NOTLLVJM-'. 6L'OO'TOV,
MINIS aWIJ,-' , I-dJSMqIJ,/Tov,ED@No
ED.OT'LE'ZOX,
'doSHVU dO 9GH0D-'.LE'OT'TOX.
:69MDOEDZLEOE" BOSE
a1q(30
9EDZalvesGO
:89M.0 AzvEOE8SGO
9EDZVEOEOGGo
TEOE8E9'vEEKOFBEZE8ETEDZ9COE"
CIOZEOCZETVTt?EEOEOE9vTE
:L9M 0TCDZPEOE"
LOSE98SEGVSEDVSESVSELVSE26SEG6SES8SEG9SESSSEtISSEXSEtZSEDOSE
=UVIUVAf
*DM aAVS HRINIOd DVJSfSJA9 ONINNM NOTIONMI
HZO 9C1 :AVSMJSHTO SO : J.TgNng
HZOTTO CHO
MEMOM TM
*do IV IAWED ZNP9 Hou
angum TM.OlV IAWaneum 7m.8.1v IAN :ED
C108 Is IAW CUD
EOTTZOTTZOTT
60 US9E800SCID 9s9c
ClOaC 6S 9CWevzo 9S9E
so Ss9E800SCID zs9E
OCRE Os9c800SCID CIV9E8M sv9EOS90 6V9C
da SOSE(30 VOSE
ZEDZECOETV TOSECIO OOSE
ZEDZZEOETV LJK(10 9,4t7E
EE14ZEEOCIV a2vEGO 231VE
TEaZZEOETV L3VCCIO 93t7c
ZEDZCEOCOS GGIVE(10 0017E
ZEDZEEOCOS ECKGO ZGVE
OEOEOCOCEV OOVEOCOCOCOE8E tRtEOCOEOCOEBE ZVKOEOCOEOEEV 06K
:99MDOCOZEEOE" DLtEAa ELK
:S9JWD aZTEOETV LLVE
UVO TVDIJ M-,
SaNIMCIHMS ONIMS GtTdt Mf
cx-xmED
.aglgv"vov.ED
saw aww/vov,,do
VL lea 18OCT 1'do
,VL'LD'LOd,Ho
o8L'9V'60d,'do
.8L'S8'VOd.ED
=!,VO8OOTOZOT8OVOTOLO'VOG,ED
aMIH-'.OZ0180'vOBOOTOZTOLO'60CI,ED
NM0GZ.OT8ZttZ81OVO '9Da,ED
aaCIO
TVDZKOETV(10
avaZKOCIt,CIO
svDz8EOEOS(10
EVDZLEOEOS(10
TVDZ6EOCOSCIO
BEDZTtOEOS(10
OEDZTIVOE"GO
OEDZ6EOE"CIO
OCOMCOE"CIO
8v%Lt9Eac9cGEWME,qz9E9z9ESZ9ED19E919EZT9ET 19E809EL09EUSEOASEWSE6GSE6DSEBDSE
aaGO
OZOEZEOETEOZOETEOEZEOCTEOCTECIP
(10OEDZTEOETV
CIOtSgZTEOETV
CIOst,GO
EEOZZEOE8SGO
:V9UWDTE0ZTEO[8S
901ES LKMEZ"E6EK8EKJztEMIEZZKTZKOztEaTK9TVCSTtEOOVE