|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 16896 (0x4200)
Types: TextFile
Names: »INSTALL.DOC«
└─⟦c96461903⟧ Bits:30002787 SW1602 COMPAS Pascal Version 3.07 Release 1.1
└─⟦this⟧ »INSTALL.DOC«
COMPAS-86 SUPPLEMENTARY DOCUMENTATION
Installation Notes
Copyright (C) 1984 by
Poly-Data microcenter ApS
COMPAS is designed in such a way that it can be installed to
match the hardware of any microcomputer system. If you have
bought an "uninstalled" copy of COMPAS, i.e. a copy which is not
set up for any specific computer system, then before you can use
it, you must install it.
To install COMPAS you may use the INSTALL program supplied on the
distribution disk. The INSTALL program is fully self-explaining,
but to answer the questions asked by it you will probably have to
consult your system documentation. If you wish, you may also use
the INSTALL program to customize an already installed copy to
suit your individual needs.
Through the INSTALL program you may view and/or modify almost all
configuration parameters. However, some features, for instance
user written machine code drivers, cannot be accessed, and usual-
ly need not be accessed. Should you wish to modify and/or install
user written machine code drivers, you must use the DDT86 debug-
ger supplied with your CP/M-86 operating system.
The descriptions that follow specify the address and the length
of each field in the configuration table. The address is in hex
and the length is in decimal. Note that when COMPAS is loaded
into DDT86 (using the R command), the first $80 bytes of the file
make up a command file header. You must therefore add 8 to the
load segment address to find the segment address of the configu-
ration table.
Many fields in the configuration table are strings. The first
byte of a string contains its length and the following bytes
contain the actual characters. When the length of a string field
is 9, the string can at most contain 8 characters.
Basic terminal data
-------------------
0020 32 Terminal name. A string of up to 31 characters defi-
ning the name of the installed terminal. A length of
zero indicates an unconfigured copy.
0040 1 Screen width. The value contained in this location
defines the width of your video display, i.e. the
number of characters per line. If a character cannot
be written to the last position on the bottom line
without scrolling the screen, then set this field to
the actual screen width less one.
0041 1 Screen height. The value contained in this location
defines the heigth of your video display, i.e. the
number of lines on the screen. The value must be
exact.
Cursor positioning data
-----------------------
If a user defined GOTOXY routine is not installed, these fields
must be filled in for COMPAS to operate correctly.
0042 9 GOTOXY lead-in sequence. A string of up to 8 charac-
ters which is sent before the coordinates in a cursor
addressing sequence.
004B 5 GOTOXY separator sequence. A string of up to 4 charac-
ters which is sent between the coordinates in a cursor
addressing sequence. This string is usually empty, but
some standards (e.g the ANSI standard) requires a
separator.
0050 5 GOTOXY terminator sequence. A string of up to 4 char-
acters which is sent after the coordinates in a cursor
addressing sequence. This string is usually empty.
0055 1 GOTOXY coordinate order. Zero in this location indica-
tes that the Y coordinate (row) is sent before the X
coordinate (column). Non-zero means X before Y.
0056 1 GOTOXY coordinate offset. This location defines the
offset value to be added to the coordinates before
they are sent. Unbiased coordinate values start at 0.
A very common offset value is 32 (decimal).
0057 1 Coordinate format. Zero in this location indicates
that coordinates are to be sent as single characters
in binary format (i.e. the ASCII values of the charac-
ters sent correspond to the coordinate values plus an
offset as defined above). Non-zero values (2 or 3)
indicate that coordinates are to be sent as strings of
numeric characters ('0'-'9'), and the value defines
the length of such strings.
Terminal function sequences
---------------------------
The CLRHOM sequence must be installed for COMPAS to operate
correctly. All other sequences are optional.
0058 9 CLRHOM sequence. A string of up to 8 characters which
will clear the screen and place the cursor in the
upper left corner.
0061 9 CLREOS sequence. A string of up to 8 characters which
will clear all character locations from the cursor to
the end of the screen.
006A 9 CLREOL sequence. A string of up to 8 characters which
will clear all character locations from the cursor to
the end of the current line.
0073 9 INSLIN sequence. A string of up to 8 characters which
will insert a blank line at the current line and
scroll all lines below it down.
007C 9 DELLIN sequence. A string of up to 8 characters which
will delete the current line and scroll all lines
below it up. A blank line must appear at the bottom of
the screen.
0085 9 Reverse on sequence. A string of up to 8 characters
which causes subsequent characters to be printed in
reverse (or highlight).
008E 9 Reverse off sequence. A string of up to 8 characters
which turns off the attribute activated by the reverse
on sequence.
GOTOXY routine
--------------
If the GOTOXY function cannot be implemented using the GOTOXY
configuration table entries, you must write your own driver in
machine code. Install the code in the patch area and store the
entry address in the vector shown below. When a non-zero address
is stored in the vector, it automatically overrides all GOTOXY
strings. Registers BP, CS, DS, and SS must be preserved, and the
routine must end with a RET (within segment) instruction. (X,Y)
is passed in (DL,DH).
0097 2 GOTOXY driver address. Zero indicates that no driver
is installed.
Low-level I/O routines
----------------------
COMPAS allows you to write your own low-level machine code dri-
vers for character device input and output. The code should be
installed in the patch area and the entry addresses in the vec-
tors shown below. If a driver is not installed, COMPAS will use a
CP/M-86 BIOS call instead. An uninstalled vector should be set to
0. Registers BP, CS, DS and SS must be preserved, and the rou-
tines must end with a RET (within segment) instruction. Output
routines receive the character in DL, input routines must return
a character in AL, and status routines must return AL=$FF if
character is ready or AL=$00 if not.
0099 2 Console status driver address. Used by the KEYPRESS
standard function. Zero causes COMPAS to use the CONST
routine in the BIOS.
009B 2 Console input driver address. Used by the CON:, TRM:
and KBD: devices. Zero causes COMPAS to use the CONIN
routine in the BIOS.
009D 2 Console output driver address. Used by the CON:, TRM:
and KBD: devices. Zero causes COMPAS to use the CONOUT
routine in the BIOS.
009F 2 List output driver address. Used by the LST: device.
Zero causes COMPAS to use the LIST routine in the
BIOS.
00A1 2 Auxiliary output driver address. Used by the AUX:
device. Zero causes COMPAS to the the PUNCH routine in
the BIOS.
00A3 2 Auxiliary input driver address. Used by the AUX: de-
vice. Zero causes COMPAS to use the READER routine in
the BIOS.
Entry and exit routines
-----------------------
The entry and exit routines may be used to initialize and de-
initialize the terminal. The code should be installed in the
patch area and the entry addresses in the vectors shown below. If
a routine is not installed, its vector should be zero. Registers
CS, DS and SS must be preserved, and the routines must end with a
RET (within segment) instruction.
00A5 2 COMPAS entry routine address. If installed, this rou-
tine is called when COMPAS is started from the opera-
ting system.
00A7 2 COMPAS exit routine address. If installed, this rou-
tine is called just before COMPAS returns to the
operating system.
00A9 2 Editor entry routine address. If installed, this rou-
tine is called when the editor is started.
00AB 2 Editor exit routine address. If installed, this rou-
tine is called just before the editor returns to the
COMPAS command mode.
Memory mapped video screens
---------------------------
If your computer system is equipped with a memory mapped video
screen or another type of "direct drive" screen, you can speed up
the COMPAS editor by implementing the routines outlined below.
The code should be installed in the patch area and the entry
addresses in the corresponding vectors. If a routine is not
installed, its vector should be zero. Registers CS, DS and SS
must be preserved, and the routines must end with a RET (within
segment) instruction.
00AD 2 High-speed write string routine. If this routine is
installed the editor will use it for updating the
screen instead of passing characters one by one to the
console output driver. On entry CX contains the length
of the string to write, and DX contains the screen
coordinates. (DH,DL) corresponds to (X,Y) with the
upper left corner at (0,0). DS:SI points to a string
of ASCII characters, and DS:DI points to a string of
attribute bytes. An attribute byte is one of the two
values stored in addresses $00B3 and $00B4.
00AF 2 Insert line routine. This routine should insert a
blank line at a specified position on the screen and
scroll the remainder of the screen down one line. On
entry DH contains the line number with 0 corresponding
to the top line. If this routine is not installed, the
editor will use the INSLIN sequence (if available) to
insert a line.
00B1 2 Delete line routine. This routine should delete a
specified line on the screen and scroll the remainder
of the screen up one line. A blank line must appear at
the bottom of the screen. On entry DH contains the
line number with 0 corresponding to the top line. If
this routine is not installed, the editor will use the
DELLIN sequence (if available) to delete a line.
00B3 1 Reverse on attribute. When constructing an attribute
string for the high-speed write string routine, the
editor will use the value stored in this byte to
indicate that the corresponding character should ap-
pear in reverse video.
00B4 1 Reverse off attribute. When constructing an attribute
string for the high-speed write string routine, the
editor will use the value stored in this byte to
indicate that the corresponding character should ap-
pear in normal video.
User patch area
---------------
The user patch area is not used by COMPAS but left open for you
to install user written drivers in it.
00B5 640 User patch area. The address of the last available
byte is $0334.
Editor configuration table
--------------------------
The address of the editor configuration table may be different
from one release of COMPAS to another. To find the start address,
examine locations $0001 and $0002. They contain the base address
(least significant byte first) of the editor configuration table.
In the descriptions below, the address of each field is an offset
address from the base address of the table.
0006 1 Backup flag. This location must contain either $00 or
$FF hex. If it is set to $FF, duplicate files will
have their type changed to 'BAK' when the SAVE command
is used to save a file. Otherwise such files are
simply deleted.
0007 1 INSERT mode initial value. This location defines the
initial state of the INSERT mode. $FF means on and $00
means off.
0008 1 AUTO mode initial value. This location defines the
initial state of the auto-indent tabulator. $FF means
on and $00 means off.
0009 1 TABS mode initial value. This location defines the
initial state of the TABS mode. $FF means on and $00
means off.
000A 2 Replace prompt delay. This entry is used only by the
find/replace function in the editor. It defines the
delay used when moving the cursor alternately between
the replace prompt and the text. Experiment to find a
suitable value (typical values range from 200 to
2000).
000C 256 Alternate editor keyboard table. See below for a des-
cription.
Alternate editor keyboard table
-------------------------------
To be able to benefit fully from the special keys offered by your
terminal's keyboard, COMPAS allows you to define alternate keys
to invoke selected editor functions. A typical example of alter-
nate keys is defining your cursor arrows to do the same as ^S,
^D, ^E and ^X.
The alternate editor keyboard table consists of a list of strings
each defining an alternate character (or sequence of characters)
to invoke a specific editor function. The first byte of each
string defines the number of the function it invokes. The second
byte defines the length of the sequence and the following bytes
contain the actual characters of the sequence. The strings are
totally contiguous, i.e. immediately following the last character
of a sequence comes the next definition. The table is ended by a
zero byte. The maximum length of the table is 256 bytes. The
function numbers, in hex, are:
01 ^J 02 ^S 03 ^D 04 ^A
05 ^F 06 ^Q^S 07 ^Q^D 08 ^E
09 ^X 0A ^Q^E 0B ^Q^X 0C ^R
0D ^C 0E ^Q^R 0F ^Q^C 10 DEL
11 ^G 12 ^Q DEL 13 ^Q^Y 14 ^T
15 ^Y 16 ^M 17 ^I 18 ^N
19 ^V 1A ^Z 1B ^B 1C ^W
1D ^Q^F 1E ^Q^A 1F ^L 20 ^K^B
21 ^K^K 22 ^K^Y 23 ^K^C 24 ^K^V
25 ^K^P 26 ^K^H 27 ^K^D 28 ^K^X
Below follows an example of an alternate editor key table (the
numbers are in hex):
10 01 08 12 02 11 48 00
This table defines ^H ($08) as an alternate for DEL (function
$10) and ^Q^H as an alternate for ^Q DEL (function $12). Note
that the first character of a function sequence may be any char-
acter, but the following characters must be stored as values
between $20 and $5F or $80 and $FF. When the editor inputs a
function sequence from the keyboard, all control characters and
lower case letters following the first character of the sequence
are converted to upper case letters, i.e. characters between $00
and $1F or $60 and $7F are converted to characters between $40
and $5F. Referring to the example above, this means that ^Q^H may
also be entered as ^Q "H" or ^Q "h".
Note that it is actually possible to override the standard key
sequences. If you for instance define ^J to be an alternate key
for the ^X function, the original ^J function will become inac-
cessible unless you define an alternate sequence for it as well.
«eof»