home *** CD-ROM | disk | FTP | other *** search
- .cw 11
- .po 11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- *****************************************************************
- * Z-Node Configuration *
- * *
- * by David McCord, SYSOP, the ZCPR3 BBS *
- * *
- * (415)489-9005 24 hrs. 300/1200 *
- * *
- * Date: 27 Feb 1985 *
- * *
- *****************************************************************
- .pa
- .he Z-Node Configuration
- Introduction
-
- Philosophy
-
- A Z-Node is an expression to the world. It says, "Eight bit
- is not dead!" Such is our rallying cry. Personally I agree; and
- I do what I can to promote eight bit. It is my hope that there
- are many more like me with their Z80 and Hitachi microprocessors.
- Personally, also, I dislike what IBM has done to the
- microcomputer environment. The intellectual stagnation and "me-
- too"-ism is painful for me to see. The major shame of what IBM
- has done, in my opinion, is to make micros mediocre. With the
- potential power of their machine, they settled on MSDOS...what a
- kludge it is! ZCPR3 beats the pants off of it in every
- conceiveable aspect (except hierarchical directories). So, in
- conclusion, I want people to realize that there are alternatives.
- Z-Nodes are an excellent way of promoting those alternatives.
-
- This document is on the topic of how to bring up a Z-NODE.
- I basically have taken the approach of documenting how my system
- is configured, hoping that you will follow in my footsteps.
- Please remember as you read through this document that most of
- what I present may always be modified or changed as necessary to
- suit your needs; and that this document is a guide, not a
- dogmatic treatise. Feel free to vary from what I have said
- herein wherever and whenever you find something that works
- better.
-
- I can only give a small amount of advice regarding being a
- sysop (SYStem OPerator) to those of you who do not have the
- experience. The first, and most important, rule is to remember
- that you are responsible for everything that occurs on your
- remote access computer. So, right at the outset you will need to
- have a decision made as to whether you will be running an open
- system (anyone can access), or a closed ("registration") system.
- My personal preference is an open system because I feel that a
- remote access computer system has intrinsic worth to the
- community, and that worth is greatly diminished when the public
- as a whole can no longer access it.
-
- But there are certainly many sysops who can tell you horror
- stories about ill-mannered users, and how they think registration
- is "the only way to go".
-
- Bottom line: you are legally reponsible for what happens on
- your Z-Node.
-
- Installation Overview
-
- At present, TERM3 and EMSG are not available. Therefore, it
- is necessary to use some of the old RCP/M programs on your Z-Node
- until they can be replaced with their ZCPR3 equivalents. The old
- RCP/M software we will use includes BYE and XMODEM. If a message
- system is to be used until EMSG is available, I suggest the METAL
- message system. However, anything you find acceptable is OK as
- an interim solution.
-
- A suggested plan of attack is to install things in the
- following order:
-
- - ZCPR3 (manual or auto install)
-
- - ZRDOS
-
- - BYE
-
- - XMODEM
-
- - SD (renamed DIR)
-
- - TYPEL (renamed TYPE)
-
- Throughout this document, I will be listing assembly-time
- options for each program under discussion.
- .pa
- Files Required
-
- You will need the following files to duplicate my system.
- The files you need are usually available on larger RCP/M's or Z-
- Nodes. A recommended minimum:
-
- - BYE329.ASM (BYE program)
-
- - A BYE insert for your machine. Sometimes incorrectly
- called a BYE "overlay".
-
- - XMDM105.ASM (XMODEM program)
-
- - An XMODEM overlay for your machine.
-
- - TYPEL36.COM (TYPE, LTYPE program)
-
- - SD97.ASM (DIR program)
-
- - PWD11 (Modified to be used with BYE)
-
- - A Z3BASE.LIB file OR a Z3ENV.LIB file for assembly of
- BYE329 (support of initializing Z3 segments)
-
- - The MAC or ZAS assembler
-
- - MLOADxx.COM
-
- - A message system such as RBBS, METAL, et. al.
-
- - And, of course, ZCPR3 and ZRDOS
-
- Version numbers are not absolute: subsequent versions should
- be acceptable. Previous versions may require extensive
- modifications. All examples of assembly time options are
- extracted from the versions listed above: other versions may
- vary.
- .pa
- Notes on ZCPR3 for Z-Nodes
-
- DU: Disabled Operation
-
- The distinguishing characteristic of a Z-Node is that it
- does not recognize the DU: form when in the operating system.
- Although I have heard of systems where they have managed to keep
- the DU: form (security is enforced by non-ZCPR means), I
- recommend that you use the DIR: form only. This is because TERM3
- and EMSG will expect this to be the way system security will be
- enforced.
-
- One of the things that can make using named directories much
- easier is a terminal (or software emulation) that has
- programmable function keys. This is very convienent for
- responding to the PW? prompt when logging into a passworded
- directory, just hit one key to enter the password and that's it!
- Function keys are also very useful in invoking ALIASes, and if
- your function keys are programmable, then DPROG.COM will give
- you flexibility in redefining them. For instance, use one set of
- definitions for use with the Z-Node, and another for WordStar,
- another for WordMaster, another for MEX, etc.
-
- Manual-Install ZCPR3 Options
-
- (Users of Z-Com can skip to the next section.)
-
- The following options should be duplicated in your Z3HDR.LIB
- file if you are using the manual-install version. People using
- Z-Com can skip this.
-
- COMTYP MACRO
- DB 'COM'
- ENDM
-
- SUBTYP MACRO
- DB 'SUB'
- ENDM
-
- SUBON EQU TRUE
- DRVPREFIX equ TRUE
- COMATT equ 01H
- DIRON equ FALSE ;DIR COMMAND
- LTON equ FALSE ;LIST, TYPE COMMANDS
- GOON equ TRUE ;GO COMMAND
- ERAON equ FALSE ;ERA COMMAND
- SAVEON equ TRUE ;SAVE COMMAND
- RENON equ FALSE ;REN COMMAND
- GETON equ FALSE ;GET COMMAND
- JUMPON equ FALSE ;JUMP COMMAND
- NOTEON equ FALSE ;NOTE COMMAND
-
- IF Z3WHL NE 0 ;IF A WHEEL BYTE ADDRESS IS DEFINED
- WERA equ TRUE ;Make ERA a Wheel-Oriented Command
- WREN equ TRUE ; " REN " " " "
- WLT equ TRUE ; " L/T " " " " (LIST/TYPE)
- WGO equ TRUE ; " GO " " " "
- WSAVE equ TRUE ; " SAVE " " " "
- WGET equ TRUE ; " GET " " " "
- WJUMP equ TRUE ; " JUMP " " " "
- WDU equ FALSE ; " DU: " " " " (DU/DIR Change)
- WHEEL equ WERA OR WREN OR WLT OR WGO OR WSAVE OR WGET OR WJUMP OR WDU
- ENDIF ;Z3WHL
-
- ERAOK equ FALSE
- ERAV equ FALSE
- ERDFLG equ 'V'
- PGDFLT EQU TRUE
- PGDFLG EQU 'P'
- NLINES EQU 24
- SECTFLG EQU 'S'
- MINPATH EQU TRUE
- SCANCUR EQU TRUE
- INCLDU equ TRUE
- ACCPTDU EQU FALSE
- NDINCP EQU TRUE
- INCLNDR EQU TRUE
- ACCPTND EQU TRUE
- DUFIRST EQU FALSE
- PWCHECK EQU TRUE
- CMDSEP equ ';'
- CMDRUN equ FALSE ; Enable the Facility
- IFON EQU TRUE
- MAXUSR EQU 31 ;MAXIMUM USER NUMBER ACCESSABLE
- MAXDISK EQU 3 ;MAXIMUM NUMBER OF DISKS ACCESSABLE
- SUPRES EQU FALSE ;SUPRESSES USER # REPORT FOR USER 0
- SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND
- CPRMPT EQU '>' ;CPR PROMPT INDICATING USER COMMAND
- NUMBASE EQU 'H' ;CHAR USED TO SWITCH FROM DEFAULT NUMBER BASE
- CURIND EQU '$' ;SYMBOL FOR CURRENT DISK OR USER
- COMMENT EQU ';' ;LINES BEGINNING WITH THIS CHAR ARE COMMENTS
-
- And don't forget to turn on the wheel check options for the
- commands you select in Z3HDR.LIB!
- .pa
- ZCPR3 System Segments
-
- The following discussion about system segments applies only
- if you are using them. All RCP's, FCP's, and IOP's are optional
- at this point in time.
-
- SYSENV.LIB
-
- Your system's environment descriptor should have the "don't
- accept DU: option enabled. The Z3 utilities will then read this
- and ignore the DU: form.
-
- RCP
-
- For folks that are doing a manual-install version of ZCPR3,
- an RCP that I believe was intended for use under a remote system
- is found in SYSRCP3.LIB. This will require practically no
- modification to be used in the secure environment, as all of the
- commands contained in it respond to the wheel byte. My
- associate, Joe Wright, suggests that you disable the WHL command
- that is enabled as the default.
-
- FCP
-
- At present I am using SYSFCP1.LIB as the system's FCP. I
- have not as yet discovered a good use of the FCP for remote
- callers, but I find it useful in some sysop-oriented tasks.
-
- IOP
-
- There is not an IOP implemented on Z-Node Central at this
- time. I see no use for it, either. (of course, the AMPRO box I
- use doesn't have a lot of ports, that's why I'm not using an IOP)
- .pa
- Notes on BYE
-
- Getting BYE running will probably be the most challenging
- task involved in getting your Z-Node going. However, it is not
- any easier under standard CP/M either! BYE329 or later (Sorry, I
- can't comment on MBYE, don't know anything about it or any other
- BYE versions) is recommended because it has special support for
- the ZCPR3 segments that should be initialized when a new caller
- comes on or BYE terminates. See my document Z3&BYE#2.DOC for
- further information on the subject of modifying BYE for ZCPR3 if
- you do not intend to use BYE329 as BYE.COM on your system.
-
- BYE Overlay
-
- The BYE3xx.ASM file is not complete. This means that if you
- try to assemble it, you will get a lot of assembly errors. What
- must be done is a BYE "overlay" must be INSERTED INTO THE
- BYE3xx.ASM FILE. Use a word processor to do this. If you scan
- down about a third of the way into the BYE3xx.ASM file, you will
- find a section labeled "Insert your modem routines here". Using
- a command to read from a file (like WS ^Kr, or WM y commands),
- insert the bye "overlay" file at that point.
-
- The BYE overlay contains options for selecting which baud
- rates your system can support. It also contains the code
- necessary to do software changing of baud rates if you will be
- supporting more than one speed. Generally speaking, there are
- overlays available for most computers, but in case you need to
- make up one of your own, you'd better have the tech manuals for
- the I/O ports of your machine available.
-
- BYE Options
-
- BYE329 has about a million assembly-time options that you
- must have set properly. Some of these may vary from what I have
- shown below. Please note that my system is set up for use with a
- non-intelligent modem. Many of you will have to change this.
-
- BYELOW EQU YES ; Yes, for BYE3 below CCP; no for above BIOS
- RAMTOP EQU 0FFFFH ; Last available RAM if BYELOW is 'NO'
- CCPL EQU 8 ; Number of sectors for CCP size (norm=8)
- IMODEM EQU NO ; Yes, for intelligent modem, including Hayes
- B2400 EQU NO ; Yes if your modem supports 2400 baud. Leave
- ; as EQU until more port I/O inserts catch up
- DEBUG EQU NO ; Yes, to see helpful info while debugging
- IOVAL EQU 0 ; Initial value for IOBYTE (only if MINICK YES)
- OXGATE EQU NO ; Yes, running OxGate RCPM-BBS system
- RBBSCK EQU NO ; Yes, running RBBS - sets/resets 'WRTLOC' flag
- MINICK EQU NO ; Yes, running MINICBBS
- TIMEON EQU NO ; If YES, add your clock reader code at the
- ; Start of label TIME: and store binary values
- ; in CHOUR and CMIN
- RSPEED EQU NO ; Yes, if restricting primetime to a min. speed
- ; (a clock read routine is required if YES -
- ; See TIMEON)
- IF RSPEED OR TIMEON ; Use these bytes in low memory
- LHOUR EQU 050H ; Set by BBS (or BYE) in binary
- LMIN EQU 051H ; When user logs on
- STATUS EQU 053H ; And his status
- MAXMIN EQU 60 ; Minutes for maximum time allowed on system.
- ; This should be set to 60 if TIMEON is YES
- ; (255 minutes maximum.)
- ENDIF ; RSPEED OR TIMEON
- IF RSPEED ; 24 hour clock-- 00 = midnight, 23 = 11PM
- HOUR1 EQU 19 ; Start of prime-time (19=7:00 PM)
- HOUR2 EQU 23 ; End of prime-time (23=11:00 PM)
- SPEED EQU 5 ; Minimum speed accepted (5=1200 baud) Change
- ; OFFMSG to match your times, baud rate and
- ; time zone. OFFMSG is a message at code end
- ENDIF ; RSPEED
- ALLDEV EQU NO ; Yes, retain PUN: RDR: and LST: devices
- CALLBAK EQU NO ; Yes, allow callback feature
- COMFILE EQU YES ; Yes, chain a .COM file upon carrier reception
- DECIMAL EQU NO ; Yes, decimal value for userlog
- DUAL$IO EQU YES ; Yes, console/modem linked together
- EXFILE EQU NO ; Yes, chain a .COM file upon loss of carrier
- FKEYS EQU YES ; Yes, local console has special function keys
- HARDLOG EQU NO ; Yes, echo remote input to printer
- PRINTER EQU NO ; Yes, retain list device
- PRNTGB EQU YES ; Yes, print "Goodbye..." message
- PRNTWB EQU NO ; Yes, print a string for each warm boot
- PWRQD EQU NO ; Yes, password needed to login
- RKEYS EQU NO ; Yes, remote console has special function keys
- TIMEOUT EQU YES ; Yes, auto logout for sleepy callers
- TOVALUE EQU 5 ; Minutes to auto logout
- USRLOG EQU NO ; Yes, count number of users
- WBRTN EQU NO ; Yes, do function each time system warm boots
- BLKOUT EQU YES ; Turn off remote send
- BLNKKEY EQU 'B'-40H ; Keycode to "blank out" remote terminal
- CCSDISK EQU NO ; Yes, CCS disk controller
- CLOSS EQU 1 ; If carrier dies, wait 1 sec. before hanging up
- COMDRV EQU 'A' ; Drive to look for .COM file on
- COMUSR EQU 14 ; User # of .COM file to be called after answer
- CPM2 EQU YES ; Yes, using CP/M 2.2
- CTRLC EQU 'K'-40H ; Map ^C to this charactero
- CWAIT EQU 20 ; Wait up to 20 seconds for carrier at first
- EXDRV EQU 'A' ; Drive to look for exit .COM file on
- EXUSR EQU 15 ; User # of .COM file to be called upon exit
- IMSAI EQU NO ; Yes, if using IMSAI computer with front panel
- LOSER EQU NO ; Yes, warm boot overwrites part of the BIOS
- LXID EQU 11H ; Define byte of LIX D,nnnn to fake loader
- LXIH EQU 21H ; Define byte of LXI H,nnnn to fake loader
- MHZ EQU 4 ; Processor clock in MHz
- MSGKEY EQU 'W'-40H ; Keycode to print "Message from SYSOP: "
- MSPEED EQU 003CH ; Baud rate pointer
- NORING EQU YES ; Yes, UART ring indicator NOT available
- SELPASS EQU NO ; Require a password
- SENSE EQU 0FFH ; Sense switch port number
- SYSDKEY EQU 'O'-40H ; Char. to print "System going down in 5 min.."
- TWITKEY EQU 'N'-40H ; Keycode to hangup modem manually
- WELFILE EQU YES ; Yes, to send a WELCOME file
- WELUSR EQU 14 ; User # of WELCOME file
- ZILOG EQU YES ; Yes, using a Z-80 or Z-800
- ZCPR2 EQU NO ; Yes, if running ZCPR or ZCMD2 or ZCMD or ZCPR
- ZCPR3 EQU YES ; Yes, if running ZCPR3
- IF ZCPR3
- MACLIB Z3BASE ; Requires MAC to assemble...otherwise enter
- ; constants directly..see label DOZ3 for
- ; required EQU's
- ENDIF ; ZCPR3
- USEZCPR EQU NO ; Yes, if using ZCPR or BBS to set max drive
- ; And user #
- MAXDRIV EQU 003DH ; ZCPR lolcation of MAXDRIV byte
- WHEEL EQU 004BH ; Location of ZCPR's wheel flag
- MAXUSER EQU 003FH ; ZCPR location of MAXUSR byte
- MAXDRV EQU 7 ; Highest drive supported (2=B:)
- MAXUSR EQU 6 ; Highest user area
- SYSDRV EQU 7 ; Highest local drive supported (2=B:)
- SYSUSR EQU 15 ; Highest local user area (0-15)
- CHGPATH EQU YES ; Yes, if changing ZCPR's external path
- EXTPATH EQU 0040H ; ZCPR external path default location
- .pa
- BYE parameter block
-
- What follows is how the BYE parameter block looks in RAM.
- Because BYE relocates itself into high RAM at run time, you may
- find out where this block resides using the P(eek) RCP command.
- The key is the three characters "BYE" at the end of the block.
-
- ;-----------------------------------------------------------------------
- ;
- ; Here is a quickie handy reference table to use so we do not get mixed
- ; up. Please it in any future changes.
- ;
- ; |mxusr|mxdrv|toval|nulls|ulcsw|lfeeds|wrtloc|hardon|lostflg|covect|
- ; |1 byt|1 byt|1 byt|1 byt|1 byt|1 byte|1 byte|1 byte|1 byte |2 byes|
- ;
- ;-----------------------------------------------------------------------
- ;
- MXUSR: DB MAXUSR ; Runtime maximum user area available
- MXDRV: DB MAXDRV ; Runtime maximum drive available
- TOVAL: DB TOVALUE ; Number of minutes to wait before timeout
- NULLS: DB 0 ; Number of nulls after <cr>
- ULCSW: DB 0 ; Upper case only switch (32=upper case)
- LFEEDS: DB 0 ; Line feed mask (0=don't mask)
- WRTLOC: DB 0 ; Location RBBS pokes so bye doesn't hang
- HARDON: DB YES ; If 0, hardlog is de-activated
- LOSTFLG:DB 0 ; If non-zero, do not output to console
- COVECT: DW VCONOUT+1 ; Console output vector for XMODEM
- HDROFF EQU $-MCBOOT ; Offset to 'BYE' that follows
- DB 'BYE' ; Tells XMODEM that BYE is being used
- .pa
- Notes on XMODEM
-
- XMODEM requires that you overlay the program with a machine-
- specific overlay, very similar to MDM7xx or MEX. I have
- recommended XMDM105, but earlier versions are just as suitable.
-
- XMODEM Options
-
- The following is an example of how my xmodem options are
- set:
-
- MHZ EQU 4 ; Clock speed, use integer (2,4,5,8, etc.)
- CPMPLUS EQU NO ; Yes, if operating in CP/M Plus environment
- STOPBIT EQU YES ; Yes, if using 1 stop bit, no if using 2
- ZCPR2 EQU YES ; Yes, if using N/ZCPR/1/2/3 with WHEEL byte
- WHEEL EQU 4BH ; Location of ZCPR wheel byte (normally 03EH)
- NOCOMR EQU YES ; Yes, change .COM to .OBJ on receive
- NOCOMS EQU YES ; Yes, .COM files not sent
- NOLBS EQU YES ; Yes, .??# files not sent
- NOSYS EQU YES ; Yes, no $SYS files sent or reported
- USEMAX EQU NO ; Yes if using ZCPR for DRIVMAX & USRMAX values
- ; No to use MAXDRV and MAXUSR specified next
- DRIVMAX EQU 03DH ; Location of MAXDRIV byte
- USRMAX EQU 03FH ; Location of MAXUSER byte
- MAXDRV EQU 7 ; Number of disk drives used
- MAXUSR EQU 8 ; Maximum 'SEND' user allowed
- BUFSIZ EQU 16 ; File transfer buffer size in Kbytes
- DESCRIB EQU YES ; Yes asks for a description of uploaded file
- DRIVE EQU 'A' ; Drive area for description of upload
- USER EQU 14 ; User area for description of upload
- BSIZE EQU 32*1024 ; Set for 16k, 32k or 48k as desired for DESCRIB
- LARGEIO EQU NO ; Yes, if modem patch area over 128 bytes
- LARSIZE EQU 0 ; If 'LARGEIO' set patch area size here
- LOGCAL EQU YES ; Yes, logs XMODEM transfers
- LOGUSR EQU 14 ; User area to put 'XMODEM.LOG' file
- LOGDRV EQU 'A' ; Drive to place 'XMODEM.LOG' file
- LASTUSR EQU 14 ; User area of 'LASTCALR' file, if 'LOGCAL' yes
- LASTDRV EQU 'A' ; Drive to read 'LASTCALR' file from
- OLDRBBS EQU YES ; Yes, look for 'LASTCALR' file - no, look for
- ; 'LASTCALR.DAT' file
- PRDRV EQU 'G' ; Private drive for SYSOP to receive file
- PRUSR EQU 15 ; Private user area for SYSOP to receive file
- RETRY EQU YES ; Yes requires a valid NAK to resend a record
- ; No resends a record after any non-ACK
- SETAREA EQU YES ; Yes, if using designated area to receive files
- SPCDU EQU YES ; Yes=upload to normal area even with wheel byte
- DRV EQU 'G' ; Drive to receive file on
- USR EQU 0 ; User area to receive file in
- SPLDRV EQU 'G' ; Special drive area for downloading SYSOP files
- SPLUSR EQU 15 ; Special user area for downloading SYSOP files
- TAGLBR EQU NO ; Yes tagged .LBR files not sent
- TIMOUT EQU 1 ; Seconds to abort after carrier loss
- USECON EQU YES ; Yes to get the original CONOUT address from
- ; BYE3 or MBYE-3. 'NO' to get the CONOUT
- ; address the value set in the XMODEM overlay.
- CONOFF EQU 15 ; Offset to COVECT where original console output
- ; routine address is stored in BYE3/MBYE
- ; versions immediately followed by BYE as a
- ; check to insure BYE is running.
- RTC EQU NO ; If YES, add clock and date reader code at
- ; start of GETTIME: and GETDATE: below
- TIMEON EQU NO ; If YES, add your clock reader code at the start
- ; of label GETTIME: and return time in regs A & B
- IF TIMEON AND NOT CPMPLUS
- ; Use these bytes in low memory
- LHOUR EQU 050H ; Set by BBS (or BYE) in binary
- LMIN EQU 051H ; when user logs on
- STATUS EQU 053H ; and his status
- ENDIF ; TIMEON AND NOT CPMPLUS
- IF TIMEON AND CPMPLUS
- ; Use these bytes in low memory
- LHOUR EQU 022H ; Set by BBS (or BYE) in binary
- LMIN EQU 023H ; when user logs on
- STATUS EQU 024H ; and his status
- ENDIF ; TIMEON AND CPMPLUS
- LOGLDS EQU NO ; 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 BYE calls when logging
- ; off a user (preferred).
- IF LOGLDS
- UPLDS EQU 054H ; Clear these values to Zero from your BBS pro-
- DNLDS EQU 055H ; 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 ;LOGLDS
- MAXTIM EQU YES ; Yes if limiting transmission time
- MAXMIN EQU 45 ; Minutes for maximum file transfer time
- ; this should be set to 60 if TIMEON is YES
- ; (99 minutes maximum.)
-
- XMODEM Overlay
-
- XMODEM is overlayed by an XMODEM overlay, similar to MDM7xx
- and it's overlays. The overlay is assembled seperately, and then
- the object code is overlayed onto the main XMODEM program through
- the use of MLOAD or DDT/SID/etc. Both the main XMDM105.ASM file
- and most overlays contain instructions on how to do this. This
- overlay is very easy to work with, compared to BYE's overlay.
- .pa
- Notes on TYPEL
-
- Typel has a patch area near the front of the program that
- should be set appropriately for your system. This area should be
- patched with the max drive and user that a non-wheel user can
- access. See the .DQC file on TYPEL for further patch info.
- TYPEL should be renamed to TYPE.COM
-
- TYPEL Patches
-
- The following is an extract from TYPEL.DOC file:
-
- OPTIONS:
-
- TYPEL can be fully configured from the .COM file without need for reas-
- sembly. The following are the relevant patch locations:
-
- 0103 MAXDRV enter highest drive allowed PLUS 1 (A=2, B=3...)
- 0104 MAXUSR enter highest allowable user area PLUS 1
- 0105 MAXLIN enter maximum number of lines before TYPEL
- aborts, or enter 0 for no limit.
- 0106 MAXLPS enter number of lines on screen MINUS 1, or 0
- for continuous display ($N command line option
- overrides the setting).
- 0107 LSTEN enables LST output. Set to 1 to enable LST op-
- tion (default) or set to 0 if LST undesired.
- 0108 SYSEN enables $SYS type. Set to 0 to disallow $SYS or
- to 1 (default) to allow $SYS.
- 0109 EJECTP enter number of lines per printed page or 0 if
- page eject is not desired.
- 010A ... The exclusion table starts here. Each entry has
- 3 bytes. A "?" denotes an ambiguous byte i.e.,
- "OV?" matches "OVR", "OVL", etc. There is room
- for an additional 9 entries. If you wish to
- DELETE an entry, use DDT to set all high bits.
- .pa
- Notes on SD
-
- Sysops who will be running ZRDOS must use SD97 and
- subsequent versions. SD96 and previous will cause ZRDOS to crash
- if a command line option of D (all disks) is used. This is
- because SD96 and previous actually modify the Digital Research
- BDOS, something that is a big no-no, and is unnecessary under
- ZRDOS. Joe Wright modified SD to work properly with ZRDOS,
- beginning with SD97.
-
- SD is a oversized mess of spaghetti code that somehow
- manages to work very nicely. It is renamed to DIR.COM after
- assembly and serves as the system's DIR command. There are two
- major advantages of using SD instead of any of the many ZCPR3 DIR
- commands, 1) SD can display library file directories, and 2) SD
- supports BYE features that limit access to higher user numbers
- and disks. There is one disadvantage of using SD, in that it
- does not understand named directory references as the many ZCPR3
- DIR commands would. So that's one disadvantage compared with two
- advantages, so that is why I recommend it. And when you get to
- the subsequent section of this document discussing useful ALIASes
- for use on a Z-Node, you will see how useful SD is.
-
- SD Options
-
- SD requires that you set a bunch of assembly-time options.
- There is also a table of drive/user areas that must be edited
- before assembly. The following options are what is used on my
- system:
-
- DIRCON EQU NO ; Yes for direct console output
- LOWCCP EQU YES ; Yes only if you are running with byelow
- [Note: the following equate must be set to the base page of your BDOS]
- BDOSPG EQU 0C8H ; Set properly if lowccp is yes
- CPM3 EQU NO ; Set to yes if running cp/m 3 or above
- TIMEON EQU NO ; If yes, add your clock reader code at
- ; Start of label time: and store binary
- ; Values in chour and cmin
- QUITE EQU YES ; Yes if "Time on System is xx minutes" suppressed
- IF NOT CPM3
- CHOUR EQU 043H ; Some bios clocks keep time
- CMIN EQU 044H ; Here anyway
- LHOUR EQU 050H ; Set by bbs (or bye) in binary
- LMIN EQU 051H ; When user logs on
- STATUS EQU 053H ; And his status
- ENDIF ; Not cpm3
- IF CPM3
- CHOUR EQU 020H ; Some bios clocks keep time
- CMIN EQU 021H ; Here anyway.
- LHOUR EQU 022H ; Set by bbs (or bye) in binary
- LMIN EQU 023H ; When user logs on
- STATUS EQU 024H ; And his status
- ENDIF ; Cpm3
- MAXMIN EQU 60 ; Minutes for maximum file transfer time
- ; This should be set to 60. (99 max)
- ZCPR2 EQU YES ; Yes if nzcpr/zcpr2 (wheel byte enabled)
- MAXUR EQU YES ; Yes if using maxusr in nzcpr/zcpr2
- MAXDR EQU YES ; Yes if using maxdrv in nzcpr/zcpr2
- MAXCL EQU NO ; Yes if storing mnpl value at maxc
- WHEEL EQU 4BH ; Set to wheel location if zcpr2 is yes
- ; Use 3eh if using nzcpr or zcmd
- ; Use 3bh if using unmodified zcprhdr file
- MAXU EQU 0B6D4H ; Set to max user location if maxur is yes
- MAXD EQU 0B6D5H ; Set to max drive location for maxdr=yes
- MAXC EQU 3BH ; Set to # of names per line location
- MXZUSR EQU 15 ; Maximum user # allowed whlusr=yes/wheel set
- WHLUSR EQU YES ; Yes to allow search 0-mxzusr if wheel set
- WHLA EQU NO ; Yes to disallow a option if wheel zero
- WHLC EQU YES ; Yes to disallow c option if wheel zero
- WHLCL EQU NO ; Yes to disallow 4,6 or 8 options if wheel = 0
- WHLD EQU NO ; Yes to disallow d option if wheel zero
- WHLF EQU YES ; Yes to disallow f option if wheel zero
- WHLL EQU NO ; Yes to disallow l option if wheel zero
- WHLP EQU YES ; Yes to disallow p option if wheel zero
- WHLR EQU YES ; Yes to disallow r option if wheel zero
- WHLS EQU YES ; Yes to disallow s option if wheel zero
- WHLU EQU NO ; Yes to disallow u option if wheel zero
- AOPT EQU YES ; Yes to allow searching all user areas
- COPT EQU NO ; Yes to allow clear screen
- CLOPT EQU YES ; Yes allows a 40, 64 or 80 column display
- DOPT EQU YES ; Yes to allow searching all drives on-line
- FOPT EQU YES ; Yes to allow file output option
- LOPREV EQU NO ; No to reverse the "L" option and not print
- LOPT EQU YES ; Yes to allow library file member printing
- NOPT EQU YES ; Yes to allow disabling page pause option
- PGPAWS EQU YES ; Yes for pause after each page
- POPT EQU YES ; Yes to allow printer option
- ROPT EQU YES ; Yes to allow reset option
- SOPT EQU YES ; Yes to allow system file option
- UOPT EQU YES ; Yes to allow user number option
- VOPT EQU YES ; Yes to allow version number display
- REVIDEO EQU NO ; Use reverse video sequences
- ; If no, the rest of the equates are disabled
- LEADIN EQU ESC ; Escape lead-in (try a null if not required)
- INTOREV EQU '4' ; Toggle background (enter your value here)
- OUTAREV EQU '3' ; Toggle foreground (enter your value here)
- VECTOR EQU NO ; Yes to display attributes on flashwriter ii
- VIDEO EQU 0E009H ; Entry to flashwriter video driver prom
- IF NOT (ZCPR2 AND MAXCL)
- NPL EQU 4 ; # of names per line max values are:
- ; 2 for 40 x xx, 3 for 64 x 16, & 4 for 80 x 24
- ENDIF
- LPS EQU 24 ; # of lines per screen max values are:
- ; ? for 40 x xx, 16 for 64 x 16, 24 for 80x24
- LPS1 EQU 16 ; # of lines per screen if names per line = 3
- LPS2 EQU 16 ; # of lines per screen if names per line < 3
- FENCEC EQU '|' ; Use 00h for none
- KTHREE EQU NO ; Yes limits file size columns to 3 digits to
- ; Gain an additional print colomn. allows
- ; Fence to be used with four files per line.
- PRDI EQU NO ; Yes to print drive # on each line
- PRUS EQU NO ; Yes to print user # on each line
- PRLIBD EQU NO ; If yes and prus & prdi are yes then drive and
- ; User numbers will be displayed on library
- ; Listing lines
- PRBRDR EQU NO ; Yes to print a quasi-border for library files
- DORST EQU YES ; Yes to always reset disks when d option active
- DUOPT EQU NO ; Yes, allow drive/user spec zcpr2 style
- NODISK EQU YES ; Yes if you do not want to specify disk drive
- ; When asking for options and using default drv
- REPERR EQU YES ; Yes to report command line option errors
- REPUSR EQU YES ; Yes to report user numbers
- VCODE EQU YES ; Yes if files are to be alphabetized vertically
-
- Don't forget to edit the drive/user table you will find a
- small way into the actual code of the program!
- .pa
- METAL and SD
-
- If you are using METAL as your message system software, the
- following statements apply to you. SD needs to know where it can
- find parameters describing what maximum user # and disk drive are
- available to the caller. The BYE "parameter block" must be
- located in RAM and the MAXD and MAXU values must be extracted
- from it. Then, the addresses of the parameters are set into SD
- before assembly. By default, SD is set up to expect these
- parameters in the wrong place, SO THIS MUST BE CHANGED IF YOU ARE
- USING METAL. METAL is different than other message systems in
- that it sets the values directly in the BYE parameter block,
- unlike RBBS and others which fool around with locations in page 0
- of RAM. These parameters are altered by METAL to allow different
- usertypes different levels of access. For instance, when I, the
- sysop, go to the operating system from METAL, it will set the
- MAXU parameter to 15. I can therefore access user 15 without BYE
- sending me back to user 0. However, if an ordinary user who's
- MAXU is set to 6 goes to the operating system, BYE will send him
- back to user 0 if somehow he managed to get to user 15. (He
- couldn't get into user 15 anyway, because he doesn't have the
- password for the Named Directory, but that's beside the point.)
- The bottom line is that you the sysop have to figure out where
- these values in the BYE parameter block are located in RAM, and
- set the corresponding EQUate statements in the SDxx.ASM file in
- order for SD to follow the right MAXD and MAXU values. I should
- also point out that if you change BYE at all that this procedure
- will need to be done all over again. I know that this is a big
- pain but it is what you must do in these circumstances to prevent
- callers from seeing directories of A15: and all the nasty COM
- files that sysops keep there. Not that they could invoke them
- (as long as DU: is disabled and the directory is passworded), but
- why give people the temptation? If anyone has a better way, I'll
- be glad to hear it! Now, to find the BYE parameter block, I
- suggest that you the sysop come in as a remote caller, i.e.,
- while BYE is active. Call in from someplace. Then enter the
- operating system, enable the WHEEL byte, and use the peek command
- of your RCP. See the description of the BYE parameter block in
- BYE329.ASM, and for an example of how to find the parameter
- block (when BYE is active in RAM), see the findbye routine in
- PWD11.MQC. If you follow the same steps, you can find it too.
-
- I disable the DU: recognition in SD through EQUate selections, in
- order for it to behave more like a Z3 utility.
- .pa
- ALIASes
-
- Convienent ALIASes on a Z-Node
-
- First a note about BYE329 and the path: BYE329 has the
- capability of changing the path when being invoked or terminated.
- I suggest you use this feature, making the path simply A0: when
- BYE is invoked and A0: A15: when terminated. These parameters
- are all set in the BYE329.ASM file. The convienence of having
- the path set automatically is very nice; however, you (the sysop)
- will have to set the path manually to A0: A15: when you call in
- remotely. I mention this because some of the following ALIASes
- are only found in A15:.
-
-
- ALIAS Name: CHBBS.COM
-
- Typically located in: A15:SYSOP>
-
- Command line contained:
-
- METAL:;TYPE CALLERS $$N;TYPE XMODEM.LOG $$N;COMMAND:
-
- Typically the METAL directory is passworded, so you must
- respond to the PW? prompt you will recieve with the password for
- the METAL directory. This ALIAS does a quick check of the
- callers log and xmodem log.
-
-
- ALIAS Name: STARTBBS.COM
-
- Typically located in: A14:METAL>
-
- Command line contained:
-
- METAL R;TCSELECT
-
- This program is not normally used by the sysop at all. This
- ALIAS is the COM file loaded by BYE and executed after BYE types
- the WELCOME file to the user. (This is how users on my system
- are forced into TCSELECT before entering ZRDOS - They are
- actually completing this ALIAS).
-
- .pa
- ALIAS Name: EXITBBS.COM
-
- Typically located in A15:SYSOP>
-
- Command line contained:
-
- LDR SYS.ENV;COMMAND:
-
- I have modified my BYE329 to load the command buffer of
- ZCPR3 with the command EXITBBS. This LDR command re-loads the
- entire .ENV file, but the real purpose is to re-load the TCAP
- with my terminal's control sequences. Because BYE329 zeroes out
- the TCAP on termination (who knows what might be in there...), it
- is necessary to reload it like this, so if you have WS patched to
- use the TCAP, you can then use WS. It is not necessary to have
- this ALIAS, as a manual command is almost as easy, but I found it
- sure gets repetitive. It is placed in A15: because that is where
- the SYS.ENV file is located, and for some reason LDR doesn't
- understand the DIR: prefix, so I have BYE exit to A15:.
-
-
- ALIAS Name: LDIR.COM
-
- Typically located in: A0:COMMAND>
-
- Command line contained:
-
- DIR $1.LBR $$L
-
- This ALIAS is a nifty way to eliminate needing to maintain a
- bonafide LDIR program. It uses SD (renamed to DIR) to show the
- directory of a library file. It is actually better than the
- conventional LDIR as it can accept ambiguous filenames.
-
-
- ALIAS Name: LTYPE.COM
-
- Typically found in: A0:COMMAND>
-
- Command line contained:
-
- TYPE $1 $2
-
- This uses TYPEL (renamed to TYPE) and it's support of typing
- library members. Eliminates the need to maintain a genuine LTYPE
- program on your system.
-
- .pa
- ALIAS Name: BIGDIR.COM
-
- Typically found in: A0:COMMAND>
-
- Command line contained:
-
- DIR *.* $$u0adl
-
- This ALIAS is usually used by new callers to see
- "everything". And boy, do we mean everything. Uses SD (renamed
- to DIR).
-
-
- ALIAS Name: FIND.COM
-
- Typically found in: A0:COMMAND>
-
- Command line contained:
-
- DIR $1 $$u0ad
-
- This ALIAS allows callers to find which area of the system a
- file may be located at. I invented this as a temporary measure,
- because it does not search library file directories. Well, I
- still haven't gotten around to getting a better version yet. SD
- will search all accessible user areas, and will report when it
- finds a matching filename. If an entire (accessible) disk is
- searched, then a "No File on x:" message is printed.
-
-
- ALIAS Name: ARCHIVE.COM
-
- Typically found in A15:SYSOP>
-
- Command line contained:
-
- AC Z3CORE:*.*=$1:*.* /A
-
- This ALIAS is probably only of interest to systems using a
- hard disk. This uses the ZRDOS AC utility to copy only files
- that have changed. The directory Z3CORE: on my system is one of
- the floppy drives, which is probably something different on your
- system. Change the destination DIR: as appropriate. The usage
- is ARCHIVE <source DIR:>, as ARCHIVE SYSOP. Passworded DIRs like
- "SYSOP" will require a response to the PW? prompt.
-
- .pa
- ALIAS Name: M8.COM
-
- Typically found in A15:SYSOP>
-
- Command line contained:
-
- M80 =$1;L80 $1/P:100,VLIB/S,Z3LIB/S,SYSLIB/S,$1/N/E
-
- A great way to assemble ZCPR3 utilities. No muss, no fuss.
- Of course, the *.REL files called out should be in the same
- directory as L80.
-
-
- ALIAS "Breaking"
-
- I was suprised to find out ALIASes can be prematurely
- terminated under certain conditions. What this means is that you
- must never assume that an ALIAS is secure; it can be prematurely
- terminated. All that it requires is a ctl-S ctl-C sequence if
- any characters are being printed to the console. So, don't do
- things like setting the WHEEL byte from within an ALIAS, because
- it might not get reset!
-
- Notes on System Organization
-
- The first thing you should realize is that all .COM files
- that are to be accessible to ordinary callers should be placed in
- A0:. This way, a caller can invoke them from any directory and
- they will be found and executed via the PATH function of ZCPR3.
-
- All directories that are to be inaccessible to ordinary
- callers should be passworded. Although BYE contains an excellent
- security routine that limits the highest user that a caller may
- access, when TERM3 replaces BYE this will no longer be available.
-
- If you are going to need more than 14 named directories,
- there will have to be some work done. Although Echelon's advice
- that LDR can simply load a different .NDR segment to expand to a
- different set of 14 directories is valid for single-user systems,
- this is of little value on a Z-Node. The reason: You do not want
- LDR.COM available to callers...if it were available to callers,
- they may be able to upload their own segments and use LDR to load
- them. What this means is that a caller could (for instance)
- replace the usual RCP for a Z-Node that has all dangerous
- commands responding to the WHEEL byte with one that doesn't.
- Very bad situation. Probably the best way to handle the
- situation of needing more than 14 named directories could be
- handled by expanding the Named Directory Segment in RAM. Since I
- have not needed to do this, I am not sure if there are any
- special difficulties. LDR and/or MKDIR may need to be changed to
- cope with a larger .NDR file. If someone comes up with a
- solution, please forward it to me at the ZCPR3 BBS for everyone's
- mutual edification.
- .pa
- There are some directory names that I think should be
- standard on a Z-Node. Examples:
-
- - UPLOADS: A collection point of uploads to the Z-Node.
-
- - HELP: Where *.HLP files are found easily by the ZCPR3 HELP
- program.
-
- - COMMAND: Where all .COM files (accessible to callers) are
- stored. Usually the A0: drive/user area.
-
- - SYSOP: Where the sysop stores files on the system that are
- for his use ONLY. Usually this is A15:, and the directory is
- passworded. Examples of nice programs to have here are NSWEEP,
- NULU, ALIAS, etc.