; UNARCZCF.Z80 ; ; ZCNFG configuration module for UNARCZ.COM. The assembled version of ; this file must be named UNARCZxx.CFG to be automatically recognized ; by ZCNFG. ; ; Version 1.1 -- October 9, 1990 -- Gene Pizzetta ; Corrected permissible range for CcpSv byte. Was 8-16, should ; have been 0-16. Thanks to Carson Wilson for reporting this ; bug. Also reformatted and justified help text. ; ; Version 1.0 -- September 1, 1990 -- Gene Pizzetta ; For UNARCZ 1.2. ; ; Patch locations . . . ; CcpSv equ 015h ; CCP size in pages BlkSz equ 016h ; default allocation block size TyFlg equ 017h ; enable/disable type-out TypgS equ 018h ; pages for type-out buffer TyLim equ 019h ; type-out line limit Bells equ 01Ah ; enable/disable warning bells EFlag equ 01Bh ; enable/disable erase without asking NFlag equ 01Ch ; enable/disable screen paging NoTyp0 equ 01Dh ; table of filetypes illegal for type-out NoTyp1 equ 020h NoTyp2 equ 023h NoTyp3 equ 026h NoTyp4 equ 029h NoTyp5 equ 02Ch NoTyp6 equ 02Fh NoTyp7 equ 032h NoTyp8 equ 035h NoTyp9 equ 038h NoTyp10 equ 03Bh NoTyp11 equ 03Eh NoTyp12 equ 041h NoTyp13 equ 044h NoTyp14 equ 047h NoTyp15 equ 04Ah NoTyp16 equ 04Dh NoTyp17 equ 050h NoTyp18 equ 053h NoTyp19 equ 056h ; ; 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 specification (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 to 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 ; ; 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 MenuC ; previous menu dw MenuB ; next menu dw ScrnA ; menu screen dw CaseA ; case table dw HelpA ; help screen ; MenuB: dw MenuA ; previous menu dw MenuC ; next menu dw ScrnB ; menu screen dw CaseB ; case table dw HelpB ; help screen ; MenuC: dw MenuB ; previous menu dw MenuA ; next menu dw ScrnC ; menu screen dw CaseC ; case table dw HelpB ; help screen ; ; Case table section . . . ; ; First menu . . . ; CaseA: db (CaseAX-CaseA1)/(CaseA2-CaseA1) ; number of cases db CaseA2-CaseA1 ; length of each record ; CaseA1: db '1' ; menu selector dw DecRad ; ZCNFG function number dw CcpSv ; patch location in file db 1 ; number of bytes to change dw ScrnA1 ; screen location dw CpRnge ; string address ; CaseA2: db '2' ; menu selector dw DecRad ; ZCNFG function number dw BlkSz ; patch location in file db 1 ; number of bytes to change dw ScrnA2 ; screen location dw BkRnge ; string address ; CaseA3: db '3' ; menu selector dw ToglTF ; ZCNFG function number dw TyFlg ; patch location in file db 1 ; number of bytes to change dw ScrnA3 ; screen location dw YesNo ; string address ; CaseA4: db '4' ; menu selector dw DecRad ; ZCNFG function number dw TypgS ; patch location in file db 1 ; number of bytes to change dw ScrnA4 ; screen location dw TsRnge ; string address ; CaseA5: db '5' ; menu selector dw DecRad ; ZCNFG function number dw TyLim ; patch location in file db 1 ; number of bytes to change dw ScrnA5 ; screen location dw TlRnge ; string address ; CaseA6: db '6' ; menu selector dw ToglTF ; ZCNFG function number dw Bells ; patch location in file db 1 ; number of bytes to change dw ScrnA6 ; screen location dw YesNo ; string address ; CaseA7: db '7' ; menu selector dw ToglTF ; ZCNFG function number dw EFlag ; patch location in file db 1 ; number of bytes to change dw ScrnA7 ; screen location dw YesNo ; string address ; CaseA8: db '8' ; menu selector dw ToglTF ; ZCNFG function number dw NFlag ; patch location in file db 1 ; number of bytes to change dw ScrnA8 ; screen location dw YesNoR ; string address ; CaseAX: ; for calculation of list length ; ; Second menu . . . ; CaseB: db (CaseBX-CaseB0)/(CaseB1-CaseB0) ; number of cases db CaseB1-CaseB0 ; length of each record ; CaseB0: db 'A' ; menu selector dw Text ; ZCNFG function number dw NoTyp0 ; patch location in file db 3 ; number of bytes to change dw ScrnB0 ; screen location dw 0 ; string address ; CaseB1: db 'B' ; menu selector dw Text ; ZCNFG function number dw NoTyp1 ; patch location in file db 3 ; number of bytes to change dw ScrnB1 ; screen location dw 0 ; string address ; CaseB2: db 'C' ; menu selector dw Text ; ZCNFG function number dw NoTyp2 ; patch location in file db 3 ; number of bytes to change dw ScrnB2 ; screen location dw 0 ; string address ; CaseB3: db 'D' ; menu selector dw Text ; ZCNFG function number dw NoTyp3 ; patch location in file db 3 ; number of bytes to change dw ScrnB3 ; screen location dw 0 ; string address ; CaseB4: db 'E' ; menu selector dw Text ; ZCNFG function number dw NoTyp4 ; patch location in file db 3 ; number of bytes to change dw ScrnB4 ; screen location dw 0 ; string address ; CaseB5: db 'F' ; menu selector dw Text ; ZCNFG function number dw NoTyp5 ; patch location in file db 3 ; number of bytes to change dw ScrnB5 ; screen location dw 0 ; string address ; CaseB6: db 'G' ; menu selector dw Text ; ZCNFG function number dw NoTyp6 ; patch location in file db 3 ; number of bytes to change dw ScrnB6 ; screen location dw 0 ; string address ; CaseB7: db 'H' ; menu selector dw Text ; ZCNFG function number dw NoTyp7 ; patch location in file db 3 ; number of bytes to change dw ScrnB7 ; screen location dw 0 ; string address ; CaseB8: db 'I' ; menu selector dw Text ; ZCNFG function number dw NoTyp8 ; patch location in file db 3 ; number of bytes to change dw ScrnB8 ; screen location dw 0 ; string address ; CaseB9: db 'J' ; menu selector dw Text ; ZCNFG function number dw NoTyp9 ; patch location in file db 3 ; number of bytes to change dw ScrnB9 ; screen location dw 0 ; string address ; ; CaseBX: ; for calculation of list length ; ; Third menu . . . ; CaseC: db (CaseCX-CaseC0)/(CaseC1-CaseC0) ; number of cases db CaseC1-CaseC0 ; length of each record ; CaseC0: db 'K' ; menu selector dw Text ; ZCNFG function number dw NoTyp10 ; patch location in file db 3 ; number of bytes to change dw ScrnC0 ; screen location dw 0 ; CaseC1: db 'L' ; menu selector dw Text ; ZCNFG function number dw NoTyp11 ; patch location in file db 3 ; number of bytes to change dw ScrnC1 ; screen location dw 0 ; CaseC2: db 'M' ; menu selector dw Text ; ZCNFG function number dw NoTyp12 ; patch location in file db 3 ; number of bytes to change dw ScrnC2 ; screen location dw 0 ; CaseC3: db 'N' ; menu selector dw Text ; ZCNFG function number dw NoTyp13 ; patch location in file db 3 ; number of bytes to change dw ScrnC3 ; screen location dw 0 ; CaseC4: db 'O' ; menu selector dw Text ; ZCNFG function number dw NoTyp14 ; patch location in file db 3 ; number of bytes to change dw ScrnC4 ; screen location dw 0 ; CaseC5: db 'P' ; menu selector dw Text ; ZCNFG function number dw NoTyp15 ; patch location in file db 3 ; number of bytes to change dw ScrnC5 ; screen location dw 0 ; CaseC6: db 'Q' ; menu selector dw Text ; ZCNFG function number dw NoTyp16 ; patch location in file db 3 ; number of bytes to change dw ScrnC6 ; screen location dw 0 ; CaseC7: db 'R' ; menu selector dw Text ; ZCNFG function number dw NoTyp17 ; patch location in file db 3 ; number of bytes to change dw ScrnC7 ; screen location dw 0 ; CaseC8: db 'S' ; menu selector dw Text ; ZCNFG function number dw NoTyp18 ; patch location in file db 3 ; number of bytes to change dw ScrnC8 ; screen location dw 0 ; CaseC9: db 'T' ; menu selector dw Text ; ZCNFG function number dw NoTyp19 ; patch location in file db 3 ; number of bytes to change dw ScrnC9 ; screen location dw 0 ; CaseCX: ; for calculation of list length ; ; Case table support . . . ; CpRnge: dw 0,16 ; minimum/maximum for CcpSv BkRnge: dw 0,16 ; minimum/maximum for BlkSz TsRnge: dw 0,1 ; minimum/maximum for TypgS TlRnge: dw 0,255 ; minimum/maximum for TyLim YesNo: db 'YES',0 ; displayed if value is FFh (ToglTF) db ' NO',0 ; displayed if value is 00h (ToglTF) YesNoR: db ' NO',0 ; displayed if value is FFh (ToglTF) db 'YES',0 ; displayed if value is 00h (ToglTF) ; ; Screen image section . . . ; ScrnA: db cr,lf,lf,tab,tab,tab,' UNARCZ Installation Menu' db cr,lf,lf ; db tab,tab,'(1) ',1,'CPR size in pages . . . . . . . . . . ',2 ScrnA1: db ' ' ; current value db cr,lf ; db tab,tab,'(2) ',1,'Default allocation block size . . . . ',2 ScrnA2: db ' ' ; current value db cr,lf ; db tab,tab,'(3) ',1,'Allow non-Wheel file type-out? . . . ',2 ScrnA3: db ' ' ; current value db cr,lf ; db tab,tab,'(4) ',1,'Buffer size in pages for type-out . . ',2 ScrnA4: db ' ' ; current value db cr,lf ; db tab,tab,'(5) ',1,'Line limit for non-Wheel type-out . . ',2 ScrnA5: db ' ' ; current value db cr,lf ; db tab,tab,'(6) ',1,'Sound console bell on error? . . . . ',2 ScrnA6: db ' ' ; current value db cr,lf ; db tab,tab,'(7) ',1,'Erase existing files without asking? ',2 ScrnA7: db ' ' ; current value db cr,lf ; db tab,tab,'(8) ',1,'Page screen displays? . . . . . . . . ',2 ScrnA8: db ' ' ; current value ; db cr,lf,lf,lf, ; fill rest of screen ; db 0 ; terminator ; ScrnB: db cr,lf,lf,tab,tab,'Filetypes Illegal for Type-out (first 10 of 20):' db cr,lf,lf ; db tab,tab,tab,tab,'(A) ',1,' . . . ',2 ScrnB0: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(B) ',1,' . . . ',2 ScrnB1: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(C) ',1,' . . . ',2 ScrnB2: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(D) ',1,' . . . ',2 ScrnB3: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(E) ',1,' . . . ',2 ScrnB4: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(F) ',1,' . . . ',2 ScrnB5: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(G) ',1,' . . . ',2 ScrnB6: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(H) ',1,' . . . ',2 ScrnB7: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(I) ',1,' . . . ',2 ScrnB8: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(J) ',1,' . . . ',2 ScrnB9: db ' ' ; current value db cr,lf ; db 0 ; terminator ScrnC: db cr,lf,lf,tab,tab,'Filetypes Illegal for Type-out (second 10 of 20):' db cr,lf,lf ; db tab,tab,tab,tab,'(K) ',1,' . . . ',2 ScrnC0: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(L) ',1,' . . . ',2 ScrnC1: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(M) ',1,' . . . ',2 ScrnC2: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(N) ',1,' . . . ',2 ScrnC3: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(O) ',1,' . . . ',2 ScrnC4: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(P) ',1,' . . . ',2 ScrnC5: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(Q) ',1,' . . . ',2 ScrnC6: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(R) ',1,' . . . ',2 ScrnC7: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(S) ',1,' . . . ',2 ScrnC8: db ' ' ; current value db cr,lf ; db tab,tab,tab,tab,'(T) ',1,' . . . ',2 ScrnC9: db ' ' ; current value db cr,lf ; db 0 ; terminator ; ; ; Help screen section . . . ; HelpA: db CR,LF ; db HON,'Option (1)',HOF,' -- tells UNARCZ how much memory ' db ' to preserve below the BDOS.',CR,LF db 'Most Z-systems use a 2-kilobyte CPR, so preserving 8 pages ' db ' is appropriate.',CR,LF db 'Some systems may require 9 or 10 pages. If this byte is ' db 'set to zero, the',CR,LF db 'CPR will be overwritten and a warm boot forced on exit. ' db 'The latter may be',CR,LF db 'desirable on systems with a small TPA, or on systems with ' db ' a permanently',CR,LF db 'resident CPR, such as the SB180 running XBIOS.' db CR,LF,LF ; db HON,'Option (2)',HOF,' -- specifies the size in kilobytes ' db 'of the disk allocation block',CR,LF db 'used to calculate the disk space required when files in ' db ' the archive are',CR,LF db 'extracted, as shown in the archive directory display. A zero ' db 'causes UNARCZ',CR,LF db 'to use the block size of the current default disk. Any other ' db 'value will be',CR,LF db 'used directly as the block size (commonly 1, 2, 4, 8, ' db 'or 16). During',CR,LF db 'extraction, the block size of the output disk is always used.' db CR,LF,LF ; db HON,'Option (3)',HOF,' -- is for Z-Nodes and is ignored ' db 'unless the Wheel is off. It',CR,LF db 'determines whether screen type-out of member files in ' db ' an archive is',CR,LF db 'allowed. When the Wheel byte is on, type-out is always allowed.' db CR,LF,LF,LF,LF,LF,LF ; db HON,'Option (4)',HOF,' -- sets the size of the buffer used ' db 'during type-out of a member',CR,LF db 'file. If set to zero, all of available memory is used to ' db 'buffer the file,',CR,LF db 'but this may cause an excessive delay before type-out ' db ' begins, and',CR,LF db 'additional delays when the buffer needs to be refilled. ' db ' Setting this',CR,LF db 'option to 1 lessens delays, but may cause excessive starting ' db 'and stopping',CR,LF db 'of floppy drive motors. If the Wheel byte is off, this ' db ' option will be',CR,LF db 'automatically incremented to 1, if set to zero here. If ' db 'set to a non-zero',CR,LF db 'value, the Wheel byte will have no effect.' db CR,LF,LF ; db HON,'Option (5)',HOF,' -- is for Z-Nodes and is ignored ' db 'unless the Wheel is off. It',CR,LF db 'sets the number of lines of a member file that may be ' db ' displayed before',CR,LF db 'UNARCZ aborts the type-out. If set to zero, an unlimited ' db 'number of lines',CR,LF db 'is allowed. When the Wheel byte is on, type-out is always ' db 'unlimited.' db CR,LF,LF ; db HON,'Option (6)',HOF,' -- determines whether UNARCZ sounds ' db ' the console bell when it',CR,LF db 'displays an error message.' db CR,LF,LF,LF,LF,LF,LF,LF ; db HON,'Option (7)',HOF,' -- determines whether, during file ' db 'extraction, an existing file',CR,LF db 'of the same name in the target directory is erased without ' db ' asking for',CR,LF db 'permission first. Whichever selection is made, the "E" command ' db 'line option',CR,LF db 'will toggle UNARCZ to the other mode.' db CR,LF,LF ; db HON,'Option (8)',HOF,' -- determines whether screen displays ' db ' will be paged or',CR,LF db 'continuous by default. Whichever selection is made, the ' db '"N" command line',CR,LF db 'option will toggle UNARCZ to the other mode. During file ' db ' extraction the',CR,LF db 'display is never paged.',CR,LF ; db 0 ; Terminator ; HelpB: db CR,LF ; db HON,'Options (A) - (T)',HOF,' -- comprise a list of filetypes ' db 'that will be excluded',CR,LF db 'automatically from type-out. The list should include ' db ' filetypes that',CR,LF db 'usually indicate a binary file, such as COM, OBJ, and EXE. ' db ' A question mark',CR,LF db 'will match any character. To eliminate any filetype from ' db 'the list, replace',CR,LF db 'it with one you want to exclude from type-out or repeat a ' db 'previously listed',CR,LF db 'filetype, such as "COM". Do not leave one of the filetypes ' db ' in the list',CR,LF db 'blank, or you will be unable to type any file with a blank ' db 'filetype.' db CR,LF ; db 0 ; Terminator ; end