home *** CD-ROM | disk | FTP | other *** search
- ;
- ; ELAPSCFG.Z80 - JTH 12/20/92
- ; (from ZCNFGCFG.SRC)
- ;
- ;---------------------------------------------------------
-
- vers equ 11 ;elapsed version number
-
- ; ELAPSED Patch offsets
-
- cfg equ 0dh ;filename offset
- timreg equ 15h ;first time/date buffer register
-
- ;---------------------------------------------------------
-
- ;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, cfg, 8, ascr0, 0
- acase2: vector 1, decrad, timreg, 1, ascr1, regdata
-
- ;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,' ELAPSED 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 'Store time in ZCPR3 register number... 1)'
- ascr1: db ' '
-
- db 0 ;termination
-
- ;=========================================================
- ;
- ; FUNCTION DATA LIST
-
- ;data pairs for representing bit values in screen image.
-
- regdata:dw 0,24 ; (Min/max values)
-
- ;=========================================================
- ;
- ahelp: ;help screen for menu A
-
- db cr,lf
- db tab,tab
- db 1,' ELAPSED 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 'REGISTER NUMBER:',cr,lf
- db ' The time and date are stored in 8 consecutive '
- db 'ZCPR3 registers. The',cr,lf
- db ' default is register 24, which is at the end '
- db 'of the user-defined',cr,lf
- db ' register area. You may specify the starting '
- db 'register number in the',cr,lf
- db ' range of 0 through 24.',cr,lf
-
- db 0
-
- ;=========================================================
- ; db cr,lf,lf,lf ;ensure clean top of screen
- ; db ' HELP SCREEN NOT IMPLEMENTED',cr,lf,lf,0
- ;=========================================================