; ; DATFNCFG.Z80 - JTH 01/22/91 ; (from ZCNFGCFG.SRC) ; ;--------------------------------------------------------- vers equ 10 ;datefn version number ; DATEFN Patch offsets fname equ 0dh ;filename offset format equ 15h ;date filename format flag prefix equ 16h ;default date filename prefix ftype equ 17h ;default date file filetype ;--------------------------------------------------------- ;DATA FOR CNFG PROGRAM LINKAGE ;function definitions - **needed for CASE Table entries** switch equ 0 ;toggle bit n in a byte (n is specified) text equ 1 ;replace a text string of specified length 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 togl3 equ 7 ;toggle to one of three options: 001B, 010B, 100B togltf equ 8 ;toggle a byte between 0ffh and 0 filesp equ 9 ;change d, du, fn.ft, or du:fn.ft ;ASCII definitions ;these are convenient, but only required if you wish ;to use them in text or data fields (including HELP) ctlc equ 3 bs equ 8 ;backspace tab equ 9 ;tab lf equ 10 ;line feed cr equ 13 ;carriage return spc equ 32 ;space char ;========================================================= ; MACRO DEFINITIONS ;You don't HAVE to use the macros. But it does make it ;easier to fill in the tables! ;this macro is used for creating a CASE table ;entry which specifies toggling or setting a ;single bit (0..7) in a configuration data byte. ;It is useful when the 'switch' function is named. bitmap macro A,sub,off,bit,scr,dat db '&A' dw sub,off db 1 shl bit ;;make a mask byte dw scr,dat endm ;========================================================= ;macro parameter definitions ; A = the character used in the screen for a menu item ; off = byte offset in config block ; sub = subroutine for translation to screen ; scr = screen location ; dat = extra data word if required. Normally 0 ;produces a record which is 8 bytes long ;========================================================= ;this macro is used to create a case table entry ;which contains a byte of data required by the function ;to be performed. (see table of function definitions above) vector macro A,sub,off,byte,scr,dat db '&A' dw sub,off db byte ;;a byte of data dw scr,dat endm ;************************************************************ ; START OF OVERLAY CODE ;************************************************************ ;The next 13 bytes must remain in this location. rst 0 ;for safety - file won't execute dw amenu ;for relocation of addresses, this ;points to the NEXT location. ;first MENU list must be here. All names are local. amenu: dw amenu,amenu,ascrn,acase,ahelp ;MENU A ;========================================================= ;Case table used for first menu & screen: ;========================================================= acase: db (acasex-acase1)/(acase2-acase1) ;number of cases db acase2-acase1 ;length of each record ; macro .single char menu selector ; | | .function (see above) ; | | | .offset in cnfg block ; | | | | .function dependent data ; | | | | | .screen location ; | | | | | | ;acse1: bitmap 0, switch, obyte0, crtflg, ascrl0, yndata ; | ; address of data structure used by function._| ; ;The first two entries in the case table must be labeled to ;provide data for the calculation at ACASE:. Subsequent ;entries (one for each menu selection) need not be labeled. acase1: vector 0, text, fname, 8, ascr0, 0 acase2: vector 1, togltf, format, 1, ascr1, oodata vector 2, text, prefix, 1, ascr2, 0 vector 3, text, ftype, 3, ascr3, 0 ;the next entry is a label which terminates the list. ;It is required for use in the calculation at ACASE: acasex: ;label used to calc number of entries ;========================================================= ascrn: ;screen image for first screen ;db cr,lf ;ensure clean top of screen ;Title line db cr,lf db tab,tab db 1,' DATEFN VERS ',VERS/10+'0','.',VERS MOD 10+'0' db ' DEFAULTS ',2 db cr,lf,lf db 'Default CFG filename...................... 0) ' ascr0: db ' ',cr,lf,lf ; db 'Date format (ON=?ddMMMyy OFF=mm/dd/yy).... 1) ' ascr1: db ' ',cr,lf,lf ; db 'Date filename prefix ('' '' for none)....... 2) ''' ascr2: db ' ''',cr,lf,lf ; dâ 'Date file filetype.......................® 3© ''' ascr3: db ' ''',cr ; db 0 ;termination ;========================================================= ; ; FUNCTION DATA LIST ;data pairs for representing bit values in screen image. ;they can also be used for function 8 display (True/False). ;these are null terminated strings (note the 'defz'). oodata: defz 'ON ' ;for 1=on defz 'OFF' usrang: dw 0,31 ;min/max user numbers retrang: dw 0,9 ;min/max retries ;========================================================= ; ahelp: ;help screen for menu A DB CR,LF db tab,tab DB 1,' DATEFN VERS ' DB VERS/10+'0','.',VERS MOD 10+'0' DB ' OPTION DEFAULTS ',2 DB CR,LF,LF DB 'DEFAULT CFG FILENAME:',CR,LF DB ' This filename is used as the default configuration' DB ' overlay (CFG) file.',CR,LF DB ' A maximum of 8 characters may be entered.' DB CR,LF,LF DB 'DATE FORMAT:',CR,LF DB ' ON sets the date format to ?ddMMMyy (-22JAN91)' DB CR,LF DB ' OFF sets the date format to mm/dd/yy (01/22/91)' DB CR,LF,LF DB 'DATE FILENAME PREFIX CHARACTER:',CR,LF DB ' A prefix character for the date filename may be ' DB ' specified if',CR,LF DB ' desired. A space character will default to no ' DB ' prefix.' DB CR,LF,LF DB 'DATE FILE FILETYPE:',CR,LF DB ' A date file filetype may be specified. Three ' DB ' characters are',CR,LF DB ' allowed.' DB 0 ;========================================================= ; db cr,lf,lf,lf ;ensure clean top of screen ; db ' HELP SCREEN NOT IMPLEMENTED',cr,lf,lf,0 ;=========================================================