home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / uploads / clock22.lbr / CLOCKCFG.ZZ0 / CLOCKCFG.Z80
Encoding:
Text File  |  1993-03-25  |  11.4 KB  |  381 lines

  1. ;
  2. ; CLOCKCFG.Z80 - JTH 10/09/92
  3. ;   revised    - BHB 03/16/93        
  4. ;
  5. ;---------------------------------------------------------
  6.  
  7. vers    equ    22        ;clock version number
  8.  
  9. ; CLOCK Patch offsets
  10.  
  11. civflg    equ    0dh        ;time format flag
  12. port    equ    0eh        ;port number
  13. timreg    equ    0fh        ; 
  14. line25    equ    10h        ;h19/25th line toggle
  15. enable    equ    11h        ;enable string
  16. disabl    equ    17h        ;disable string
  17. cursav    equ    1dh        ;save cursor position string
  18. curret    equ    22h        ;return to saved position string
  19. cfg    equ    27h        ;default cfg filename
  20.  
  21. ;---------------------------------------------------------
  22.  
  23. ; ZCNFG function definitions, used in CASE TABLES below.  Do not modify.
  24.  
  25. Switch    equ    0    ; Toggle bit n in a byte (n is specified in BDATA)
  26. Text    equ    1    ; Edit text with UC conversion
  27. DUSpec    equ    2    ; Replace a ZCPR style DU specification (NOT DIR:!)
  28. HexRad    equ    3    ; Edit byte/word using HEX radix
  29. DecRad    equ    4    ; Edit byte/word using DECIMAL radix
  30. TextLC    equ    5    ; Edit text, both UC and LC
  31. FileSp    equ    6    ; Edit a Z3 filespec or filespec fragment
  32. Togl3    equ    7    ; Toggle to one of n options defined by mask in BDATA
  33. ToglTF    equ    8    ; Toggle a byte between 0ffh and 0
  34. ASCIIC    equ    9    ; Replace any ASCII byte with a keystroke
  35.  
  36.  
  37. ;ASCII definitions
  38. ;these are convenient, but only required if you wish
  39. ;to use them in text or data fields (including HELP)
  40. ctlc    equ    3
  41. bs    equ    8        ;backspace
  42. tab    equ    9        ;horizontal tab
  43. lf    equ    10        ;line feed
  44. cr    equ    13        ;carriage return
  45. spc    equ    20h        ;space char
  46.  
  47. ;=========================================================
  48. ;    MACRO DEFINITIONS
  49. ;You don't HAVE to use the macros. But it does make it
  50. ;easier to fill in the tables!
  51.  
  52. ;this macro is used for creating a CASE table
  53. ;entry which specifies toggling or setting a
  54. ;single bit (0..7) in a configuration data byte.
  55. ;It is useful when the 'switch' function is named.
  56.  
  57. bitmap     macro    a,sub,off,bit,scr,dat
  58.     db    '&A'
  59.     dw    sub,off
  60.     db    1 shl bit    ;;make a mask byte
  61.     dw    scr,dat
  62.      endm
  63.  
  64. ;=========================================================
  65.  
  66. ;macro parameter definitions
  67. ;    A   = the character used in the screen for a menu item
  68. ;    off = byte offset in config block
  69. ;    sub = subroutine for translation to screen
  70. ;    scr = screen location
  71. ;    dat = extra data word if required. Normally 0
  72. ;produces a record which is 8 bytes long
  73.  
  74. ;=========================================================
  75. ;this macro is used to create a case table entry
  76. ;which contains a byte of data required by the function
  77. ;to be performed. (see table of function definitions above)
  78.  
  79. vector     macro    a,sub,off,byte,scr,dat
  80.     db    '&A'
  81.     dw    sub,off
  82.     db    byte        ;;a byte of data
  83.     dw    scr,dat
  84.      endm
  85.  
  86. ;************************************************************
  87. ;    START OF OVERLAY CODE
  88. ;************************************************************
  89. ;The next 13 bytes must remain in this location.
  90.     rst    0    ;for safety - file won't execute
  91.     dw    amenu    ;for relocation of addresses, this
  92.             ;points to the NEXT location.
  93. ;first MENU list must be here. All names are local.
  94. amenu:    dw    cmenu,bmenu,ascrn,acase,ahelp    ;MENU A
  95. bmenu:    dw    amenu,cmenu,bscrn,bcase,bhelp    ;MENU B
  96. cmenu:    dw    bmenu,amenu,cscrn,ccase,chelp    ;MENU C
  97.  
  98. ;=========================================================
  99. ;Case table used for CLOCK first menu & screen:
  100. ;=========================================================
  101.  
  102. acase:    db    (acasex-acase1)/(acase2-acase1)    ;number of cases
  103.     db    acase2-acase1            ;length of each record
  104.  
  105. ;     macro    .single char menu selector
  106. ;    |    |    .function (see above)
  107. ;    |    |    |    .offset in cnfg block
  108. ;    |    |    |    |    .function dependent data
  109. ;    |    |    |    |    |    .screen location
  110. ;    |    |    |    |    |    |
  111. ;acse1: bitmap    0,    switch, obyte0, crtflg, ascrl0, yndata
  112. ;                            |
  113. ;        address of data structure used by function._|
  114. ;
  115. ;The first two entries in the case table must be labeled to
  116. ;provide data for the calculation at ACASE:. Subsequent
  117. ;entries (one for each menu selection) need not be labeled.
  118. acase1:    vector    0,    text,    cfg,      8,  ascr0,    0
  119. acase2:    vector    1,    hexrad,    port,      1,  ascr1,    0
  120.     vector    2,    togltf,    civflg,      1,  ascr2,    tfmt
  121.     vector    3,    decrad,    timreg,      1,  ascr3,    regdata
  122.     vector    4,    togltf,    line25,      1,  ascr4,    term
  123.  
  124. ;the next entry is a label which terminates the list.
  125. ;It is required for use in the calculation at ACASE:
  126. acasex:        ;label used to calc number of entries
  127.  
  128. ;=========================================================
  129. ;Case table used for CLOCK second menu & screen:
  130. ;=========================================================
  131.  
  132. bcase:    db    (bcasex-bcase1)/(bcase2-bcase1)    ;number of cases
  133.     db    bcase2-bcase1            ;length of each record
  134.  
  135.  
  136. ;        address of data structure used by function._|
  137. bcase1:    vector    0,    asciic,    enable,      1,  bscr0,    0
  138. bcase2:    vector    1,    asciic, enable+1, 1,  bscr1,    0
  139.     vector    2,    asciic,    enable+2, 1,  bscr2,    0
  140.     vector    3,    asciic, enable+3, 1,  bscr3,    0
  141.     vector    4,    asciic, enable+4, 1,  bscr4,    0
  142.  
  143.     vector    5,    asciic,    disabl,      1,  bscr5,    0
  144.     vector    6,    asciic, disabl+1, 1,  bscr6,    0
  145.     vector    7,    asciic,    disabl+2, 1,  bscr7,    0
  146.     vector    8,    asciic, disabl+3, 1,  bscr8,    0
  147.     vector    9,    asciic, disabl+4, 1,  bscr9,    0
  148.  
  149. bcasex:
  150.  
  151. ;=========================================================
  152. ;Case table used for CLOCK third menu & screen:
  153. ;=========================================================
  154.  
  155. ccase:    db    (ccasex-ccase1)/(ccase2-ccase1)    ;number of cases
  156.     db    ccase2-ccase1            ;length of each record
  157.  
  158.  
  159. ccase1:    vector    0,    asciic,    cursav,      1,  cscr0,    0
  160. ccase2:    vector    1,    asciic, cursav+1, 1,  cscr1,    0
  161.     vector    2,    asciic,    cursav+2, 1,  cscr2,    0
  162.     vector    3,    asciic, cursav+3, 1,  cscr3,    0
  163.  
  164.     vector    4,    asciic,    curret,      1,  cscr4,    0
  165.     vector    5,    asciic, curret+1, 1,  cscr5,    0
  166.     vector    6,    asciic,    curret+2, 1,  cscr6,    0
  167.     vector    7,    asciic, curret+3, 1,  cscr7,    0
  168.  
  169. ccasex:
  170.  
  171. ;=============================================================
  172.  
  173. ;-----------------------------------
  174. ;    FUNCTION DATA LIST
  175.  
  176. ;data pair for representing bit values in screen image
  177. ;Can also be used for function 8 display (True/False)
  178.  
  179.  
  180. tfmt:    db    'Civilian',0
  181.     db    'Military',0
  182.  
  183. regdata:dw    0,18        ; (Min/Max values)    
  184.  
  185. term:    db    'YES',0
  186.     db    ' NO',0
  187.  
  188. ;==========================================================
  189.  
  190. ascrn:
  191. ;screen image for first screen
  192. ;Title line
  193.     db    cr,lf
  194.     db    tab,tab,tab,1,' CLOCK VERS ',vers/10+'0','.',vers mod 10+'0'
  195.     db    ' DEFAULTS ',2
  196.     db    cr,lf,lf
  197.  
  198.     db    'Default CFG filename (FILENAME)... 0) ',1
  199. ascr0:    db    '        ',2
  200.     db    cr,lf,lf
  201.  
  202.     db    'Clock port number..................... 1) ',1
  203. ascr1:    db    '  h',2
  204.     db    cr,lf
  205.     db    tab,'(Anapro clock.........80h',cr,lf
  206.     db    tab,' CDR Super 89 clock...A0h',cr,lf
  207.     db    tab,' Kenmore clock........E0h)',cr,lf,lf
  208.  
  209.     db    'Time format........................... 2) ',1
  210. ascr2:    db    '        ',2
  211.     db    cr,lf,lf
  212.  
  213.     db    'Store time in ZCPR3 register number... 3) ',1
  214. ascr3:    db    '   ',2
  215.     db    cr,lf,lf
  216.  
  217.     db    'Put time data on 25th line ........... 4) ',1
  218. ascr4:    db    '   ',2
  219.     db    cr,lf
  220.     db    '   NO is mandatory if your terminal does',cr,lf
  221.     db    '   not support this option! If YES you must',cr,lf
  222.     db    '   enter values in the next two menus.'
  223.     db    cr,lf,lf
  224.  
  225.     db    0        ;terminator
  226.  
  227. ;=========================================================
  228. bscrn:
  229. ; screen image for second screen
  230.     db    'Strings to enable or disable the terminal '
  231.     db    '25th line.',cr,lf,lf
  232.     db    'Enter data starting with the leftmost position. ',cr,lf
  233.     db    'All unused positions ',1,'MUST',2,' be ^@.',cr,lf,lf
  234.  
  235.     db    'Enable 25th line string: ',cr,lf,lf
  236.     db    '     0    1    2    3    4',cr,lf
  237.     db    '   ',1
  238. bscr0:    db    '   ',2,'  ',1
  239. bscr1:    db    '   ',2,'  ',1
  240. bscr2:    db    '   ',2,'  ',1
  241. bscr3:    db    '   ',2,'  ',1
  242. bscr4:    db    '   ',2
  243.     db    cr,lf,lf
  244.  
  245.     db    'Disable 25th line string:',cr,lf,lf
  246.     db    '     5    6    7    8    9',cr,lf
  247.     db    '   ',1
  248. bscr5:    db    '   ',2,'  ',1
  249. bscr6:    db    '   ',2,'  ',1
  250. bscr7:    db    '   ',2,'  ',1
  251. bscr8:    db    '   ',2,'  ',1
  252. bscr9:    db    '   ',2,
  253.     db    cr,lf,lf
  254.  
  255.     db    0
  256. ;
  257.  
  258. ;=====================================================
  259.  
  260. cscrn:
  261. ; screen image for third screen
  262.     db    'Strings to save current cursor position or '
  263.     db    'return to that position.',cr,lf,lf
  264.     db    'Enter data starting with the leftmost position. ',cr,lf
  265.     db    'All unused positions ',1,'MUST',2,' be ^@.',cr,lf,lf
  266.  
  267.  
  268.     db    'Save cursor position string:',cr,lf,lf
  269.     db    '     0    1    2    3',cr,lf
  270.     db    '   ',1
  271. cscr0:    db    '   ',2,'  ',1
  272. cscr1:    db    '   ',2,'  ',1
  273. cscr2:    db    '   ',2,'  ',1
  274. cscr3:    db    '   ',2
  275.     db    cr,lf,lf
  276.  
  277.     db    'Return to saved position string:',cr,lf,lf
  278.     db    '     4    5    6    7',cr,lf
  279.     db    '   ',1
  280. cscr4:    db    '   ',2,'  ',1
  281. cscr5:    db    '   ',2,'  ',1
  282. cscr6:    db    '   ',2,'  ',1
  283. cscr7:    db    '   ',2
  284.     db    cr,lf,lf
  285.  
  286.     db    0
  287.  
  288.  
  289. ;=========================================================
  290.  
  291. ahelp:        ;help screen for menu A
  292.  
  293.     db    tab,tab,tab,1,' CLOCK VERS '
  294.     db    vers/10+'0','.',vers mod 10+'0'
  295.     db    ' DEFAULTS ',2
  296.     db    cr,lf,lf
  297. ;
  298.     db    1,'Default CFG Filename',2,cr,lf
  299.     db    'Enter the desired default CFG filename in the form: '
  300.     db    'form ''FILENAME''.',cr,lf
  301.     db    'Up to 8 characters may be entered.'
  302.     db    cr,lf,lf
  303. ;
  304.     db    1,'Clock Port Number',2,cr,lf
  305.     db    'Set to the port number required by your clock.'
  306.     db    cr,lf,lf
  307. ;
  308.     db    1,'Time Format',2,cr,lf
  309.     db    'Time may be displayed in Civilian (12hr) or Military (24 hr) '
  310.     db    'format.',cr,lf,lf
  311.  
  312.     
  313.     db    1,'Register Number:',2,cr,lf
  314.     db    'The time and date are stored in 8 consecutive ZCPR3'
  315.     db    ' registers. The default',cr,lf
  316.     db    'is register 18, which is at the end of the user-defined'
  317.     db    ' register area. You may',cr,lf
  318.     db    'specify the starting register number in the range '
  319.     db    'of 0 through 18.',cr,lf,lf
  320.  
  321.     db    1,'25th line option:',2,cr,lf
  322.     db    'Places the time data on the Heath/Zenith H19 25th ',
  323.     db    'line. This ',1,'must',2,' be set',cr,lf
  324.     db    'NO if you do not use a H19 terminal or other '
  325.     db    'terminal that supports a 25th',cr,lf
  326.     db    'line. The strings to enable/disable the 25th '
  327.     db    'line and to save/return-to the',cr,lf
  328.     db    'current cursor position must be set in menu 2 '
  329.     db    'and 3.'
  330.     
  331.     db    0
  332.  
  333. bhelp:        ; Help screen for B menu
  334.     db    1,'Enable 25th line:',2
  335.     db    cr,lf
  336.     db    'Enter the ASCII string to turn on the 25th line. This '
  337.     db    'string may be a maximum',cr,lf
  338.     db    'of 5 bytes in length and all unused bytes must be ^@.'
  339.     db    cr,lf,lf
  340.     db    'It is ^[,x,1,^@,^@ for the H19 Heath mode.',cr,lf
  341.     db    'It is ^[,[,>,1,h for the H19 ANSI mode.',cr,lf,lf
  342.  
  343.     db    1,'Disable 25th line:',2
  344.     db    cr,lf
  345.     db    'Enter the ASCII string to turn off the 25th line. This '
  346.     db    'string may be a maximum',cr,lf
  347.     db    'of 5 bytes in length and all unused bytes must be ^@.'
  348.     db    cr,lf,lf
  349.     db    'It is ^[,y,1,^@,^@ for the H19 Heath mode.',cr,lf
  350.     db    'It is ^[,[,>,1,l for the H19 ANSI mode.',cr,lf,lf
  351.     db    'NOTE: ^@ = CTRL @ = 00h',cr,lf
  352.     db    '      ^[ = ESCape key',cr,lf
  353.  
  354.     db    0
  355.  
  356. chelp:        ; Help screen for C menu
  357.  
  358.     db    1,'Save current cursor postion:',2
  359.     db    cr,lf
  360.     db    'Enter the ASCII string to save the current cursor position.'
  361.     db    ' The string may',cr,lf
  362.     db    'be a maximum of 4 bytes in length and all unused bytes must '
  363.     db    'be ^@.',cr,lf,lf
  364.     db    'This is ^[,j,^@,^@ for the H19 Heath mode.',cr,lf
  365.     db    'This is ^[,[,s,^@ for the H19 ANSI mode.',cr,lf,lf
  366.  
  367.     db    1,'Return to saved cursor position:',2
  368.     db    cr,lf
  369.     db    'Enter the ASCII string to return to the save postion.'
  370.     db    ' The string may be a',cr,lf
  371.     db    'maximum of 4 bytes in length and all unused bytes must be ^@.'
  372.     db    cr,lf,lf
  373.     db    'This is ^[,k,^@,^@ for the H19 Heath mode.',cr,lf
  374.     db    'This is ^[,[,u,^@ for the H19 ANSI mode.',cr,lf,lf
  375.     db    'NOTE: ^@ = CTRL @ = 00h',cr,lf
  376.     db    '      ^[ = ESCape key',cr,lf
  377.  
  378.     db    0
  379.  
  380.     end
  381.