DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦78e265e8e⟧ TextFile

    Length: 16896 (0x4200)
    Types: TextFile
    Names: »INSTALL.DOC«

Derivation

└─⟦c96461903⟧ Bits:30002787 SW1602 COMPAS Pascal Version 3.07 Release 1.1
    └─ ⟦this⟧ »INSTALL.DOC« 

TextFile



              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»