(**************************************** * * * 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. * * * ****************************************) DEFINITION MODULE CompPara; EXPORT QUALIFIED CPpageLength, CPpageWidth, (* listing definition *) CPffAtEnd, CPffAtBegin, CPheader, CPdate, CPfooter, CPfooterText, CPpriorityLevels, (* interrupt system definition: 8259A *) CPRTSfunctVector, (* interrupt vector to access to RTS functions *) CPemulator, (* default settings of compiler options *) CPinteractiv, CPstatistic, CPquery, CPautoquery, CPdebug, CPversion, CPlister, CPerrorLister, CPafterPass1, CPafterPass2,(* defines moment of listing generation *) CPstacktest, CPrangetest, (* default settings of program-source options *) CPindextest; VAR (* the following variables are used to define the format of *) (* the listing generated by the compiler *) CPpageLength, (* number of lines per page : initial value is 60 *) (* valid range: 40..65535 (if out of range: 60 is taken) *) CPpageWidth: CARDINAL; (* 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: BOOLEAN; (* defines whether a formfeed at last character *) (* is generated or not: initial value is TRUE *) CPffAtBegin: BOOLEAN; (* 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: BOOLEAN; (* defines whether a headerline is generated on each *) (* page or not: initial value is TRUE *) CPdate: BOOLEAN; (* 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: BOOLEAN; (* defines whether a footerline is generated on each *) (* page or not: initial value is FALSE *) CPfooterText: ARRAY [0..149] OF CHAR; (* 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: CARDINAL; (* initial value of distributed version is 8: *) (* defined by the (8259A) interrupt controller(s) *) (* definition of interface to Run-Time-Support system *) CPRTSfunctVector: CARDINAL; (* 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: BOOLEAN; (* initial value is TRUE *) (* the following options define the interactive behaviour of the compiler *) CPinteractiv: BOOLEAN; (* initial value is TRUE *) (* whether compiler may be stopped by typing a key *) CPstatistic: BOOLEAN; (* initial value is TRUE *) (* whether compiler displays some statistic values *) CPquery: BOOLEAN; (* 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: BOOLEAN; (* initial value is TRUE *) (* whether compiler falls automatically in query mode *) (* if it didn't find the file by the default mechanism *) CPdebug: BOOLEAN; (* initial value is TRUE *) (* whether compiler generates a reference file *) (* that would be used by the debugger, or not *) CPversion: BOOLEAN; (* initial value is FALSE *) (* whether compiler displays version info or not *) CPlister: BOOLEAN; (* initial value is FALSE *) (* whether compiler generates a listing file or not *) CPerrorLister: BOOLEAN; (* 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: BOOLEAN; (* initial value: TRUE *) (* whether compiler goes to lister if error detected *) (* in pass1 and terminates compilation, or not *) CPafterPass2: BOOLEAN; (* 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: BOOLEAN; (* for option 'S': initial value is TRUE *) CPrangetest: BOOLEAN; (* for option 'R': initial value is TRUE *) CPindextest: BOOLEAN; (* for option 'T': initial value is TRUE *) END CompPara.