; UNERASCF.Z80 ; ; ZCNFG configuration module for UNERASE.COM. The assembled version of ; this file must be named UNERASxx.CFG, where xx is the version number ; of UNERASE, to be automatically recognized by ZCNFG. ; ; Version 1.0 -- March 23, 1991 -- Gene Pizzetta ; For UNERASE 1.3. ; ; Patch locations . . . ; wildfl equ 015h ; wildcard sets list option pagefl equ 016h ; screen paging pausfl equ 017h ; pause for disk change ; ; 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, wildfl, 1, ScrnA1, YesNo CaseA2: CASE 2, ToglTF, pagefl, 1, ScrnA2, YesNo CASE 3, ToglTF, pausfl, 1, ScrnA3, YesNo ; 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) ; ; Screen image section . . . ; ScrnA: db cr,lf,lf,tab,tab,tab,' UNERASE Installation Menu' db cr,lf,lf,lf ; db tab,tab,'(1) ',1,'Wildcard filename allows list only? . ',2 ScrnA1: db ' ' ; current value db cr,lf,lf ; db tab,tab,'(2) ',1,'Page screen by default? . . . . . . . ',2 ScrnA2: db ' ' ; current value db cr,lf,lf ; db tab,tab,'(3) ',1,'Pause for disk change by default? . . ',2 ScrnA3: db ' ' ; current value ; db cr,lf,lf,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,' -- Wildcard file recovery. If set "YES", ' db 'a wildcard character in',CR,LF db 'a filename automatically puts UNERASE in list-only mode. ' db 'It lists matching',CR,LF db 'erased files to the screen, but does not recover any of them. ' db ' If set "NO",',CR,LF db 'UNERASE enters list mode only when the "L" command line ' db 'option is given;',CR,LF db 'otherwise, all matching files are recovered. Wildcard ' db 'file recovery is',CR,LF db 'extremely dangerous. It can easily recover files which ' db 'claim allocation',CR,LF db 'blocks used by other files. Change this to "NO" ONLY if you ' db ' are SURE you',CR,LF db 'know what you are doing.' db CR,LF,LF ; db HON,'Option 2',HOF,' -- Screen paging. This configuration ' db 'option turns screen paging',CR,LF db 'on or off by default. It''s your choice. The default chosen ' db ' here can be',CR,LF db 'toggled with the command line "P" option. Screen paging ' db 'never works when',CR,LF db 'files are being recovered.' db CR,LF,LF ; db HON,'Option 3',HOF,' -- Pause for disk change. For most ' db 'people this option should be',CR,LF db '"NO". If you have only one disk drive, you may want to make ' db ' a pause the',CR,LF db 'default mode by changing this option to "YES". The default ' db 'chosen here can',CR,LF db 'be toggled with the command line "C" option.' db CR,LF ; db 0 ; Terminator ; end