home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
zcpr33
/
sclock19.lbr
/
SCLK19CF.ZZ0
/
SCLK19CF.Z8°
Wrap
Text File
|
1994-01-20
|
6KB
|
192 lines
;
; SCLOCK.Z80 - JTH 01/20/94
; (from ZCNFGCFG.SRC)
;
;---------------------------------------------------------
vers equ 19 ;datefn version number
; SCLOCK Patch offsets
fname equ 0dh ;default cfg filename
altc equ 16h ;time correction flag
arch equ 17h ;archive flag
deffn equ 18h ;default fn/ft
;---------------------------------------------------------
;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
filesp equ 6 ;edit ZCPR3 du:fn.ft
togl3 equ 7 ;toggle to one of three options: 001B, 010B, 100B
togltf equ 8 ;toggle a byte between 0ffh and 0
;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, text, deffn, 16, ascr1, 0
vector 2, togltf, altc, 1, ascr2, yndata
vector 3, togltf, arch, 1, ascr3, yndata
;
;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,' SCLOCK VERS ',vers/10+'0','.',vers mod 10+'0'
db ' DEFAULTS ',2
db cr,lf,lf
db 'Default CFG filename............................ 0) '
ascr0: db ' ',cr,lf
;
db 'Default SCLOCK.COM name/location [DU:FN.FT]..... 1) '
ascr1: db ' ',cr,lf
db 'Use automatic linear time correction............ 2) '
ascr2: db ' ',cr,lf
;
db 'Archive SCLOCK.COM after SET history is added... 3) '
ascr3: db ' '
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').
yndata: defz 'YES' ;for 1=on
defz 'no '
;=========================================================
;
ahelp: ;help screen for menu A
db cr,lf
db tab,tab
db 1,' SCLOCK VERS '
db vers/10+'0','.',vers mod 10+'0'
db ' OPTION DEFAULTS ',2
db cr,lf,lf
;
db 1,'Default CFG Filename:',2,cr,lf
db 'You may specify the default configuration overlay '
db '(CFG) filename. A',cr,lf
db 'maximum of 8 characters may be entered.'
db cr,lf,lf
;
db 1,'Automatic Time Correction',2,cr,lf
db 'You may turn Automatic Time Correction on or off. '
db ' If it is turned',cr,lf
db 'off, the Update function will update the ZSDOS system '
db 'clock using the',cr,lf
db 'uncorrected SmartWatch time. If it is turned on, '
db 'the ZSDOS clock will',cr,lf
db 'be updated using corrected SmartWatch time.'
db cr,lf,lf
;
db 1,'Archive SCLOCK.COM',2,cr,lf
db 'You may choose to have SCLOCK.COM archived after '
db 'new SET data is written to',cr,lf
db 'it if you desire. Otherwise, SCLOCK.COM will be '
db 'marked as changed after',cr,lf
db 'new SET data is written.'
;
db 0
;=========================================================