; ; SCANCFG.Z80 - JTH 04/17/91 ; (from ZCNFGCFG.SRC) ; ;--------------------------------------------------------- vers equ 25 ;scan version number ; SCAN Patch offsets lines equ 00bh ;number of terminal lines columns equ 00ch ;number of terminal columns overlap equ 016h ;overlap in lines vmode equ 017h ;video display mode default fsline equ 018h ;display line for found string wcchr equ 019h ;wild card character ptrinit equ 01ah ;printer init sequence ;--------------------------------------------------------- ;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 ht equ 9 ;horizontal tab lf equ 10 ;line feed cr equ 13 ;carriage return spc equ 20h ;space char ff equ 0ch ;form feed ;========================================================= ; 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 SCAN, 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 A, decrad, lines, 1, ascra, 0 acase2: vector B, decrad, columns, 1, ascrb, 0 vector C, decrad, overlap, 1, ascrc, 0 vector D, togl3, vmode, 7, ascrd, mdata vector E, decrad, fsline, 1, ascre, 0 vector F, hexrad, wcchr, 1, ascrf, 0 vector G, decrad, ptrinit, 1, ascrg, 0 vector 1, hexrad, ptrinit+1,1, ascr1, 0 vector 2, hexrad, ptrinit+2,1, ascr2, 0 vector 3, hexrad, ptrinit+3,1, ascr3, 0 vector 4, hexrad, ptrinit+4,1, ascr4, 0 vector 5, hexrad, ptrinit+5,1, ascr5, 0 vector 6, hexrad, ptrinit+6,1, ascr6, 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 ht,ht,1,' SCAN VERS ',vers/10+'0','.',vers mod 10+'0' db ' DEFAULTS ',2 db cr,lf,lf db 'Number of terminal lines.................. A) ' ascra: db ' ' db cr,lf db 'Number of terminal columns................ B) ' ascrb: db ' ' db cr,lf db 'Number of lines of screen overlap......... C) ' ascrc: db ' ' db cr,lf,lf db 'Video mode default........................ D) ' ascrd: db ' ',cr,lf,lf db 'Display found string on line number....... E) ' ascre: db ' ',cr,lf db 'Wild card search character (HEX).......... F) ' ascrf: db ' h',cr,lf,lf db 'Length of printer initialization string... G) ' ascrg: db ' ',cr,lf db ' ' db '(1) (2) (3) (4) (5) (6)',cr,lf db 'Printer initialization string HEX bytes: ' ascr1: db ' h ' ascr2: db ' h ' ascr3: db ' h ' ascr4: db ' h ' ascr5: db ' h ' ascr6: db ' h' db 0 ;terminator ;----------------------------------- ; FUNCTION DATA LIST ;data pair for representing bit values in screen image ;Can also be used for function 8 display (True/False) ;these are null terminated strings. Note the 'DZ'. mdata: defz 'WordStar mode' defz 'ZCPR3 mode ' defz 'ASCII mode ' 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 ht,ht,1,' SCAN VERS ' db vers/10+'0','.',vers mod 10+'0' db ' DEFAULTS ',2 db cr,lf,lf db 'TERMINAL LINES AND COLUMNS:',cr,lf db 'Enter the number of terminal lines and columns for ' db 'your terminal if',cr,lf db 'you wish to override the values in your ZCPR3 environment.' db cr,lf,lf db 'OVERLAP LINES:',cr,lf db 'The number of lines of the previous screen shown on' db ' the next screen when',cr,lf db 'paging by screens may also be set. The WordStar 3.0 ' db 'default is 5 lines.',cr,lf,lf db 'VIDEO MODE:',cr,lf db 'You may select SCAN''s default video mode by toggling' db ' through the three modes.',cr,lf,lf db 'FOUND STRING LINE:',cr,lf db 'You may select the line that SCAN displays the string ' db 'found with the find',cr,lf db 'string command. The WordStar 3.0 default is line 13.' db cr,lf,lf db 'WILDCARD SEARCH CHARACTER:',cr,lf db 'The WordStar default wildcard search character is ^A' db ' (01h)',cr,lf db ff,lf db 'PRINTER INITIALIZATION STRING:',cr,lf db 'The length of the string is entered first, followed by ' db 'up to six string',cr,lf db 'characters. Each character must be entered individually ' db 'in hex.' db 0 ;========================================================= ; db cr,lf,lf,lf ;ensure clean top of screen ; db ht,ht,ht,'HELP SCREEN NOT IMPLEMENTED',cr,lf,lf,0 ;=========================================================