; CRLZHF.Z80 ; ; ZCNFG configuration module for CRLZH.COM and UNCRLZH.COM. The assembled ; version of this file must be named CRLLZHxx.CFG, where xx is the version ; number of CRLZH and UNCRLZH, to be automatically recognized by ZCNFG. ; ; Version 1.0 -- July 20, 1991 -- R. Warren ; Adapted from Version 1.0 for CRUNCH/UNCR v2.5 by Gene Pizzetta ; ; The help screens were prepared as a CRLZHCF.TXT text file, justified ; to 75 columns using Irv Hoff's JUS, and converted to code with TEXT2DB. ; ; Patch locations . . . ; Archiv equ 015h ; archive mode (CRLZH) QuiFl equ 016h ; quiet mode NProFl equ 017h ; overwrite prompt flag TrboFl equ 018h ; multisector flag CnfrFl equ 019h ; tag mode WrmFlg equ 01Ah ; warm boot flag BigFlg equ 01Bh ; bigger file prompt flag (CRLZH) MaxUsr equ 01Ch ; { maximum user MaxDrv equ 01Dh ; { maximum drive SysFl equ 01Eh ; system file inclusion flag TypFl equ 01Fh ; default filetype (UNCRLZH) ; ExTbl0 equ 020h ; filetype exclusion table (CRLZH) ExTbl1 equ 023h ExTbl2 equ 026h ExTbl3 equ 029h ExTbl4 equ 02Ch ExTbl5 equ 02Fh ExTbl6 equ 032h ExTbl7 equ 035h ExTbl8 equ 038h ExTbl9 equ 03Bh ; ; 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 ; single menu MenuB: dw MenuA, MenuA, ScrnB, CaseB, HelpB ; ; 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 1, ToglTF, QuiFl, 1, ScrnA1, YesNo CaseA2: CASE 2, ToglTF, SysFl, 1, ScrnA2, YesNo CASE 3, ToglTF, NProFl, 1, ScrnA3, YesNo CASE 4, ToglTF, BigFlg, 1, ScrnA4, YesNo CASE 5, ToglTF, CnfrFl, 1, ScrnA5, YesNo CASE 6, ToglTF, Archiv, 1, ScrnA6, YesNo CASE 7, ToglTF, WrmFlg, 1, ScrnA7, YesNo CASE 8, ToglTF, TrboFl, 1, ScrnA8, YesNo CASE D, DuSpec, MaxUsr, 1, ScrnAD, 0 CASE T, Text, TypFl, 1, ScrnAT, 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 A, Text, ExTbl0, 3, ScrnBA, 0 CaseB2: CASE B, Text, ExTbl1, 3, ScrnBB, 0 CASE C, Text, ExTbl2, 3, ScrnBC, 0 CASE D, Text, ExTbl3, 3, ScrnBD, 0 CASE E, Text, ExTbl4, 3, ScrnBE, 0 CASE F, Text, ExTbl5, 3, ScrnBF, 0 CASE G, Text, ExTbl6, 3, ScrnBG, 0 CASE H, Text, ExTbl7, 3, ScrnBH, 0 CASE I, Text, ExTbl8, 3, ScrnBI, 0 CASE J, Text, ExTbl9, 3, ScrnBJ, 0 ; CaseBX: ; ; Case table support . . . ; YesNo: db 'YES',0 ; displayed if value is FFh (ToglTF) db ' NO',0 ; displayed if value is 00h (ToglTF) ; ; Screen image section . . . ; ScrnA: db cr,lf,lf,tab,tab,tab,'CRLZH/UNCRLZH Installation Menu' db cr,lf db tab,tab,tab,tab,1,'(Page 1 of 2)',2 db cr,lf,lf ; db tab,tab,'(1) ',1,'Default to quiet mode? . . . . . . . ',2 ScrnA1: db ' ' ; current value db cr,lf ; db tab,tab,'(2) ',1,'Include System files? . . . . . . . . ',2 ScrnA2: db ' ' ; current value db cr,lf ; db tab,tab,'(3) ',1,'Erase existing files without asking? ',2 ScrnA3: db ' ' ; current value db cr,lf ; db tab,tab,'(4) ',1,'Keep larger files without asking? . . ',2 ScrnA4: db ' ' ; current value db cr,lf ; db tab,tab,'(5) ',1,'Default to Tag mode? . . . . . . . . ',2 ScrnA5: db ' ' ; current value db cr,lf ; db tab,tab,'(6) ',1,'Default to Archive mode? . . . . . . ',2 ScrnA6: db ' ' ; current value db cr,lf ; db tab,tab,'(7) ',1,'Warm boot on exit? . . . . . . . . . ',2 ScrnA7: db ' ' ; current value db cr,lf ; db tab,tab,'(8) ',1,'Suppress multi-sector disk I/O? . . . ',2 ScrnA8: db ' ' ; current value db cr,lf ; db tab,tab,'(D) ',1,'Maximum drive and user (DU) . . . . . ',2 ScrnAD: db ' ' ; current value db cr,lf ; db tab,tab,'(T) ',1,'Default filetype (Z, Y, or Q) . . . . ?',2 ScrnAT: db ' ',1,'?',2 ; current value db cr,lf ; db lf,lf,lf ; fill rest of screen ; db 0 ; terminator ; ScrnB: db cr,lf,lf,tab,tab,' CRLZH Filetype Exclusion List' db cr,lf db tab,tab,tab,1,' (Page 2 of 2)',2 db cr,lf,lf ; db tab,tab,tab,'(A)',1,' . . . . . . . . . . ',2 ScrnBA: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(B)',1,' . . . . . . . . . . ',2 ScrnBB: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(C)',1,' . . . . . . . . . . ',2 ScrnBC: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(D)',1,' . . . . . . . . . . ',2 ScrnBD: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(E)',1,' . . . . . . . . . . ',2 ScrnBE: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(F)',1,' . . . . . . . . . . ',2 ScrnBF: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(G)',1,' . . . . . . . . . . ',2 ScrnBG: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(H)',1,' . . . . . . . . . . ',2 ScrnBH: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(I)',1,' . . . . . . . . . . ',2 ScrnBI: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(J)',1,' . . . . . . . . . . ',2 ScrnBJ: db ' ' ; current value db cr,lf ; db lf,lf ; db 0 ; terminator ; ; Help screen section . . . ; HelpA: db CR,LF ; db HON,'Option 1',HOF,' -- Quiet mode. "YES" causes CRLZH' DB ' and UNCRLZH to default to quiet ',CR,LF DB 'mode, with only the filenames displayed as the' DB ' file is uncompressed. The Q ',CR,LF DB 'command line option toggles the default mode' DB ' chosen here.' db CR,LF,LF ; db HON,'Option 2',HOF,' -- Include System files. "NO" causes' DB ' CRLZH and UNCRLZH to filter ',CR,LF DB 'out system (hidden) files as it reads the directory.' DB ' If "YES" is selected, ',CR,LF DB 'system files will be included. The default' DB ' can be toggled with the S ',CR,LF DB 'command line option.' db CR,LF,LF ; db HON,'Option 3',HOF,' -- Overwrite without prompt. "YES"' DB ' causes existing files with the ',CR,LF DB 'same name in the destination directory to be' DB ' erased and overwritten without ',CR,LF DB 'notice by CRLZH and UNCRLZH. If "NO" is chosen,' DB ' you will be prompted ',CR,LF DB 'before files are erased. The E command line' DB ' option toggles the default.' db CR,LF,LF ; db HON,'Option 4',HOF,' -- Bigger File. "NO" will cause CRLZH' DB ' to ask "Result file larger ',CR,LF DB 'than original, keep it anyway?". If "YES" is' DB ' selected, the question will ',CR,LF DB 'not be asked and the resulting file will always' DB ' be kept. This question is ',CR,LF DB 'asked only when the source and destination directories' DB ' are the same. This ',CR,LF DB 'configuration option has no effect on UNCRLZH.' db CR,LF,LF,LF,LF ; db HON,'Option 5',HOF,' -- Inspect (Tag) mode. "YES" causes' DB ' CRLZH and UNCRLZH to default ',CR,LF DB 'to Tag mode. The default is toggled by the' DB ' I and T command line options.' db CR,LF,LF ; db HON,'Option 6',HOF,' -- Archive mode. "YES" causes CRLZH' DB ' to default to Archive ',CR,LF DB '"backup" mode. The default can be toggled by' DB ' the A command line option. ',CR,LF DB 'This configuration option has no effect on UNCRLZH.' db CR,LF,LF ; db HON,'Option 7',HOF,' -- Warm boot. "NO" is the correct' DB ' selection in most cases. "YES" ',CR,LF DB 'causes a warm boot each time CRLZH and UNCRLZH' DB ' exit to the operating ',CR,LF DB 'system, and is included for systems which do' DB ' not allow the CCP to remain ',CR,LF DB 'resident.' db CR,LF,LF ; db HON,'Option 8',HOF,' -- Turbo-DOS. "YES" turns off multi-sector' DB ' disk I/O for CP/M 3.0- ',CR,LF DB 'compatible systems, like TurboDOS, which don''t' DB ' support that method. Multi- ',CR,LF DB 'sector I/O is never used under CP/M 2.2, so' DB ' this configuration option is ',CR,LF DB 'not significant.' db CR,LF,LF,LF,LF,LF,LF,LF ; db HON,'Option D',HOF,' -- Maximum drive and user allowed.' DB ' This configuration option is ',CR,LF DB 'only effective under vanilla CP/M systems and' DB ' for user areas under 15. ',CR,LF DB 'User areas above 15 cannot be accessed when' DB ' CRLZH and UNCRLZH are run under ',CR,LF DB 'CP/M. Under ZCPR3 all 32 user areas are available' DB ' and the CPR is used to ',CR,LF DB 'parse the file specifications, so this option' DB ' has no effect. If you wish, ',CR,LF DB 'you can enter a DU specification here, which' DB ' will become the maximum drive ',CR,LF DB 'and user available under CP/M.' db CR,LF,LF ; db HON,'Option T',HOF,' -- Default filetype. This UNCRLZH' DB ' option is used only when files ',CR,LF DB 'are uncompressed to and from the same drive' DB ' and user. In that case a ',CR,LF DB 'wildcard filetype ("*") will default to files' DB ' with the character entered ',CR,LF DB 'here as the middle character of their filetype.' DB ' Normally, for LZH encoded ',CR,LF DB 'files this option should be "Y". If you use' DB ' UNCR more often to decompress ',CR,LF DB 'squeezed or CRUNCHED files, enter "Q" or "Z".' DB ' This option is not used by ',CR,LF DB 'CRLZH.' db CR,LF ; db 0 ; Terminator ; HelpB: db CR,LF ; DB CR,LF DB ' ',HON,'FILETYPE EXCLUSION' DB ' LIST',HOF,CR,LF DB ' (For CRLZH only)' DB CR,LF,LF ; DB 'You may enter up to 10 three-letter filetypes' DB ' to be ignored by CRLZH. When ',CR,LF DB 'these filetypes are encountered, no attempt' DB ' will be made to compress the ',CR,LF DB 'files unless they are explicitly specified on' DB ' the command line. Instead ',CR,LF DB 'they will be copied (if the destination is a' DB ' different directory) or ',CR,LF DB 'ignored (if the source and destination directories' DB ' are the same). The ',CR,LF DB 'defaults already installed are "ARC", "ARK",' DB ' "LBR", and "FOR".' DB CR,LF,LF ; DB 'It is not necessary to add ?Z? or ?Q? to the' DB ' list because CRUNCH will ',CR,LF DB 'recognize squeezed and crunched files automatically' DB ' by reading their ',CR,LF DB 'headers.' DB CR,LF,LF ; DB 'All the filetypes must be filled in. To eliminate' DB ' a filetype from the ',CR,LF DB 'list, simply overwrite it with a repeat of one' DB ' of the others, such as ',CR,LF DB '"ARK", that you don''t want crunched.' DB CR,LF,LF DB 'UNCRLZH does not use this exclusion list.' db CR,LF ; db 0 ; Terminator ; end