home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / RCPM / ZMD150.LBR / ZMDHDR.ZZ0 / ZMDHDR.Z80
Text File  |  2000-06-30  |  29KB  |  633 lines

  1. ;
  2.  
  3.       TITLE ZMDHDR.Z80 - 09/29/88 - ZMD Configuration Header
  4. ;                    Copyrighted (c) 1987, 1988
  5. ;                    Robert W. Kramer III
  6.  
  7.     PAGE
  8. ;-                                     -;
  9. ;                         Update History                                  ;
  10. ;                                                                         ;
  11. ;    Date    Release                 Comments                     ;
  12. ;  --------    -------      ----------------------------------------------  ;
  13. ;                                                                         ;
  14. ;  09/29/88    v1.50    - Changed file descriptor table.  (Sorry, but as  ;
  15. ;              many times as I am required to reassemble the      ;
  16. ;              ZMD system, it saves alot of time for me).      ;
  17. ;  03/18/88    v1.49    - No change(s) were made to this file          ;
  18. ;  03/13/88    v1.48    - Added STDBUF switch to enable/disable automatic ;
  19. ;              calculation of memory available for DBUF.  If      ;
  20. ;              enabled, CHKTPA will set OUTSIZ with an even      ;
  21. ;              paged maximum memory comparison word according  ;
  22. ;              to the address contained at location 6 and 7.      ;
  23. ;              The value set as end of program during assembly ;
  24. ;              is subtracted from it.  If BYE is NOT running,  ;
  25. ;              an additional 806H is subtracted.  The LSB of      ;
  26. ;              the result is discarded and the new even paged  ;
  27. ;              value is stored for later comparison as maximum ;
  28. ;              Read/Write memory available for disk buffer      ;
  29. ;              operations.                      ;
  30. ;                                      ;
  31. ;  * * SPECIAL NOTE * *   MOST ALL systems will benefit by enabling this  ;
  32. ;              feature. Some special CP/M systems which place  ;
  33. ;              buffers below location (6 and 7), may need to      ;
  34. ;              disable this feature in which case DBUF size      ;
  35. ;              will be set to 16k.  This fix consumed 1 more      ;
  36. ;              byte in the switch/value table below.  Previous ;
  37. ;              configuration headers are incompatible with this;
  38. ;              release.  Additional program code is 9 bytes.      ;
  39. ;              (See explaination at STDBUF:)              ;
  40. ;                                      ;
  41. ;  02/25/88    v1.47    - No change(s) made to configuration file      ;
  42. ;  01/27/88    v1.46    - No change(s) made to configuration file      ;
  43. ;  01/17/88    v1.45    - First public release                  ;
  44. ;  11/19/87    v1.00    - Initial version                  ;
  45. ;-                                                                       -;
  46.  
  47. ;-------------------------------------------------------------------------;
  48. ; Introduction                                  |
  49. ;-------------------------------------------------------------------------;
  50. ;
  51. ; This document is a detailed listing of all the program option toggles
  52. ; and their functions within the ZMD environment which when used in
  53. ; conjunction with the source listings, install program and reference
  54. ; manual, provide all the necessary documentation to support program
  55. ; maintenance.
  56.  
  57. ;
  58. ;-------------------------------------------------------------------------;
  59. ; EQUates Header                              |
  60. ;-------------------------------------------------------------------------;
  61.  
  62.  
  63.     INCLUDE    EQUATES.INS    ; Include system constant definitions
  64.  
  65. ;
  66. ;-------------------------------------------------------------------------;
  67. ; PUBLIC Declarations:                              |
  68. ;-------------------------------------------------------------------------;
  69.  
  70.  
  71.     PUBLIC    ACCMAP,ASKAREA,ASKIND,CLRSCRN,CLRSTR,DESWAIT,DRV
  72.     PUBLIC    LOCOFF,MHZ,MINKSPD,MSPEED,PAGLEN,PRDRV,PRUSR,USR,WHEEL
  73.     PUBLIC    WRAP,WRTLOC,CONOUT,MDINST,MDINP,MDOUTST,MDCARCK,MDOUTP
  74.     PUBLIC    KNDTBL,TYPTBL,MAXTYP,DESCRIB,FORNAM,MSGDESC,DSTAMP
  75.     PUBLIC    INCLDU,UNINIT,DRIVE,USER,LOGNAM,SETAREA,CLOCK,RTC
  76.     PUBLIC    TIMEON,CREDIT,EDATE,DSPTOS,STDBUF
  77.  
  78. ;
  79. ;-------------------------------------------------------------------------;
  80. ; EXTERNAL Declarations:                          |
  81. ;-------------------------------------------------------------------------;
  82.  
  83.  
  84.     EXTRN    MONTH,DAY,YEAR,HOUR,MINUTE,DEST,FILE,ZMDNAM,INSNAM
  85.     EXTRN    MAPNAM,PRGUTL,PUBFOR,PUBNEW,SYSFOR,PUBFOR,INSNAM
  86.     EXTRN    SYSNEW,FCBCLR,FCBLOG,TEMPFIL,BCDBIN,TIMBUF,DUD,DUU
  87.  
  88. ;
  89. ;-------------------------------------------------------------------------;
  90. ; Program configuration starts here                      |
  91. ;-------------------------------------------------------------------------;
  92. ;
  93. ; Options that are most often changed are marked with ';*' at the start of
  94. ; the comment line for that option.  Simple systems not using time clocks,
  95. ; user logs, etc. will keep most of those 'NO'.  RCPM systems running the
  96. ; usual bulletin board systems, etc., will change most of those to 'YES'.
  97. ;
  98. MHZ:    DB    4    ; Microprocessor speed - use integer 1,4,5, etc.
  99. MSPEED:    DW    003CH    ; Location of modem speed indicator byte
  100.  
  101. WRTLOC:    DB    YES    ; Set/reset WRTLOC so BYE won't hang up.  Check
  102. LOCOFF:    DB    12    ; your BBS documentation - many modern systems
  103.             ; don't need WRTLOC. If unsure, set WRTLOC to NO.
  104.             ; Code to set and reset WRTLOC assumes the WRTLOC
  105.             ; byte to be located "LOCOFF" bytes from the JP
  106.             ; COLDBOOT instruction at the beginning of the BYE
  107.             ; BIOS jump table.  (YES for MBBS and PBBS).
  108.  
  109. STDBUF:    DB    YES    ; If the size of your TPA cannot be calculated by
  110.             ; using one of the two following methods, disable
  111.             ; this by setting to NO.  ZMD will Automatically
  112.             ; calculate the maximum disk buffer size allowed. If
  113.             ; enabled,  CHKTPA will determine whether or not
  114.             ; BYE is running, if so uses (0006)-1.  Else
  115.             ; subtracts 806H from (0006).  If disabled, DBUF
  116.             ; setting will be used as default (Normally set to
  117.             ; 16k).  Either way, if descriptions are allowed,
  118.             ; the total number of uploads allowed is set based
  119.             ; on the value of OUTSIZ divided by maximum bytes
  120.             ; per description entry.
  121.  
  122. DESWAIT:DB    2    ; This is the number of minutes of inactivity during
  123.             ; an upload description or Help Guide prompt before
  124.             ; logging aborting the input routine.  If the
  125.             ; caller was entering a description, the current
  126.             ; description buffer is written to disk before
  127.             ; resetting your BYE program's disk write lock flag
  128.             ; (WRTLOC),  if enabled.
  129.  
  130. MINKSPD:DB    1    ; Minimum speed acceptable for 1k packet file
  131.             ; transfers.  If you are on a network such as PC
  132.             ; Pursuit,  and are able to RECEIVE incoming calls,
  133.             ; set this byte to 1. The delays these networks
  134.             ; use to send data back and forth make 1k packets
  135.             ; advantageous to even 300 bps users.  If you are
  136.             ; not on a network such as PC Pursuit, it's simply
  137.             ; a matter of preference, but why not let the 300
  138.             ; bps callers experience the 1k packet transfers?
  139.             ; (1 = 300, 5 = 1200, 6 = 2400, ..., 9 = 19,200)
  140.  
  141. BUFSIZ:    DB    16    ; Normal disk systems can transfer 16k from
  142.             ; computer to disk in 2-3-4 seconds and less. Some
  143.             ; very slow 5-1/4" floppy systems (such as North
  144.             ; Star) may take up to 20-30 seconds to transfer
  145.             ; 16k.  This would cause several timeouts at 10
  146.             ; seconds each.  If you experience any timeouts,
  147.             ; try changing BUFSIZ to something smaller, perhaps
  148.             ; 8k or even 4k.
  149.  
  150. CLRSCRN:DB    NO    ; Yes,  you want ZMD to clear your screen locally
  151. CLRSTR:    DB    1AH,00H    ; during display of batch file transfers and all
  152.     DB    00H,00H    ; the help menus.  If you set CLRSCRN to YES, enter
  153.     DB    00H,00H    ; your clear screen sequence in the 6 bytes aside.
  154.     DB    '$'    ; (If your terminal uses ^Z, leave as is, 1AH = ^Z)
  155.  
  156. PAGLEN:    DB    24    ; This is the number of lines to display in between
  157.             ; [more] pauses.  (Set to 0 to disable pauses).
  158.  
  159. ;
  160. ;-------------------------------------------------------------------------;
  161. ; Timekeeping Considerations                          |
  162. ;-------------------------------------------------------------------------;
  163. ;
  164. ; If you have a clock installed (either in your BYE program or internal),
  165. ; set the following switches to your liking.  If running ZMD without a
  166. ; clock, set these all NO.
  167. ;
  168. CLOCK:    DB    YES    ; Clock/date reader code installed in BYE program
  169. RTC:    DB    NO    ; Clock/date reader code installed at RTCTIM:
  170.  
  171. TIMEON:    DB    YES    ; Restrict downloads to maximum time allowed
  172. MAXMIN:    DB    60    ; Total minutes allowed for downloads. This should
  173.             ; be set if TIMEON is YES and CLOCK is NO.
  174. DSPTOS:    DB    NO    ; Yes to display 'Online nn minutes' messages
  175. LHOUR:    DW    0000H    ; Logon hour address (If RTC).  LHOUR+2 = logon
  176.             ; minute address.
  177.  
  178. ;
  179. ;-------------------------------------------------------------------------;
  180. ; Bit Map Layout                              |
  181. ;-------------------------------------------------------------------------;
  182. ;
  183. ; The following byte contains information corresponding to the filename
  184. ; bytes of the file being considered for transfer.  Enabling any of the
  185. ; options causes ZMD to look at the high bit of the byte position
  186. ; indicated below (F1=filename byte 1, T2=file type byte 2, etc).  These
  187. ; restrictions are always bypassed when using ZCPR and the WHEEL is set.
  188. ;
  189. ;    Bit:    76543210    ; Correspond to definitions below
  190. ;        ||||||||
  191. ACCMAP:    DB    11111101B    ; Set any bits of this byte according
  192. ;     __________\______/    ; to your own preference.
  193. ;    /
  194. ;
  195. ;  7  |   F1   |  File not for distribution.  If file is a ARK/ARC/LBR
  196. ;     |           |  file, individual members may be downloaded (no Batch)
  197. ;  6  |   F3   |  File can be downloaded regardless of user's access
  198. ;  5  |      T2   |  $SYS files not sent or reported
  199. ;  4  |      T3   |  .??# files with labels not sent
  200. ;  3  | T1/2/3 |  .COM files not sent or reported
  201. ;  2  | T1/2/3 |  Rename .COM to .OBJ and .PRL to .OBP on receive
  202. ;  1  |   --   |  RESERVED FOR FUTURE USE
  203. ;  0  | T1/2/3 |  .SYS, .NDR, .RCP, file extents not accepted.  (ZCPR)
  204.  
  205. ;
  206. ;-------------------------------------------------------------------------;
  207. ; ZCMD/ZCPR                                    |
  208. ;-------------------------------------------------------------------------;
  209. ;
  210. ; If using ZCPR low memory bytes to keep track of maximum drive and user,
  211. ; set USEMAX to yes.  ZMD will use the values at locations DRIVMAX and
  212. ; USRMAX for maximum drive/user.  If USEMAX is NO, hardcode MAXDRV and
  213. ; MAXUSR to your own requirements.
  214. ;
  215. WHEEL:    DW    3EH    ; Location of ZCPR wheel byte
  216. USEMAX:    DB    YES    ;*Use values at DRIVMAX and USRMAX for maximum
  217.             ; (Else use MAXDRV and MAXUSR values)
  218. DRIVMAX:DW    3DH    ; ZCPR maximum drive memory byte
  219. USRMAX:    DW    3FH    ; ZCPR maximum user memory byte
  220. MAXDRV:    DB    7    ; Maximum download drive allowed
  221. MAXUSR:    DB    5    ; Maximum download user allowed
  222.  
  223. ;
  224. ;-------------------------------------------------------------------------;
  225. ; Access Restrictions                              |
  226. ;-------------------------------------------------------------------------;
  227. ;
  228. ; If ACCESS is YES,  ZMD will inspect AFBYTE (located ACBOFF bytes from JP
  229. ; COLDBOOT) for the following flag data:
  230. ;
  231. ;
  232. ;        Bit:    7 6 5 4 3 2 1 0
  233. ;            | | | | | | | |
  234. ;    Privileged user ---* | | | | | | |
  235. ;          Upload -----* | | | | | |
  236. ;        Download -------* | | | | |   * Of these bits, only 3, 5, 6
  237. ;            CP/M ---------+ | | | |     and 7 are used by ZMD.  Bit
  238. ;           Write -----------* | | |     numbers are powers of 2, with
  239. ;        Read -------------+ | |     bit 0 being least significant
  240. ;         BBS ---------------+ |        bit of byte.
  241. ;          System -----------------+
  242. ;
  243. ;
  244. ACCESS:    DB    YES    ;*Yes, your system sets BYE's bit-mapped flag
  245.             ; register to restrict user's ability to upload,
  246.             ; download, use the 'RM' option to upload message
  247.             ; files to your BBS's message base, or to use the
  248.             ; 'RW' option for 'privileged user' upload without
  249.             ; being required to give upload descriptions.
  250.  
  251. ACBOFF:    DB    21    ; If you set ACCESS to YES,  you 'might' need to
  252.             ; set this to reflect the number of bytes from JP
  253.             ; COLDBOOT to ACCESS byte.  In most cases, leave
  254.             ; alone.
  255.  
  256. ;
  257. ;-------------------------------------------------------------------------;
  258. ; Upload Configurations                              |
  259. ;-------------------------------------------------------------------------;
  260. ;
  261. MSGFIL:    DB    NO    ; Some BBS's allow callers to upload preformatted
  262.             ; text files which are appended to the message
  263.             ; base. (MBBS and PBBS are examples of this).  If
  264.             ; you're running MBBS or PBBS and wish to support
  265.             ; this, simply set MSGFIL to YES.  Message file
  266.             ; uploads go to PRDRV and PRUSR.
  267.  
  268. HIDEIT:    DB    YES    ; Yes, make all normal uploads $SYS files.  This
  269.             ; way,  new uploads will not appear in a DIRectory
  270.             ; listing and cannot be viewed or even downloaded
  271.             ; until they are cleared by SYSOP. (New uploads
  272.             ; will show up when the WHEEL byte is ON and a $S
  273.             ; option is used to show SYSTEM files.  Use the $O
  274.             ; option to list ONLY $SYS files.  Reference will
  275.             ; be made to these files in the in the NEW and FOR
  276.             ; listings if those features are enabled). Private
  277.             ; uploads, and uploads made with the WHEEL byte
  278.             ; set are NOT made $SYS.  You can use POWER or
  279.             ; NSWEEP to set to $DIR.
  280.  
  281. ;
  282. ;-------------------------------------------------------------------------;
  283. ; Upload Routing Options                          |
  284. ;-------------------------------------------------------------------------;
  285. ;
  286. ; The following equates determine what drive/user area uploads will be sent
  287. ; to.  If you prefer to enable upload routing (ASKAREA set YES), you will
  288. ; have to set MAXTYP to the letter of the highest category you wish to
  289. ; support, and configure TYPTBL: and KNDTBL: tables below for your own
  290. ; system.  Do NOT set ASKAREA and SETAREA both to YES.
  291. ;
  292. ASKAREA:DB    YES    ;*Yes, you want upload routing to multiple drive
  293.             ; and user areas.  The caller will be asked what
  294.             ; the file (or files) he is uploading are for and
  295.             ; his uploads will then be forwarded to the
  296.             ; appropriate area. You will need to set up the
  297.             ; categories at KNDTBL: for your own system and
  298.             ; set the drive/user area each category belongs on
  299.             ; at label TYPTBL:. There can be up to 26 different
  300.             ; drive/user and category combinations. This applies
  301.             ; for both private and normal uploads.  Upload
  302.             ; routing is disabled when the WHEEL byte is set,
  303.             ; in which case,  normal uploads will go to the
  304.             ; current drive/user area and private uploads will
  305.             ; go to the drive/user equated at PRDRV and PRUSR.
  306.  
  307. SETAREA:DB    NO    ;*Yes, you wish to have all regular uploads sent
  308. DRV:    DB    'B'    ; to the drive/user equated at DRV and USR to left.
  309. USR:    DB    0    ; If WHEEL byte is set,  regular uploads will go to
  310.             ; the current or specified drive/user.  Unless you
  311.             ; ASKAREA is YES,  all private files uploaded with
  312.             ; the 'RP' option will be sent to PRDRV and PRUSR
  313.             ; regardless of WHEEL status.
  314.  
  315. PRDRV:    DB    'H'    ;*This is the drive/user area where ALL files sent
  316. PRUSR:    DB    15    ;*to the sysop with the 'RP' option will go (unless
  317.             ; ASKAREA below is YES).  This permits experimental
  318.             ; files, replacement and/or proprietary programs to
  319.             ; be sent to an area only accessible by the sysop.
  320.             ; This is also the drive and user area where message
  321.             ; files are uploaded, if MSGFIL is set YES.  (If
  322.             ; ASKAREA is YES,  this is the drive/user where
  323.             ; uploads will go when 'RP' is specified, and WHEEL
  324.             ; is set).  (If MSGDESC is YES, this is the drive
  325.             ; and user area the FOR text file will be placed
  326.             ; before appending it to the BBS system's message
  327.             ; base).
  328.  
  329. CREDIT:    DB    YES    ;*Yes, callers are given credit for the amount of
  330.             ; time they spend uploading non-private files. A
  331.             ; caller who spends 30 minutes sending an upload
  332.             ; gets 30 minutes added to his TLOS.  (You must
  333.             ; set either CLOCK or TIMEON to YES to use this
  334.             ; feature).
  335.  
  336. ;
  337. ;-------------------------------------------------------------------------;
  338. ; Upload Description Options                          |
  339. ;-------------------------------------------------------------------------;
  340. ;
  341. ; This section has to do with upload descriptions.  If you do not intend
  342. ; on implementing upload descriptions, set DESCRIB and MSGDESC to NO. The
  343. ; rest of these values are then ignored.  If using descriptions, set ONLY
  344. ; one of these to YES, not both.
  345. ;
  346. MSGDESC:DB    NO    ; Yes, your BBS system supports message uploads,
  347.             ; and you prefer upload descriptions to be placed
  348.             ; in your BBS message system (set DESCRIB NO).
  349.             ; MBBS users need to install MFMSG.COM with the
  350.             ; MBBSINIT program.  Then set your BYE program to
  351.             ; know about message file uploads by setting the
  352.             ; MSGFIL option in BYE/MBYE to YES.  If set YES,
  353.             ; ZMD will produce a FOR text file when writing
  354.             ; upload descriptions. This FOR file will go to
  355.             ; the drive and user area equated at PRDRV and
  356.             ; PRUSR just before being appended to your BBS
  357.             ; system's message base.
  358.  
  359. DESCRIB:DB    YES    ;*Yes, requiring users to provide descriptions for
  360.             ; any files they upload.  These descriptions will
  361.             ; be added to the current FOR file where they can
  362.             ; be viewed by callers with the ZFORP utility.
  363.             ; Sysop can add new descriptions with the ZFORS
  364.             ; utility (See ZMD.WS for more information on ZMD
  365.             ; support files).  Uploads sent to the SYSOP private
  366.             ; upload area will not be require descriptions, nor
  367.             ; will files uploaded with the 'RW' option - user
  368.             ; must be a privileged user (bit 7 in ACCESS byte
  369.             ; set) or have WHEEL access and PUPOPT must be set
  370.             ; YES to use the 'RW' option.
  371.  
  372. FORNAM:    DB    'FOR        '    ; Description text file  (Must be 11 bytes)
  373. DRIVE:    DB    'A'    ;*If using with DESCRIB set YES, you must indicate
  374. USER:    DB    14    ;*what drive/user you want the 'FOR' file to be
  375.             ; placed.
  376.  
  377. ;
  378. ; If DESCRIB above is set to YES, you'll have to tell ZMD what information
  379. ; you want included in the first line of each description.  Code is included
  380. ; in ZMD to place all (any) information in the upload description header in
  381. ; in the same column position no matter what the filename or file category
  382. ; length is.  The following illustrates a full implementation of DESCRIB.
  383. ;
  384. ; Example upload description header:
  385. ;
  386. ;    -----
  387. ;    ZMD150.LBR - Communications            (C3:)       Rcvd: 09/21/88
  388. ;              /                 /             /
  389. ;                _______/              ______/             _______/
  390. ;      ASKIND                INCLDU           DSTAMP
  391. ;
  392. ;
  393. ASKIND:    DB    YES    ;*Yes, ask for the category of uploads and write it
  394.             ; into the upload description header.  If you set
  395.             ; this to YES, make sure you set MAXTYP below to
  396.             ; the highest letter choice you wish to support and
  397.             ; edit the text at KNDTBL: up to and including your
  398.             ; MAXTYP setting. (Used only with DESCRIB).
  399.  
  400. INCLDU:    DB    YES    ;*Yes, include the drive/user area of the uploaded
  401.             ; file into the upload description header.
  402.             ; (Used only with DESCRIB).
  403.  
  404. DSTAMP:    DB    YES    ;*Yes, include the date the upload was received into
  405.             ; the upload description header.  (NO if no clock)
  406.             ; (Used only with DESCRIB).
  407.  
  408. PUPOPT:    DB    YES    ;*Yes, description request of file upload will be
  409.             ; skipped when "RW" is used in the ZMD command line
  410.             ; (i.e. ZMD RW FILE.EXT).  This command may only be
  411.             ; used by those considered "priviledged" users on
  412.             ; your system or WHEEL users.  Uploads of this type
  413.             ; will be tagged in the ZMD.LOG file as private, so
  414.             ; as not to display with the NEW command.  (See
  415.             ; ACCESS equate description above for information
  416.             ; on 'priviledged' users).
  417.  
  418. WRAP:    DB    64    ; Column position where word wrap will occur.  If
  419.             ; you are using MSGDESC and have problems with an
  420.             ; 'Invalid format' error from MFMSG.COM, try setting
  421.             ; WRAP to something smaller,  like 62 or 63.  (Word
  422.             ; wrap can be disabled by the user with ^W during
  423.             ; description entry.  Enter 72 here to disable
  424.             ; completely).
  425.  
  426. ;
  427. ;-------------------------------------------------------------------------;
  428. ; Special Sysop Downloads                              |
  429. ;-------------------------------------------------------------------------;
  430. ;
  431. SPLDRV:    DB    'H'    ;*Drive/user area for downloading private files
  432. SPLUSR:    DB    14    ;*from sysop.  This permits him to put a special
  433.             ; file in this area,  then leave a private note
  434.             ; to that person mentioning the name of the file
  435.             ; and how to download it (ZMD SP filename.ext).
  436.             ; Although anybody 'could' download that program,
  437.             ; they don't know what (if any) files are there.
  438.             ; A high degree of security exists,  while the
  439.             ; SYSOP still has the ability to make special
  440.             ; files available. Thus any person can be a
  441.             ; temporary 'privileged user'.
  442.  
  443. ;
  444. ;-------------------------------------------------------------------------;
  445. ; File Transfer Log                                |
  446. ;-------------------------------------------------------------------------;
  447. ;
  448. LOGCAL:    DB    YES    ;*ZMD.LOG is produced if LOGCAL is set YES.  All
  449.             ; file transfers are logged.  You can then use
  450.             ; ZNEWP.COM to show listings of recent uploads.
  451. EDATE:    DB    NO    ; Yes, show date in ZMD.LOG in dd/mm/yy format
  452.             ; instead of mm/dd/yy format.
  453.  
  454. LOGNAM:    DB    'ZMD     LOG'    ; File transfer log  (Must be 11 bytes)
  455. LOGDRV:    DB    'A'    ;*Drive to find ZMD.LOG on.
  456. LOGUSR:    DB    14    ;*User area to find ZMD.LOG on.
  457.  
  458. LSTCLR:    DB    'LASTCALR???'    ; Last caller file  (Must be 11 bytes)
  459. LASTDRV:DB    'A'    ;*Drive to find LASTCALR??? file on.
  460. LASTUSR:DB    14    ;*User area to find LASTCALR??? file on.
  461. LCNAME:    DB    0    ;*Position of last caller's name in the LASTCALR???
  462.             ; file. (MBBS is 11, PBBS is 0).
  463.  
  464. LOGLDS:    DB    YES    ;*Count number of up/down loads since login.  Your
  465. UPLDS:    DW    0054H    ; BBS program can check UPLDS and DNLDS when a user
  466. DNLDS:    DW    0055H    ; logs out and update either the user's file or a
  467.             ; file for this purpose.  You can either modify
  468.             ; your BBS entry program to check the LASTCALR file
  469.             ; before updating and then update (risky), or make
  470.             ; a separate program that BYE calls when logging off
  471.             ; a user (preferred).  (YES for PBBS).  Clear UPLDS
  472.             ; and DNLDS to 0 from your BBS program when somebody
  473.             ; logs in.  NOTE: Clear ONLY when a user logs in,
  474.             ; not when he re-enters the BBS program from CP/M.
  475.  
  476. ;
  477. ;-------------------------------------------------------------------------;
  478. ; File Descriptors                              |
  479. ;-------------------------------------------------------------------------;
  480. ;
  481. ; This table defines the text to be included in upload description headers
  482. ; (DESCRIB and ASKIND) and/or defines categories for uploading to multiple
  483. ; drive/user areas (If ASKAREA and NOT SETAREA).  Change as desired, if
  484. ; this list is not suitable.  Do NOT remove any of the text at KNDTBL:.
  485. ; Simply edit the text below up to/and including your MAXTYP setting.
  486. ; MAXTYP below must be set to whatever letter your maximum choice will be.
  487. ; Make sure you leave all the following categories EXACTLY 31 bytes long
  488. ; (29 bytes of text plus the CR,LF equals 31) or you will be CERTAIN to
  489. ; have problems with the double column formatting later on in the program.
  490. ;
  491. MAXTYP:    DB    'W'    ; Letter of highest category you will support.
  492.  
  493. KNDTBL:    DB    '  A) - BBS Lists, PC Pursuit ',CR,LF
  494.     DB    '  B) - CP/M Modem Program    ',CR,LF
  495.     DB    '  C) - CP/M Utility          ',CR,LF
  496.     DB    '  D) - CP/M Lbr, Ark, Catalog',CR,LF
  497.     DB    '  E) - CP/M Plus Specific    ',CR,LF
  498.     DB    '  F) - CP/M Games & Humor    ',CR,LF
  499.     DB    '  G) - CP/M Wordprocessing   ',CR,LF
  500.     DB    '  H) - CP/M Printer Utility  ',CR,LF
  501.     DB    '  I) - CP/M OS Enhancement   ',CR,LF
  502.     DB    '  J) - CP/M BBS Software     ',CR,LF
  503.     DB    '  K) - CP/M Assemb/Disassemb ',CR,LF
  504.     DB    '  L) - CP/M Language (Other) ',CR,LF
  505.     DB    '  M) - Turbo Pascal          ',CR,LF
  506.     DB    '  N) - dBase & Database      ',CR,LF
  507.     DB    '  O) - "C"                   ',CR,LF
  508.     DB    '  P) - Text & Information    ',CR,LF
  509.     DB    '  Q) - DOS Modem Program     ',CR,LF
  510.     DB    '  R) - DOS BBS Software      ',CR,LF
  511.     DB    '  S) - DOS Language          ',CR,LF
  512.     DB    '  T) - DOS Assemb/Disassemb  ',CR,LF
  513.     DB    '  U) - DOS Lbr, Arc, Catalog ',CR,LF
  514.     DB    '  V) - DOS Wordprocessing    ',CR,LF
  515.     DB    '  W) - DOS Printer Utility   ',CR,LF
  516.     DB    '  X) - DOS Games & Humor     ',CR,LF
  517.     DB    '  Y) - DOS Application       ',CR,LF
  518.     DB    '  Z) - DOS Utility           ',CR,LF
  519.     DB    0        ; leave the table terminator alone.
  520.  
  521. ;
  522. ;-------------------------------------------------------------------------;
  523. ; Upload Routing Table                              |
  524. ;-------------------------------------------------------------------------;
  525. ;
  526. ; If ASKAREA is set YES, then set these areas up to match the message text
  527. ; in KNDTBL: above.  Note that PRIVATE uploads may be sent to a different
  528. ; drive as well as a different user area.  Each entry is expressed as
  529. ; 'drive letter',user area.  Simply set MAXTYP above to the highest
  530. ; letter choice supported.  (Do NOT comment out any of the following
  531. ; storage bytes).
  532. ;
  533. ;                 _________
  534. ;   NOTE:        /    A    \    <--- 'A' Corresponds to category 'A' above
  535. ;        'A',1,'B',15,
  536. ;                 \ /   \ /
  537. ;  Normal upload --+     |
  538. ;  Private upload -------+
  539. ;
  540.  
  541. TYPTBL:
  542. ;          _________     _________     _________     _________
  543. ;         /    A    \   /    B    \   /    C    \   /    D    \
  544.     DB    'B',1,'F',15, 'B',0,'F',15, 'B',2,'F',15, 'B',4,'F',15
  545. ;          _________     _________     _________     _________
  546. ;         /    E    \   /    F    \   /    G    \   /    H    \
  547.     DB    'B',5,'F',15, 'B',6,'F',15, 'C',0,'F',15, 'C',1,'F',15
  548. ;          _________     _________     _________     _________
  549. ;         /    I    \   /    J    \   /    K    \   /    L    \
  550.     DB    'C',2,'F',15, 'C',3,'F',15, 'A',1,'F',15, 'A',5,'F',15
  551. ;          _________     _________     _________     _________
  552. ;         /    M    \   /    N    \   /    O    \   /    P    \
  553.     DB    'A',2,'F',15, 'A',3,'F',15, 'A',4,'F',15, 'A',6,'F',15
  554. ;          _________     _________     _________     _________
  555. ;         /    Q    \   /    R    \   /    S    \   /    T    \
  556.     DB    'E',0,'F',15, 'E',1,'F',15, 'E',2,'F',15, 'E',3,'F',15
  557. ;          _________     _________     _________     _________
  558. ;         /    U    \   /    V    \   /    W    \   /    X    \
  559.     DB    'F',0,'F',15, 'F',1,'F',15, 'F',2,'F',15, 'F',3,'F',15
  560. ;          _________     _________
  561. ;         /    Y    \   /    Z    \
  562.     DB    'G',0,'F',15, 'H',0,'F',15
  563.  
  564. ;
  565. ;=========================================================================;
  566. ;>>>>>>>>>>>>>>  DO NOT CHANGE ANYTHING BEYOND THIS POINT  <<<<<<<<<<<<<<<|
  567. ;=========================================================================;
  568. ;-------------------------------------------------------------------------;
  569. ; Version Identification                          |
  570. ;-------------------------------------------------------------------------;
  571. ;
  572. ; If/when INSTALL is first ran, it checks these next 3 bytes to make sure
  573. ; it is installing the proper version of ZMD.COM.  If these bytes do not
  574. ; match,  the INSTALL procedure will abort.  (Don't change this one)
  575. ;
  576. INSVERS:DB    '150'    ; Don't change this one
  577.  
  578. ;
  579. ;-------------------------------------------------------------------------;
  580. ; User Definable Storage Bytes                          |
  581. ;-------------------------------------------------------------------------;
  582. ;
  583. ; If you make changes to the configuration table, make them here.  You
  584. ; are allowed 2 bytes for switches, or storage for an address, etc.  Any
  585. ; changes before this point and ZINSTL will not run.
  586. ;
  587. SPARE1:    DB    0    ; User definable storage
  588. SPARE2:    DB    0
  589.  
  590. ;
  591. ;-------------------------------------------------------------------------;
  592. ; Clock/Date Reader Code                          |
  593. ;-------------------------------------------------------------------------;
  594. ;
  595. ; Install your clock/date reader code here. RTCTIM gets called to retrieve
  596. ; the current date and time.  All values must be stored in binary form.
  597. ; A 6 byte clock buffer called TIMBUF can be used as a work area.  Call
  598. ; BCDBIN to convert your BCD (Binary Coded Decimal) value in A to binary
  599. ; value in A.  Delete all ';<=' lines; after installing your custom
  600. ; routine.
  601. ;
  602.     ORG    4FEH        ; Allow 130 bytes for RTC insert
  603. ;
  604. RTCTIM::LD    A,0        ;<= Delete lines if reader code installed
  605.     LD    (MONTH),A    ;<= Current month  (1-12)
  606.     LD    (DAY),A        ;<= Current date   (1-31)
  607.     LD    (YEAR),A    ;<= Current year   (0-99)
  608.     LD    (MINUTE),A    ;<= Current minute (0-59)
  609.     LD    (HOUR),A    ;<= Current hour   (0-23)
  610.     RET
  611.  
  612. ;
  613. ;-------------------------------------------------------------------------;
  614. ; Input/Output Patch Area                          |
  615. ;-------------------------------------------------------------------------;
  616.  
  617.     ORG    580H    ; Modem routine starts here
  618.  
  619. CONOUT:    JP    0000H    ; BIOS local console output routine address
  620. MINIT:    JP    0000H    ; Startup initialization routine
  621. UNINIT:    JP    0000H    ; Exit uninitialize routine
  622. MDOUTP:    JP    0000H    ; Send character out modem
  623. MDCARCK:JP    0000H    ; Test for carrier
  624. MDINP:    JP    0000H    ; Get character from modem
  625. MDINST:    JP    0000H    ; Check receive ready
  626. MDOUTST:JP    0000H    ; Check send ready
  627.  
  628.     ORG    600H    ; Allow 128 bytes for I/O overlay
  629.  
  630. ;
  631. ; Overlay ends here
  632. ;
  633.