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

⟦1c6a8a3fb⟧ TextFile

    Length: 21504 (0x5400)
    Types: TextFile
    Names: »INSTALL.DOC«

Derivation

└─⟦08ea08c61⟧ Bits:30003924 PolyPascal programmer
    └─ ⟦this⟧ »INSTALL.DOC« 
└─⟦74e5ee6fb⟧ Bits:30002683 PolyPascal-86 v. 3.11 - Piccoline
└─⟦74e5ee6fb⟧ Bits:30003934 SW1402 PolyPascal v3.11 (dk) til Piccoline
    └─ ⟦this⟧ »INSTALL.DOC« 
└─⟦bffadc512⟧ Bits:30003938 SW1502 PolyPascal 3.10 (dk) til RC Partner
└─⟦bffadc512⟧ Bits:30004539 SW1402 PolyPascal v3.10 (dk) til Piccoline
    └─ ⟦this⟧ »INSTALL.DOC« 

TextFile



            PolyPascal-86 Supplementary Documentation
                       Installation Notes

                       Copyright (C) 1985
                    PolyData MicroCenter A/S



PolyPascal  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 PolyPascal,  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 PolyPascal you may use the INSTALL program supplied on 
the distribution disk.  The INSTALL program is fully self-explai-
ning,  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 PolyPascal 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 PolyPascal to operate correctly.

0042  9    GOTOXY  lead-in sequence.  The string sent before  the 
           coordinates in a cursor addressing sequence.

004B  5    GOTOXY separator sequence. The string 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.  The string 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 PolyPascal to  operate 
correctly.  All other sequences are optional.  All fields in this 
section are strings.

0058  9    CLRHOM  sequence.  Clears  the screen and  places  the 
           cursor in the upper left corner. 

0061  9    CLREOS  sequence.  Clears all character locations from 
           the cursor to the end of the screen.

006A  9    CLREOL sequence.  Clears all character locations  from 
           the cursor to the end of the current line.

0073  9    INSLIN  sequence.  Inserts a blank line at the current 
           line and scrolls all lines below it down.

007C  9    DELLIN sequence.  Deletes the current line and scrolls 
           all lines below it up. A blank line must appear at the 
           bottom of the screen.

0085  9    Reverse  on  sequence.  Subsequent characters will  be 
           printed in reverse.

008E  9    Reverse off sequence. Turns off the reverse attribute.

0097  9    Intensify on sequence.  Subsequent characters will  be 
           printed in increased (or decreased) intensity.

00A0  9    Intensify off sequence. Turns off the intensify attri-
           bute.

00A9  9    Underline  on sequence.  Subsequent characters will be 
           underlined. 

00B2  9    Underline off sequence. Turns off the underline attri-
           bute.

00BB  9    Blink on sequence. Subsequent characters will blink.

00C4  9    Blink off sequence. Turns off the blink attribute.

00CD  9    All attributes off sequence.  Turns off all  character 
           attributes.  Some  standards (e.g.  the ANSI standard) 
           does not allow for selective deactivation of character 
           attributes.  Instead they provide a single sequence to 
           turn  off  all attributes.  If this  applies  to  your 
           terminal,  install empty strings in the four deactiva-
           tion sequences above, and install the clear attributes 
           sequence in this field.


Editor Attribute Definitions
----------------------------

The  fields  that  follow are used by the  PolyPascal  editor  to 
determine  the  character  attributes used to  display  different 
kinds of texts on the screen. The attribute definitions depend on 
whether  a  direct write string routine is installed or not  (ad-
dress  00F3).  If a direct write string routine is not installed, 
the  four  least significant bits of each field  determine  which 
attributes are to be active for that specific kind of text:

                       Bit 0 = Reverse.
                       Bit 1 = Intensify.
                       Bit 2 = Underline.
                       Bit 3 = Blink.

A bit value of 1 indicates active, and 0 indicates inactive. If a 
direct write string routine is installed, the values contained in 
the attribute definition fields are passed directly to the driver 
with no interpretation.  In that case,  the values installed  are 
typically  the attribute values to be stored in the video RAM  to 
achieve the desired effects.

00D6  1    Text attributes.  The attributes used to display ordi-
           nary text.

00D7  1    Status line attributes. The attributes used to display 
           the status line.

00D8  1    Prompt line attributes. The attributes used to display 
           prompt lines.

00D9  1    Error  message  attributes.  The  attributes  used  to 
           display error messages.

00DA  1    Overflow  marker  attributes.  The attributes used  to 
           display a '+' at the end of lines that are wider  than 
           the screen.

00DB  1    Block  attributes.  The  value  stored in  this  field 
           defines  the bit pattern to XOR the current  attribute 
           value  with,  when displaying text within a block.  In 
           other  words,  this  field defines the  attributes  to 
           switch  to  the  opposite state when  displaying  text 
           within a block.

00DC  1    Control character attributes. The value stored in this 
           field  defines  the  bit pattern to  XOR  the  current 
           attribute value with,  when displaying control charac-
           ters.


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).

00DD  2    GOTOXY driver address.  Zero indicates that no  driver 
           is installed.


Low-level I/O routines
----------------------

PolyPascal  allows you to write your own low-level  machine  code 
drivers 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,  PolyPascal 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 
routines 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.

00DF  2    Console  status driver address.  Used by the  KEYPRESS 
           standard  function.  Zero causes PolyPascal to use the 
           CONST routine in the BIOS.

00E1  2    Console input driver address.  Used by the CON:,  TRM: 
           and  KBD:  devices.  Zero causes PolyPascal to use the 
           CONIN routine in the BIOS.

00E3  2    Console output driver address.  Used by the CON:, TRM: 
           and  KBD:  devices.  Zero causes PolyPascal to use the 
           CONOUT routine in the BIOS.

00E5  2    List output driver address.  Used by the LST:  device. 
           Zero  causes PolyPascal to use the LIST routine in the 
           BIOS.

00E7  2    Auxiliary  output  driver address.  Used by  the  AUX: 
           device.  Zero causes PolyPascal to use the PUNCH  rou-
           tine in the BIOS.

00E9  2    Auxiliary input driver address.  Used by the AUX:  de-
           vice. Zero causes PolyPascal 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.

00EB  2    PolyPascal entry routine address.  If installed,  this 
           routine is called when PolyPascal is started from  the 
           operating system.

00ED  2    PolyPascal  exit routine address.  If installed,  this 
           routine  is called just before PolyPascal  returns  to 
           the operating system.

00EF  2    Editor entry routine address.  If installed, this rou-
           tine is called when the editor is started.

00F1  2    Editor exit routine address.  If installed,  this rou-
           tine  is called just before the editor returns to  the 
           PolyPascal 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  PolyPascal editor by implementing the routines outlined  be-
low. 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.

00F3  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.  (DL,DH)  corresponds to (X,Y)  with  the 
           upper left corner at (0,0).  DS:SI points to a  string 
           of  words,  each  of which define a character  and  an 
           attribute.  The  least  significant byte of each  word 
           contains  the ASCII value of the  character,  and  the 
           most  significant  byte contains its attribute  value. 
           The  attribute  values  are obtained  from  the  table 
           stored at addresses 00D6-00DC.

00F5  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. 

00F7  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.


User patch area
---------------

The  user patch area is not used by PolyPascal but left open  for 
you to install user written drivers in it.

00F9  640  User  patch  area.  The address of the last  available 
           byte is $0378.


Editor configuration table
--------------------------

The  address of the editor configuration table may  be  different 
from  one  release of PolyPascal to another.  To find  the  start 
address, examine locations $0001 and $0002. They contain the base 
address  (least significant byte first) of the editor  configura-
tion table.  In the descriptions below, the address of each field 
is an offset address from the base address of the table.

0006  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).

0008  256  Alternate editor keyboard table.  See below for a des-
           cription.

0108  1    Side scroll step value. This location defines the step 
           size  used  by the editor when it  scrolls  sidewards.  
           The  minimum value is 1 and the maximum value  is  the 
           screen width less one.

0109  1    Backup flag.  This location must contain either $00 or 
           $FF.  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.

010A  1    INSERT mode initial value.   This location defines the 
           initial state of the INSERT mode. $FF means on and $00 
           means off.

010B  1    AUTO  mode initial value.  This location  defines  the 
           initial state of the auto-indent tabulator.  $FF means 
           on and $00 means off.

010C  1    TABS  mode  initial value.  This location defines  the 
           initial state of the TABS mode.  $FF means on and  $00 
           means off.

010D  1    Error  message  mode.  The error message mode  may  be 
           either  $00,  $01  or $02.  $00 means that  the  error 
           message  file should never be loaded.  $01 means  that 
           the  error  message file should only be loaded if  the 
           user confirms it (by answering yes to the prompt  when 
           PolyPascal  is started),  and $02 means that the error 
           message file should always be loaded.

010E  12   Help  file name.  Contains the name of the  PolyPascal 
           help  file in FCB format.  The first byte defines  the 
           disk drive.  0 means the default drive,  1 means A,  2 
           means B,  etc.  The next 8 bytes define the file name, 
           and  the  last 3 bytes define the  file  type.  Unused 
           positions in the name and type fields should be set to 
           blanks.  If bit 7 is set in the drive number, PolyPas-
           cal will scan user number 0 in addition to the current 
           user number when looking for the help file.

011A  12   Error  message  file name.  Contains the name  of  the 
           PolyPascal  error  message file name in FCB format  as 
           described above.

0126  12   Default workfile name.  Contains the default  workfile 
           name in FCB format.

0132  3    Default text file type.  Three characters which define 
           the  default  type  used by the LOAD,  SAVE  and  NAME 
           commands. Unused positions should be set to blanks.

0135  3    Default  backup file type.  Three characters which de-
           fine  the  type  used by the SAVE  command  to  create 
           backup files.

0138  3    Default backup file type.  Three characters which  de-
           fine the default type used by the PROGRAM command.

013B  3    Default  object file type.  Three characters which de-
           fine the default type used by the OBJECT command.


Alternate editor keyboard table
-------------------------------

To be able to benefit fully from the special keys offered by your 
terminal's  keyboard,  PolyPascal allows you to define  alternate 
keys  to invoke selected editor functions.  A typical example  of 
alternate  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 ^H
      11 ^G          12 ^Q^H        13 ^Q^Y        14 ^T
      15 ^Y          16 ^M          17 ^I          18 ^N
      19 ^P          1A ^V          1B ^Z          1C ^B
      1D ^W          1E ^Q^F        1F ^Q^A        20 ^L
      21 ^K^B        22 ^K^K        23 ^K^Y        24 ^K^C
      25 ^K^V        26 ^K^P        27 ^K^R        28 ^K^W
      29 ^K^H        2A ^K^D        2B ^K^X

Below  follows an example of an alternate editor key  table  (the 
numbers are in hex):

                   08 02 1B 41 09 02 1B 42 00

This  table defines ESC-A ($1B,$41) as an alternate for ^E (func-
tion  $08) and ESC-B ($1B,$42) as an alternate for  ^X  (function 
$09). Note that the first character of a function sequence may be 
any  character,  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.  For instance,  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»