home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / nubye / nukmd111.ark / NUKMD111.HED < prev    next >
Text File  |  1987-02-03  |  28KB  |  720 lines

  1. ;
  2. ;                NUKMD  v1.11
  3. ;                  02/04/87
  4. ;
  5. ;        - REMOTE CP/M FILE TRANSFER PROGRAM -
  6. ;            For use with CP/M 2 or CP/M 3
  7. ;
  8. ;    NOTE: Read ASSEMBLR.DOC for notes about compatible assemblers.
  9. ;
  10. ; NUKMD provides full support for most popular BBS software (i.e. MBBS, Metal,
  11. ; Oxgate, PBBS, RBBS, ZBBS and more) and communications software (i.e. IMP,
  12. ; MDM7, MEX, MEX+, PROCOMM, QMODEM, Pro-Yam and more).    In addition to being
  13. ; easy to install, you will find a number of features within NUKMD which are
  14. ; not available in other RCP/M file transfer utilities.
  15. ;
  16. ; ---------
  17. ; IMPORTANT
  18. ; ---------
  19. ;
  20. ; To see what recent/past revisions have taken place within NUKMD, read
  21. ; the NUKMD.HIS file.  NUKMD.HLP may be placed online for users to download,
  22. ; as it gives a bit more detail about NUKMD usage/commands than the shorter
  23. ; help examples given by NUKMD itself.
  24. ;
  25. ; NUKMD is the result of no one authorship, but many hundreds of people
  26. ; across the country.  The source code is fully commented to aid those of
  27. ; you who wish to customize/modify it or who are trying to understand how
  28. ; programs such as this work.
  29. ;
  30. ; If you have changes that you feel should be included in future releases,
  31. ; please forward them me, or to one of the contact boards listed below.
  32. ; All submitted modifications/suggestions will be considered, whether they
  33. ; are from an individual or a group.  FULL credit will also be given for
  34. ; such code as is incorporated into future versions (i.e. system name and
  35. ; number, as well as the person's name).  While I try and mention in the
  36. ; NUKMD.HIS file when a suggestion or bug report was made, I don't always
  37. ; remember the numerous verbal/chat comments (i.e. "why not make it do this",
  38. ; or "I had a problem with this", etc) -- thanks in advance.  If you submit
  39. ; actual code for consideration, you will get full credit if any of it is
  40. ; used.
  41. ;
  42. ; New versions will be released at no more often than one-month intervals,
  43. ; unless some horrendous bug crops up.    Release dates are set for the 1st
  44. ; and/or 15th of each month -- if nothing comes out on the 1st, then you
  45. ; may check back on the 15th.
  46. ;
  47. ; Special thanks go to the "beta test sites", as their help (along with
  48. ; reports from users and fellow sysops) keeps NUKMD/NUBYE quality utilities.
  49. ;
  50. ;                    - Tom Brady
  51. ;                      Decibel PBBS
  52. ;                      300/1200/2400
  53. ;                      *(404) 288-6858
  54. ;                      P.O. Box 1773
  55. ;                      Decatur, GA  30031
  56. ;
  57. ;
  58. ; Other Contact/Beta-Test Systems:
  59. ;
  60. ;    Terry Carroll            Richard Gerhart
  61. ;    Poor Man's Z-NODE (#56)     Central NJ PBBS/RCPM
  62. ;    300/1200/2400            300/1200/2400
  63. ;    (817) 283-9167            *(201) 521-5194
  64. ;
  65. ;    Gary Inman            Barry Miller
  66. ;    West Los Angeles RCP/M        L.I. Epson RCP/M
  67. ;    300/1200/2400            300/1200/2400
  68. ;    *(213) 838-9229         (516) 536-1546
  69. ;
  70. ; (*PC Pursuit area)
  71. ;
  72. ; ==================
  73. ; Selecting options:
  74. ; ==================
  75. ;
  76. ; Normally, the EQUates marked in the comments filed with an ';*' are
  77. ; left as pre-set.  All others may be set to customize for your system needs.
  78. ;
  79. ; =====
  80. ;
  81. NO    EQU    0
  82. YES    EQU    NOT NO
  83. ;
  84. ; =====
  85. ;
  86. ; If using Microsoft's MACRO-80 macroassembler (referred to as M80),
  87. ; set M80ASM to YES.
  88. ;
  89. USEM80    EQU    no
  90. ;
  91. ; ======================================
  92. ; Conditional equates - change to match
  93. ; your system, then assemble.
  94. ; ======================================
  95. ;
  96. MHZ    EQU    4    ; Clock speed, use integer (2,4,5,8, etc.)
  97. WHEEL    EQU    3EH    ; Location of ZCPR wheel byte (normally 3EH - but
  98.             ; ZCPR3 systems should use SHOW.COM to verify address)
  99. MBBS    EQU    no    ; Yes, running MBBS message base
  100. PBBS    EQU    yes    ; Yes, running PBBS message base
  101. ;
  102. ; =====
  103. ;
  104. ; Many MS-DOS .ARChive files are released by their authors with specific
  105. ; comments about leaving them intact, so you may wish to leave ARCEXT set
  106. ; to NO.  Regardless of how you set this, CP/M .ARK file members may be
  107. ; extracted singly via the 'A' option.
  108. ;
  109. ARCEXT    EQU    yes    ; Yes, allow .ARC (MS-DOS) member extractions
  110. ;
  111. ; =====
  112. ;
  113. ; A user may upload up to 256 files (0-255) using batch mode.  Some sysops
  114. ; may wish to place a limit on the number of files which a user may upload
  115. ; in one single batch, hence BLIMIT.  Since NUKMD will not accept any files
  116. ; once BLIMIT is reached, the user is informed of this limit whenever a
  117. ; batch upload is initiated.
  118. ;
  119. BLIMIT    EQU    50    ;*Number of files allowed in batch mode (255 max)
  120. ;
  121. ; =====
  122. ;
  123. ; Normal disk systems can transfer 16k from computer to disk in 2-3-4
  124. ; seconds and less.  Some very slow 5-1/4" floppy systems (such as North
  125. ; Star) may take up to 20-30 seconds to transfer 16k.  This would cause
  126. ; several timeouts at 10 seconds each.    If you experience any timeouts,
  127. ; change the BUFSIZ to somethng smaller, perhaps 8k or even 4k.
  128. ;
  129. BUFSIZ    EQU    16    ;*File transfer buffer size in Kbytes
  130. ;
  131. ; =====
  132. ;
  133. ; If using MBBS (with MFMSG.COM) and you wish to have upload descriptions
  134. ; stuffed directly into your message base (instead of using the normal
  135. ; FOR description file as above with DESCRIB), you should set MSGDSC to YES.
  136. ; The drive/user areas will be those you set for private uploads at the
  137. ; equates PRDRV/PRUSR, so you may ignore the two equates DRIVE/USER
  138. ; when using this function.  This feature works for normal file uploads,
  139. ; as well as single/multiple batch file uploads.  The format used in the
  140. ; description header is in keeping with existing MBBS utilities which can
  141. ; list just the NEW UPLOAD: messages.
  142. ;
  143. ; (NOTE: Users must have Upload and Write access to use this -- if you
  144. ;     restrict new users from BBS entry, but allow uploads just make
  145. ;     sure to have User Record #1 set for WRITE access.)
  146. ;
  147. MSGDSC    EQU    no    ; Yes, asks for a description of each file uploaded,
  148.             ;  then writes same into your message base.
  149. ;
  150. ; You may set both DESCRIB/MSGDSC to NO, but only one to YES.
  151. ;
  152. DESCRIB    EQU    yes    ; Yes, asks for a description of uploaded file(s)
  153. DRIVE    EQU    'C'    ; FOR file drive area
  154. USER    EQU    15    ; FOR file user area
  155.             ;
  156. WRAP    EQU    64    ; Column position for automatic line wrap during
  157.             ;  description entry by user.  Set to 72, if you
  158.             ;  wish to disable wrap mode.
  159.             ;
  160. PUPOPT    EQU    yes    ; Yes, allows any user accessible d/u area file
  161.             ;  upload placement and does not request a
  162.             ;  description (batch and/or single, via the 'RW'
  163.             ;  command).  On MBBS and PBBS, the user access
  164.             ;  flag is checked (i.e. "privileged" users in MBBS
  165.             ;  and Access Levels 8 & 9 in PBBS), rather than the
  166.             ;  WHEEL.  On all other systems, this feature is
  167.             ;  regulated by the WHEEL byte.  Uploads of this
  168.             ;  type are flagged as private (won't display with
  169.             ;  the NEW command), yet are logged for sysop viewing
  170.             ;  in the .LOG file.
  171.             ;  (See RESUSR description, below)
  172. DESWAIT    EQU    4    ; Minutes to wait for start of file description
  173.             ;  before aborting and logging off the caller.
  174. ; =====
  175. ;
  176. ; NOTE: Set ZCPR to YES for private systems not using ZCPR so the file
  177. ;    transfer times will match the incoming modem speed.
  178. ;
  179. ZCPR    EQU    yes    ; Yes, if using N/ZCPR/1/2/3 or ZCMD/1/2 with
  180.             ;  WHEEL byte implemented.  If Yes, .NDR, .RCP
  181.             ;  and .SYS files not received. (Protects ZCPR.)
  182. ;
  183. ; If ZCPR is YES, you will normally leave the next four equates set YES.
  184. ; If ZCPR is NO, you will probably want to leave CHGNAM set YES and the
  185. ; other three equates set NO for some security.
  186. ;    Note: Wildcard designators are always allowed for batch downloads,
  187. ;       regardless of SNDWILD setting.
  188. ;
  189. CHGNAM    EQU    YES    ; Yes, change .COM/.PRL extensions to .OBJ/.OPB
  190.             ;  when WHEEL is off
  191. SNDCOM    EQU    YES    ; Yes, send .COM files when WHEEL is on
  192. SNDWILD    EQU    YES    ; Yes, allow wildcards (? and *) when WHEEL is on
  193. SNDSYS    EQU    YES    ; Yes, send $SYS files when WHEEL is on
  194. ;
  195. ; =====
  196. ;
  197. ; Allows drive/user area to be specified for downloading.  If using ZCPR
  198. ; set USEMAX to  YES and ignore MAXDRV/MAXUSR.
  199. ;
  200. USEMAX    EQU    yes    ; Yes if using ZCPR for DRIVMAX & USRMAX values
  201.             ;  No to use MAXDRV and MAXUSR specified next
  202. ;
  203. ; If USEMAX above is YES for automatic ZCPR setting, the following two
  204. ; are not used and may be ignored.  If set NO, the following should
  205. ; be set.
  206. ;
  207. MAXDRV    EQU    2    ; Number of disk drives used
  208. MAXUSR    EQU    9    ; Maximum 'SEND' user allowed
  209. ;
  210. ; =====
  211. ;
  212. ; Selects the drive/user area for uploading private files for the SYSOP.
  213. ; This permits experimental files, replacement files and proprietary
  214. ; programs to be sent to the SYSOP.  This is also the d/u area where
  215. ; message files are uploaded, if MSGFIL is set YES.
  216. ;
  217. PRDRV    EQU    'J'    ; Private drive for SYSOP to receive file
  218. PRUSR    EQU    15    ; Private user area for SYSOP to receive file
  219. ;
  220. ; =====
  221. ;
  222. ; Selects the drive/user area for downloading private files from the
  223. ; SYSOP. This permits him to put a special file in this area, then leave
  224. ; a private note to that person mentioning the name of the file and to
  225. ; use "SP".  Although anybody could download that program, they don't
  226. ; know what (if any) files are there.  A high degree of security exists,
  227. ; while the SYSOP still has the ability to make special files available.
  228. ; Thus any person can be a temporary "privileged user".  (Wildcards and
  229. ; batch are not allowed, for what should be obvious reasons.)
  230. ;
  231. SPLDRV    EQU    'E'    ; Special drive area for downloading SYSOP files
  232. SPLUSR    EQU    15    ; Special user area for downloading SYSOP files
  233. ;
  234. ; NOTE: If using the same drive for SPLDRV and PRDRV, it's a good idea
  235. ;    to NOT set SPLUSR and PRUSR the same.  Otherwise, files sent to
  236. ;    your private area can be picked up by anyone who happens to know
  237. ;    the filename (all depends on how secure you want things).....
  238. ;
  239. ; Set ALTSEC to YES if you wish to have a special secondary download area.
  240. ; Obvious applications would be for restricted access systems which might
  241. ; contain a section for both full access as well as non-registered users.
  242. ; With the "NUKMD SS filename" command, non-registered users are able to
  243. ; download, but only from your designated alternate area.
  244. ;
  245. ALTSEC    EQU    yes    ; Yes, use a secondary private download area
  246. ALTDRV    EQU    'E'    ; Alternate special download drive
  247. ALTUSR    EQU    0    ; Alternate special download user area
  248. ;
  249. ; =====
  250. ;
  251. ; When SETAREA is YES, NUKMD will force uploads to be placed on the
  252. ; drive/user area(s) you predetermine at DRVx/USRx, below.  Note, you now
  253. ; are able to define up to 30 different drive/user combinations (if you
  254. ; have the disk space or desire).  MENU1:, MENU2: and MENU3: contain the
  255. ; file category info which should be in the same order as the DRVx/USRx
  256. ; settings.  Remember -- if DESCRIB is YES, the category info in the
  257. ; menus is used in your FOR file, so you might wish to modify it to
  258. ; include the drive/user area where the files are kept.
  259. ;
  260. ; The default settings use only 2 drive/user areas and take advantage
  261. ; of only the first two menu categories (MENU1: for CP/M and MENU2: for
  262. ; MS-DOS) -- customize to suit your system requirements and set XTRA2 to
  263. ; YES to use the full 3-menu 30 category setup.
  264. ;
  265. ; EXAMPLE:  You want only 1 drive/user area for new uploads, yet would
  266. ; like your FOR file to contain more helpful category information.  All
  267. ; you have to do is set XTRA1/2 to YES, leave MAXDU1/2/3 at '9', set all
  268. ; DRVx/USRx's to the same drive/user and customize MENU1:/2:/3: as you
  269. ; wish.  You now have 30 upload categories from which to have your users
  270. ; choose.
  271. ;
  272. ; Set ALTMENU to YES, *if* you don't wish to use separate menus for the
  273. ; drive/user/category areas you've set (i.e. MENU1:/2:/3:).  By choosing
  274. ; this option, the user chooses a category by pressing A-Z which limits
  275. ; you to 26 d/u categories, but displays only one screen (MENU4:).  Modify
  276. ; this menu to suit your needs -- also, read the note following MENU4:, if
  277. ; you decide to use this option.  KINDxx (if DESCRIB is YES) and DRVx/USRx
  278. ; areas must still be set up properly....
  279. ;
  280. ; NOTE: Setting these to non-accessible areas will allow you to preview
  281. ; new uploads before you place them up for public download.
  282. ;
  283. SETAREA    EQU    yes    ; Yes, if using designated area(s) for upload
  284. USEMENU    EQU    yes    ; Yes, use "menu" mode for uploads
  285.             ;  No, use only one d/u area as set at DRV0/USR0
  286. ALTMENU    EQU    no    ; Yes, use one menu with 26 choices (A-Z)
  287.             ;  No, for up to 3 menus and up to 30 choices
  288. ;
  289. DRV0    EQU    'I'    ; Drive area #1 (single or multi upload area support)
  290. USR0    EQU    0    ; User area  #1 (single or multi upload area support)
  291. ;
  292. MAXDU1    EQU    '9'    ; Set for maximum # of *extra* drive/user/category
  293.             ;   options used for Menu #1.
  294.             ;   NOTE: You must alter MENU1: terminator if <9 set.
  295. DRV1    EQU    'I'    ; Drive area #2
  296. USR1    EQU    0    ; User area  #2
  297. DRV2    EQU    'I'    ; Drive area #3
  298. USR2    EQU    0    ; User area  #3
  299. DRV3    EQU    'I'    ;    "
  300. USR3    EQU    0    ;    "
  301. DRV4    EQU    'I'    ;    "
  302. USR4    EQU    0    ;    "
  303. DRV5    EQU    'I'    ;    "
  304. USR5    EQU    0    ;    "
  305. DRV6    EQU    'I'    ;    "
  306. USR6    EQU    0    ;    "
  307. DRV7    EQU    'I'    ;    "
  308. USR7    EQU    0    ;    "
  309. DRV8    EQU    'I'    ;    "
  310. USR8    EQU    0    ;    "
  311. DRV9    EQU    'I'    ; Drive area #10
  312. USR9    EQU    0    ; User area  #10
  313. ;
  314. XTRA1    EQU    yes    ; Yes, allows up to 10 extra drive/user options
  315. DRV10    EQU    'J'    ; Drive area #11
  316. USR10    EQU    0    ; User area  #11
  317. ;
  318. MAXDU2    EQU    '9'    ; Set for maximum # of *extra* drive/user/category
  319.             ;   options used for Menu #2 (if XTRA1 is YES).
  320.             ;   NOTE: You must alter MENU2: terminator if <9 set.
  321. DRV11    EQU    'J'    ; Drive area #12
  322. USR11    EQU    0    ; User area  #12
  323. DRV12    EQU    'J'    ; Drive area #13
  324. USR12    EQU    0    ; User area  #13
  325. DRV13    EQU    'J'    ;    "
  326. USR13    EQU    0    ;    "
  327. DRV14    EQU    'J'    ;    "
  328. USR14    EQU    0    ;    "
  329. DRV15    EQU    'J'    ;    "
  330. USR15    EQU    0    ;    "
  331. DRV16    EQU    'J'    ;    "
  332. USR16    EQU    0    ;    "
  333. DRV17    EQU    'J'    ;    "
  334. USR17    EQU    0    ;    "
  335. DRV18    EQU    'J'    ;    "
  336. USR18    EQU    0    ;    "
  337. DRV19    EQU    'J'    ; Drive area #20
  338. USR19    EQU    0    ; User area  #20
  339. ;
  340. XTRA2    EQU    no    ; Yes, allows up to 10 extra drive/user options
  341. DRV20    EQU    'J'    ; Drive area #21
  342. USR20    EQU    0    ; User area  #21
  343. ;
  344. MAXDU3    EQU    '5'    ; Set for maximum # of *extra* drive/user/category
  345.             ;   options used for Menu #3 (if XTRA2 is YES).
  346.             ;   NOTE: You must alter MENU3: terminator if <9 set.
  347. DRV21    EQU    'J'    ; Drive area #22
  348. USR21    EQU    0    ; User area  #22
  349. DRV22    EQU    'J'    ; Drive area #23
  350. USR22    EQU    0    ; User area  #23
  351. DRV23    EQU    'J'    ;    "
  352. USR23    EQU    0    ;    "
  353. DRV24    EQU    'J'    ;    "
  354. USR24    EQU    0    ;    "
  355. DRV25    EQU    'J'    ;    "
  356. USR25    EQU    0    ;    "
  357. DRV26    EQU    'B'    ;    "
  358. USR26    EQU    0    ;    "
  359. DRV27    EQU    'B'    ;    "
  360. USR27    EQU    0    ;    "
  361. DRV28    EQU    'B'    ;    "
  362. USR28    EQU    0    ;    "
  363. DRV29    EQU    'B'    ; Drive area #30
  364. USR29    EQU    0    ; User area  #30
  365. ;
  366. ; =====
  367. ;
  368. ; File transfer logging options
  369. ;
  370. LOGCAL    EQU    yes    ; Yes, logs file transfers
  371. LOGDRV    EQU    'C'    ; Drive to place LOG file
  372. LOGUSR    EQU    15    ; User area to put LOG file
  373. LASTDRV    EQU    'C'    ; Drive 'LASTCALR???'file is on
  374. LASTUSR    EQU    15    ; User area of 'LASTCALR???' file
  375. CPM3    EQU    NO    ; Yes if using CP/M 3.0 and LOGCAL is Yes
  376. LCNAME    EQU    1    ; Column # where the caller's name starts in
  377.             ;  LASTCALR, normally column 1. (MBBS = 12)
  378. ; =====
  379. ;
  380. ; Start of TIMEON area
  381. ;
  382. CLOCK    EQU    yes    ; If YES, you must have clock code installed in
  383.             ;  NUBYE that sets RTCBUF with time/date and
  384.             ;  time-on-system.  Status and MXTIME are also
  385.             ;  picked up from NUBYE.
  386. DTOS    EQU    no    ; Yes to display "time on system" messages
  387. EDATE    EQU    NO    ;*Yes to show dd/mm/yy vice mm/dd/yy in .LOG/.SYS
  388. TIMEON    EQU    yes    ; Yes to police time-on-system with NUBYE
  389.             ;  (note: does not require clock for operation)
  390. ;
  391. ; NOTE: If ZCPR = YES and WHEEL byte is set, send time is unlimited.  If
  392. ;    TIMEON is YES, unlimited time is allowed if MAXMIN in NUBYE is 0.
  393. ;    Set CLOCK and TIMEON the same way in NUBYE and NUKMD.  Select your
  394. ;    preference and set MAXMIN in NUBYE (suggest 45 if CLOCK is NO).
  395. ;    See examples below:
  396. ;
  397. ;         TIME    300 BPS  1200 BPS 1k    2400 BPS 1k
  398. ;        ------    -------  ------------    ------------
  399. ;        30 min     48.7k      180k     200k     320k    380k
  400. ;        45 min     73.1k      270k     300k     480k    570k
  401. ;        60 min     97.5k      360k     400k     640k    760k
  402. ;
  403. CREDIT    EQU    yes    ; Yes to credit upload time to NUBYE's MXTIME
  404. ;
  405. LOGLDS    EQU    yes    ; Count number of up/down loads since login.
  406.             ;  Your BBS program can check UPLDS and DNLDS
  407.             ;  when user logs out and update either the
  408.             ;  user's file or a file for this purpose.
  409.             ;  You can either modify your BBS entry program
  410.             ;  to check the LASTCALR file before updating
  411.             ;  it and then update (risky), or make a sepa-
  412.             ;  rate program that NUBYE calls when logging
  413.             ;  off a user (preferred). (set YES for PBBS)
  414.             ;
  415.      IF    LOGLDS
  416. UPLDS    EQU    54H    ; Clear these values to Zero from your BBS pro-
  417. DNLDS    EQU    55H    ;  gram when somebody logs in.    NOTE:    Clear
  418.             ;  ONLY when a user logs in.  Not when he re-
  419.             ;  enters the BBS program for CP/M.
  420.      ENDIF
  421. ;
  422. ; end of TIMEON area
  423. ; ==================
  424. ;
  425. ; Special access flag and message file equates
  426. ;
  427. ; These equates are for upload/download restriction flags and the new
  428. ; message file upload and uploads description options supported by
  429. ; NUBYE/NUKMD.
  430. ;
  431. ; RESUSR allows support/restrictions for the following
  432. ; commands/functions:
  433. ;
  434. ;    RW            -- All systems (privileged uploads)
  435. ;    RM            -- MBBS (if MSGFIL is YES)
  436. ;    Uploads         -- MBBS
  437. ;    Downloads        -- MBBS and PBBS
  438. ;    Upload descriptions    -- MBBS (if MSGDSC is YES)
  439. ;
  440. ; All systems can take advantage of the "RW" command -- MBBS/PBBS systems
  441. ; via special restriction flags and all others via the WHEEL byte status.
  442. ;
  443. ; Only MBBS utilizes the special message file uploads (i.e. "RM") and
  444. ; upload descriptions support. MBBS is also the only system allowing
  445. ; upload restriction in general.
  446. ;
  447. ; MBBS and PBBS allow download restrictions.
  448. ;
  449. ; MBBS & PBBS sets NUBYE's LCPTR bit-mapped flag register to restrict
  450. ; user's ability to upload files, download files, and/or use the "RM"
  451. ; command to upload message files to your system, and/or the "RW" command
  452. ; for a "privileged" user upload.  NUKMD will inspect the LCPTR byte in
  453. ; NUBYE for the following flag data.
  454. ; (See NUBYE.HLP for complete description of the LCPTR bit-mapped flags).
  455. ;
  456. ;     Example for MBBS/PBBS:
  457. ;
  458. ;     BIT         ACTION
  459. ;      3    Message write access    (0 = NO, 1 = YES)  (MBBS)
  460. ;      5    Download access           (0 = NO, 1 = YES)  (MBBS/PBBS)
  461. ;      6    Upload access           (0 = NO, 1 = YES)  (MBBS)
  462. ;      7    Privileged user access  (0 = NO, 1 = YES)  (MBBS/PBBS)
  463. ;
  464. RESUSR    EQU    yes        ; Yes, to check for user restrictions
  465. ;
  466. ;
  467. ; Set MSGFIL to YES, if your system (i.e. MBBS) supports message file
  468. ; uploads with NUKMD's RM command.  With this command, a preformatted text
  469. ; file (containing one or more messages) may be uploaded.
  470. ;
  471. ;    Example:  KMD RM MSG.TXT  (note: any filename may be used)
  472. ;
  473. ; (When RESUSR is set YES, this function will only be performed when that
  474. ; user is allowed to write messages in the first place.)  NUKMD will place
  475. ; this MSG.TXT file on your private d/u area, then will force NUBYE to
  476. ; load/execute the special message file handler (i.e. MFMSG.COM).  This
  477. ; utility will append the data in the MSG.TXT file to your existing message
  478. ; file.
  479. ;
  480. ; (See the NUBYE.HLP file for more details on using this feature.)
  481. ;
  482. ; (NOTE: This does not have to be YES to take advantage of MSGDSC.)
  483. ;
  484. MSGFIL    EQU    no        ; Yes, you support message file uploads
  485. ;
  486. ; =====
  487. ;
  488. ; Set the next 6 equates to your clear screen requirements.  When set YES,
  489. ; this will clear your screen between each file received during a multiple
  490. ; batch download.
  491. ;
  492. CLRSCR    EQU    yes        ; Yes, you want clear screen support
  493.                 ;  between batch file uploads.
  494. CLRCH1    EQU    1AH        ; Set these for your clear screen sequence
  495. CLRCH2    EQU    0        ;  ( 1AH = ^Z -- ok for many CP/M systems)
  496. CLRCH3    EQU    0
  497. CLRCH4    EQU    0
  498. CLRCH5    EQU    0
  499. CLRCH6    EQU    0
  500. ;
  501. ; =====
  502. ;
  503. ; SYSOP may use NSWP or TAG and set the high bit of F1 to prevent send-
  504. ; ing large .LBR files.  The 'L' option may still be used to send only
  505. ; individual member files from the library.  Rarely set to YES since the
  506. ; TIMEON equate can limit people to a maximum download time, even with
  507. ; no clock (compares time to download versus the TIMEON value in NUBYE.)
  508. ;
  509. TAGLBR    EQU    NO    ;*Yes to prevent sending tagged library files
  510. ;
  511. ; =====
  512. ;
  513. ; Some modems will either go onhook immediately after carrier loss or
  514. ; can be set to wait a bit.  A good value with the Smartmodem is five
  515. ; seconds, since it catches all "call forwarding" breaks.  Not all is
  516. ; lost after timeout in NUKMD - NUBYE will still wait some more, but the
  517. ; chance of someone slipping in is less now.
  518. ;
  519. TIMOUT    EQU    1    ;*Seconds to abort after carrier loss
  520. ;
  521. ; =====
  522. ;
  523. ; NOTE: Check you BBS system documentation -many modern systems don't
  524. ;    need WRTLOC.  If unsure, leave it set NO.
  525. ;
  526. WRTLOC    EQU    NO    ;*Yes, set/reset WRTLOC so NUBYE won't hang up
  527. ;
  528. ; ==========================
  529. ; END OF SYSTEM EQUATE SETUP
  530. ; ==========================
  531. ;
  532.      IF    USEM80
  533.     ASEG            ; M80 needs this
  534.      ENDIF
  535. ;
  536.     ORG    100H
  537.     JMP    BEGIN
  538. ;
  539. ;
  540. ; Private/setarea upload disk/user areas, etc
  541. ;
  542. ; Placed here at the start so they can be easily patched in the .COM
  543. ; file using DDT without needing to reassemble.  All references are
  544. ; made to these locations in memory and not to PRDRV/PRUSR, DRV/USR
  545. ; or WRAP equates directly.
  546. ;
  547. XPRDRV:    DB    PRDRV        ; Private uploads go to this drive/user
  548. XPRUSR:    DB    PRUSR
  549. XWRAP:    DB    WRAP        ; Column where desc line wrap occurs
  550. ;
  551.      IF    SETAREA
  552. XDRV:    DB    DRV0        ; Uploads go to this drive/user
  553. XUSR:    DB    USR0        ; (if SETAREA is YES)
  554. XDRV1:    DB    DRV0
  555. XUSR1:    DB    USR0
  556.      ENDIF
  557. ;
  558.      IF    SETAREA    AND USEMENU
  559. DUTBL1:    DB    DRV1,USR1,DRV2,USR2,DRV3,USR3,DRV4,USR4
  560.     DB    DRV5,USR5,DRV6,USR6,DRV7,USR7,DRV8,USR8,DRV9,USR9
  561.      ENDIF
  562. ;
  563.      IF    SETAREA    AND USEMENU AND    XTRA1
  564. XDRV2:    DB    DRV10        ; Alternate drive
  565. XUSR2:    DB    USR10        ; Alternate user
  566. ;
  567. DUTBL2:    DB    DRV11,USR11,DRV12,USR12,DRV13,USR13,DRV14,USR14
  568.     DB    DRV15,USR15,DRV16,USR16,DRV17,USR17,DRV18,USR18,DRV19,USR19
  569.      ENDIF
  570. ;
  571.      IF    SETAREA    AND USEMENU AND    XTRA2
  572. XDRV3:    DB    DRV20        ; Alternate drive
  573. XUSR3:    DB    USR20        ; Alternate user
  574. ;
  575. DUTBL3:    DB    DRV21,USR21,DRV22,USR22,DRV23,USR23,DRV24,USR24
  576.     DB    DRV25,USR25,DRV26,USR26,DRV27,USR27,DRV28,USR28,DRV29,USR29
  577.      ENDIF
  578. ;
  579. ; -----
  580. ;
  581. ; These may be named directories, file descriptions, etc -- the user will
  582. ; be asked to choose which category is to be used for the upload.  Change
  583. ; as desired if this list is not suitable -- make sure to move the '$' up
  584. ; to terminate the options as required.  Remember, if DESCRIB is YES, these
  585. ; headings are placed in your FOR file.
  586. ;
  587. MENU1:     IF    (DESCRIB OR SETAREA) AND USEMENU AND (NOT ALTMENU)
  588.     DB    CR,LF
  589.      ENDIF
  590. ;
  591.      IF    (DESCRIB OR SETAREA) AND USEMENU AND XTRA1 AND (NOT ALTMENU)
  592.     DB    LF
  593.     DB    '       << Upload Menu #1 >>',CR,LF,LF
  594.     DB    '  B  --> Jump to MENU #2',CR,LF    ; ** Leave 'B'
  595.      ENDIF
  596. ;
  597.      IF    (DESCRIB OR SETAREA) AND USEMENU AND XTRA2 AND (NOT ALTMENU)
  598.     DB    '  C  --> Jump to MENU #3',CR,LF    ; ** Leave 'C'
  599.      ENDIF
  600. ;
  601.      IF    (DESCRIB OR SETAREA) AND USEMENU AND (NOT ALTMENU)
  602.     DB    '  Q  --> Quit/Abort',CR,LF,LF        ; ** Leave 'Q'
  603.      ENDIF
  604. ;
  605.      IF    DESCRIB    OR SETAREA
  606. KIND0:    DB    '  0) --> System Utility     (CP/M)',CR,LF
  607. KIND1:    DB    '  1) --> BBS Use            (CP/M)',CR,LF
  608. KIND2:    DB    '  2) --> Word Processing    (CP/M)',CR,LF
  609. KIND3:    DB    '  3) --> Data Base          (CP/M)',CR,LF
  610. KIND4:    DB    '  4) --> BASIC Source Code  (CP/M)',CR,LF
  611. KIND5:    DB    '  5) --> Pascal             (CP/M)',CR,LF
  612. KIND6:    DB    '  6) --> C                  (CP/M)',CR,LF
  613. KIND7:    DB    '  7) --> Game               (CP/M)',CR,LF
  614. KIND8:    DB    '  8) --> Communications     (CP/M)',CR,LF
  615. KIND9:    DB    '  9) --> Miscellaneous      (CP/M)',CR,LF
  616.     DB    '$'
  617.      ENDIF
  618. ;
  619.      IF    (DESCRIB OR SETAREA) AND USEMENU AND XTRA1 AND (NOT ALTMENU)
  620. MENU2:    DB    CR,LF,LF,LF
  621.     DB    '       << Upload Menu #2 >>',CR,LF,LF
  622.     DB    '  A  --> Jump to MENU #1',CR,LF    ; ** Leave 'A'
  623.      ENDIF
  624. ;
  625.      IF    (DESCRIB OR SETAREA) AND USEMENU AND XTRA2 AND (NOT ALTMENU)
  626.     DB    '  C  --> Jump to MENU #3',CR,LF    ; ** Leave 'C'
  627.      ENDIF
  628. ;
  629.      IF    (DESCRIB OR SETAREA) AND USEMENU AND XTRA1 AND (NOT ALTMENU)
  630.     DB    '  Q  --> Quit/Abort',CR,LF,LF        ; ** Leave 'Q'
  631.      ENDIF
  632. ;
  633.      IF    (DESCRIB OR SETAREA) AND USEMENU AND (XTRA1 OR ALTMENU)
  634. KIND0B:    DB    '  0) --> Word Processing   (MS-DOS)',CR,LF
  635. KIND1B:    DB    '  1) --> Data Base         (MS-DOS)',CR,LF
  636. KIND2B:    DB    '  2) --> Spreadsheet       (MS-DOS)',CR,LF
  637. KIND3B:    DB    '  3) --> Communications    (MS-DOS)',CR,LF
  638. KIND4B:    DB    '  4) --> Game              (MS-DOS)',CR,LF
  639. KIND5B:    DB    '  5) --> BASIC             (MS-DOS)',CR,LF
  640. KIND6B:    DB    '  6) --> Pascal            (MS-DOS)',CR,LF
  641. KIND7B:    DB    '  7) --> System Utility    (MS-DOS)',CR,LF
  642. KIND8B:    DB    '  8) --> BBS Use           (MS-DOS)',CR,LF
  643. KIND9B:    DB    '  9) --> Miscellaneous     (MS-DOS)',CR,LF
  644.     DB    '$'
  645.      ENDIF
  646. ;
  647.      IF    (DESCRIB OR SETAREA) AND USEMENU AND XTRA2 AND (NOT ALTMENU)
  648. MENU3:    DB    CR,LF,LF,LF
  649.     DB    '       << Upload Menu #3 >>',CR,LF,LF
  650.     DB    '  A  --> Jump to MENU #1',CR,LF    ; ** Leave 'A'
  651.     DB    '  B  --> Jump to MENU #2',CR,LF    ; ** Leave 'B'
  652.     DB    '  Q  --> Quit/Abort',CR,LF,LF        ; ** Leave 'Q'
  653.      ENDIF
  654. ;
  655.      IF    (DESCRIB OR SETAREA) AND USEMENU AND (XTRA2 OR ALTMENU)
  656. KIND0C:    DB    '  0) --> open                      ',CR,LF
  657. KIND1C:    DB    '  1) --> open                      ',CR,LF
  658. KIND2C:    DB    '  2) --> open                      ',CR,LF
  659. KIND3C:    DB    '  3) --> open                      ',CR,LF
  660. KIND4C:    DB    '  4) --> open                      ',CR,LF
  661. KIND5C:    DB    '  5) --> open                      ',CR,LF
  662. KIND6C:    DB    '  6) --> open                      ',CR,LF
  663. KIND7C:    DB    '  7) --> open                      ',CR,LF
  664. KIND8C:    DB    '  8) --> open                      ',CR,LF
  665. KIND9C:    DB    '  9) --> open                      ',CR,LF
  666.     DB    '$'
  667.      ENDIF
  668. ;
  669. ; This is the alternate upload menu for those who wish to have all
  670. ; items listed on one screen for user selection.  Note: The categories
  671. ; and/or other data listed here are *not* used in the FOR file -- if
  672. ; DESCRIB is YES, you *must* make sure that all selections offered in
  673. ; this menu are in the same order as DRVx/USRx and KINDxx have been
  674. ; set.    ALTMENU must be YES in order for this menu to be used -- also,
  675. ; notice that user input is alphanumeric (i.e. 26 d/u combinations
  676. ; via "A" to "Z" input and a "1" to abort).
  677. ;
  678. ; To use the full-blown menu as shown (DESCRIB and/or SETAREA YES), define
  679. ; DRVx/USRx options (from DRV0/USR0 through DRV25/USR25), set XTRA1/XTRA2
  680. ; to YES, terminate the description categories above (if DESCRIB is YES)
  681. ; to end after the KIND5C: line and make sure MAXDU3 is set for '4' extra
  682. ; drive/user areas (leave MAXDU2 set to '9').
  683. ;
  684.      IF    USEMENU    AND ALTMENU
  685. MENU4:    DB    CR,LF,LF
  686.     DB    '              << NUKMD UPLOAD CATEGORY MENU >>'
  687.     DB    CR,LF,LF
  688.     DB    ' 1) Quit/Abort'
  689.     DB    CR,LF,LF
  690.     DB    ' A) (CP/M) Word Processing    | N) (MSDOS) Word Processing  '
  691.     DB    CR,LF
  692.     DB    ' B)   "    Data Base Program  | O)    "    Data Base Program'
  693.     DB    CR,LF
  694.     DB    ' C)   "    Data Base Utility  | P)    "    Data Base Utility'
  695.     DB    CR,LF
  696.     DB    ' D)   "    File Maintenance   | Q)    "    File Maintenance '
  697.     DB    CR,LF
  698.     DB    ' E)   "    BASIC Source       | R)    "    BASIC Source     '
  699.     DB    CR,LF
  700.     DB    ' F)   "    BASIC Game         | S)    "    Printer Driver   '
  701.     DB    CR,LF
  702.     DB    ' G)   "    Pascal Source      | T)    "    Spreadsheet File '
  703.     DB    CR,LF
  704.     DB    ' H)   "    Assembly Source    | U)    "    Assembly Source  '
  705.     DB    CR,LF
  706.     DB    ' I)   "    Modula-2 Source    | V)    "    Disk Cataloging  '
  707.     DB    CR,LF
  708.     DB    ' J)   "    Communications     | W)    "    Communications   '
  709.     DB    CR,LF
  710.     DB    ' K)   "    RCP/M Utility      | X)    "    Remote Utility   '
  711.     DB    CR,LF
  712.     DB    ' L)   "    BBS System         | Y)    "    BBS System       '
  713.     DB    CR,LF
  714.     DB    ' M)   "    Printer Driver     | Z) General Text/Misc   (ALL)'
  715.     DB    CR,LF,LF
  716.     DB    ' Your choice : '
  717.     DB    '$'
  718.      ENDIF
  719. ;
  720.