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 / ZSYS / SIMTEL20 / DOC / Z-NODE.CQG / Z-NODE.CFG
Text File  |  2000-06-30  |  41KB  |  953 lines

  1. .cw 11
  2. .po 11
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. *****************************************************************
  18. *                     Z-Node Configuration                      *
  19. *                                                               *
  20. *             by David McCord, SYSOP, the ZCPR3 BBS             *
  21. *                                                               *
  22. *                (415)489-9005 24 hrs. 300/1200                 *
  23. *                                                               *
  24. *                       Date: 27 Feb 1985                       *
  25. *                                                               *
  26. *****************************************************************
  27. .pa
  28. .he                                             Z-Node Configuration
  29. Introduction
  30.  
  31.                            Philosophy
  32.  
  33.      A Z-Node is an expression to the world.  It says, "Eight bit 
  34. is not dead!"  Such is our rallying cry.  Personally I agree; and 
  35. I  do what I can to promote eight bit.   It is my hope that there 
  36. are many more like me with their Z80 and Hitachi microprocessors.  
  37. Personally,   also,   I   dislike  what  IBM  has  done  to   the 
  38. microcomputer environment.   The intellectual stagnation and "me-
  39. too"-ism is painful for me to see.   The major shame of what  IBM 
  40. has done,  in my opinion,  is to make micros mediocre.   With the 
  41. potential power of their machine,  they settled on MSDOS...what a 
  42. kludge  it  is!   ZCPR3  beats  the  pants off  of  it  in  every 
  43. conceiveable aspect (except hierarchical  directories).   So,  in 
  44. conclusion, I want people to realize that there are alternatives.  
  45. Z-Nodes are an excellent way of promoting those alternatives.
  46.  
  47.      This  document is on the topic of how to bring up a  Z-NODE.  
  48. I  basically have taken the approach of documenting how my system 
  49. is  configured,  hoping  that you will follow  in  my  footsteps.  
  50. Please  remember  as you read through this document that most  of 
  51. what I present may always be modified or changed as necessary  to 
  52. suit  your  needs;  and  that this document is  a  guide,  not  a 
  53. dogmatic  treatise.   Feel  free  to vary from what I  have  said 
  54. herein  wherever  and  whenever you  find  something  that  works 
  55. better.
  56.  
  57.      I  can only give a small amount of advice regarding being  a 
  58. sysop  (SYStem  OPerator)  to those of you who do  not  have  the 
  59. experience.   The first,  and most important, rule is to remember 
  60. that  you  are  responsible for everything that  occurs  on  your 
  61. remote access computer.  So, right at the outset you will need to 
  62. have  a  decision made as to whether you will be running an  open 
  63. system (anyone can access),  or a closed ("registration") system.  
  64. My  personal preference is an open system because I feel  that  a 
  65. remote   access  computer  system  has  intrinsic  worth  to  the 
  66. community,  and that worth is greatly diminished when the  public 
  67. as a whole can no longer access it.
  68.  
  69.      But  there are certainly many sysops who can tell you horror 
  70. stories about ill-mannered users, and how they think registration 
  71. is "the only way to go".
  72.  
  73.      Bottom line:  you are legally reponsible for what happens on 
  74. your Z-Node.
  75.  
  76. Installation Overview
  77.  
  78.      At present, TERM3 and EMSG are not available.  Therefore, it 
  79. is necessary to use some of the old RCP/M programs on your Z-Node 
  80. until they can be replaced with their ZCPR3 equivalents.  The old 
  81. RCP/M software we will use includes BYE and XMODEM.  If a message 
  82. system is to be used until EMSG is available, I suggest the METAL 
  83. message system.   However,  anything you find acceptable is OK as 
  84. an interim solution.
  85.  
  86.      A  suggested  plan  of attack is to install  things  in  the 
  87. following order:
  88.  
  89.           - ZCPR3 (manual or auto install)
  90.  
  91.           - ZRDOS
  92.  
  93.           - BYE
  94.  
  95.           - XMODEM
  96.  
  97.           - SD (renamed DIR)
  98.  
  99.           - TYPEL (renamed TYPE)
  100.  
  101.      Throughout  this document,  I will be listing  assembly-time 
  102. options for each program under discussion.
  103. .pa
  104. Files Required
  105.  
  106.      You  will  need the following files to duplicate my  system.  
  107. The files you need are usually available on larger RCP/M's or  Z-
  108. Nodes.  A recommended minimum:
  109.  
  110.           - BYE329.ASM (BYE program)
  111.  
  112.           - A BYE insert for your machine.  Sometimes incorrectly 
  113.           called a BYE "overlay".
  114.  
  115.           - XMDM105.ASM (XMODEM program)
  116.  
  117.           - An  XMODEM overlay for your machine.
  118.  
  119.           - TYPEL36.COM (TYPE, LTYPE program)
  120.  
  121.           - SD97.ASM (DIR program)
  122.  
  123.           - PWD11 (Modified to be used with BYE)
  124.  
  125.           - A Z3BASE.LIB file OR a Z3ENV.LIB file for assembly of 
  126.           BYE329 (support of initializing Z3 segments)
  127.  
  128.           - The MAC or ZAS assembler
  129.  
  130.           - MLOADxx.COM
  131.  
  132.           - A message system such as RBBS, METAL, et. al.
  133.  
  134.           - And, of course, ZCPR3 and ZRDOS
  135.  
  136.      Version numbers are not absolute: subsequent versions should 
  137. be   acceptable.    Previous   versions  may  require   extensive 
  138. modifications.    All  examples  of  assembly  time  options  are 
  139. extracted  from  the versions listed above:  other  versions  may 
  140. vary.
  141. .pa
  142. Notes on ZCPR3 for Z-Nodes
  143.  
  144.                      DU: Disabled Operation
  145.  
  146.      The  distinguishing  characteristic of a Z-Node is  that  it 
  147. does  not recognize the DU:  form when in the  operating  system.  
  148. Although  I have heard of systems where they have managed to keep 
  149. the  DU:  form  (security  is  enforced  by  non-ZCPR  means),  I 
  150. recommend that you use the DIR: form only.  This is because TERM3 
  151. and  EMSG will expect this to be the way system security will  be 
  152. enforced.
  153.  
  154.      One of the things that can make using named directories much 
  155. easier   is   a  terminal  (or  software  emulation)   that   has 
  156. programmable  function  keys.    This  is  very  convienent   for 
  157. responding  to  the  PW?  prompt when logging into  a  passworded 
  158. directory,  just hit one key to enter the password and that's it!  
  159. Function  keys are also very useful in invoking ALIASes,  and  if 
  160. your  function keys are programmable,  then DPROG.COM  will  give 
  161. you flexibility in redefining them.  For instance, use one set of 
  162. definitions  for use with the Z-Node,  and another for  WordStar, 
  163. another for WordMaster, another for MEX, etc.
  164.  
  165.                   Manual-Install ZCPR3 Options
  166.  
  167.          (Users of Z-Com can skip to the next section.)
  168.  
  169.      The following options should be duplicated in your Z3HDR.LIB 
  170. file  if you are using the manual-install version.   People using 
  171. Z-Com can skip this.
  172.  
  173. COMTYP    MACRO
  174.     DB    'COM'
  175.     ENDM
  176.  
  177. SUBTYP    MACRO
  178.     DB    'SUB'
  179.     ENDM
  180.  
  181. SUBON    EQU    TRUE 
  182. DRVPREFIX    equ    TRUE
  183. COMATT    equ    01H
  184. DIRON    equ    FALSE    ;DIR COMMAND
  185. LTON    equ    FALSE    ;LIST, TYPE COMMANDS
  186. GOON    equ    TRUE     ;GO COMMAND
  187. ERAON    equ    FALSE    ;ERA COMMAND
  188. SAVEON    equ    TRUE     ;SAVE COMMAND
  189. RENON    equ    FALSE    ;REN COMMAND
  190. GETON    equ    FALSE    ;GET COMMAND
  191. JUMPON    equ    FALSE    ;JUMP COMMAND
  192. NOTEON    equ    FALSE    ;NOTE COMMAND
  193.  
  194.     IF    Z3WHL NE 0    ;IF A WHEEL BYTE ADDRESS IS DEFINED
  195. WERA    equ    TRUE     ;Make ERA a Wheel-Oriented Command
  196. WREN    equ    TRUE     ; "   REN "   "       "       "
  197. WLT    equ    TRUE     ; "   L/T "   "       "       "  (LIST/TYPE)
  198. WGO    equ    TRUE     ; "   GO  "   "       "       "
  199. WSAVE    equ    TRUE     ; "   SAVE "  "       "       "
  200. WGET    equ    TRUE     ; "   GET "   "       "       "
  201. WJUMP    equ    TRUE     ; "   JUMP "  "       "       "
  202. WDU    equ    FALSE    ; "   DU: "   "       "       " (DU/DIR Change)
  203. WHEEL    equ    WERA OR WREN OR WLT OR WGO OR WSAVE OR WGET OR WJUMP OR WDU
  204.     ENDIF        ;Z3WHL
  205.  
  206. ERAOK    equ    FALSE
  207. ERAV    equ    FALSE
  208. ERDFLG    equ    'V'
  209. PGDFLT    EQU    TRUE 
  210. PGDFLG    EQU    'P'
  211. NLINES    EQU    24
  212. SECTFLG    EQU    'S'
  213. MINPATH    EQU    TRUE 
  214. SCANCUR    EQU    TRUE 
  215. INCLDU    equ    TRUE 
  216. ACCPTDU    EQU    FALSE
  217. NDINCP    EQU    TRUE 
  218. INCLNDR    EQU    TRUE 
  219. ACCPTND    EQU    TRUE 
  220. DUFIRST    EQU    FALSE
  221. PWCHECK    EQU    TRUE 
  222. CMDSEP    equ    ';'
  223. CMDRUN    equ    FALSE    ; Enable the Facility
  224. IFON    EQU    TRUE 
  225. MAXUSR    EQU    31         ;MAXIMUM USER NUMBER ACCESSABLE
  226. MAXDISK    EQU    3        ;MAXIMUM NUMBER OF DISKS ACCESSABLE
  227. SUPRES    EQU    FALSE        ;SUPRESSES USER # REPORT FOR USER 0
  228. SPRMPT    EQU    '$'        ;CPR PROMPT INDICATING SUBMIT COMMAND
  229. CPRMPT    EQU    '>'        ;CPR PROMPT INDICATING USER COMMAND
  230. NUMBASE    EQU    'H'        ;CHAR USED TO SWITCH FROM DEFAULT NUMBER BASE
  231. CURIND    EQU    '$'        ;SYMBOL FOR CURRENT DISK OR USER
  232. COMMENT    EQU    ';'        ;LINES BEGINNING WITH THIS CHAR ARE COMMENTS
  233.  
  234.      And  don't forget to turn on the wheel check options for the 
  235. commands you select in Z3HDR.LIB!
  236. .pa
  237. ZCPR3 System Segments
  238.  
  239.      The following discussion about system segments applies  only 
  240. if you are using them.   All RCP's, FCP's, and IOP's are optional 
  241. at this point in time.
  242.  
  243.                            SYSENV.LIB
  244.  
  245.      Your system's environment descriptor should have the  "don't 
  246. accept DU:  option enabled.  The Z3 utilities will then read this 
  247. and ignore the DU: form.
  248.  
  249.                                RCP
  250.  
  251.      For  folks that are doing a manual-install version of ZCPR3, 
  252. an RCP that I believe was intended for use under a remote  system 
  253. is  found  in  SYSRCP3.LIB.   This will  require  practically  no 
  254. modification to be used in the secure environment,  as all of the 
  255. commands  contained  in  it  respond  to  the  wheel  byte.    My 
  256. associate,  Joe Wright, suggests that you disable the WHL command 
  257. that is enabled as the default.
  258.  
  259.                                FCP
  260.  
  261.      At  present I am using SYSFCP1.LIB as the system's  FCP.   I 
  262. have  not  as  yet discovered a good use of the  FCP  for  remote 
  263. callers, but I find it useful in some sysop-oriented tasks.
  264.  
  265.                                IOP
  266.  
  267.      There  is  not an IOP implemented on Z-Node Central at  this 
  268. time.   I see no use for it, either.  (of course, the AMPRO box I 
  269. use doesn't have a lot of ports, that's why I'm not using an IOP)
  270. .pa
  271. Notes on BYE
  272.  
  273.      Getting  BYE running will probably be the  most  challenging 
  274. task involved in getting your Z-Node going.   However,  it is not 
  275. any easier under standard CP/M either!  BYE329 or later (Sorry, I 
  276. can't comment on MBYE,  don't know anything about it or any other 
  277. BYE  versions) is recommended because it has special support  for 
  278. the  ZCPR3 segments that should be initialized when a new  caller 
  279. comes  on  or BYE terminates.   See my document Z3&BYE#2.DOC  for 
  280. further information on the subject of modifying BYE for ZCPR3  if 
  281. you do not intend to use BYE329 as BYE.COM on your system.
  282.  
  283.                            BYE Overlay
  284.  
  285.      The BYE3xx.ASM file is not complete.  This means that if you 
  286. try to assemble it,  you will get a lot of assembly errors.  What 
  287. must  be  done  is  a BYE "overlay" must  be  INSERTED  INTO  THE 
  288. BYE3xx.ASM FILE.   Use a word processor to do this.   If you scan 
  289. down about a third of the way into the BYE3xx.ASM file,  you will 
  290. find a section labeled "Insert your modem routines here".   Using 
  291. a  command to read from a file (like WS ^Kr,  or WM y  commands), 
  292. insert the bye "overlay" file at that point.
  293.  
  294.      The  BYE  overlay contains options for selecting which  baud 
  295. rates  your  system  can support.   It  also  contains  the  code 
  296. necessary  to  do software changing of baud rates if you will  be 
  297. supporting more than one speed.   Generally speaking,  there  are 
  298. overlays  available for most computers,  but in case you need  to 
  299. make  up one of your own,  you'd better have the tech manuals for 
  300. the I/O ports of your machine available.
  301.  
  302.                            BYE Options
  303.  
  304.      BYE329  has  about a million assembly-time options that  you 
  305. must have set properly.   Some of these may vary from what I have 
  306. shown below.  Please note that my system is set up for use with a 
  307. non-intelligent modem.  Many of you will have to change this.
  308.  
  309. BYELOW    EQU    YES    ; Yes, for  BYE3 below CCP; no for above BIOS
  310. RAMTOP    EQU    0FFFFH    ; Last available RAM if BYELOW is 'NO'
  311. CCPL    EQU    8    ; Number of sectors for CCP size (norm=8)
  312. IMODEM    EQU    NO    ; Yes, for intelligent modem, including Hayes
  313. B2400    EQU    NO    ; Yes if your modem supports 2400 baud.  Leave
  314.             ;   as EQU until more port I/O inserts catch up
  315. DEBUG    EQU    NO    ; Yes, to see helpful info while debugging
  316. IOVAL    EQU    0    ; Initial value for IOBYTE (only if MINICK YES)
  317. OXGATE    EQU    NO    ; Yes, running OxGate RCPM-BBS system
  318. RBBSCK    EQU    NO    ; Yes, running RBBS - sets/resets 'WRTLOC' flag
  319. MINICK    EQU    NO    ; Yes, running MINICBBS
  320. TIMEON    EQU    NO    ; If YES, add your clock reader code at the
  321.             ; Start of label TIME: and store binary values
  322.             ;   in CHOUR and CMIN
  323. RSPEED    EQU    NO    ; Yes, if restricting primetime to a min. speed
  324.             ;   (a clock read routine is required if YES -
  325.             ; See TIMEON)
  326.      IF    RSPEED OR TIMEON ; Use these bytes in low memory
  327. LHOUR    EQU    050H    ; Set by BBS (or BYE) in binary
  328. LMIN    EQU    051H    ; When user logs on
  329. STATUS    EQU    053H    ; And his status
  330. MAXMIN    EQU    60    ; Minutes for maximum time allowed on system.
  331.             ;   This should be set to 60 if TIMEON is YES
  332.             ;   (255 minutes maximum.)
  333.      ENDIF        ; RSPEED OR TIMEON
  334.      IF    RSPEED    ; 24 hour clock-- 00 = midnight, 23 = 11PM
  335. HOUR1    EQU    19    ; Start of prime-time (19=7:00 PM)
  336. HOUR2    EQU    23    ; End of prime-time (23=11:00 PM)
  337. SPEED    EQU    5    ; Minimum speed accepted (5=1200 baud)    Change
  338.             ;   OFFMSG to match your times, baud rate and
  339.             ;   time zone.  OFFMSG is a message at code end
  340.      ENDIF        ; RSPEED
  341. ALLDEV    EQU    NO    ; Yes, retain PUN: RDR: and LST: devices
  342. CALLBAK    EQU    NO    ; Yes, allow callback feature
  343. COMFILE    EQU    YES    ; Yes, chain a .COM file upon carrier reception
  344. DECIMAL    EQU    NO    ; Yes, decimal value for userlog
  345. DUAL$IO    EQU    YES    ; Yes, console/modem linked together
  346. EXFILE    EQU    NO    ; Yes, chain a .COM file upon loss of carrier
  347. FKEYS    EQU    YES    ; Yes, local console has special function keys
  348. HARDLOG    EQU    NO    ; Yes, echo remote input to printer
  349. PRINTER    EQU    NO    ; Yes, retain list device
  350. PRNTGB    EQU    YES    ; Yes, print "Goodbye..." message
  351. PRNTWB    EQU    NO    ; Yes, print a string for each warm boot
  352. PWRQD    EQU    NO    ; Yes, password needed to login
  353. RKEYS    EQU    NO    ; Yes, remote console has special function keys
  354. TIMEOUT    EQU    YES    ; Yes, auto logout for sleepy callers
  355. TOVALUE    EQU    5    ; Minutes to auto logout
  356. USRLOG    EQU    NO    ; Yes, count number of users
  357. WBRTN    EQU    NO    ; Yes, do function each time system warm boots
  358. BLKOUT    EQU    YES    ; Turn off remote send
  359. BLNKKEY    EQU    'B'-40H    ; Keycode to "blank out" remote terminal
  360. CCSDISK    EQU    NO    ; Yes, CCS disk controller
  361. CLOSS    EQU    1    ; If carrier dies, wait 1 sec. before hanging up
  362. COMDRV    EQU    'A'    ; Drive to look for .COM file on
  363. COMUSR    EQU    14    ; User # of .COM file to be called after answer
  364. CPM2    EQU    YES    ; Yes, using CP/M 2.2
  365. CTRLC    EQU    'K'-40H    ; Map ^C to this charactero
  366. CWAIT    EQU    20    ; Wait up to 20 seconds for carrier at first
  367. EXDRV    EQU    'A'    ; Drive to look for exit .COM file on
  368. EXUSR    EQU    15    ; User # of .COM file to be called upon exit
  369. IMSAI    EQU    NO    ; Yes, if using IMSAI computer with front panel
  370. LOSER    EQU    NO    ; Yes, warm boot overwrites part of the BIOS
  371. LXID    EQU    11H    ; Define byte of LIX D,nnnn to fake loader
  372. LXIH    EQU    21H    ; Define byte of LXI H,nnnn to fake loader
  373. MHZ    EQU    4    ; Processor clock in MHz
  374. MSGKEY    EQU    'W'-40H    ; Keycode to print "Message from SYSOP: "
  375. MSPEED    EQU    003CH    ; Baud rate pointer
  376. NORING    EQU    YES    ; Yes, UART ring indicator NOT available
  377. SELPASS    EQU    NO    ; Require a password
  378. SENSE    EQU    0FFH    ; Sense switch port number
  379. SYSDKEY    EQU    'O'-40H    ; Char. to print "System going down in 5 min.."
  380. TWITKEY    EQU    'N'-40H    ; Keycode to hangup modem manually
  381. WELFILE    EQU    YES    ; Yes, to send a WELCOME file
  382. WELUSR    EQU    14    ; User # of WELCOME file
  383. ZILOG    EQU    YES    ; Yes, using a Z-80 or Z-800
  384. ZCPR2    EQU    NO    ; Yes, if running ZCPR or ZCMD2 or ZCMD or ZCPR
  385. ZCPR3    EQU    YES    ; Yes, if running ZCPR3
  386.      IF    ZCPR3
  387.     MACLIB    Z3BASE    ; Requires MAC to assemble...otherwise enter
  388.             ;   constants directly..see label DOZ3 for
  389.             ;   required EQU's
  390.      ENDIF        ; ZCPR3
  391. USEZCPR    EQU    NO    ; Yes, if using ZCPR or BBS to set max drive
  392.             ; And user #
  393. MAXDRIV    EQU    003DH    ; ZCPR lolcation of MAXDRIV byte
  394. WHEEL    EQU    004BH    ; Location of ZCPR's wheel flag
  395. MAXUSER    EQU    003FH    ; ZCPR location of MAXUSR byte
  396. MAXDRV    EQU    7    ; Highest drive supported (2=B:)
  397. MAXUSR    EQU    6    ; Highest user area
  398. SYSDRV    EQU    7    ; Highest local drive supported (2=B:)
  399. SYSUSR    EQU    15    ; Highest local user area (0-15)
  400. CHGPATH    EQU    YES    ; Yes, if changing ZCPR's external path
  401. EXTPATH    EQU    0040H    ; ZCPR external path default location
  402. .pa
  403.                        BYE parameter block
  404.  
  405.      What  follows  is how the BYE parameter block looks in  RAM.  
  406. Because BYE relocates itself into high RAM at run time,  you  may 
  407. find  out where this block resides using the P(eek) RCP  command.  
  408. The key is the three characters "BYE" at the end of the block.
  409.  
  410. ;-----------------------------------------------------------------------
  411. ;
  412. ; Here is a quickie handy reference table to use so we do not get mixed
  413. ; up.  Please it in any future changes.
  414. ;
  415. ; |mxusr|mxdrv|toval|nulls|ulcsw|lfeeds|wrtloc|hardon|lostflg|covect|
  416. ; |1 byt|1 byt|1 byt|1 byt|1 byt|1 byte|1 byte|1 byte|1 byte |2 byes|
  417. ;
  418. ;-----------------------------------------------------------------------
  419. ;
  420. MXUSR:    DB    MAXUSR        ; Runtime maximum user area available
  421. MXDRV:    DB    MAXDRV        ; Runtime maximum drive available
  422. TOVAL:    DB    TOVALUE        ; Number of minutes to wait before timeout
  423. NULLS:    DB    0        ; Number of nulls after <cr>
  424. ULCSW:    DB    0        ; Upper case only switch (32=upper case)
  425. LFEEDS:    DB    0        ; Line feed mask (0=don't mask)
  426. WRTLOC:    DB    0        ; Location RBBS pokes so bye doesn't hang
  427. HARDON:    DB    YES        ; If 0, hardlog is de-activated
  428. LOSTFLG:DB    0        ; If non-zero, do not output to console
  429. COVECT:    DW    VCONOUT+1    ; Console output vector for XMODEM
  430. HDROFF    EQU    $-MCBOOT    ; Offset to 'BYE' that follows
  431.     DB    'BYE'        ; Tells XMODEM that BYE is being used
  432. .pa
  433. Notes on XMODEM
  434.  
  435.      XMODEM requires that you overlay the program with a machine-
  436. specific  overlay,  very  similar  to  MDM7xx  or  MEX.   I  have 
  437. recommended XMDM105, but earlier versions are just as suitable.
  438.  
  439.                          XMODEM Options
  440.  
  441.      The  following  is an example of how my xmodem  options  are 
  442. set:
  443.  
  444. MHZ    EQU    4    ; Clock speed, use integer (2,4,5,8, etc.)
  445. CPMPLUS    EQU    NO    ; Yes, if operating in CP/M Plus environment
  446. STOPBIT    EQU    YES    ; Yes, if using 1 stop bit, no if using 2
  447. ZCPR2    EQU    YES    ; Yes, if using N/ZCPR/1/2/3 with WHEEL byte
  448. WHEEL    EQU    4BH    ; Location of ZCPR wheel byte (normally 03EH)
  449. NOCOMR    EQU    YES    ; Yes, change .COM to .OBJ on receive
  450. NOCOMS    EQU    YES    ; Yes, .COM files not sent
  451. NOLBS    EQU    YES    ; Yes, .??# files not sent
  452. NOSYS    EQU    YES    ; Yes, no $SYS files sent or reported
  453. USEMAX    EQU    NO    ; Yes if using ZCPR for DRIVMAX & USRMAX values
  454.             ; No to use MAXDRV and MAXUSR specified next
  455. DRIVMAX    EQU    03DH    ; Location of MAXDRIV byte
  456. USRMAX    EQU    03FH    ; Location of MAXUSER byte
  457. MAXDRV    EQU    7    ; Number of disk drives used
  458. MAXUSR    EQU    8    ; Maximum 'SEND' user allowed
  459. BUFSIZ    EQU    16    ; File transfer buffer size in Kbytes
  460. DESCRIB    EQU    YES    ; Yes asks for a description of uploaded file
  461. DRIVE    EQU    'A'    ; Drive area for description of upload
  462. USER    EQU    14    ; User area for description of upload
  463. BSIZE    EQU    32*1024    ; Set for 16k, 32k or 48k as desired for DESCRIB
  464. LARGEIO    EQU    NO    ; Yes, if modem patch area over 128 bytes
  465. LARSIZE    EQU    0    ; If 'LARGEIO' set patch area size here
  466. LOGCAL    EQU    YES    ; Yes, logs XMODEM transfers
  467. LOGUSR    EQU    14    ; User area to put 'XMODEM.LOG' file
  468. LOGDRV    EQU    'A'    ; Drive to place 'XMODEM.LOG' file
  469. LASTUSR    EQU    14    ; User area of 'LASTCALR' file, if 'LOGCAL' yes
  470. LASTDRV    EQU    'A'    ; Drive to read 'LASTCALR' file from
  471. OLDRBBS    EQU    YES    ; Yes, look for 'LASTCALR' file - no, look for
  472.             ; 'LASTCALR.DAT' file
  473. PRDRV    EQU    'G'    ; Private drive for SYSOP to receive file
  474. PRUSR    EQU    15    ; Private user area for SYSOP to receive file
  475. RETRY    EQU    YES    ; Yes requires a valid NAK to resend a record
  476.             ; No resends a record after any non-ACK
  477. SETAREA    EQU    YES    ; Yes, if using designated area to receive files
  478. SPCDU    EQU    YES    ; Yes=upload to normal area even with wheel byte
  479. DRV    EQU    'G'    ; Drive to receive file on
  480. USR    EQU    0    ; User area to receive file in
  481. SPLDRV    EQU    'G'    ; Special drive area for downloading SYSOP files
  482. SPLUSR    EQU    15    ; Special user area for downloading SYSOP files
  483. TAGLBR    EQU    NO    ; Yes tagged .LBR files not sent
  484. TIMOUT    EQU    1    ; Seconds to abort after carrier loss
  485. USECON    EQU    YES    ; Yes to get the original CONOUT address from
  486.             ;   BYE3 or MBYE-3.  'NO' to get the CONOUT
  487.             ;   address the value set in the XMODEM overlay.
  488. CONOFF    EQU    15    ; Offset to COVECT where original console output
  489.             ;   routine address is stored in BYE3/MBYE
  490.             ;   versions immediately followed by BYE as a
  491.             ;   check to insure BYE is running.
  492. RTC    EQU    NO    ; If YES, add clock and date reader code at
  493.             ; start of GETTIME: and GETDATE: below
  494. TIMEON    EQU    NO    ; If YES, add your clock reader code at the start
  495.             ; of label GETTIME: and return time in regs A & B
  496.      IF    TIMEON AND NOT CPMPLUS
  497.             ; Use these bytes in low memory
  498. LHOUR    EQU    050H    ; Set by BBS (or BYE) in binary
  499. LMIN    EQU    051H    ;   when user logs on
  500. STATUS    EQU    053H    ;  and his status
  501.      ENDIF        ; TIMEON AND NOT CPMPLUS
  502.      IF    TIMEON AND CPMPLUS
  503.             ; Use these bytes in low memory
  504. LHOUR    EQU    022H    ; Set by BBS (or BYE) in binary
  505. LMIN    EQU    023H    ;   when user logs on
  506. STATUS    EQU    024H    ;  and his status
  507.      ENDIF        ; TIMEON AND CPMPLUS
  508. LOGLDS    EQU    NO    ; Count number of up/down loads since login.
  509.             ;   Your BBS program can check UPLDS and DNLDS
  510.             ;   when user logs out and update either the
  511.             ;   user's file or a file for this purpose.
  512.             ;   You can either modify your BBS entry program
  513.             ;   to check the LASTCALR file before updating
  514.             ;   it and then update (risky), or make a sepa-
  515.             ;   rate program that BYE calls when logging
  516.             ;   off a user (preferred).
  517.      IF LOGLDS
  518. UPLDS    EQU    054H    ; Clear these values to Zero from your BBS pro-
  519. DNLDS    EQU    055H    ;   gram when somebody logs in.  NOTE:    Clear
  520.             ;   ONLY when a user logs in.  Not when he re-
  521.             ;   enters the BBS program for CP/M.
  522.      ENDIF        ;LOGLDS
  523. MAXTIM    EQU    YES    ; Yes if limiting transmission time
  524. MAXMIN    EQU    45    ; Minutes for maximum file transfer time
  525.             ;   this should be set to 60 if TIMEON is YES
  526.             ;   (99 minutes maximum.)
  527.  
  528.                          XMODEM Overlay
  529.  
  530.      XMODEM is overlayed by an XMODEM overlay,  similar to MDM7xx 
  531. and it's overlays.  The overlay is assembled seperately, and then 
  532. the object code is overlayed onto the main XMODEM program through 
  533. the use of MLOAD or DDT/SID/etc.   Both the main XMDM105.ASM file 
  534. and most overlays contain instructions on how to do  this.   This 
  535. overlay is very easy to work with, compared to BYE's overlay.
  536. .pa
  537. Notes on TYPEL
  538.  
  539.      Typel  has a patch area near the front of the  program  that 
  540. should be set appropriately for your system.  This area should be 
  541. patched  with  the max drive and user that a non-wheel  user  can 
  542. access.   See  the  .DQC  file on TYPEL for further  patch  info.  
  543. TYPEL should be renamed to TYPE.COM
  544.  
  545.                           TYPEL Patches
  546.  
  547.      The following is an extract from TYPEL.DOC file:
  548.  
  549. OPTIONS:
  550.  
  551. TYPEL can be fully configured from the .COM file without need for reas-
  552. sembly.  The following are the relevant patch locations:
  553.  
  554. 0103    MAXDRV        enter highest drive allowed PLUS 1 (A=2, B=3...)
  555. 0104    MAXUSR        enter highest allowable user area PLUS 1
  556. 0105    MAXLIN        enter maximum number of lines before TYPEL
  557.             aborts, or enter 0 for no limit.
  558. 0106    MAXLPS        enter number of lines on screen MINUS 1, or 0
  559.             for continuous display ($N command line option
  560.             overrides the setting).
  561. 0107    LSTEN        enables LST output. Set to 1 to enable LST op-
  562.             tion (default) or set to 0 if LST undesired.
  563. 0108    SYSEN        enables $SYS type. Set to 0 to disallow $SYS or
  564.             to 1 (default) to allow $SYS.
  565. 0109    EJECTP        enter number of lines per printed page or 0 if
  566.             page eject is not desired.
  567. 010A    ...        The exclusion table starts here. Each entry has
  568.             3 bytes.  A "?" denotes an ambiguous byte i.e.,
  569.             "OV?" matches "OVR", "OVL", etc.  There is room
  570.             for an additional 9 entries.  If you wish to
  571.             DELETE an entry, use DDT to set all high bits.
  572. .pa
  573. Notes on SD
  574.  
  575.      Sysops  who  will  be  running  ZRDOS  must  use  SD97   and 
  576. subsequent versions.  SD96 and previous will cause ZRDOS to crash 
  577. if  a  command  line option of D (all disks) is  used.   This  is 
  578. because  SD96 and previous actually modify the  Digital  Research 
  579. BDOS,  something  that is a big no-no,  and is unnecessary  under 
  580. ZRDOS.   Joe  Wright  modified  SD to work properly  with  ZRDOS, 
  581. beginning with SD97.
  582.  
  583.      SD  is  a  oversized mess of  spaghetti  code  that  somehow 
  584. manages  to  work very nicely.   It is renamed to  DIR.COM  after 
  585. assembly  and serves as the system's DIR command.   There are two 
  586. major advantages of using SD instead of any of the many ZCPR3 DIR 
  587. commands,  1) SD can display library file directories,  and 2) SD 
  588. supports  BYE features that limit access to higher  user  numbers 
  589. and  disks.   There is one disadvantage of using SD,  in that  it 
  590. does  not understand named directory references as the many ZCPR3 
  591. DIR commands would.  So that's one disadvantage compared with two 
  592. advantages,  so that is why I recommend it.   And when you get to 
  593. the subsequent section of this document discussing useful ALIASes 
  594. for use on a Z-Node, you will see how useful SD is.
  595.  
  596.                            SD Options
  597.  
  598.      SD  requires that you set a bunch of assembly-time  options.  
  599. There  is  also a table of drive/user areas that must  be  edited 
  600. before  assembly.   The following options are what is used on  my 
  601. system:
  602.  
  603. DIRCON    EQU    NO        ; Yes for direct console output
  604. LOWCCP    EQU    YES        ; Yes only if you are running with byelow
  605.      [Note:  the following equate must be set to the base page of your BDOS]
  606. BDOSPG    EQU    0C8H        ; Set properly if lowccp is yes
  607. CPM3    EQU    NO        ; Set to yes if running cp/m 3 or above
  608. TIMEON    EQU    NO        ; If yes, add your clock reader code at
  609.                 ; Start of label time: and store binary
  610.                 ; Values in chour and cmin
  611. QUITE    EQU    YES        ; Yes if "Time on System is xx minutes" suppressed
  612.      IF    NOT CPM3
  613. CHOUR    EQU    043H        ; Some bios clocks keep time
  614. CMIN    EQU    044H        ; Here anyway
  615. LHOUR    EQU    050H        ; Set by bbs (or bye) in binary
  616. LMIN    EQU    051H        ; When user logs on
  617. STATUS    EQU    053H        ; And his status
  618.      ENDIF            ; Not cpm3
  619.      IF    CPM3
  620. CHOUR    EQU    020H        ; Some bios clocks keep time
  621. CMIN    EQU    021H        ; Here anyway.
  622. LHOUR    EQU    022H        ; Set by bbs (or bye) in binary
  623. LMIN    EQU    023H        ; When user logs on
  624. STATUS    EQU    024H        ; And his status
  625.      ENDIF            ; Cpm3
  626. MAXMIN    EQU    60        ; Minutes for maximum file transfer time
  627.                 ; This should be set to 60.  (99 max)
  628. ZCPR2    EQU    YES        ; Yes if nzcpr/zcpr2 (wheel byte enabled)
  629. MAXUR    EQU    YES        ; Yes if using maxusr in nzcpr/zcpr2
  630. MAXDR    EQU    YES        ; Yes if using maxdrv in nzcpr/zcpr2
  631. MAXCL    EQU    NO        ; Yes if storing mnpl value at maxc
  632. WHEEL    EQU    4BH        ; Set to wheel location if zcpr2 is yes
  633.                 ; Use 3eh if using nzcpr or zcmd
  634.                 ; Use 3bh if using unmodified zcprhdr file
  635. MAXU    EQU    0B6D4H        ; Set to max user location if maxur is yes
  636. MAXD    EQU    0B6D5H        ; Set to max drive location for maxdr=yes
  637. MAXC    EQU    3BH        ; Set to # of names per line location
  638. MXZUSR    EQU    15        ; Maximum user # allowed whlusr=yes/wheel set
  639. WHLUSR    EQU    YES        ; Yes to allow search 0-mxzusr if wheel set
  640. WHLA    EQU    NO        ; Yes to disallow a option if wheel zero
  641. WHLC    EQU    YES        ; Yes to disallow c option if wheel zero
  642. WHLCL    EQU    NO        ; Yes to disallow 4,6 or 8 options if wheel = 0
  643. WHLD    EQU    NO        ; Yes to disallow d option if wheel zero
  644. WHLF    EQU    YES        ; Yes to disallow f option if wheel zero
  645. WHLL    EQU    NO        ; Yes to disallow l option if wheel zero
  646. WHLP    EQU    YES        ; Yes to disallow p option if wheel zero
  647. WHLR    EQU    YES        ; Yes to disallow r option if wheel zero
  648. WHLS    EQU    YES        ; Yes to disallow s option if wheel zero
  649. WHLU    EQU    NO        ; Yes to disallow u option if wheel zero
  650. AOPT    EQU    YES        ; Yes to allow searching all user areas
  651. COPT    EQU    NO        ; Yes to allow clear screen
  652. CLOPT    EQU    YES        ; Yes allows a 40, 64 or 80 column display
  653. DOPT    EQU    YES        ; Yes to allow searching all drives on-line
  654. FOPT    EQU    YES        ; Yes to allow file output option
  655. LOPREV    EQU    NO        ; No to reverse the "L" option and not print
  656. LOPT    EQU    YES        ; Yes to allow library file member printing
  657. NOPT    EQU    YES        ; Yes to allow disabling page pause option
  658. PGPAWS    EQU    YES        ; Yes for pause after each page
  659. POPT    EQU    YES        ; Yes to allow printer option
  660. ROPT    EQU    YES        ; Yes to allow reset option
  661. SOPT    EQU    YES        ; Yes to allow system file option
  662. UOPT    EQU    YES        ; Yes to allow user number option
  663. VOPT    EQU    YES        ; Yes to allow version number display
  664. REVIDEO    EQU    NO        ; Use reverse video sequences
  665.                 ; If no, the rest of the equates are disabled
  666. LEADIN    EQU    ESC        ; Escape lead-in (try a null if not required)
  667. INTOREV    EQU    '4'        ; Toggle background (enter your value here)
  668. OUTAREV    EQU    '3'        ; Toggle foreground (enter your value here)
  669. VECTOR    EQU    NO        ; Yes to display attributes on flashwriter ii
  670. VIDEO    EQU    0E009H        ; Entry to flashwriter video driver prom
  671.      IF    NOT (ZCPR2 AND MAXCL)
  672. NPL    EQU    4        ; # of names per line max values are:
  673.                 ; 2 for 40 x xx, 3 for 64 x 16, & 4 for 80 x 24
  674.      ENDIF
  675. LPS    EQU    24        ; # of lines per screen  max values are:
  676.                 ; ? for 40 x xx, 16 for 64 x 16, 24 for 80x24
  677. LPS1    EQU    16        ; # of lines per screen if names per line = 3
  678. LPS2    EQU    16        ; # of lines per screen if names per line < 3
  679. FENCEC    EQU    '|'        ; Use 00h for none
  680. KTHREE    EQU    NO        ; Yes limits file size columns to 3 digits to
  681.                 ; Gain an additional print colomn.  allows
  682.                 ; Fence to be used with four files per line.
  683. PRDI    EQU    NO        ; Yes to print drive # on each line
  684. PRUS    EQU    NO        ; Yes to print user # on each line
  685. PRLIBD    EQU    NO        ; If yes and prus & prdi are yes then drive and
  686.                 ; User numbers will be displayed on library
  687.                 ; Listing lines
  688. PRBRDR    EQU    NO        ; Yes to print a quasi-border for library files
  689. DORST    EQU    YES        ; Yes to always reset disks when d option active
  690. DUOPT    EQU    NO        ; Yes, allow drive/user spec zcpr2 style
  691. NODISK    EQU    YES        ; Yes if you do not want to specify disk drive
  692.                 ; When asking for options and using default drv
  693. REPERR    EQU    YES        ; Yes to report command line option errors
  694. REPUSR    EQU    YES        ; Yes to report user numbers
  695. VCODE    EQU    YES        ; Yes if files are to be alphabetized vertically
  696.  
  697.      Don't  forget  to edit the drive/user table you will find  a 
  698. small way into the actual code of the program!
  699. .pa
  700.                           METAL and SD
  701.  
  702.      If you are using METAL as your message system software,  the 
  703. following statements apply to you.  SD needs to know where it can 
  704. find parameters describing what maximum user # and disk drive are 
  705. available  to  the caller.   The BYE "parameter  block"  must  be 
  706. located  in  RAM and the MAXD and MAXU values must  be  extracted 
  707. from it.   Then,  the addresses of the parameters are set into SD 
  708. before  assembly.   By  default,  SD  is set up to  expect  these 
  709. parameters in the wrong place, SO THIS MUST BE CHANGED IF YOU ARE 
  710. USING  METAL.   METAL is different than other message systems  in 
  711. that  it  sets the values directly in the  BYE  parameter  block, 
  712. unlike RBBS and others which fool around with locations in page 0 
  713. of RAM.  These parameters are altered by METAL to allow different 
  714. usertypes different levels of access.   For instance, when I, the 
  715. sysop,  go  to the operating system from METAL,  it will set  the 
  716. MAXU parameter to 15.  I can therefore access user 15 without BYE 
  717. sending me back to user 0.   However,  if an ordinary user  who's 
  718. MAXU is set to 6 goes to the operating system,  BYE will send him 
  719. back  to  user 0 if somehow he managed to get to  user  15.   (He 
  720. couldn't  get  into user 15 anyway,  because he doesn't have  the 
  721. password for the Named Directory,  but that's beside the  point.)  
  722. The  bottom  line is that you the sysop have to figure out  where 
  723. these values in the BYE parameter block are located in  RAM,  and 
  724. set  the corresponding EQUate statements in the SDxx.ASM file  in 
  725. order for SD to follow the right MAXD and MAXU values.   I should 
  726. also  point out that if you change BYE at all that this procedure 
  727. will need to be done all over again.   I know that this is a  big 
  728. pain but it is what you must do in these circumstances to prevent 
  729. callers  from  seeing directories of A15:  and all the nasty  COM 
  730. files  that sysops keep there.   Not that they could invoke  them 
  731. (as long as DU: is disabled and the directory is passworded), but 
  732. why give people the temptation?  If anyone has a better way, I'll 
  733. be  glad to hear it!   Now,  to find the BYE parameter  block,  I 
  734. suggest  that  you the sysop come in as a  remote  caller,  i.e., 
  735. while  BYE is active.   Call in from someplace.   Then enter  the 
  736. operating system, enable the WHEEL byte, and use the peek command 
  737. of  your RCP.   See the description of the BYE parameter block in 
  738. BYE329.ASM,  and  for  an example of how to  find  the  parameter 
  739. block  (when BYE is active in RAM),  see the findbye  routine  in 
  740. PWD11.MQC.  If you follow the same steps, you can find it too.
  741.  
  742. I disable the DU: recognition in SD through EQUate selections, in 
  743. order for it to behave more like a Z3 utility.
  744. .pa
  745. ALIASes
  746.  
  747.                  Convienent ALIASes on a Z-Node
  748.  
  749.      First  a  note about BYE329 and the path:   BYE329  has  the 
  750. capability of changing the path when being invoked or terminated.  
  751. I suggest you use this feature,  making the path simply A0:  when 
  752. BYE is invoked and A0:  A15:  when terminated.   These parameters 
  753. are  all set in the BYE329.ASM file.   The convienence of  having 
  754. the path set automatically is very nice; however, you (the sysop)  
  755. will have to set the path manually to A0:  A15:  when you call in 
  756. remotely.   I mention this because some of the following  ALIASes 
  757. are only found in A15:.
  758.  
  759.  
  760.      ALIAS Name: CHBBS.COM
  761.  
  762.      Typically located in: A15:SYSOP>
  763.  
  764.      Command line contained:
  765.  
  766.           METAL:;TYPE CALLERS $$N;TYPE XMODEM.LOG $$N;COMMAND:
  767.  
  768.      Typically  the  METAL directory is passworded,  so you  must 
  769. respond to the PW?  prompt you will recieve with the password for 
  770. the  METAL  directory.   This  ALIAS does a quick  check  of  the 
  771. callers log and xmodem log.
  772.  
  773.  
  774.      ALIAS Name: STARTBBS.COM
  775.  
  776.      Typically located in: A14:METAL>
  777.  
  778.      Command line contained:
  779.  
  780.           METAL R;TCSELECT
  781.  
  782.      This program is not normally used by the sysop at all.  This 
  783. ALIAS  is the COM file loaded by BYE and executed after BYE types 
  784. the  WELCOME file to the user.   (This is how users on my  system 
  785. are  forced  into  TCSELECT  before  entering  ZRDOS  - They  are 
  786. actually completing this ALIAS).
  787.  
  788. .pa
  789.      ALIAS Name: EXITBBS.COM
  790.  
  791.      Typically located in A15:SYSOP>
  792.  
  793.      Command line contained:
  794.  
  795.           LDR SYS.ENV;COMMAND:
  796.  
  797.      I  have  modified my BYE329 to load the  command  buffer  of 
  798. ZCPR3  with the command EXITBBS.   This LDR command re-loads  the 
  799. entire  .ENV  file,  but the real purpose is to re-load the  TCAP 
  800. with my terminal's control sequences.   Because BYE329 zeroes out 
  801. the TCAP on termination (who knows what might be in there...), it 
  802. is necessary to reload it like this, so if you have WS patched to 
  803. use the TCAP,  you can then use WS.   It is not necessary to have 
  804. this ALIAS, as a manual command is almost as easy, but I found it 
  805. sure gets repetitive.  It is placed in A15: because that is where 
  806. the  SYS.ENV  file is located,  and for some reason  LDR  doesn't 
  807. understand the DIR: prefix, so I have BYE exit to A15:.
  808.  
  809.  
  810.      ALIAS Name: LDIR.COM
  811.  
  812.      Typically located in: A0:COMMAND>
  813.  
  814.      Command line contained:
  815.  
  816.           DIR $1.LBR  $$L
  817.  
  818.      This ALIAS is a nifty way to eliminate needing to maintain a 
  819. bonafide LDIR program.   It uses SD (renamed to DIR) to show  the 
  820. directory  of  a library file.   It is actually better  than  the 
  821. conventional LDIR as it can accept ambiguous filenames.
  822.  
  823.  
  824.      ALIAS Name: LTYPE.COM
  825.  
  826.      Typically found in: A0:COMMAND>
  827.  
  828.      Command line contained:
  829.  
  830.           TYPE $1 $2
  831.  
  832.      This uses TYPEL (renamed to TYPE) and it's support of typing 
  833. library members.  Eliminates the need to maintain a genuine LTYPE 
  834. program on your system.
  835.  
  836. .pa
  837.      ALIAS Name: BIGDIR.COM
  838.  
  839.      Typically found in: A0:COMMAND>
  840.  
  841.      Command line contained:
  842.  
  843.           DIR *.* $$u0adl
  844.  
  845.      This   ALIAS   is  usually  used  by  new  callers  to   see 
  846. "everything".   And boy, do we mean everything.  Uses SD (renamed 
  847. to DIR).
  848.  
  849.  
  850.      ALIAS Name: FIND.COM
  851.  
  852.      Typically found in: A0:COMMAND>
  853.  
  854.      Command line contained:
  855.  
  856.           DIR $1 $$u0ad
  857.  
  858.      This ALIAS allows callers to find which area of the system a 
  859. file may be located at.   I invented this as a temporary measure, 
  860. because  it does not search library file  directories.   Well,  I 
  861. still haven't gotten around to getting a better version yet.   SD 
  862. will  search all accessible user areas,  and will report when  it 
  863. finds  a  matching filename.   If an entire (accessible) disk  is 
  864. searched, then a "No File on x:" message is printed.
  865.  
  866.  
  867.      ALIAS Name: ARCHIVE.COM
  868.  
  869.      Typically found in A15:SYSOP>
  870.  
  871.      Command line contained:
  872.  
  873.           AC Z3CORE:*.*=$1:*.* /A
  874.  
  875.      This  ALIAS is probably only of interest to systems using  a 
  876. hard  disk.   This  uses the ZRDOS AC utility to copy only  files 
  877. that have changed.   The directory Z3CORE: on my system is one of 
  878. the floppy drives,  which is probably something different on your 
  879. system.   Change the destination DIR:  as appropriate.  The usage 
  880. is ARCHIVE <source DIR:>, as ARCHIVE SYSOP.  Passworded DIRs like 
  881. "SYSOP" will require a response to the PW? prompt.
  882.  
  883. .pa
  884.      ALIAS Name: M8.COM
  885.  
  886.      Typically found in A15:SYSOP>
  887.  
  888.      Command line contained:
  889.  
  890.           M80 =$1;L80 $1/P:100,VLIB/S,Z3LIB/S,SYSLIB/S,$1/N/E
  891.  
  892.      A great way to assemble ZCPR3 utilities.   No muss, no fuss.  
  893. Of  course,  the  *.REL  files called out should be in  the  same 
  894. directory as L80.
  895.  
  896.  
  897.                         ALIAS "Breaking"
  898.  
  899.      I  was  suprised  to  find out ALIASes  can  be  prematurely 
  900. terminated under certain conditions.  What this means is that you 
  901. must never assume that an ALIAS is secure;  it can be prematurely 
  902. terminated.   All  that it requires is a ctl-S ctl-C sequence  if 
  903. any characters are being printed to the console.   So,  don't  do 
  904. things like setting the WHEEL byte from within an ALIAS,  because 
  905. it might not get reset!
  906.  
  907. Notes on System Organization
  908.  
  909.      The  first thing you should realize is that all  .COM  files 
  910. that are to be accessible to ordinary callers should be placed in 
  911. A0:.   This way,  a caller can invoke them from any directory and 
  912. they will be found and executed via the PATH function of ZCPR3.
  913.  
  914.      All  directories  that  are to be inaccessible  to  ordinary 
  915. callers should be passworded.  Although BYE contains an excellent 
  916. security  routine that limits the highest user that a caller  may 
  917. access, when TERM3 replaces BYE this will no longer be available.
  918.  
  919.      If  you  are going to need more than 14  named  directories, 
  920. there will have to be some work done.   Although Echelon's advice 
  921. that  LDR can simply load a different .NDR segment to expand to a 
  922. different set of 14 directories is valid for single-user systems, 
  923. this is of little value on a Z-Node.  The reason: You do not want 
  924. LDR.COM  available to callers...if it were available to  callers, 
  925. they may be able to upload their own segments and use LDR to load 
  926. them.   What  this  means is that a caller could  (for  instance) 
  927. replace  the  usual  RCP  for a Z-Node  that  has  all  dangerous 
  928. commands  responding  to the WHEEL byte with  one  that  doesn't.  
  929. Very  bad  situation.   Probably  the  best  way  to  handle  the 
  930. situation  of  needing  more than 14 named directories  could  be 
  931. handled by expanding the Named Directory Segment in RAM.  Since I 
  932. have  not  needed  to do this,  I am not sure if  there  are  any 
  933. special difficulties.  LDR and/or MKDIR may need to be changed to 
  934. cope  with  a  larger .NDR file.   If someone  comes  up  with  a 
  935. solution, please forward it to me at the ZCPR3 BBS for everyone's 
  936. mutual edification.
  937. .pa
  938.      There  are  some  directory names that  I  think  should  be 
  939. standard on a Z-Node.  Examples:
  940.  
  941.      - UPLOADS: A collection point of uploads to the Z-Node.
  942.  
  943.      - HELP: Where *.HLP files are found easily by the ZCPR3 HELP 
  944. program.
  945.  
  946.      - COMMAND:  Where all .COM files (accessible to callers) are 
  947. stored.  Usually the A0: drive/user area.
  948.  
  949.      - SYSOP: Where the sysop stores files on the system that are 
  950. for  his use ONLY.   Usually this is A15:,  and the directory  is 
  951. passworded.   Examples  of nice programs to have here are NSWEEP, 
  952. NULU, ALIAS, etc.
  953.