174 lines
6.8 KiB
Plaintext
174 lines
6.8 KiB
Plaintext
(****************************************
|
||
* *
|
||
* MODULA-2 Multi-Pass Compiler *
|
||
* **************************** *
|
||
* *
|
||
* Implementation for Intel 8086 *
|
||
* *
|
||
* *
|
||
* CompPara: *
|
||
* *
|
||
* parameter module to configurate *
|
||
* the Modula-2 compiler *
|
||
* implementation module may be *
|
||
* changed by the user *
|
||
* *
|
||
* *
|
||
* Version: *
|
||
* 1.10 Nov 23' 1984 *
|
||
* *
|
||
* *
|
||
* Copyright (C) 1984 Logitech. *
|
||
* All Rights Reserved. *
|
||
* *
|
||
* This program is a trade secret of *
|
||
* Logitech, and it is not to be *
|
||
* reproduced, published, disclosed *
|
||
* to others, copied, adapted, *
|
||
* distributed or displayed without *
|
||
* the prior authorization of Logitech *
|
||
* *
|
||
* Licensee agrees to attach or embed *
|
||
* this notice on all copies of the *
|
||
* program, including partial copies *
|
||
* or modified versions thereof. *
|
||
* *
|
||
****************************************)
|
||
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 *)
|
||
|
||
|
||
(* the following boolean variable defines whether code for an *)
|
||
(* 8087 coprocessor or an 8087 emulator is generated by the compiler *)
|
||
|
||
CPemulator := TRUE; (* initial value is TRUE *)
|
||
|
||
(* 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 := FALSE; (* 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.
|
||
|