(* 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.