;       SCCSID = @(#)switch.inc	6.1 90/11/17
;      SCCSID = @(#)switch.inc	13.2 88/11/04
;
; Switch definitions for MSDOS
;
;   The following low-level switches and equates defined are:
;
;	ZEROEXT	    TRUE => FCB opens will zero extend and current block fields
;		    FALSE => FCB opens leave these fields alone
;	TOGLPRN	    TRUE => keys exist that toggle the printer echo state
;		    FALSE => separate key for printer on and printer off
;	ESCCH	    character that is used as lead-in byte for extended function
;		    keys.  On IBM, this is the NUL byte for the extended ASCII.
;		    Others use Z19/VT52 convention: ESC (0x1B, 33) is the lead-
;		    in byte;
;	CANCEL	    character that is used to delete an entire line during
;		    cooked mode input.	IBM has the ESC char for this while
;		    ^X is used by non-compatibles.
;	ALTVEC	    use interrupt range other than 20-3F for DOS reserved
;		    interrupts
;	KEYBOARD    0 => use IBM function keys
;		    1 => use first alternate function keys
;		    2 => use second alternate function keys
;		    3 => use state machine for function keys
;
;   The above switches are rarely set individually.  They are controlled by
;   high-level switches indicating the particular hardware configuration.
;   These switches are:
;
;	IBM	    configuration for the IBM PC
;
;   Note that the absence of command-line defintions will build an IBM version
;

FALSE	EQU	0
TRUE	EQU	-1

ifndef	ZEROEXT
    ZEROEXT = TRUE
endif

ifndef	TOGLPRN
    TOGLPRN = TRUE
endif

ifndef	ALTVECT
    ALTVECT = FALSE
endif

ifndef	KEYBOARD
    KEYBOARD = 0
endif

ifndef	KANJI
    KANJI = FALSE
endif

ifndef	IBM
    IBM = TRUE
endif

IF	IBM
    ESCCH   EQU	    0			    ; character to begin escape seq.
    CANCEL  EQU	    27			    ;Cancel with escape
ELSE
    ESCCH   EQU	    1BH
    CANCEL  EQU	    "X"-"@"		    ;Cancel with Ctrl-X
ENDIF
