; FILESZCF.Z80 ; ; ZCNFG configuration module for FILESIZE.COM. The assembled version of ; this file must be named FILESZxx.CFG, where xx is the version number ; of FILESIZE, to be automatically recognized by ZCNFG. ; ; Version 1.2 -- March 27, 1991 -- Gene Pizzetta ; Made option N decimal. Reversed order of options N and S. ; ; Version 1.1 -- March 25, 1991 -- Rob Friefeld ; Added option N. ; ; Version 1.0 -- March 20, 1991 -- Gene Pizzetta ; For FILESIZE 1.4. Help screen TXT file was justified with Irv ; Hoff's JUS and converted to code with TXT2DB. ; ; Patch locations . . . ; pagdft equ 015h ; screen paging flag sysdft equ 016h ; system files flag scrdft equ 017h ; default screen lines numdft equ 018h ; number of files ; ; 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 MenuA, MenuA, ScrnA, CaseA, HelpA ; single menu ; ; Case table section . . . ; CaseA: db (CaseAX-CaseA1)/(CaseA2-CaseA1) ; number of cases db CaseA2-CaseA1 ; 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, QtFlag, 1, ScrnA1, NoYes ; | ; Address of data used by function ; ; The first two entries in table are labeled for calculation at CaseA:. ; CaseA1: CASE P, ToglTF, pagdft, 1, ScrnA1, NoYes CaseA2: CASE S, ToglTF, sysdft, 1, ScrnA2, YesNo CASE N, DecRad, numdft, 2, ScrnA3, NumRge CASE L, DecRad, scrdft, 1, ScrnA4, ScrRge CaseAX: ; for calculation of list length ; ; Case table support . . . ; YesNo: db 'YES',0 ; displayed if value is FFh (ToglTF) NoYes: db ' NO',0 ; displayed if value is 00h (ToglTF) db 'YES',0 ; ScrRge: dw 2,255 ; range for number of screen lines NumRge: dw 16,3072 ; range for file matches ; ; Screen image section . . . ; ScrnA: db cr,lf,lf,tab,tab,tab,' FILESIZE Installation Menu' db cr,lf,lf,lf ; db tab,tab,'(P) ',1,'Page screen? . . . . . . . . . . . . ',2 ScrnA1: db ' ' ; current value db cr,lf,lf ; db tab,tab,'(S) ',1,'Include system files? . . . . . . . . ',2 ScrnA2: db ' ' ; current value db cr,lf,lf ; db tab,tab,'(N) ',1,'Number of file matches allowed . . ',2 ScrnA3: db ' ' ; current value db cr,lf,lf ; db tab,tab,'(L) ',1,'Number of screen lines (CP/M only) . ',2 ScrnA4: db ' ' ; current value db cr,lf,lf,lf ; db 0 ; terminator ; ; Help screen section . . . ; HelpA: db CR,LF ; db HON,'Option P',HOF,' -- Screen paging. "YES" will cause ' db ' FILESIZE to pause each time',CR,LF db 'the screen fills by default. "NO" will default to continuous ' db 'scrolling.',CR,LF db 'The P command line option toggles the selected default.' db CR,LF,LF ; db HON,'Option S',HOF,' -- Include system files. "NO" causes ' db 'system files to be ignored',CR,LF db 'by default. If "YES" is selected, system files will be ' db ' included in the',CR,LF db 'search. The S command line option toggles the selected default.' db CR,LF,LF ; db HON,'Option N',HOF,' -- Number of files. Each matched filename ' db 'requires 15 bytes of',CR,LF db 'buffer space, or about 15k per 1000 matches. If memory ' db ' is limited, you',CR,LF db 'will need to reduce the number of files allowed.' db CR,LF,LF ; db HON,'Option L',HOF,' -- Screen lines. This value is only ' db ' used under vanilla CP/M.',CR,LF db 'Under ZCPR3 the number of screen lines is obtained from ' db ' the environment',CR,LF db 'descriptor. Enter the actual number of lines on your screen.' db CR,LF ; db 0 ; Terminator ; end