Vector Graphic Extended Systems Monitor User manual

iCXtiCniliCil
)'t)tiCm)
mOnitO=l
U)i:=I)
GUiDi:
~cctO=l
e=lA?l-iC inC.


EXTENDED
SYSTEMS
MONITOR
Version
4.0
USERS
MANUAL
Revision
A
October
15,
1979
Copyright
1979
Vector
Graphic
Inc.

Extended
Systems
Monitor
User'
sManual
Copyright
1979 by
Vector
Graphic
Inc.
All
rights
reserved.
Disclaimer
Vector
Graphic
makes no
representations
or
warranties
with
respect
to
the
contents
of
this
manual
itself,
even
if
the
product
it
describes
is
covered
by a
warranty
or
repair
agreement.
Further,
Vector
Graphic
reserves
the
right
to
revise
this
publication
and
to
make
changes
from
time
to
time
in
the
content
hereof
without
obligation
of
Vector Graphic
to
notify
any
person
of
such
revision
or
changes,
except
when
an
agreement
to
the
contrary
exists.
Revision
Numbers
The
date
and
reVISIon
of
each
page
herein
appears
at
the
bottom
of
each
page.
The
revision
letter
such
as
A
or
B
changes
if
the
manual
has
been
improved
but
the
product
itself
has
not
been
significantly
modified.
The
date
and
revision
on
the
Title
Page
corresponds
to
that
of
the
page most
recently
revised.
When
the
product
itself
is
modified
significantly,
the
product
will
get
a
new
revision
number,
as
shown on
the
manual's
title
page,
and
the
manual
will
revert
to
revision
A,
as
if
it
were
treating
abrand
new
product.
THIS
MANUAL
SHOULD
ONLY
BE
USED
WITH
THE
PRODUCT(S)
IDENTIFIED
ON
THE
TITLE
PAGE.
Rev.
4."-1\
10/15/79

Extended
Systems
Monitor
User'
sManual
Section
General
TABLE
OF
a:Nl'mI'S
Page
[)escription.
III
«II
., ..
1$
1
Table
of
Hex
values
••••••
~
••••••••
~
•••••••••••••••••••••••••••••
o2
Command
Format
AASCII
Dump
,.
eoil
'"
..
'"
•
~
III
'8
Il!I 3
BJump
to
Bootstrap
Loader
CCompare
Blocks
D
Dump
in
Hex
E
External
Communications
F
Find
1.'vJ<:)
Bytes
II!l
..
41
••
'"
e
..
O!ll
4
G
Go
to
and
Execute
HJump
to
HI
Ram
I
Input
from a
Port
JJump
to
Loaded
DOS
K
Set
Breakpoints
••••••••••••••••••••••••••••••••••••••••••••••
5
LJump
to
0000
M
Move
Memory
Block
N
Non-desructive
Memory
Test
o
Output
to
Port
P
Program
Memory
•••••••••••••••••••••••••••••••••••••••••••••••
6
QCompute Checksum
R
Register
Dump
S
Search
for
Single
Byte
T
Test
Memory
••••••••••••••••••••••••••••••••••••••••••••••••••
7
UJump
to
2800
WWide ASCII
Dump
XExchange
Memory
Blocks
YKeyboard Echo
Z - Zero
or
Fill
Memory
••••••••••••••••••••••••••••••••••••••••••
8
Entry
Points
""
9
Video
Driver
•••••••••••••••••••••••••
$
••••••••••••••••••••••••••••••
e10
Cursory
X Y
Positioning.e
••••••••
-
•••••••••
~.~.o
..•.•.•.•..•.•.•..•...
12
Keyboard Code
Conversion
for
Vector
Graphic
Keyboards
••••••••••••••••
12
Using
the
I/O
Routines
•••••••••••••••••••••••••••••••••••••••••••••••
13
Other
Useful
Monitor
Routines
••••••••••••••••••••••••••••••••••••••••
14
Rev.
4.3.....,l\
13/15/79


Extended Systems
Monitor
User·
s Manual
GmmRAL DESCRIPrICN
The
Version
4.0
Monitor
is
a
complete
systems
Monitor,
able
to
support
the
Flashwriter
II
(80 X
24)
board,
and
the
Vector
Graphic
Keyboard. Thus
it
is
recommended for·
use
with
the
Mindless
Terminal.
All
keyboard and
video
I/O
can
be
done
through
the
Monitor's
I/O
routines,
freeing
higher
level
software
from
carrying
a
variety
of
versions
for
different
hardware
configurations.
since
version
4.
(21
does
not
~rk
wi
th
serial
terminals,
use
the
2.1
version
for
this
purpose.
Version
4.0
differs
from
3.1
in
the
f?llowing
key ways:
1)
Improved
video
driver,
with
anumber
of
additional
commands
that
software
can
use
to
manipulate
the
screen,
and
easier
X-Y
positioning.
2)
A
breakpoint
executive
command,
for
quick
debugging.
3) Acommunications program
that
allows
you
to
use
a
Vector
Graphic
system
as
a
dumb
terminaL
(Executive
command
"E").
4)
Space
to
include
up
to
15
keyboard
conversions
for
foreign
language
keyboards.
5)
Much
easier
to
use
Executive
commands.
6)
Control-Q
no
lon;er
can
be used
to
return
to
the
Monitor
Executive.
In
addition
to
I/O,
the
Monitor
includes
an
extensive
command
executive,
a
compactly
written
program
designed
to
facilitate
manipulation
and
display
of
memory
data.
The "prompt" which
indicates
that
the
Moni
tor
Executive
is
waitin;
for
operator
entry
is
an
asterisk
(*).
There
are
24
commands
which
are
entered
as
a
single
letter
followed by up
to
four
hexadecimal
data
fields.
After
each
field
is
entered,
a
space
is
automatically
ouput
as
a
prompt.
Either
upper
or
lower
case
alpha
characters
may
be
used,
but
lower
case
characters
will
be
converted
to
upper
case,
and any non-hex
characters
will
be
ignored.
Allowable hex
characters
are
0-9,
A-F.
Address
fields
are
four
digits
long;
other
fields
are
two
digits
lon;.
The
executive
is
useful
in
debugging
hardware
and
software,
particularly
assembly
language
softare,
because
it
is
resident
in
the
system.
If
a
space
is
typed
at
any
time
during
field
entry,
a
default
value
of
zero
is
assumed
for
all
leading
zeroes.
This
applies
to
an
entire
field
as
well
as
one
that
has
been
partially
entered,
and
the
cursor
will
advance
to
the
next
field
if
required.
For example,
typing
(SP)
will
have
the
same
effect
as
typing
0000;
typing
1(21(21
(SP)
will
have
the
same
effect
as
0100.
Any
command
that
generates
a
display
can
be
temporarily
halted
with
a
space
and
continued
with
another
space.
The
ESCape
key
will
abort
a
display
or
command
entry.
Rev.
4.0-A
10/15/79
1

Extended
Systems
Moni
tor
User'
sManual
The
4.0
Monitor
is
located
at
address
E000 -E7FF
in
new
Vector
Graphic
systems.
If
it
is
purchased
for
another
location,
address
references
in
this
manual
should
be
understood
accordingly.
The
hexadecimal
number
system
may
seem
confusing
if
you
are
not
familiar
with
it,
but
it
has
become
the
standard
of
the
microcomputer
field
and
is
clearly
the
best
system
with
16
bit
addresses
and 8
bit
data.
It
is
usually
not
necessary
to
convert
between number
systems,
as
this
is
usually
done
by
software
(i.e.
assemblers).
Remembering afew
values
in
hex
should
make
things
easy:
HEX
NUMBER
DECIMAL
VALUE
JARGON
BINARY
BITS
A10 4
B11 4
C12 4
D13 4
E
14
4
F15 4
10
16
5
FF
255
8
100
256
1
PAGE
9
3FF
1,023
10
400
1,024
1K
11
FFF
4,095
12
1000
4,096
4K
13
4000
16,384
16K
15
8000
32,768
32K
16
FFFF
65,535
64K-l
16
The fami
liar
rules
of
arithmetic
work
just
the
same
in
hex
as
in
decimal:
10
Hex
(trivial)
40)
400
2Rev
..
4.0-A
10/15/79

Extended S:lsterns Monitor
User
IsManual
mMMAND
FORMAT
*A
<AIJll>
<AOO2>
-ASCII
OOMP
Memory
contents
from
ADRl
through
ADR2
will
be
displayed
as
ASCII
characters,
or
graphic
symbols
for
values
less
than
20
hex.
If
the
most
significant
bit
is
high,
reverse
video
is
displayed.
This
command
is
useful
for
examining
files
such
as
those
created
by
the
linedi
tor,
BASIC
or
the
WORD
MANAGEMENT
SYSTEM.
ASCII
strings
embedded
in
object
code
are
easy
to
recognize.
*B
-
JUMP
10
BOO'1'S'1'RAP
LOADER
Typing
this
command
will
cause
a
jt.nnp
to
location
F800H
which
is
the
disk
bootstrap
loader.
This
will
cause
the
disk
operating
system
disk
to
be
loaded
into
memory
and
transfer
control
to
MOOS.
*c
<AIJll>
<ADR2>
<Am3> -
roMPARE
BLOCKS
A
byte-by-byte
comparison
will
be
made
between
the
block
of
memory
data
starting
at
ADRI
and ending
at
ADR2
and a
block
of
identical
length
starting
at
ADR3.
The
differences
will
be
printed
out
with
the
address,
the
byte
in
the
first
block
and
the
byte
in
the
second blOCk.
This
command
is
useful
to
compare
two
versions
of
a
program
or
to
verify
that
proms
have
been
programmed
correctly.
*D
<AIJll> <Am2> -
IXJMP
IN
HEX
Memory
contents
from
ADRl
through
ADR2
will
be
displayed
as
pairs
of
hexadecimal
characters.
The
left
character
in
each
pair
represents
the
four
most
significant
bits
of
the
memory
location.
The
display
may
be
halted
and
interrupted
as
described
above.
The
ASCII
representation
is
displayed
in
a
column on
the
right.
*E -
EXTERNAL
<XlMMUNICATIOOS
The
monitor
will
output
anything
typed on
the
keyboard
through
port
4on
the
Bitstreamer
II
I/O board
or
an
appropriately
addressed
Bitstreamer
I
board.
Anything
received
on
this
port
will
be
displayed
on
the
screen.
Normally a
300 baud
modem
would
be
connected
0
the
serial
RS
232
output
from
the
I/O
board,
and
this
feature
allows
the
system
to
be used
as
a
simple
terminal
to
communicate
with
a
host
in
a
full
duplex mode.
Operation
at
speeds
above
300 baud
requires
the
host
to
send
null
characters
after
linefeeds,
so
that
characters
are
not
lost
when
the
screen
scrolls
up.
Rev.
4./iJ-A
10/15/79
3

Extended
Systems
Monitor
User'
sManual
*F
<ADRl>
<ADR2>
<BY'TEl>
<BYTE2>
-
FIND
'J.'W)
B~
This
memory
range from
ADRI
through
ADR2
will
be
searched
for
the
particular
code
combination
BYTE
I
BYTE
2.
This
is
useful
for
locating
particular
commands
or
jump
addresses.
For example,
if
you wish
to
change a
control
character
(say
control
D)
in
aprogram you
may
try
FE
04,
which
is
CPI
04
since
this
is
a
common
way
of
testing
input
characters.
If
you wish
to
find
all
locations
that
call
or
jump
to
a
particular
address,
say
C700,
then
search
for
00C7.
There
is
no
guarantee
that
each
location
displayed
is
valid
object
code -
it
may
be
part
of
a
data
table,
ASCII
string,
or
second
and
third
bytes
of
a
three
byte
instruction.
*G
<ADRl>
-
GO
TO
AND
EXECUTE
This
command
will
cause
ajump
to
ADRI
to
execute
a
program
or
user
subroutine.
As
wi
th
all
Moni
tor
jump
commands,
the
address
contained
on
the
stack
is
"START"
(C00B) and
if
the
user
routine
at
ADRI
ends
in
"RET",
program
execution
will
return
to
the
Monitor.
Vi
rtually
unUmi
ted
stack
space
is
available
(up
to
lK),
but
of
course,
pushing
more
registers
on
the
stack
than
are
popped
will
defeat
the
return
feature
with
undesirable
effects.
*8
-
JUMP
TO
HI
RAM
This
command jumps
to
FC00
which
is
the
start
of
the
lK
scratchpad
RAM.
This
is
a
useful
area
for
small
machine language programs.
*1
<PORr>
-INIUr
FROM
A
PORI"
Execution
of
this
command
will
cause
the
CPU
to
execute
an
"IN
PORT"
instruction
and
the
accumulator
contents
immediately
following
this
to·
be
displayed.
This
command
is
useful
in
checking
out
peripheral
equipment.
Only
those
ports
used
by
the
terminal,
cassette
interface,
etc.,
will
contain
interesting
values.
All
others
will
read
FF
since
the
data
bus
will
be
floating
when
the
"IN"
comITland
is
executed.
*J
-JUMP TO
LOADED
.IJai
This
command
permits
easy
return
to
the
MOOS
disk
operating
system
at
0437H,
or
if
not
present,
jump
will
be 0437H, which
is
the
MOOS
entry
location
and
is
subject
to
change
in
future
releases.
4
Rev.
4.0-A
10/15/19

Extended
Systems
Monitor
User'
sManual
*K -
SET
BREAKPOINTS
This
command
expects
a 4
digit
address,
and
will
place
a
RESTART
7
(FF)
at
that
location
in
RAM.
When
that
instruction
is
executed,
which
is
a
call
to
location
8,
the
CPU
will
jump
to
the
monitor
routine
that
dumps
the
register
contents.
The
instruction
replaced
wi
th
FF
will
also
be
restored.
Entry
of
the
monitor
at
E000
will
clear
the
breakpoint,
as
will
pressing
the
RESET
swi
tch.
*M
<ADRl>
<:AJ:E2>
<AIR3> -
KJVE
MFJvI)RY
Bu:x::K
The
data
contained
in
memory
starting,at
ADR1
and ending
at
ADR2
is
moved
to
memory
locations
starting
at
ADR3.
This
command
is
useful
for
moving a
program
from atemporary
storage
location
to
its
correct
address.
If
there
is
an
overlap
of
the
two
memory
areas,
interesting
results
are
obtained.
For example, M6000
7BFF
6400
will
cause
the
block
of
data
from 6000
through
63FF
to
be
repeated
8
times
from 6000
through
7FFF,
since
by
the
time
location
6400
is
read,
it
has
been
overwritten
with
data
from 6000.
This
is
useful
for
bank programming
of
proms,
or
for
creating
repeating
instruciton
sequences
for
test
purposes.
*N
-NCN-DESTRUCTIVE
MFMRl
TEST
Memory
locations
starting
at
0000
are
read and
the
data
temporarily
stored.
The
memory
location
is
then
tested
to
see
if
00
and
FF
can
be
written
and
read
correctly.
This
continues
after
rewriting
the
original
data
until
the
first
error
is
detected,
whereupon
the
address
is
displayed
followed
by
the
data
wri
tten
into
memory and what
was
read from
it.
This
command
is
most
useful
for
checking
how
much
memory
asystem
contains.
For example,
if
the
system
contains
16K
of
memory, 4000
00
FF
should
be
printed,
indicating
that
there
is
no
memory
at
address
4000.
Since
the
test
is
non-destructive
to
data
in
memory,
it
can be used
at
any
time.
*0
<:Pan'>
<DATA>
-0l1l'PUT
TO
PORT
The
two
hex
digits
"DATA"
are
loaded
into
the
accumulator
and
the
instrucion
"our
FORT"
is
executed.
This
command
is
useful
for
checking our
peripheral
equipment.
For
example,
if
a
printer
is
connected
to
I/O
port
6,
0
06
41
will
cause
an
"A"
to
be
printed
since
41
is
the
hex
ASCII
code
for
"A".
Rev.
4.3-A
13/15/79
5

Extended Systems Monitor
User'
sManual
The
contents
of
16
bytes
of
memory
containing
ADRI
are
displayed
in
both
hex
and ASCII,
allowing
preceeding
and
following
instructions
to
be
viewed.
Advancing
to
the
next
instruction
is
accomplished by
typing
space
or
cursor
right
(+-).
Backspace
or
cursor
left
(...,.:..)
goes
backwards.
The
cursor
up
and down
keys
move
to
an
adjacent
16
byte
block..
Any
hex
characters
typed
will
replace
the
existing
contents
of
RAM.
After
every
keypress,
the
screen
display
is
refreshed
by
reading
from memory,
so
the
display
reflects
the
exact
memory
contents.
To
terminate,
depress
ESCAPE.
*Q <AOOIl>
<ADR2>
-
a>MPlJ'l"E
amc:xsuM;
The
MOD
256
checksum
of
memory
contents
in
the
address
range
specified
is
computed and
displayed.
This
command
is
useful
for
checking proms
or
files
to
see
if
anything
has
changed.
Any
source
file
or
program
written
in
pure
code
(it
does
not
write
on
itself)
will
have
the
same
checksum
as
when
it
was
loaded..
While debugging assembly language programs,
it
is
useful
to
be
able
to
verify
that
aprogram being debugged
has
not
written
garbage
in
the
source
file
or
assembler.
*R -
RffiISTER
LUMP
This
command
will
print
a
header
identifying
the
Z-80
registers,
and
immediately
below
it
the
contents
of
all
the
registers.
The
flags
are
displayed
with
the
letters
Z C M E H
for
the
zero,
carry,
minus,
parity
even, and
auxiliary
or
half
carry
flags
respectively.
The
presence
of
the
letter
indicates
the
flag
is
true.
The
contents
of
the
memory
locations
pointed
to
by
the
B,
D,
and H
register
pairs
are
also
displayed
as
is
the
return
address
on
the
stack.
*S
<ADRl>
<ADR2>
<BYTE>
-
SEARCH
FOR
S:m;LE
BYTE
This
is
similar
to
the
"F" command,
except
that
only
one
byte
is
searched
for
instead
of
two. An example
of
the
use
of
this
command
is
to
display
all
locations
in
aprogram where an
output
to
a
port
occurs
(D3).
The
address
of
each
location
will
be
displayed
followed by
"D3"
and
the
next
byte
(the
port
number).
6
Rev.
4.0-A
10/15/79

Extended
Systems
Monitor
User1s
Manual
*T
<AmI>
<ADR2>
-TEST
MFnJRY
This
is
an
extremely
useful
command,
especially
when
first
setting
up a
system.
This
command
permits
thorough
testing
of
the
system
memory. A
portion
of
a
64K
byte
pseudorandom
number
sequence
is
written
into
memory
fran
ADRl
through
ADR2,
and
the
exact
same
sequence
is
regenerated
from
the
ini
tial
point
and compared
with
what
is
read
from memory.
If
all
locations
compare,
another
portion
of
the
sequence
is
used
to
repeat
the
test
which
continues
until
it
is
interrupted.
Any
memory
errors
are
displayed
with
the
address,
what
was
written
into
memory and
what
was
read
from
memory,
respectively.
This
information
is
all
that
is
needed
to
pinpoint
a
malfunctioning
memory
chip.
'Ibis
test
is
qui
te
exhaustive
if
used
for
at
least
10
cycles
and
is
far
superior
to
incrementing
or
complementing
tests
which
may
not
reveal
addressing
problems.
The
only
area
of
system
memory
that
cannot
be
tested
with
this
routine
is
the
few
bytes
required
for
the
stack
and
video
flags
in
the
vicinity
of
FFD0
on
the
2708
PROM/RAM
board.
*U -JUMP TO
2888
This
command
permits
easy
return
to
programs
in
the
user
application
area
of
MDOS.
*W
<AmI>
<ADR2>
-
WIDE
ASCII
OOMP
This
is
similar
to
the
"A"
command,
but
with
a
full
screen
width
display.
*X
<AmI>
<ADR2>
<ALR3>
-
EXa:.I.Ml3E
MEMJRY
BLOCKS
A
block
of
memory from
ADRl
through
ADR2
is
exchanged
with
an
equal
length
block
starting
at
ADR3.
This
command
is
useful
in
comparing
the
operation
of
two
versions
of
a
program,
or
for
rapid
switching
of
portions
of
a
program
without
destroying
the
original.
A
loaded
BASIC
program
can
be
exchanged
with
another
if
care
is
used
to
include
the
stack
area
(usually
below
the
top
of
allowed
memory)
•
*y
-KEYBOARD ECHO
This
command
causes
keyboard
input
to
be echoed
directly
to
the
video
driver
and
can
be
used
for
demonstration
purposes.
An
ESCape
returns
to
the
Moni
tor.
Rev.
4.0-A
10/15/79
7

Extended
Systems
Monitor
Userls
Manual
*Z <ADRl>
<AIR2>
<DATA>
-
ZERO
CR
FILL
.MF.l'-DRY
The
memory
block
from
ADRI
through
ADR2
is
filled
with
the
byte
"DATA".
This
is
useful
for
setting
memory
to
Zero.
The end
of
a
file
or
assembled
program
will
stand
out
more
clearly
if
memory
is
first
zeroed.
For
test
purposes,
single
instructions
can
be
executed
continuously
so
that
bus
waveforms
are
more
easily
interpreted.
This
is
done
by
filling
a
block
of
memory
with
a
repeated
instruction
sequence
wi
th
ajump
to
the
start
of
the
block
so
that
the
program
loops
continuously.
8
Rev.
4.9-A
1
fl/l
5/79

Extended Systems Monitor
User'
sManual
mTRY POINTS
Ajump
table
at
the
beginni
n:!
of
the
Moni
tor
can
be used
to
access
several
routines:
EOOO
-The nonnal
cold
entry
point
to
the
Monitor
Executive,
this
is
ajump
to
the
initialization
routine
which
clears
the
screen
and
initializes
8251
USARTS
through
I/O
ports
3,
5,
and
7.
This
is
compatible
with
the
Bitstreamter
I
addressed
startin:!
at
port
4
or
the
Bistrearner
II
addressed
starting
at
port
2. The
USARTS
are
set
for
an
X16
baud
rate
factor
and
other
parameters
as
would be used
with
a
serial
printer
or
extra
terminal.
E003
-
This
is
ajump
to
the
routine
which
should
be
used
for
console
keyboard
status
test.
Return
with
the
zero
flag
set
indicates
no
keyboard
input.
E006
-
This
is
a
jump
to
the
keyboard
data
input
which
returns
with
the
character
in
the
"A"
register.
The
keyboard
code
conversions
described
below
are
carried
out.
There
is
no
checking
for
ESC
key
depression.
E009
-
This
is
a
jump
to
the
video
driver
which
displays
the
character
in
"A"
on
the
screen.
E00C
-
This
is
ajump
to
the
"ESCAPE"
routine
which
returns
zero
if
no
input,
or
with
the
character
in
the
"A"
register
if
there
is.
Keyboard code
conversions
are
carried
out.
If
the
ESC
key
was
pressed,
the
system
returns
to
the
Monitor
Executive.
Rev..
4.1.3-1\
10/15/19
9

Extended Sy;sterns
Monitor
User's
Manual
VIDEO
DRIVER
Version
4
of
the
Monitor
contains
amore
elaborate
video
driver
than
previous
versions.
The
purpose
of
the
video
driver
is
to
accept
a
stream
of
ASCII
codes,
and
to
write
them
into
the
screen
memory
in
the
proper
place,
interpreting
certain
non
printing
control
codes
in
a
special
way. There
are
several
entry
points
to
the
video
driver.
E009
is
recommended. The
character
code
to
be
printed
must be
in
the
A
register.
A
CALL
E009
will
cause
the
character
to
be
printed
on
the
screen
at
the
cursor
position.
All
registers
will
be
preserved.
Control
codes
are
generated
by
the
keyboard by
holding
the
control
(CTRL)
key
down
while
a
letter
key
is
pressed.
Control
codes have
values
between 0
and
31,
and
are
64
less
than
the
codes
for
the
corresponding
upper
case
letters.
To
demonstrate
the
features
of
the
video
driver,
type
Y
after
the
Monitor
prompt, and any keyboard
generated
code
will
be
echoed
to
the
video
driver.
The
following
control
codes
are
interpreted
as
special
functions,
while
all
others
are
ignored:
(B)
HOVlE
THE
CURSOR
(D)
CLEAR
THE
SCREEN
AND
HOME
CURSOR
(E)
DISPLAY
THE
CODE
IN
B
REGISTER
(H)
DESTRUCTIVE
BACKSPACE
(also
BACKSPACE
key)
(I)
TAB
OVER
TO
THE
NEXT
8
MULTIPLE
(also
TAB)
(J)
LINEFEED
(also
LF
Key)
(M)
CARRIAGE
RETURN
(also
RETURN
key)
(N)
TOGGLE
CURSOR
(P)
CLEAR
TO
END
OF
SCREEN
(Q)
CLEAR
TO
END
OF
LINE
(R)
CURSOR
I.XWN
(also
t )
(T)
TOGGLE
REVERSE
VIDEO
(U)
CURSOR
UP
(also
+)
(W)
CURSOR
LEFT
(also
-+- )
(X)
CLEAR
TO
START
OF
LINE
(2)
CURSOR
RIGHT
(also
-+-)
ESC
CURSOR
XY
POSITION
LEAD-IN
Experiment
with
the
keys.
There
are
special
keys
on
the
keyboard
to
generate
some
of
the
codes such
as
RETURN,
TAB
and
linefeed
(LF).
If
you
are
using
the
Vector
Graphic Keyboard
or
Mindless
Terminal,
there
are
also
keys
for
the
cursor
control
and
BACKSPACE.
Afew
of
the
functions
are
not
'self
explanatory.
A
Control
D
sets
the
reverse
video
flag
to
normal
in
addi
tion
to
clearing
the
screen
and homing
the
curso
r.
A
Control
Twill
then
toggle
the
reverse
video
flag
from normal
to
reverse
and back
without
printing
on
the
screen.
HI
Rev.
4.0-A
10/15/19

Extended
Systems
Monitor
User'
sManual
In
some
cases
it
is
desireable
to
print
the
sYmbol
for
a
control
code on
the
screen.
This
can
be done
in
assembly language programs by
putting
the
code
for
the
sYmbol
in
the
B
register
and
calling
the
video
driver
with
Control
E
(05)
in
A.
Enter
the
folowing
machine
code
at
FC00
and
execute
it
to
demonstrate
this
feature:
at
FC00
06 02
3E
05 04
CD
09
E0
CD
OC
E0
C3
02
FC
Rev.
4.0-A
HI/15/79
11

Extended
Systems
Monitor
User
IsManual
a.msoR X Y POSITlOODK3
Many
programs
utilize
random X Y
positioning
of
the
cursor.
This
is
done by
outputting
a
three
byte
sequence
to
the
video
drivere
The
first
code
is
ESC
(lBH)
followed
by
the
desired
X
position
and Y
position
in
hex.
The
top
left
corner
of
the
screen
is
0,
0.
The
sequence
IB
08
40
would
cause
the
cursor
to
move
to
line
8,
character
position
64 on
the
screen.
This
feature
can
not
be demonstrated using
the
keyboard
since
ESC
causes
a
return
to
the
monitor.
The
video
driver
provides
an
extensive
range
of
special
controls,
however,
they
must
be
incorporated
into
the
software
generating
the
video
stream
to
be
meaningful.
For
instance
a
piece
of
software
that
merely
echoes
all
characters
as
they
go
into
its
input
buffer
will
allow
cursor
motion on
the
screen,
but
this
will
probably
be
meaningless
to
the
software.
KEYBOARD
CODE
c:x:M1ERSlCE
-
VECTOR
GRAPHIC
KEYBOARDS
Due
to
limitations
in
the
keyboard
encoder
chip,
the
[]
key
on
Vector
Graphic keyboards
is
not
encoded
properly.
The
correct
code
is
generated
by
a
conversion
routine
in
the
Monitor!s
CONVERT
routine.
The
codes
for
backslash
and
tilde
are
also
produced by
the
control
and
control
shift
mode
of
this
key.
[]
KEY
CONVERSION:
MODE
KEYCODE
CONVERTED
CODE
ASCII
SYMBOL
unshifted
Fl
shifted
EI
control
Bl
control
shift
Al
5B
5D
5C
7E
[
]
\
The
cursor
up
key
is
also
converted
from
60H
to
ISH
which
is
interpreted
correctly
by
the
video
driver.
Room
is
provided
in
the
routine
for
up
to
15
keycode
conversions.
Foreign
languages
require
additional
conversions,
and
versions
are
available
for
French,
German,
Swedish
and
Spanish.
It
is
essential
that
software
utilize
the
monitor
conversion
routine
for
this
reason.
12
Rev.
4.~-A
1~/15/79

Extended
Systems
Monitor
User·s
Manual
us~
THE
I/O
ROUTINES
The
I/O
routines
in
the
Monitor
are
used
as
the
Main
System I/O
in
Vector
Graphic
Systems.
This
makes
software
I/O
independent
and
easily
interchangeable
between
systems.
An
example
of
how
this
is
done
is
shown
below:
INPUT
ROUTINE:
OUTPUT
ROUTINE:
INPT
OUTPT
CALL
E00CH
JZ
INPT
RET
(RETURNS
WITH
CHAR
INPUT
IN
A)
JMP'E009H
(CHARACTER
IN
A)
BREAK
TEST:
CQJTL
CALL
RET
E00CH
(RETURNS
WITH
ZERO
FLAG
SET
IF
NO
INPUT,
OR
CHARACTER
IN
A.
JUMPS
TO
MONITOR
EXECUTIVE
IF
ESCAPE
INPUT.
)
Note
that
either
the
ESC
key
will
break
to
the
Monitor,
which
provides
a
convenient
way
of
transferring
control
from any
executive
such
as
the
DOS
or
BASIC
to
the
Monitor,
but
necessitates
the
use
of
another
character
(Control
C
is
standard)
for
a
single
level
break.
The
routines
above
are
merely
given
to
illustrate
how
simple
it
is
to
use
the
Monitor
I/O
routines.
Many
programs
require
additional
instructions
to
move
the
character
to
be
output
into
the
accumulator,
or
may
require
different
flag
conditions
or
accumulator
contents
on
return
from
the
input
and Break
Test
routine,
but
the
variations
are
easily
implemented.
Rev
..
4.I2I-A
H'l/15/79
13

Extended Systems
Monitor
User·
s
Manual
OTHER
USEFUL
MJNlTOR ROt1rINES
The
Monitor
contains
anumber
of
routines
that
can
be
called
by
user
programs, and which
will
save
considerable
programming
effort.
In
addition
to
the
keyboard
input
and
video
output
described
elsewhere,
we
have:
AHEX
inputs
four hex
digits
from
the
keyboard and
returns
the
binary
value
in
D,E
registers.
A
space
is
automatically
output
at
the
end.
All
registers,
except
B,
are
used.
Entry
at
AREO
with
a
value
of
1-3
in
C
will
convert
that
many
digits.
Non
hex
values
will
be
ignored.
CRLF
will
output
a
carriage
return
?nd
line
feed
to
the
screen.
The A
register
is
used.
SPCE
will
output
a
space
to
the
screen.
The
A
register
is
used.
RNDM
returns
a
new
random number
in
B,C
based on
the
seed
in
B,C
as
it
is
called.
B,C
Dfould
not
contain
0000.
The pseudorandom number
sequence
generated
is
2
-1
entries
long and
is
based on a
software
simulation
of
a
shift
register
with
maximum
length
feedback.
PSW
is
used.
PTAD
first
outputs
a
CRLF,
then
outputs
the
binary
value
in
H,L
as
four
hex
digits
followed by a
space.
PSW
used.
PT2
outputs
(A)
as
two
hex
digits.
TAHEX
calls
AHEX
twice,
inputting
two
address
fields
of
four
hex
digits.
The
first
value
is
returned
in
H,L;
the
second
in
D,E.
14
Rev.
4.0-A
10/15/79
Table of contents