home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
nubye
/
nukmd111.ark
/
NUKMD111.HED
< prev
next >
Wrap
Text File
|
1987-02-03
|
28KB
|
720 lines
;
; NUKMD v1.11
; 02/04/87
;
; - REMOTE CP/M FILE TRANSFER PROGRAM -
; For use with CP/M 2 or CP/M 3
;
; NOTE: Read ASSEMBLR.DOC for notes about compatible assemblers.
;
; NUKMD provides full support for most popular BBS software (i.e. MBBS, Metal,
; Oxgate, PBBS, RBBS, ZBBS and more) and communications software (i.e. IMP,
; MDM7, MEX, MEX+, PROCOMM, QMODEM, Pro-Yam and more). In addition to being
; easy to install, you will find a number of features within NUKMD which are
; not available in other RCP/M file transfer utilities.
;
; ---------
; IMPORTANT
; ---------
;
; To see what recent/past revisions have taken place within NUKMD, read
; the NUKMD.HIS file. NUKMD.HLP may be placed online for users to download,
; as it gives a bit more detail about NUKMD usage/commands than the shorter
; help examples given by NUKMD itself.
;
; NUKMD is the result of no one authorship, but many hundreds of people
; across the country. The source code is fully commented to aid those of
; you who wish to customize/modify it or who are trying to understand how
; programs such as this work.
;
; If you have changes that you feel should be included in future releases,
; please forward them me, or to one of the contact boards listed below.
; All submitted modifications/suggestions will be considered, whether they
; are from an individual or a group. FULL credit will also be given for
; such code as is incorporated into future versions (i.e. system name and
; number, as well as the person's name). While I try and mention in the
; NUKMD.HIS file when a suggestion or bug report was made, I don't always
; remember the numerous verbal/chat comments (i.e. "why not make it do this",
; or "I had a problem with this", etc) -- thanks in advance. If you submit
; actual code for consideration, you will get full credit if any of it is
; used.
;
; New versions will be released at no more often than one-month intervals,
; unless some horrendous bug crops up. Release dates are set for the 1st
; and/or 15th of each month -- if nothing comes out on the 1st, then you
; may check back on the 15th.
;
; Special thanks go to the "beta test sites", as their help (along with
; reports from users and fellow sysops) keeps NUKMD/NUBYE quality utilities.
;
; - Tom Brady
; Decibel PBBS
; 300/1200/2400
; *(404) 288-6858
; P.O. Box 1773
; Decatur, GA 30031
;
;
; Other Contact/Beta-Test Systems:
;
; Terry Carroll Richard Gerhart
; Poor Man's Z-NODE (#56) Central NJ PBBS/RCPM
; 300/1200/2400 300/1200/2400
; (817) 283-9167 *(201) 521-5194
;
; Gary Inman Barry Miller
; West Los Angeles RCP/M L.I. Epson RCP/M
; 300/1200/2400 300/1200/2400
; *(213) 838-9229 (516) 536-1546
;
; (*PC Pursuit area)
;
; ==================
; Selecting options:
; ==================
;
; Normally, the EQUates marked in the comments filed with an ';*' are
; left as pre-set. All others may be set to customize for your system needs.
;
; =====
;
NO EQU 0
YES EQU NOT NO
;
; =====
;
; If using Microsoft's MACRO-80 macroassembler (referred to as M80),
; set M80ASM to YES.
;
USEM80 EQU no
;
; ======================================
; Conditional equates - change to match
; your system, then assemble.
; ======================================
;
MHZ EQU 4 ; Clock speed, use integer (2,4,5,8, etc.)
WHEEL EQU 3EH ; Location of ZCPR wheel byte (normally 3EH - but
; ZCPR3 systems should use SHOW.COM to verify address)
MBBS EQU no ; Yes, running MBBS message base
PBBS EQU yes ; Yes, running PBBS message base
;
; =====
;
; Many MS-DOS .ARChive files are released by their authors with specific
; comments about leaving them intact, so you may wish to leave ARCEXT set
; to NO. Regardless of how you set this, CP/M .ARK file members may be
; extracted singly via the 'A' option.
;
ARCEXT EQU yes ; Yes, allow .ARC (MS-DOS) member extractions
;
; =====
;
; A user may upload up to 256 files (0-255) using batch mode. Some sysops
; may wish to place a limit on the number of files which a user may upload
; in one single batch, hence BLIMIT. Since NUKMD will not accept any files
; once BLIMIT is reached, the user is informed of this limit whenever a
; batch upload is initiated.
;
BLIMIT EQU 50 ;*Number of files allowed in batch mode (255 max)
;
; =====
;
; Normal disk systems can transfer 16k from computer to disk in 2-3-4
; seconds and less. Some very slow 5-1/4" floppy systems (such as North
; Star) may take up to 20-30 seconds to transfer 16k. This would cause
; several timeouts at 10 seconds each. If you experience any timeouts,
; change the BUFSIZ to somethng smaller, perhaps 8k or even 4k.
;
BUFSIZ EQU 16 ;*File transfer buffer size in Kbytes
;
; =====
;
; If using MBBS (with MFMSG.COM) and you wish to have upload descriptions
; stuffed directly into your message base (instead of using the normal
; FOR description file as above with DESCRIB), you should set MSGDSC to YES.
; The drive/user areas will be those you set for private uploads at the
; equates PRDRV/PRUSR, so you may ignore the two equates DRIVE/USER
; when using this function. This feature works for normal file uploads,
; as well as single/multiple batch file uploads. The format used in the
; description header is in keeping with existing MBBS utilities which can
; list just the NEW UPLOAD: messages.
;
; (NOTE: Users must have Upload and Write access to use this -- if you
; restrict new users from BBS entry, but allow uploads just make
; sure to have User Record #1 set for WRITE access.)
;
MSGDSC EQU no ; Yes, asks for a description of each file uploaded,
; then writes same into your message base.
;
; You may set both DESCRIB/MSGDSC to NO, but only one to YES.
;
DESCRIB EQU yes ; Yes, asks for a description of uploaded file(s)
DRIVE EQU 'C' ; FOR file drive area
USER EQU 15 ; FOR file user area
;
WRAP EQU 64 ; Column position for automatic line wrap during
; description entry by user. Set to 72, if you
; wish to disable wrap mode.
;
PUPOPT EQU yes ; Yes, allows any user accessible d/u area file
; upload placement and does not request a
; description (batch and/or single, via the 'RW'
; command). On MBBS and PBBS, the user access
; flag is checked (i.e. "privileged" users in MBBS
; and Access Levels 8 & 9 in PBBS), rather than the
; WHEEL. On all other systems, this feature is
; regulated by the WHEEL byte. Uploads of this
; type are flagged as private (won't display with
; the NEW command), yet are logged for sysop viewing
; in the .LOG file.
; (See RESUSR description, below)
DESWAIT EQU 4 ; Minutes to wait for start of file description
; before aborting and logging off the caller.
; =====
;
; NOTE: Set ZCPR to YES for private systems not using ZCPR so the file
; transfer times will match the incoming modem speed.
;
ZCPR EQU yes ; Yes, if using N/ZCPR/1/2/3 or ZCMD/1/2 with
; WHEEL byte implemented. If Yes, .NDR, .RCP
; and .SYS files not received. (Protects ZCPR.)
;
; If ZCPR is YES, you will normally leave the next four equates set YES.
; If ZCPR is NO, you will probably want to leave CHGNAM set YES and the
; other three equates set NO for some security.
; Note: Wildcard designators are always allowed for batch downloads,
; regardless of SNDWILD setting.
;
CHGNAM EQU YES ; Yes, change .COM/.PRL extensions to .OBJ/.OPB
; when WHEEL is off
SNDCOM EQU YES ; Yes, send .COM files when WHEEL is on
SNDWILD EQU YES ; Yes, allow wildcards (? and *) when WHEEL is on
SNDSYS EQU YES ; Yes, send $SYS files when WHEEL is on
;
; =====
;
; Allows drive/user area to be specified for downloading. If using ZCPR
; set USEMAX to YES and ignore MAXDRV/MAXUSR.
;
USEMAX EQU yes ; Yes if using ZCPR for DRIVMAX & USRMAX values
; No to use MAXDRV and MAXUSR specified next
;
; If USEMAX above is YES for automatic ZCPR setting, the following two
; are not used and may be ignored. If set NO, the following should
; be set.
;
MAXDRV EQU 2 ; Number of disk drives used
MAXUSR EQU 9 ; Maximum 'SEND' user allowed
;
; =====
;
; Selects the drive/user area for uploading private files for the SYSOP.
; This permits experimental files, replacement files and proprietary
; programs to be sent to the SYSOP. This is also the d/u area where
; message files are uploaded, if MSGFIL is set YES.
;
PRDRV EQU 'J' ; Private drive for SYSOP to receive file
PRUSR EQU 15 ; Private user area for SYSOP to receive file
;
; =====
;
; Selects the drive/user area for downloading private files from the
; SYSOP. This permits him to put a special file in this area, then leave
; a private note to that person mentioning the name of the file and to
; use "SP". Although anybody could download that program, they don't
; know what (if any) files are there. A high degree of security exists,
; while the SYSOP still has the ability to make special files available.
; Thus any person can be a temporary "privileged user". (Wildcards and
; batch are not allowed, for what should be obvious reasons.)
;
SPLDRV EQU 'E' ; Special drive area for downloading SYSOP files
SPLUSR EQU 15 ; Special user area for downloading SYSOP files
;
; NOTE: If using the same drive for SPLDRV and PRDRV, it's a good idea
; to NOT set SPLUSR and PRUSR the same. Otherwise, files sent to
; your private area can be picked up by anyone who happens to know
; the filename (all depends on how secure you want things).....
;
; Set ALTSEC to YES if you wish to have a special secondary download area.
; Obvious applications would be for restricted access systems which might
; contain a section for both full access as well as non-registered users.
; With the "NUKMD SS filename" command, non-registered users are able to
; download, but only from your designated alternate area.
;
ALTSEC EQU yes ; Yes, use a secondary private download area
ALTDRV EQU 'E' ; Alternate special download drive
ALTUSR EQU 0 ; Alternate special download user area
;
; =====
;
; When SETAREA is YES, NUKMD will force uploads to be placed on the
; drive/user area(s) you predetermine at DRVx/USRx, below. Note, you now
; are able to define up to 30 different drive/user combinations (if you
; have the disk space or desire). MENU1:, MENU2: and MENU3: contain the
; file category info which should be in the same order as the DRVx/USRx
; settings. Remember -- if DESCRIB is YES, the category info in the
; menus is used in your FOR file, so you might wish to modify it to
; include the drive/user area where the files are kept.
;
; The default settings use only 2 drive/user areas and take advantage
; of only the first two menu categories (MENU1: for CP/M and MENU2: for
; MS-DOS) -- customize to suit your system requirements and set XTRA2 to
; YES to use the full 3-menu 30 category setup.
;
; EXAMPLE: You want only 1 drive/user area for new uploads, yet would
; like your FOR file to contain more helpful category information. All
; you have to do is set XTRA1/2 to YES, leave MAXDU1/2/3 at '9', set all
; DRVx/USRx's to the same drive/user and customize MENU1:/2:/3: as you
; wish. You now have 30 upload categories from which to have your users
; choose.
;
; Set ALTMENU to YES, *if* you don't wish to use separate menus for the
; drive/user/category areas you've set (i.e. MENU1:/2:/3:). By choosing
; this option, the user chooses a category by pressing A-Z which limits
; you to 26 d/u categories, but displays only one screen (MENU4:). Modify
; this menu to suit your needs -- also, read the note following MENU4:, if
; you decide to use this option. KINDxx (if DESCRIB is YES) and DRVx/USRx
; areas must still be set up properly....
;
; NOTE: Setting these to non-accessible areas will allow you to preview
; new uploads before you place them up for public download.
;
SETAREA EQU yes ; Yes, if using designated area(s) for upload
USEMENU EQU yes ; Yes, use "menu" mode for uploads
; No, use only one d/u area as set at DRV0/USR0
ALTMENU EQU no ; Yes, use one menu with 26 choices (A-Z)
; No, for up to 3 menus and up to 30 choices
;
DRV0 EQU 'I' ; Drive area #1 (single or multi upload area support)
USR0 EQU 0 ; User area #1 (single or multi upload area support)
;
MAXDU1 EQU '9' ; Set for maximum # of *extra* drive/user/category
; options used for Menu #1.
; NOTE: You must alter MENU1: terminator if <9 set.
DRV1 EQU 'I' ; Drive area #2
USR1 EQU 0 ; User area #2
DRV2 EQU 'I' ; Drive area #3
USR2 EQU 0 ; User area #3
DRV3 EQU 'I' ; "
USR3 EQU 0 ; "
DRV4 EQU 'I' ; "
USR4 EQU 0 ; "
DRV5 EQU 'I' ; "
USR5 EQU 0 ; "
DRV6 EQU 'I' ; "
USR6 EQU 0 ; "
DRV7 EQU 'I' ; "
USR7 EQU 0 ; "
DRV8 EQU 'I' ; "
USR8 EQU 0 ; "
DRV9 EQU 'I' ; Drive area #10
USR9 EQU 0 ; User area #10
;
XTRA1 EQU yes ; Yes, allows up to 10 extra drive/user options
DRV10 EQU 'J' ; Drive area #11
USR10 EQU 0 ; User area #11
;
MAXDU2 EQU '9' ; Set for maximum # of *extra* drive/user/category
; options used for Menu #2 (if XTRA1 is YES).
; NOTE: You must alter MENU2: terminator if <9 set.
DRV11 EQU 'J' ; Drive area #12
USR11 EQU 0 ; User area #12
DRV12 EQU 'J' ; Drive area #13
USR12 EQU 0 ; User area #13
DRV13 EQU 'J' ; "
USR13 EQU 0 ; "
DRV14 EQU 'J' ; "
USR14 EQU 0 ; "
DRV15 EQU 'J' ; "
USR15 EQU 0 ; "
DRV16 EQU 'J' ; "
USR16 EQU 0 ; "
DRV17 EQU 'J' ; "
USR17 EQU 0 ; "
DRV18 EQU 'J' ; "
USR18 EQU 0 ; "
DRV19 EQU 'J' ; Drive area #20
USR19 EQU 0 ; User area #20
;
XTRA2 EQU no ; Yes, allows up to 10 extra drive/user options
DRV20 EQU 'J' ; Drive area #21
USR20 EQU 0 ; User area #21
;
MAXDU3 EQU '5' ; Set for maximum # of *extra* drive/user/category
; options used for Menu #3 (if XTRA2 is YES).
; NOTE: You must alter MENU3: terminator if <9 set.
DRV21 EQU 'J' ; Drive area #22
USR21 EQU 0 ; User area #22
DRV22 EQU 'J' ; Drive area #23
USR22 EQU 0 ; User area #23
DRV23 EQU 'J' ; "
USR23 EQU 0 ; "
DRV24 EQU 'J' ; "
USR24 EQU 0 ; "
DRV25 EQU 'J' ; "
USR25 EQU 0 ; "
DRV26 EQU 'B' ; "
USR26 EQU 0 ; "
DRV27 EQU 'B' ; "
USR27 EQU 0 ; "
DRV28 EQU 'B' ; "
USR28 EQU 0 ; "
DRV29 EQU 'B' ; Drive area #30
USR29 EQU 0 ; User area #30
;
; =====
;
; File transfer logging options
;
LOGCAL EQU yes ; Yes, logs file transfers
LOGDRV EQU 'C' ; Drive to place LOG file
LOGUSR EQU 15 ; User area to put LOG file
LASTDRV EQU 'C' ; Drive 'LASTCALR???'file is on
LASTUSR EQU 15 ; User area of 'LASTCALR???' file
CPM3 EQU NO ; Yes if using CP/M 3.0 and LOGCAL is Yes
LCNAME EQU 1 ; Column # where the caller's name starts in
; LASTCALR, normally column 1. (MBBS = 12)
; =====
;
; Start of TIMEON area
;
CLOCK EQU yes ; If YES, you must have clock code installed in
; NUBYE that sets RTCBUF with time/date and
; time-on-system. Status and MXTIME are also
; picked up from NUBYE.
DTOS EQU no ; Yes to display "time on system" messages
EDATE EQU NO ;*Yes to show dd/mm/yy vice mm/dd/yy in .LOG/.SYS
TIMEON EQU yes ; Yes to police time-on-system with NUBYE
; (note: does not require clock for operation)
;
; NOTE: If ZCPR = YES and WHEEL byte is set, send time is unlimited. If
; TIMEON is YES, unlimited time is allowed if MAXMIN in NUBYE is 0.
; Set CLOCK and TIMEON the same way in NUBYE and NUKMD. Select your
; preference and set MAXMIN in NUBYE (suggest 45 if CLOCK is NO).
; See examples below:
;
; TIME 300 BPS 1200 BPS 1k 2400 BPS 1k
; ------ ------- ------------ ------------
; 30 min 48.7k 180k 200k 320k 380k
; 45 min 73.1k 270k 300k 480k 570k
; 60 min 97.5k 360k 400k 640k 760k
;
CREDIT EQU yes ; Yes to credit upload time to NUBYE's MXTIME
;
LOGLDS EQU yes ; Count number of up/down loads since login.
; Your BBS program can check UPLDS and DNLDS
; when user logs out and update either the
; user's file or a file for this purpose.
; You can either modify your BBS entry program
; to check the LASTCALR file before updating
; it and then update (risky), or make a sepa-
; rate program that NUBYE calls when logging
; off a user (preferred). (set YES for PBBS)
;
IF LOGLDS
UPLDS EQU 54H ; Clear these values to Zero from your BBS pro-
DNLDS EQU 55H ; gram when somebody logs in. NOTE: Clear
; ONLY when a user logs in. Not when he re-
; enters the BBS program for CP/M.
ENDIF
;
; end of TIMEON area
; ==================
;
; Special access flag and message file equates
;
; These equates are for upload/download restriction flags and the new
; message file upload and uploads description options supported by
; NUBYE/NUKMD.
;
; RESUSR allows support/restrictions for the following
; commands/functions:
;
; RW -- All systems (privileged uploads)
; RM -- MBBS (if MSGFIL is YES)
; Uploads -- MBBS
; Downloads -- MBBS and PBBS
; Upload descriptions -- MBBS (if MSGDSC is YES)
;
; All systems can take advantage of the "RW" command -- MBBS/PBBS systems
; via special restriction flags and all others via the WHEEL byte status.
;
; Only MBBS utilizes the special message file uploads (i.e. "RM") and
; upload descriptions support. MBBS is also the only system allowing
; upload restriction in general.
;
; MBBS and PBBS allow download restrictions.
;
; MBBS & PBBS sets NUBYE's LCPTR bit-mapped flag register to restrict
; user's ability to upload files, download files, and/or use the "RM"
; command to upload message files to your system, and/or the "RW" command
; for a "privileged" user upload. NUKMD will inspect the LCPTR byte in
; NUBYE for the following flag data.
; (See NUBYE.HLP for complete description of the LCPTR bit-mapped flags).
;
; Example for MBBS/PBBS:
;
; BIT ACTION
; 3 Message write access (0 = NO, 1 = YES) (MBBS)
; 5 Download access (0 = NO, 1 = YES) (MBBS/PBBS)
; 6 Upload access (0 = NO, 1 = YES) (MBBS)
; 7 Privileged user access (0 = NO, 1 = YES) (MBBS/PBBS)
;
RESUSR EQU yes ; Yes, to check for user restrictions
;
;
; Set MSGFIL to YES, if your system (i.e. MBBS) supports message file
; uploads with NUKMD's RM command. With this command, a preformatted text
; file (containing one or more messages) may be uploaded.
;
; Example: KMD RM MSG.TXT (note: any filename may be used)
;
; (When RESUSR is set YES, this function will only be performed when that
; user is allowed to write messages in the first place.) NUKMD will place
; this MSG.TXT file on your private d/u area, then will force NUBYE to
; load/execute the special message file handler (i.e. MFMSG.COM). This
; utility will append the data in the MSG.TXT file to your existing message
; file.
;
; (See the NUBYE.HLP file for more details on using this feature.)
;
; (NOTE: This does not have to be YES to take advantage of MSGDSC.)
;
MSGFIL EQU no ; Yes, you support message file uploads
;
; =====
;
; Set the next 6 equates to your clear screen requirements. When set YES,
; this will clear your screen between each file received during a multiple
; batch download.
;
CLRSCR EQU yes ; Yes, you want clear screen support
; between batch file uploads.
CLRCH1 EQU 1AH ; Set these for your clear screen sequence
CLRCH2 EQU 0 ; ( 1AH = ^Z -- ok for many CP/M systems)
CLRCH3 EQU 0
CLRCH4 EQU 0
CLRCH5 EQU 0
CLRCH6 EQU 0
;
; =====
;
; SYSOP may use NSWP or TAG and set the high bit of F1 to prevent send-
; ing large .LBR files. The 'L' option may still be used to send only
; individual member files from the library. Rarely set to YES since the
; TIMEON equate can limit people to a maximum download time, even with
; no clock (compares time to download versus the TIMEON value in NUBYE.)
;
TAGLBR EQU NO ;*Yes to prevent sending tagged library files
;
; =====
;
; Some modems will either go onhook immediately after carrier loss or
; can be set to wait a bit. A good value with the Smartmodem is five
; seconds, since it catches all "call forwarding" breaks. Not all is
; lost after timeout in NUKMD - NUBYE will still wait some more, but the
; chance of someone slipping in is less now.
;
TIMOUT EQU 1 ;*Seconds to abort after carrier loss
;
; =====
;
; NOTE: Check you BBS system documentation -many modern systems don't
; need WRTLOC. If unsure, leave it set NO.
;
WRTLOC EQU NO ;*Yes, set/reset WRTLOC so NUBYE won't hang up
;
; ==========================
; END OF SYSTEM EQUATE SETUP
; ==========================
;
IF USEM80
ASEG ; M80 needs this
ENDIF
;
ORG 100H
JMP BEGIN
;
;
; Private/setarea upload disk/user areas, etc
;
; Placed here at the start so they can be easily patched in the .COM
; file using DDT without needing to reassemble. All references are
; made to these locations in memory and not to PRDRV/PRUSR, DRV/USR
; or WRAP equates directly.
;
XPRDRV: DB PRDRV ; Private uploads go to this drive/user
XPRUSR: DB PRUSR
XWRAP: DB WRAP ; Column where desc line wrap occurs
;
IF SETAREA
XDRV: DB DRV0 ; Uploads go to this drive/user
XUSR: DB USR0 ; (if SETAREA is YES)
XDRV1: DB DRV0
XUSR1: DB USR0
ENDIF
;
IF SETAREA AND USEMENU
DUTBL1: DB DRV1,USR1,DRV2,USR2,DRV3,USR3,DRV4,USR4
DB DRV5,USR5,DRV6,USR6,DRV7,USR7,DRV8,USR8,DRV9,USR9
ENDIF
;
IF SETAREA AND USEMENU AND XTRA1
XDRV2: DB DRV10 ; Alternate drive
XUSR2: DB USR10 ; Alternate user
;
DUTBL2: DB DRV11,USR11,DRV12,USR12,DRV13,USR13,DRV14,USR14
DB DRV15,USR15,DRV16,USR16,DRV17,USR17,DRV18,USR18,DRV19,USR19
ENDIF
;
IF SETAREA AND USEMENU AND XTRA2
XDRV3: DB DRV20 ; Alternate drive
XUSR3: DB USR20 ; Alternate user
;
DUTBL3: DB DRV21,USR21,DRV22,USR22,DRV23,USR23,DRV24,USR24
DB DRV25,USR25,DRV26,USR26,DRV27,USR27,DRV28,USR28,DRV29,USR29
ENDIF
;
; -----
;
; These may be named directories, file descriptions, etc -- the user will
; be asked to choose which category is to be used for the upload. Change
; as desired if this list is not suitable -- make sure to move the '$' up
; to terminate the options as required. Remember, if DESCRIB is YES, these
; headings are placed in your FOR file.
;
MENU1: IF (DESCRIB OR SETAREA) AND USEMENU AND (NOT ALTMENU)
DB CR,LF
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND XTRA1 AND (NOT ALTMENU)
DB LF
DB ' << Upload Menu #1 >>',CR,LF,LF
DB ' B --> Jump to MENU #2',CR,LF ; ** Leave 'B'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND XTRA2 AND (NOT ALTMENU)
DB ' C --> Jump to MENU #3',CR,LF ; ** Leave 'C'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND (NOT ALTMENU)
DB ' Q --> Quit/Abort',CR,LF,LF ; ** Leave 'Q'
ENDIF
;
IF DESCRIB OR SETAREA
KIND0: DB ' 0) --> System Utility (CP/M)',CR,LF
KIND1: DB ' 1) --> BBS Use (CP/M)',CR,LF
KIND2: DB ' 2) --> Word Processing (CP/M)',CR,LF
KIND3: DB ' 3) --> Data Base (CP/M)',CR,LF
KIND4: DB ' 4) --> BASIC Source Code (CP/M)',CR,LF
KIND5: DB ' 5) --> Pascal (CP/M)',CR,LF
KIND6: DB ' 6) --> C (CP/M)',CR,LF
KIND7: DB ' 7) --> Game (CP/M)',CR,LF
KIND8: DB ' 8) --> Communications (CP/M)',CR,LF
KIND9: DB ' 9) --> Miscellaneous (CP/M)',CR,LF
DB '$'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND XTRA1 AND (NOT ALTMENU)
MENU2: DB CR,LF,LF,LF
DB ' << Upload Menu #2 >>',CR,LF,LF
DB ' A --> Jump to MENU #1',CR,LF ; ** Leave 'A'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND XTRA2 AND (NOT ALTMENU)
DB ' C --> Jump to MENU #3',CR,LF ; ** Leave 'C'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND XTRA1 AND (NOT ALTMENU)
DB ' Q --> Quit/Abort',CR,LF,LF ; ** Leave 'Q'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND (XTRA1 OR ALTMENU)
KIND0B: DB ' 0) --> Word Processing (MS-DOS)',CR,LF
KIND1B: DB ' 1) --> Data Base (MS-DOS)',CR,LF
KIND2B: DB ' 2) --> Spreadsheet (MS-DOS)',CR,LF
KIND3B: DB ' 3) --> Communications (MS-DOS)',CR,LF
KIND4B: DB ' 4) --> Game (MS-DOS)',CR,LF
KIND5B: DB ' 5) --> BASIC (MS-DOS)',CR,LF
KIND6B: DB ' 6) --> Pascal (MS-DOS)',CR,LF
KIND7B: DB ' 7) --> System Utility (MS-DOS)',CR,LF
KIND8B: DB ' 8) --> BBS Use (MS-DOS)',CR,LF
KIND9B: DB ' 9) --> Miscellaneous (MS-DOS)',CR,LF
DB '$'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND XTRA2 AND (NOT ALTMENU)
MENU3: DB CR,LF,LF,LF
DB ' << Upload Menu #3 >>',CR,LF,LF
DB ' A --> Jump to MENU #1',CR,LF ; ** Leave 'A'
DB ' B --> Jump to MENU #2',CR,LF ; ** Leave 'B'
DB ' Q --> Quit/Abort',CR,LF,LF ; ** Leave 'Q'
ENDIF
;
IF (DESCRIB OR SETAREA) AND USEMENU AND (XTRA2 OR ALTMENU)
KIND0C: DB ' 0) --> open ',CR,LF
KIND1C: DB ' 1) --> open ',CR,LF
KIND2C: DB ' 2) --> open ',CR,LF
KIND3C: DB ' 3) --> open ',CR,LF
KIND4C: DB ' 4) --> open ',CR,LF
KIND5C: DB ' 5) --> open ',CR,LF
KIND6C: DB ' 6) --> open ',CR,LF
KIND7C: DB ' 7) --> open ',CR,LF
KIND8C: DB ' 8) --> open ',CR,LF
KIND9C: DB ' 9) --> open ',CR,LF
DB '$'
ENDIF
;
; This is the alternate upload menu for those who wish to have all
; items listed on one screen for user selection. Note: The categories
; and/or other data listed here are *not* used in the FOR file -- if
; DESCRIB is YES, you *must* make sure that all selections offered in
; this menu are in the same order as DRVx/USRx and KINDxx have been
; set. ALTMENU must be YES in order for this menu to be used -- also,
; notice that user input is alphanumeric (i.e. 26 d/u combinations
; via "A" to "Z" input and a "1" to abort).
;
; To use the full-blown menu as shown (DESCRIB and/or SETAREA YES), define
; DRVx/USRx options (from DRV0/USR0 through DRV25/USR25), set XTRA1/XTRA2
; to YES, terminate the description categories above (if DESCRIB is YES)
; to end after the KIND5C: line and make sure MAXDU3 is set for '4' extra
; drive/user areas (leave MAXDU2 set to '9').
;
IF USEMENU AND ALTMENU
MENU4: DB CR,LF,LF
DB ' << NUKMD UPLOAD CATEGORY MENU >>'
DB CR,LF,LF
DB ' 1) Quit/Abort'
DB CR,LF,LF
DB ' A) (CP/M) Word Processing | N) (MSDOS) Word Processing '
DB CR,LF
DB ' B) " Data Base Program | O) " Data Base Program'
DB CR,LF
DB ' C) " Data Base Utility | P) " Data Base Utility'
DB CR,LF
DB ' D) " File Maintenance | Q) " File Maintenance '
DB CR,LF
DB ' E) " BASIC Source | R) " BASIC Source '
DB CR,LF
DB ' F) " BASIC Game | S) " Printer Driver '
DB CR,LF
DB ' G) " Pascal Source | T) " Spreadsheet File '
DB CR,LF
DB ' H) " Assembly Source | U) " Assembly Source '
DB CR,LF
DB ' I) " Modula-2 Source | V) " Disk Cataloging '
DB CR,LF
DB ' J) " Communications | W) " Communications '
DB CR,LF
DB ' K) " RCP/M Utility | X) " Remote Utility '
DB CR,LF
DB ' L) " BBS System | Y) " BBS System '
DB CR,LF
DB ' M) " Printer Driver | Z) General Text/Misc (ALL)'
DB CR,LF,LF
DB ' Your choice : '
DB '$'
ENDIF
;