TITLE "Configuration file for MYLOAD" ;-------------------------------------------------------------------------- ; MYLOAD Patch offsets, Version 1.0 17 Feb 90 ZQUIET EQU 15H ; 0 = Don't use Z3 Quiet Flag, FF = Use ; Z3 Quiet Flag if under ZCPR 3.x SILENT EQU 16H ; 0 = Verbose, FF = Suppress Noise messages BELL EQU 17H ; 0 = No Bell, FF = Send Bell (Beep) ;-------------------------------------------------------------------------- ; DATA FOR CNFG PROGRAM LINKAGE ; function definitions - ** needed for CASE Table entries ** SWITCH EQU 0 ; Toggle bit n in a byte (n is specified) TEXT EQU 1 ; Replace a text string of specified length DUSPEC EQU 2 ; Replace a ZCPR style DU specification (NOT DIR:!) HEXRAD EQU 3 ; Edit byte/word using HEX radix DECRAD EQU 4 ; Edit byte/word using DECIMAL radix TEXTLC EQU 5 ; Same as function TEXT, but lower case is Ok FILESP EQU 6 ; Change all or part of a filespec DU:FN.FT TOGL3 EQU 7 ; Toggle to one of three options: 001B, 010B, 100B TOGLTF EQU 8 ; Toggle a byte between 0FFH and 0 ; ASCII definitions ; these are convenient, but only required if you wish ; to use them in text or data fields (including HELP) CTLC EQU 3 BS EQU 8 ; Backspace HT EQU 9 ; Horizontal Tab LF EQU 10 ; Line Feed CR EQU 13 ; Carriage Return SPC EQU 32 ; Space Character ;========================================================= ; MACRO DEFINITIONS ; You don't HAVE to use the macros. But it does make it ; easier to fill in the tables! ; This macro is used for creating a CASE table ; entry which specifies toggling or setting a ; single bit (0..7) in a configuration data byte. ; It is useful when the 'switch' function is named. BITMAP MACRO A,SUB,OFF,BIT,SCR,DAT DEFB '&A' DEFW SUB, OFF DEFB 1 SHL BIT ;;make a mask byte DEFW SCR, DAT ENDM ;========================================================= ; MACRO parameter definitions ; A = the character used in the screen for a menu item ; OFF = byte offset in config block ; SUB = subroutine for translation to screen ; SCR = screen location ; DAT = extra data word if required. Normally 0 ; produces a record which is 8 bytes long ;========================================================= ; This macro is used to create a case table entry ; which contains a byte of data required by the function ; to be performed. (see table of function definitions above) VECTOR MACRO A,SUB,OFF,BYTE,SCR,DAT DEFB '&A' DEFW SUB, OFF DEFB BYTE ;;a byte of data DEFW SCR, DAT ENDM ;************************************************************ ; S T A R T O F O V E R L A Y C O D E ;************************************************************ ; The next 13 bytes MUST remain in this location. RST 0 ; For safety - file won't execute DEFW AMENU ; for relocation of addresses, this ; points to the NEXT location. ; The first MENU list must be here. All names are local. AMENU: DEFW AMENU, AMENU, ASCRN, ACASE, AHELP ; Menu A ;========================================================= ; The case table used for TD, only one menu & screen. ;========================================================= ACASE: DEFB (ACASEX-ACASE1) / (ACASE2-ACASE1) ; Number of cases DEFB ACASE2-ACASE1 ; length of each record ; macro .single char menu selector ; | | .function (see above) ; | | | .offset in cnfg block ; | | | | .function dependant data ; | | | | | .screen location ; | | | | | | ;acse1: bitmap 0, switch, obyte0, crtflg, ascrl0, yndata ; | ; address of data structure used by function._| ; ; The first two entries in the case table must be labeled to ; provide data for the calculation at ACASE:. Subsequent ; entries (one for each menu selection) need not be labeled. ACASE1: VECTOR Z, TOGLTF, ZQUIET, 1, ZSCR, YNMSG ACASE2: VECTOR S, TOGLTF, SILENT, 1, DSCR, YNMSG VECTOR B, TOGLTF, BELL, 1, RING, YNMSG ; The next entry is a label which terminates the list. ; It is required for use in the calculation at ACASE: ACASEX: ; label used to calc number of entries ;========================================================= ASCRN: ; Screen image for first screen DB CR,LF ; Ensure clean top of screen DB LF,HT,HT,HT,' MYLOAD Configuration',CR,LF DB LF ; Blank lines for screen format DB HT,'Z) Use ZCPR 3.x Quiet Flag if Environment permits ' ZSCR: DB ' ' DB CR,LF,LF DB HT,'S) Suppress Prompts & Status Messages (Silent) ' DSCR: DB ' ' DB CR,LF,LF DB HT,'B) Ring Bell (Beep) on Errors ' RING: DB ' ' DB CR,LF,LF DB CR,LF,LF DB CR,LF,LF DB CR,LF,LF DB CR,LF,LF DB CR,LF ;scroll to top of screen (not needed if only one screen) DB CR,LF DB 0 ;terminator ;----------------------------------- ; SCREEN DATA LIST ; Data pair for representing bit values in screen image YNMSG: DEFB 'YES',0 DEFB ' NO',0 ;========================================================= AHELP: ;help screen for menu A DB CR,LF,LF ;ensure clean top of screen DB ' ----- MYLOAD Configuration -----' DB CR,LF,LF DB 'Three options exist for configuring MYLOAD. They Are:' DB CR,LF,LF DB 'ZQUIET - Set to YES to use the ZCPR 3.x Quiet flag to control printing' DB CR,LF DB ' of unneeded status and prompt messages if a Z3 Environment Descriptor' DB CR,LF DB ' is found. If set to NO, the SILENT flag is used to control printing.' DB CR,LF,LF DB 'SILENT - Set to YES to suppress printing of unneeded status and prompt' DB CR,LF DB ' messages during execution when no ZCPR 3.x Environment Descriptor is' DB CR,LF DB ' found or when the ZQUIET flag is set to NO. When used, setting SILENT' DB CR,LF DB ' to NO will tell MYLOAD to print all messages (Verbose mode).' DB CR,LF,LF DB 'BELL - Set to YES to send a bell character to the terminal when' DB CR,LF DB ' errors are detected. This usually results in Beeps which may be' DB CR,LF DB ' annoying in a crowded office. When set to NO, MYLOAD operates' DB CR,LF DB ' quietly with only screen output.' DB CR,LF DB 0 ;=========================================================