; XFORCF.Z80 ; ; ZCNFG configuration module for XFOR.COM. The assembled version of ; this file must be named XFORxx.CFG, where xx is the version number ; of XFOR, to be automatically recognized by ZCNFG. ; ; Version 1.4 -- November 10, 1991 -- Gene Pizzetta ; For XFOR 1.4. Added configuration for alternate header. Added ; second menu screen. Revised help screens and menus. ; ; Version 1.3 -- December 18, 1990 -- Gene Pizzetta ; For XFOR 1.1. Added video attribute options for header and first ; line of each entry. Eliminated unnecessary "MACLIB Z80" statement, ; left over from an Intel version. ; ; Version 1.2 -- December 15, 1990 -- Gene Pizzetta ; For XFOR 1.0. Added clear screen and variable overlap ; configuration options. ; ; Version 1.1 -- December 8, 1990 -- Gene Pizzetta ; For XFOR 0.2 beta release. ; ; Version 1.0 -- December 1, 1990 -- Gene Pizzetta ; For ZFOR 0.1 beta release. ; ; Patch locations . . . ; HdrFlg equ 015h ; print header flag HdrTag equ 016h ; header for ZFILES.LST or SPECIAL HdrAtr equ 017h ; video attributes for header EntAtr equ 018h ; video attributes for entry QtFlag equ 019h ; quiet flag SCFlag equ 01Ah ; screen paging flag SpcFlg equ 01Bh ; double spacing flag ClsFlg equ 01Ch ; clear screen flag OlpFlg equ 01Dh ; variable overlap flag SynFlg equ 01Eh ; for FN.FT in syntax DftDrv equ 01Fh ; default drive DftUsr equ 020h ; default user DftFn equ 021h ; default filename PrgNam equ 02Ch ; program name for usage screen SplHdr equ 034h ; special header ; ; ZCNFG function definitions . . . ; Switch equ 0 ; toggle bit n in a byte (n is specified) Text equ 1 ; edit text with UC conversion DUSpec equ 2 ; replace a ZCPR style DU spec (NOT DIR:!) HexRad equ 3 ; edit byte/word using HEX radix DecRad equ 4 ; edit byte/word using DECIMAL radix TextLC equ 5 ; edit text, both UC and LC FileSp equ 6 ; edit a Z3 filespec or filespec fragment Togl3 equ 7 ; toggle one of three options: 001B, 010B, 100B ToglTF equ 8 ; toggle a byte between 0ffh and 0 ; ; ASCII characters . . . ; HON equ 1 ; highlight on HOF equ 2 ; highlight off TAB equ 9 ; tab LF equ 10 ; linefeed CR equ 13 ; carriage return ; ; Macro definitions ; C = character to identify menu item ; OFFSET = offset in program's configuration block ; FUNC = ZCNFG function ; SCRN = screen location for data ; DATA = function data address (if required) ; CASE macro c,func,offset,bytes,scrn,data db '&C' dw func, offset db bytes dw scrn, data endm ; ; Code . . . ; rst 0 ; for safety, so .CFG file won't execute ; dw MenuA ; for relocation of addresses, this ; ..points to the NEXT location. ; ; Menu list section . . . ; MenuA: dw MenuB, MenuB, ScrnA, CaseA, HelpA ; Entry for menu A MenuB: dw MenuA, MenuA, ScrnB, CaseB, HelpB ; Entry for menu B ; ; Case table section . . . ; CaseA: db (CaseAX-CaseA0)/(CaseA1-CaseA0) ; number of cases db CaseA1-CaseA0 ; length of each record ; ; Macro name ; | Single char menu selector ; | | Function (see above) ; | | | Offset in config block ; | | | | Number of bytes ; | | | | | Screen location ; | | | | | | ;Case1: CASE 0, ToglTF, Loc1, 1, ScrnA1, NoYes ; | ; Address of data used by function ; ; The first two entries in table are labeled for calculation at CaseA:. ; CaseA0: CASE H, ToglTF, HdrFlg, 1, ScrnA0, YesNo CaseA1: CASE A, ToglTF, HdrTag, 1, ScrnA1, ZfSpc CASE V, DecRad, HdrAtr, 1, ScrnA2, AtRnge CASE E, DecRad, EntAtr, 1, ScrnA3, AtRnge CASE Q, ToglTF, QtFlag, 1, ScrnA4, YesNo CASE P, Togl3, SCFlag, 7, ScrnA5, YesNo CASE S, ToglTF, SpcFlg, 1, ScrnA6, YesNo CASE C, ToglTF, ClsFlg, 1, ScrnA7, YesNo CASE O, ToglTF, OlpFlg, 1, ScrnA8, YesNo CASE X, ToglTF, SynFlg, 1, ScrnA9, OmtWhl CASE D, DecRad, DftDrv, 1, ScrnAD, DrRnge CASE U, DecRad, DftUsr, 1, ScrnAU, UsRnge CASE F, FileSp, DftFn, 0, ScrnAF, 0 CaseAX: ; for calculation of list length ; CaseB: db (CaseBX-CaseB1)/(CaseB2-CaseB1) ; number of cases db CaseB2-CaseB1 ; length of each record ; CaseB1: CASE P, Text, PrgNam, 8, ScrnB1, SpcTrm CaseB2: CASE A, TextLC, SplHdr, 78, ScrnB2, NulTrm CaseBX: ; for calculation of list length ; ; Case table support . . . ; SpcTrm: db ' ' NulTrm: db 0 YesNo: db 'Yes',0 ; if value is FFh (ToglTF) or 001 (Togl3) db ' No',0 ; if value is 00h (ToglTF) or 010 (Togl3) db 'Ask',0 ; if value is 100 (Togl3) OmtWhl: db 'Wheel',0 ; if value is FFh (ToglTF) db ' Omit',0 ; if value is 00h (ToglTF) ZfSpc: db 'Special',0 ; if value is FFh (ToglTF) db ' ZFILES',0 ; if value is 00h (ToglTF) AtRnge: dw 0,8 ; minimum/maximum for HdrAtr, EntAtr DrRnge: dw 0,16 ; minimum/maximum for DftDrv UsRnge: dw 0,31 ; minimum/maximum for DftUsr ; ; Screen image section . . . ; ScrnA: db cr,lf,tab,tab,tab,' XFOR Configuration Menu' db cr,lf,tab,tab,tab,' (Screen 1 of 2)' db cr,lf,lf ; db tab,tab,'(H) ',1,'Print header? . . . . . . . . . . . . ',2 ScrnA0: db ' ' ; current value db cr,lf ; db tab,tab,'(A) ',1,'Use which header? . . . . . . . . ',2 ScrnA1: db ' ' ; current value db cr,lf ; db tab,tab,'(V) ',1,'Header video attributes . . . . . . . ',2 ScrnA2: db ' ' ; current value db cr,lf ; db tab,tab,'(E) ',1,'Entry first line attributes . . . . . ',2 ScrnA3: db ' ' ; current value db cr,lf ; db tab,tab,'(Q) ',1,'Quiet mode? . . . . . . . . . . . . . ',2 ScrnA4: db ' ' ; current value db cr,lf ; db tab,tab,'(P) ',1,'Page screen output? . . . . . . . . . ',2 ScrnA5: db ' ' ; current value db cr,lf ; db tab,tab,'(S) ',1,'Double-space between entries? . . . . ',2 ScrnA6: db ' ' ; current value db cr,lf ; db tab,tab,'(C) ',1,'Clear screen for each page? . . . . . ',2 ScrnA7: db ' ' ; current value db cr,lf ; db tab,tab,'(O) ',1,'Use variable page overlap? . . . . . ',2 ScrnA8: db ' ' ; current value db cr,lf ; db tab,tab,'(X) ',1,'Omit FN.FT in syntax or use Wheel? ',2 ScrnA9: db ' ' ; current value db cr,lf ; db tab,tab,'(D) ',1,'Default source drive (A=1) . . . . . ',2 ScrnAD: db ' ' ; current value db cr,lf ; db tab,tab,'(U) ',1,'Default source user . . . . . . . . . ',2 ScrnAU: db ' ' ; current value db cr,lf ; db tab,tab,'(F) ',1,'Default filename . . . . . .',2 ScrnAF: db ' ' ; current value db cr,lf ; db lf ; fill rest of screen ; db 0 ; terminator ; ScrnB: db cr,lf,tab,tab,tab,' XFOR Configuration Menu' db cr,lf,tab,tab,tab,' (Screen 2 of 2)' db cr,lf,lf,lf ; db '(P) ',1,'Program name for usage screen: ',2,' "' ScrnB1: db ' "' ; current value db cr,lf,lf ; db '(A) ',1,'Alternate header string:',2,cr,lf,lf,'"' ScrnB2: db ' ' ; current db ' "' ; value db cr,lf ; db lf,lf,lf,lf,lf,lf,lf,lf ; fill rest of screen ; db 0 ; terminator ; ; Help screen section . . . ; HelpA: db CR,LF ; db HON,'Option H -- Display header.',HOF,' If this option ' db ' is set to "Yes", a header will',CR,LF db 'be displayed at the top of each screen page by default, ' db ' if paging is in',CR,LF db 'effect. The default here is toggled by the H command ' db 'line option.' db CR,LF,LF ; db HON,'Option A -- Choose header.',HOF,' This option ' db ' determines which of two headers',CR,LF db 'will be used by option H above or on the command ' db 'line. If "ZFILES" is',CR,LF db 'selected, a header for Bill Tishey''s ZFILES.LST will ' db 'be used. If "Special"',CR,LF db 'is selected, XFOR will display a header for "Nolan" ' db 'FOR files or one of',CR,LF db 'your design. The special header must be entered into ' db 'XFOR using option A',CR,LF db 'on the second menu screen, or by using the patch ' db 'file included in the',CR,LF db 'distribution library. The default selected here ' db 'is toggled by the A',CR,LF db 'command line option.' db CR,LF,LF ; db HON,'Option V -- Header video attributes.',HOF,' As ' db 'distributed, when XFOR displays a',CR,LF db 'header, it tries first to use reverse video. If ' db 'reverse video is not',CR,LF db 'available in an extended TCAP, then XFOR attempts ' db 'to use standout video,',CR,LF db 'which is usually dim, bright, or reverse. If ' db 'other attributes are',CR,LF db 'available in your TCAP, or if you want XFOR to always ' db 'use the standout',CR,LF db 'string or no attributes at all, you can set that here: ' db ' 0=no attributes,',CR,LF db '1=blink, 2=reverse, 3=blink-reverse, 4=underline, 5=blink-und' db 'erline,',CR,LF db '6=reverse-underline, 7=blink-reverse-underline, 8=standout.' db CR,LF ; db ':',CR,LF db HON,'Option E -- First line of entry attributes.',HOF db ' As distributed, XFOR displays',CR,LF db 'the first line of each entry in standout video, if it ' db 'is available in your',CR,LF db 'TCAP. The video attributes used can be selected in ' db 'the same manner as the',CR,LF db 'attributes for the header. See option V, above, for ' db 'details. Standout is',CR,LF db 'also used for a few messages, such "[more]" and "[searching]"' db '. A zero will',CR,LF db 'turn off highlighting.' db CR,LF,LF ; db HON,'Option Q -- Quiet mode.',HOF,' This option determines' db ' whether XFOR defaults to',CR,LF db 'quiet mode (not a dramatic difference). If set to "Yes", ' db ' the "searching",',CR,LF db '"end of listing", and "aborted" messages will be suppressed.' db CR,LF,LF ; db HON,'Option P -- Screen paging.',HOF,' This is a ' db ' three-way option. If "Yes" is',CR,LF db 'selected, screen output will be paged. If "No", output ' db ' will be scrolled',CR,LF db 'continuously. If "Ask" is selected, the user will ' db 'be asked on invocation',CR,LF db 'if he wants paged output. Most users will want ' db '"Yes" here, but remote',CR,LF db 'systems should probably set this option to "Ask". The ' db 'P and N command line',CR,LF db 'options will override whatever is selected here.' db CR,LF ; db ':',CR,LF db HON,'Option S -- Space between entries.',HOF,' As ' db 'distributed XFOR leaves no space',CR,LF db 'between entries as they are displayed on the screen, ' db 'but the first line of',CR,LF db 'each entry is highlighted. Some users may prefer a blank ' db 'line between each',CR,LF db 'entry, especially if highlighting is not supported, ' db 'although the number of',CR,LF db 'entries displayed on each screen will be reduced. For ' db 'a blank line between',CR,LF db 'entries select "Yes". The default here is toggled ' db ' by the S command line',CR,LF db 'option.' db CR,LF,LF ; db HON,'Option C -- Clear screen.',HOF,' As distributed ' db ' XFOR clears the screen before',CR,LF db 'each page is displayed. If "No" is selected here, the ' db 'screen will not be',CR,LF db 'cleared. If a header (option H) or variable screen ' db 'overlap (option O) is',CR,LF db 'used, this option should be "Yes" for best results.' db CR,LF,LF ; db HON,'Option O -- Screen overlap.',HOF,' As distributed ' db ' XFOR displays each entry',CR,LF db 'complete on a screen page using variable screen overlap. ' db ' That is, if an',CR,LF db 'entry is not complete at the bottom of the screen, it ' db 'is displayed from its',CR,LF db 'beginning at the top of the next screen. If "No" ' db 'is selected here, the',CR,LF db 'entry will continue on the next screen with the next ' db 'line.' db CR,LF ; db ':',CR,LF db HON,'Option X -- Usage screen.',HOF,' This option affects ' db 'only the usage screen. If',CR,LF db 'set to "Omit", the filename parameter is omitted from ' db 'the displayed syntax',CR,LF db 'line and a series of example command lines is included ' db 'in the display. In',CR,LF db 'addition, a configured program name (option P) is displayed ' db 'instead of the',CR,LF db 'name by which XFOR was invoked. If this option is ' db 'set to "Wheel", full',CR,LF db 'syntax is displayed if the wheel byte is set, but ' db 'the source filename',CR,LF db 'parameter is omitted for non-wheels. The "Omit" selection ' db 'is intended for',CR,LF db 'non-remote users who call XFOR only by means of aliases ' db ' or an internally',CR,LF db 'configured filename and want the help screen syntax ' db 'to represent the way',CR,LF db 'XFOR is used.',CR,LF db CR,LF ; db HON,'Option D -- Default drive.',HOF,' This configured ' db ' default drive is used only if',CR,LF db 'no DU or DIR specification is included on the command ' db 'line. Set to "0" if',CR,LF db 'the current logged drive is to be used. Otherwise, set ' db 'it to the drive you',CR,LF db 'want as the default: A=1, B=2, C=3, D=4, E=5, F=6, ' db 'G=7, H=8, I=9, J=10,',CR,LF db 'K=11, L=12, M=13, N=14, O=15, and P=16.' db CR,LF,LF ; db HON,'Option U -- Default user area.',HOF,' This configured ' db 'default user is used only',CR,LF db 'if no DU or DIR specification is included on the command ' db 'line and if Option',CR,LF db 'D is set to a value other than 0. You may enter any ' db 'user number from 0 to',CR,LF db '31.' db CR,LF ; db ':',CR,LF db HON,'Option F -- Default source filename.',HOF,' This ' db ' filename is used if no filename',CR,LF db 'is given on the command line. If a filename preceded ' db 'by a colon is given',CR,LF db 'on the command line, this default name is ignored.' db CR,LF ; db 0 ; terminator ; HelpB: db CR,LF ; db HON,'Option P -- Program name.',HOF,' This is the program ' db 'name that will be displayed',CR,LF db 'on the syntax line and in example command lines on the ' db 'usage screen if the',CR,LF db 'Wheel byte is off or if option X is set to "Omit". ' db 'The option can be used',CR,LF db 'to display the name of the alias by which XFOR is invoked.' db CR,LF,LF ; db HON,'Option A -- Alternate header string.',HOF,' The ' db ' desired header string can be',CR,LF db 'entered at ZCNFG''s prompt. The maximum is 78 characters. ' db ' Note that the',CR,LF db 'first column of the header will be overwritten with ' db 'a bracket ("[") if',CR,LF db 'highlighting is not supported by your TCAP.',CR,LF ; db ; terminator ; end