; RCOPYCF.MAC ; ; ZCNFG configuration module for RCOPY.COM. The assembled version of ; this file must be named RCOPYxx.CFG to be automatically recognized ; by ZCNFG. ; ; Version 1.0 -- September 16, 1990 -- Gene Pizzetta ; For RCOPY 1.0. ; ; Patch locations . . . ; QtFlag equ 015h ; quiet flag InDU equ 016h ; source drive/user OutDU equ 018h ; destination drive/user FLst0 equ 01Ah ; list of files to copy FLst1 equ 025h FLst2 equ 030h FLst3 equ 03Bh FLst4 equ 046h FLst5 equ 051h FLst6 equ 05Ch FLst7 equ 067h FLst8 equ 072h FLst9 equ 07Dh FLst10 equ 088h FLst11 equ 093h FLst12 equ 09Eh FLst13 equ 0A9h FLst14 equ 0B4h FLst15 equ 0BFh FLst16 equ 0CAh FLst17 equ 0D5h FLst18 equ 0E0h FLst19 equ 0EBh ; ; 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 . . . ; TAB equ 9 ; tab LF equ 10 ; linefeed CR equ 13 ; carriage return ; MACLIB Z80 ; ; 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 ToglTF ; ZCNFG function number dw QtFlag ; patch location in file db 1 ; number of bytes to change dw ScrnA1 ; screen location dw YesNo ; string address ; CaseA2: db '2' ; menu selector dw DUSpec ; ZCNFG function number dw InDU ; patch location in file db 0 ; number of bytes to change dw ScrnA2 ; screen location dw 0 ; string address ; CaseA3: db '3' ; menu selector dw DUSpec ; ZCNFG function number dw OutDU ; patch location in file db 0 ; number of bytes to change dw ScrnA3 ; screen location dw 0 ; 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 FileSp ; ZCNFG function number dw FLst0 ; patch location in file db 0 ; number of bytes to change dw ScrnB0 ; screen location dw 0 ; string address ; CaseB1: db 'B' ; menu selector dw FileSp ; ZCNFG function number dw FLst1 ; patch location in file db 0 ; number of bytes to change dw ScrnB1 ; screen location dw 0 ; string address ; CaseB2: db 'C' ; menu selector dw FileSp ; ZCNFG function number dw FLst2 ; patch location in file db 0 ; number of bytes to change dw ScrnB2 ; screen location dw 0 ; string address ; CaseB3: db 'D' ; menu selector dw FileSp ; ZCNFG function number dw FLst3 ; patch location in file db 0 ; number of bytes to change dw ScrnB3 ; screen location dw 0 ; string address ; CaseB4: db 'E' ; menu selector dw FileSp ; ZCNFG function number dw FLst4 ; patch location in file db 0 ; number of bytes to change dw ScrnB4 ; screen location dw 0 ; string address ; CaseB5: db 'F' ; menu selector dw FileSp ; ZCNFG function number dw FLst5 ; patch location in file db 0 ; number of bytes to change dw ScrnB5 ; screen location dw 0 ; string address ; CaseB6: db 'G' ; menu selector dw FileSp ; ZCNFG function number dw FLst6 ; patch location in file db 0 ; number of bytes to change dw ScrnB6 ; screen location dw 0 ; string address ; CaseB7: db 'H' ; menu selector dw FileSp ; ZCNFG function number dw FLst7 ; patch location in file db 0 ; number of bytes to change dw ScrnB7 ; screen location dw 0 ; string address ; CaseB8: db 'I' ; menu selector dw FileSp ; ZCNFG function number dw FLst8 ; patch location in file db 0 ; number of bytes to change dw ScrnB8 ; screen location dw 0 ; string address ; CaseB9: db 'J' ; menu selector dw FileSp ; ZCNFG function number dw FLst9 ; patch location in file db 0 ; 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 FileSp ; ZCNFG function number dw FLst10 ; patch location in file db 0 ; number of bytes to change dw ScrnC0 ; screen location dw 0 ; CaseC1: db 'L' ; menu selector dw FileSp ; ZCNFG function number dw FLst11 ; patch location in file db 0 ; number of bytes to change dw ScrnC1 ; screen location dw 0 ; CaseC2: db 'M' ; menu selector dw FileSp ; ZCNFG function number dw FLst12 ; patch location in file db 0 ; number of bytes to change dw ScrnC2 ; screen location dw 0 ; CaseC3: db 'N' ; menu selector dw FileSp ; ZCNFG function number dw FLst13 ; patch location in file db 0 ; number of bytes to change dw ScrnC3 ; screen location dw 0 ; CaseC4: db 'O' ; menu selector dw FileSp ; ZCNFG function number dw FLst14 ; patch location in file db 0 ; number of bytes to change dw ScrnC4 ; screen location dw 0 ; CaseC5: db 'P' ; menu selector dw FileSp ; ZCNFG function number dw FLst15 ; patch location in file db 0 ; number of bytes to change dw ScrnC5 ; screen location dw 0 ; CaseC6: db 'Q' ; menu selector dw FileSp ; ZCNFG function number dw FLst16 ; patch location in file db 0 ; number of bytes to change dw ScrnC6 ; screen location dw 0 ; CaseC7: db 'R' ; menu selector dw FileSp ; ZCNFG function number dw FLst17 ; patch location in file db 0 ; number of bytes to change dw ScrnC7 ; screen location dw 0 ; CaseC8: db 'S' ; menu selector dw FileSp ; ZCNFG function number dw FLst18 ; patch location in file db 0 ; number of bytes to change dw ScrnC8 ; screen location dw 0 ; CaseC9: db 'T' ; menu selector dw FileSp ; ZCNFG function number dw FLst19 ; patch location in file db 0 ; number of bytes to change dw ScrnC9 ; screen location dw 0 ; CaseCX: ; 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) ; ; Screen image section . . . ; ScrnA: db cr,lf,lf,tab,tab,tab,' RCOPY Installation Menu' db cr,lf,lf ; db tab,tab,'(1) ',1,'Default to quiet mode? . . . . . . . ',2 ScrnA1: db ' ' ; current value db cr,lf,lf ; db tab,tab,'(2) ',1,'Source Drive/User . . . . . . . . . . ',2 ScrnA2: db ' ' ; current value db cr,lf,lf ; db tab,tab,'(3) ',1,'Destination Drive/User . . . . . . . ',2 ScrnA3: db ' ' ; current value ; db cr,lf,lf,lf,lf,lf,lf, ; fill rest of screen ; db 0 ; terminator ; ScrnB: db cr,lf,lf,tab,tab,'Names of Files to Copy (first 10 of 20):' db cr,lf,lf ; db tab,tab,tab,'(A) ',1,' . . . ',2 ScrnB0: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(B) ',1,' . . . ',2 ScrnB1: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(C) ',1,' . . . ',2 ScrnB2: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(D) ',1,' . . . ',2 ScrnB3: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(E) ',1,' . . . ',2 ScrnB4: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(F) ',1,' . . . ',2 ScrnB5: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(G) ',1,' . . . ',2 ScrnB6: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(H) ',1,' . . . ',2 ScrnB7: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(I) ',1,' . . . ',2 ScrnB8: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(J) ',1,' . . . ',2 ScrnB9: db ' ' ; current value db cr,lf ; db 0 ; terminator ScrnC: db cr,lf,lf,tab,tab,'Names of Files to Copy (second 10 of 20):' db cr,lf,lf ; db tab,tab,tab,'(K) ',1,' . . . ',2 ScrnC0: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(L) ',1,' . . . ',2 ScrnC1: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(M) ',1,' . . . ',2 ScrnC2: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(N) ',1,' . . . ',2 ScrnC3: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(O) ',1,' . . . ',2 ScrnC4: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(P) ',1,' . . . ',2 ScrnC5: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(Q) ',1,' . . . ',2 ScrnC6: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(R) ',1,' . . . ',2 ScrnC7: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(S) ',1,' . . . ',2 ScrnC8: db ' ' ; current value db cr,lf ; db tab,tab,tab,'(T) ',1,' . . . ',2 ScrnC9: db ' ' ; current value db cr,lf ; db 0 ; terminator ; ; ; Help screen section . . . ; HelpA: db CR,LF,LF db 1,'Option (1)',2,' -- This option determines whether RCOPY will be in verbose' db CR,LF db 'or quiet mode by default. The default may be toggled by using the "Q"' db CR,LF db 'option on the command line.' db CR,LF,LF ; db 1,'Option (2)',2,' -- This option determines in which drive/user RCOPY will look for' db CR,LF db 'the files to copy. Files not found in this directory will not be copied.' db CR,LF db 'RCOPY does not search the path or the current directory.' db CR,LF,LF ; db 1,'Option (3)',2,' -- This option determines to which drive/user RCOPY will copy' db CR,LF db 'the files found in the source directory. The source and destination DU must be' db CR,LF db 'different.' db CR,LF db 0 ; Terminator ; HelpB: db CR,LF,LF db 1,'Options (A)-(T)',2,' -- These options comprise a list of files to copy from' db CR,LF db 'the source directory to the destination directory. Only filenames may' db CR,LF db 'be entered. Drive and user specifications are not allowed. To eliminate' db CR,LF db 'a filename from the list, enter a space. RCOPY will skip blank filenames.' db CR,LF db 0 ; Terminator ; end