177 lines
6.9 KiB
Plaintext
177 lines
6.9 KiB
Plaintext
(*
|
||
Copyrigth (C) 1984 Logitech. All Rights Reserved.
|
||
|
||
Permission is hereby granted to registered users to use or
|
||
abstract the following program in the implementation of
|
||
customized versions. This permission does not include the
|
||
right to redistribute the source code of this program.
|
||
*)
|
||
(****************************************
|
||
* *
|
||
* MODULA-2 Multi-Pass Compiler *
|
||
* **************************** *
|
||
* *
|
||
* Implementation for Intel 8086 *
|
||
* *
|
||
* Resident Compiler *
|
||
* *
|
||
* *
|
||
* M86CompPara: *
|
||
* *
|
||
* parameter module to configurate *
|
||
* the Modula-2 compiler *
|
||
* implementation module may be *
|
||
* changed by the user *
|
||
* *
|
||
* Version: *
|
||
* 1.0 Jan 17, 1984 *
|
||
* *
|
||
* *
|
||
* Copyright: *
|
||
* (C) 1983 *
|
||
* LOGITECH S.A. *
|
||
* CH-1143 Apples (Switzerland) *
|
||
* *
|
||
****************************************)
|
||
IMPLEMENTATION MODULE CompPara;
|
||
|
||
BEGIN
|
||
(* the following variables are used to define the format of *)
|
||
(* the listing generated by the compiler *)
|
||
|
||
CPpageLength := 60;
|
||
(* number of lines per page : initial value is 60 *)
|
||
(* valid range: 40..65535 (if out of range: 60 is taken) *)
|
||
|
||
CPpageWidth := 79;
|
||
(* number of characters per line : initial value is 79 *)
|
||
(* valid range: 50..150 (if out of range: 79 is taken) *)
|
||
|
||
(* the next two parameters are used to define the page eject *)
|
||
|
||
CPffAtEnd := TRUE;
|
||
(* defines whether a formfeed at last character *)
|
||
(* is generated or not: initial value is TRUE *)
|
||
|
||
CPffAtBegin := FALSE;
|
||
(* defines whether a formfeed at first character *)
|
||
(* is generated or not: initial value is FALSE *)
|
||
|
||
(* the next two parameters define the header of each page *)
|
||
|
||
CPheader := TRUE;
|
||
(* defines whether a headerline is generated on each *)
|
||
(* page or not: initial value is TRUE *)
|
||
|
||
CPdate := FALSE;
|
||
(* defines whether date in headerline is generated *)
|
||
(* or not: initial value is FALSE *)
|
||
|
||
|
||
(* a header line has the following format: *)
|
||
(* Modula-2/86 Date filename.ext Page n *)
|
||
(* e.g. *)
|
||
(* Modula-2/86 Nov 16'83 COMPPARA.DEF Page 1 *)
|
||
|
||
|
||
(* the next two parameters define the footer of each page *)
|
||
|
||
CPfooter := FALSE;
|
||
(* defines whether a footerline is generated on each *)
|
||
(* page or not: initial value is FALSE *)
|
||
|
||
CPfooterText := "";
|
||
(* string of pagewidth characters that defines the footerline *)
|
||
(* normally used for Copyright text: initially an empty string *)
|
||
|
||
|
||
(* definition of interrupt system: number of priority levels *)
|
||
|
||
CPpriorityLevels := 8;
|
||
(* initial value of distributed version is 8: *)
|
||
(* defined by the (8259A) interrupt controller(s) *)
|
||
|
||
|
||
(* definition of interface to Run-Time-Support system *)
|
||
|
||
CPRTSfunctVector := 228;
|
||
(* defines the interrupt vector to acces the RTS *)
|
||
(* RTS: Runtime Support: Assembley part of Modula-2/86 System *)
|
||
(* normally 228: may be only changed if RTS is changed *)
|
||
|
||
CPEmulBaseVector := 18H;
|
||
(* defines the base interrupt vector to acces the emulator *)
|
||
(* normally 18H: may be only changed if emulator is changed *)
|
||
|
||
|
||
(* the following boolean variable defines whether code for an *)
|
||
(* 8087 coprocessor or an 8087 emulator is generated by the compiler *)
|
||
|
||
CPemulator := FALSE; (* initial value is FALSE *)
|
||
|
||
(* the following options define the interactive behaviour of the compiler *)
|
||
|
||
CPinteractiv := TRUE; (* initial value is TRUE *)
|
||
(* whether compiler may be stopped by typing a key *)
|
||
|
||
CPstatistic := TRUE; (* initial value is TRUE *)
|
||
(* whether compiler displays some statistic values *)
|
||
|
||
CPquery := FALSE; (* initial value is FALSE *)
|
||
(* whether compiler asks for the symbol files of *)
|
||
(* the imported modules or tries to find them by *)
|
||
(* the default strategy: *)
|
||
(* build filename from module name by taking *)
|
||
(* the 8 first characters and the extension 'SYM' *)
|
||
|
||
CPautoquery := TRUE; (* initial value is TRUE *)
|
||
(* whether compiler falls automatically in query mode *)
|
||
(* if it didn't find the file by the default mechanism *)
|
||
|
||
CPdebug := TRUE; (* initial value is TRUE *)
|
||
(* whether compiler generates a reference file *)
|
||
(* that would be used by the debugger, or not *)
|
||
|
||
CPversion := FALSE; (* initial value is FALSE *)
|
||
(* whether compiler displays version info or not *)
|
||
|
||
CPlister := FALSE; (* initial value is FALSE *)
|
||
(* whether compiler generates a listing file or not *)
|
||
|
||
CPerrorLister := TRUE; (* initial value is TRUE *)
|
||
(* whether compiler generates automatically an *)
|
||
(* error listing if errors occured or not *)
|
||
|
||
(* moment of listing generation in case of errors *)
|
||
|
||
(* if both variables are set to FALSE the listing *)
|
||
(* will be generated after pass3 *)
|
||
(* the functions of the different passes are: *)
|
||
(* pass1 checks syntactic of program *)
|
||
(* pass2 checks declaration parts (allocation) *)
|
||
(* pass3 checks bodys (compatibility test) *)
|
||
|
||
|
||
CPafterPass1 := TRUE; (* initial value: TRUE *)
|
||
(* whether compiler goes to lister if error detected *)
|
||
(* in pass1 and terminates compilation, or not *)
|
||
|
||
CPafterPass2 := TRUE; (* initial value: FALSE *)
|
||
(* whether compiler goes to lister if error detected *)
|
||
(* in pass2 and terminates compilation, or not *)
|
||
|
||
(* the following boolean variables are used to define the default *)
|
||
(* setting of the corresponding testcode options: *)
|
||
(* TRUE means: default is '+'; FALSE means: default is '-' *)
|
||
|
||
CPstacktest := TRUE;
|
||
(* for option 'S': initial value is TRUE *)
|
||
|
||
CPrangetest := TRUE;
|
||
(* for option 'R': initial value is TRUE *)
|
||
|
||
CPindextest := TRUE;
|
||
(* for option 'T': initial value is TRUE *)
|
||
|
||
END CompPara.
|
||
|