; CONCATCF.MAC ; ; ZCNFG configuration module for CONCAT.COM. The assembled version of ; this file must be named CONCATxx.CFG, where xx is the version number ; of CONCAT, to be automatically recognized by ZCNFG. ; ; Version 1.1 -- February 23, 1991 -- Gene Pizzetta ; For CONCAT 1.3 ; ; Version 1.0 -- January 16, 1991 -- Gene Pizzetta ; For CONCAT 1.1. ; ; Patch locations . . . ; QtFlag equ 015h ; quiet flag AppFlg equ 016h ; concat or append default ObjFlg equ 017h ; text or object file default SpcFlg equ 018h ; space checking default StpFlg equ 019h ; file stamping default DatFmt equ 01Ah ; American or European date format TimFmt equ 01Bh ; civilian or military time format ECFlag equ 01Ch ; divider string case default ; ; 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 1, ToglTF, QtFlag, 1, ScrnA1, YesNo CaseA2: CASE 2, ToglTF, AppFlg, 1, ScrnA2, ConApp CASE 3, ToglTF, ObjFlg, 1, ScrnA3, TxtBin CASE 4, ToglTF, SpcFlg, 1, ScrnA4, NoYes CASE 5, ToglTF, StpFlg, 1, ScrnA5, NoYes CASE 6, ToglTF, DatFmt, 1, ScrnA6, AmrEur CASE 7, ToglTF, TimFmt, 1, ScrnA7, CivMil CASE 8, ToglTF, ECFlag, 1, ScrnA8, UpLow CaseAX: ; for calculation of list length ; ; Case table support . . . ; YesNo: db 'YES',0 ; displayed if value is FFh (ToglTF) db ' NO',0 ; displayed if value is 00h (ToglTF) ConApp: db 'APPEND',0 db 'CONCAT',0 TxtBin: db 'BINARY',0 db ' TEXT',0 NoYes: db ' NO',0 db 'YES',0 AmrEur: db 'EUROPEAN',0 db 'AMERICAN',0 CivMil: db 'MILITARY',0 db 'CIVILIAN',0 UpLow: db 'UPPER',0 db 'LOWER',0 ; ; Screen image section . . . ; ScrnA: db cr,lf,lf,tab,tab,tab,' CONCAT Installation Menu' 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,'Default operating mode . . . . . .',2 ScrnA2: db ' ' ; current value db cr,lf ; db tab,tab,'(3) ',1,'Default file format . . . . . . . .',2 ScrnA3: db ' ' ; current value db cr,lf ; db tab,tab,'(4) ',1,'Check for sufficient disk space? . . ',2 ScrnA4: db ' ' ; current value db cr,lf ; db tab,tab,'(5) ',1,'Transfer file stamps? . . . . . . . . ',2 ScrnA5: db ' ' ; current value db cr,lf ; db tab,tab,'(6) ',1,'Date format . . . . . . . . . . .',2 ScrnA6: db ' ' ; current value db cr,lf ; db tab,tab,'(7) ',1,'Time format . . . . . . . . . . .',2 ScrnA7: db ' ' ; current value db cr,lf ; db tab,tab,'(8) ',1,'Divider string default case . . . . ',2 ScrnA8: db ' ' ; current value ; db cr,lf,lf,lf,lf,lf,lf,lf ; fill rest of screen ; db 0 ; terminator ; ; Help screen section . . . ; HelpA: db CR,LF ; db HON,'Option (1)',HOF,' -- This option determines whether ' db 'CONCAT will be in verbose or',CR,LF db 'quiet mode by default. The default may be toggled by using ' db ' the command',CR,LF db 'line "Q" option.' db CR,LF,LF ; db HON,'Option (2)',HOF,' -- The two operating modes are concatenation ' db 'of the source files',CR,LF db 'into a new destination file, as the name of the program ' db 'implies, and',CR,LF db 'appending the source files to an already existing destination ' db 'file. As',CR,LF db 'released the default is CONCAT. You can make APPEND the default, ' db 'if you do',CR,LF db 'more appending than concatenating. The mode selected can ' db 'be changed by the',CR,LF db 'command line options "C" and "A".' db CR,LF,LF ; db HON,'Option (3)',HOF,' -- This file format option determines ' db ' how CONCAT joins the',CR,LF db 'files. In TEXT mode the files are joined wherever the ' db ' CP/M end-of-file',CR,LF db 'character is found, even in the middle of a sector. In ' db 'BINARY (object)',CR,LF db 'mode the files are joined only on record boundaries and ' db 'the end-of-file',CR,LF db 'character is ignored. TEXT is the correct setting for most ' db ' uses, but if',CR,LF db 'you use CONCAT mostly for binary files (for some strange ' db 'reason!), you can',CR,LF db 'make that the default here. The format selected can ' db 'be changed by the',CR,LF db 'command line options "T" and "O".' db CR,LF,LF,LF,LF ; db HON,'Option (4)',HOF,' -- As distributed CONCAT checks for ' db 'adequate space before doing',CR,LF db 'any writing to disk. If you''re courageous, you can turn ' db ' off this feature',CR,LF db 'by toggling it to NO. Space checking can then be turned ' db 'back on by using',CR,LF db 'the command line "S" option.' db CR,LF,LF ; db HON,'Option (5)',HOF,' -- In concatenation mode CONCAT transfers ' db 'the create date stamp',CR,LF db 'of the first source file to the new file. (If any source ' db 'file has the same',CR,LF db 'name as the destination file, its file stamp will be used ' db 'instead.) If you',CR,LF db 'prefer, change this option to NO to turn this function off ' db ' by default. It',CR,LF db 'can then be turned back on with the command line "F" option.' db CR,LF,LF ; db HON,'Option (6)',HOF,' -- If the "D" option is used to insert ' db 'the current date and time',CR,LF db 'into the destination file, the date will ordinarily be in ' db 'AMERICAN format',CR,LF db '(December 13, 1990). If you wish, you can select EUROPEAN ' db 'format here (13',CR,LF db 'Dec 90).' db CR,LF,LF ; db HON,'Option (7)',HOF,' -- If the "D" option is used to ' db 'insert the current date and',CR,LF db 'time into the destination file, the time will ordinarily ' db ' be in CIVILIAN',CR,LF db 'format (3:21 pm). If you wish, you can select MILITARY ' db ' format here',CR,LF db '(15:21).' db CR,LF,LF,LF ; db HON,'Option (8)',HOF,' -- This option selects the default case ' db 'of the divider string if',CR,LF db 'it is entered from the command line. It does not affect ' db 'the operation of',CR,LF db 'the "%<" and "%>" escape sequences, nor does it affect ' db ' the internally',CR,LF db 'configured divider string.' db CR,LF ; db 0 ; Terminator ; end