NUBYE (History of Updates) All current and past revisions will be found within this file. NUBYE's roots stretch way back to original code and concepts by Dave Jaffe (01/79). Over the years, it has progressed from one version to another and is currently found in three fully commented, public domain formats (i.e. BYE3, MBYE and NUBYE), all of which benefit greatly by input from hundreds of sysops from around the globe. Thanks to all who have kept the public domain CP/M concept alive! ----------------------- ** current changes ** ----------------------- NUBYE v1.01 - 07/30/86 *For those unaware -- the NUBYE has an automatic system operation equate (AUTOSYS) which allows for automated, non-attended part-time system operation (i.e. you can have your system start up at 7 p.m. and shut down at 8 a.m. every day of the week while you are on vacation, etc). *PBBS fully supported (as it always has been). *NUBYE will now allow only one run of an EXIT file on normal 'BYE', time up, or time out functions. Russ Pencin has also added code to PBBS (which I submitted) to prevent additional timeouts from occuring once within the PBYE exit utility. *Modified the high memory bell toggle byte for proper operation, if using this and you set LMBELL to NO. *Modified ASKNUL related code (when this is set to NO) to display "Default nulls" message only when your BBS is a non-PBBS system. *Added additional path equates for ZCPR3 and/or those folks who need more than the previously available two. You may now specify up front as many as 5 drive/user paths (suggested by Jim Gooch & Terry Carroll). *Added SHOSYS equate for those who wish to display a special line of text (i.e. system name, etc) upon carrier detect (suggested by Murray Simsolo). *Added HITCR equate for those who have set ASKNUL to NO, yet insist upon making your users hit a key to continue...(suggested by Murray Simsolo). Note: This defeats the purpose of setting ASKNUL to NO, which is meant to automate system entry a bit more. If you truly find a use for this function, ˙please let me know -- ˙if I don't hear ˙many requests to keep it in, I may remove it in a future version... ˙ *Added ECBFIX (i.e. E Cold Boot Fix) for those whose systems would get hung in an endless loop when trying to perform a BYE E right after doing a system reset (i.e. Kaypro 10's with Turbo ROM and Epson QX's). Note, this slows down local entry of your .COM file, so leave this equate NO if you've had no problem in v1.00 of NUBYE (Murray Simsolo sent in the fix as a hard code setting, but an equate is better since not everyone has experienced this problem). *You may now run your .COM file locally without first hitting your ^C to get to the special menu. While NUBYE is waiting for a call, hit an upper case 'E' and you'll be off and running. While a super simple hack, this really comes in handy. *Added a new ^C menu choice (i.e. 'Z'), which allows you to zero your system counters and resume NUBYE operation (suggested by Barry Miller). Also, changed the menu format while I was at it. *NUBYE now displays useful system information between calls, before clearing your screen (if CLRSCR is YES, that is). You have plenty of time to view this information while NUBYE does normal modem/port resets. *NUBYE now displays a new prompt when requesting nulls. A LF does not occur until the user inputs a CR or 0-9 for nulls selection. *Added a Sysop function key which will toggle just the WHEEL byte ˙(^E). *Fixed the timeout routine (located in MSTAT:) -- this was causing timeouts to occur at an accelerated pace, regardless of what you wanted your timeout period to be... - Tom Brady Decibel RCP/M (PBBS) (404) 288-6858 *Submitted code for SHOSYS and HITCR equates, above. Also, suggested moving the label HANGUP2: as mentioned above with ECBFIX. *Turned off sysop function keys during local running of .COM file. *Moved the code which automatically sets a users default nulls upon carrier detect for those systems which set IMAT to NO. *Corrected numerous conditionals throughout. *Eliminated the label STARTE: and modified code to simplify local .COM runs. *Modified the section of code which requests selection of nulls to allow a CR entry to default to 0 nulls. *Moved the ZCPR3 initialization code up front rather than where it has been called as a subroutine. This clears the ZCPR3 buffers as soon as NUBYE hangs up, rather than when the Sysop exits to CP/M or a new caller logs on. *Corrected NUBYE to update the clock when running locally (these three lines had mysteriously vanished somewhere along the way -- tmb). - Murray Simsolo LIKUG MBBS (516) 825-8465 ------------------------ ** previous changes ** ------------------------ NUBYE v1.00 - 04/21/86 *Renamed to NUBYE in order to prevent certain "machinery" from squashing our efforts -- there are many who don't realize that BYE505 incorporated modifications and new features that were totally ignored in BYE506. The NUBYE series provides 100% support for all of you who have been using the BYE5 series, yet brings to you many new features. All suggestions and/or ideas are welcomed -- any mods/features incorporated from your code will bring you full credit! *NUBYE now announces itself to the user upon carrier detect -- always nice to know what is in operation as with any system utility. *Added code to prevent NUBYE from timing-out when the WHEEL is on -- this at Joubert Berger's suggestion. *Added code to make the twit key work properly -- when you hit CTRL-N (^N), NUBYE will now drop carrier -- no "Goodbye, call again..." or anything. This was also suggested by Joubert Berger. *Added UPDOUT (UPdate clock during OUTput) -- normally set YES, some systems are a bit slow to update the clock, evidenced by "hitches" after each CR/LF (i.e. during DIR output). If your system acts this way, set this to NO and the clock will only be updated after receiving a CR from the user (not local). See Jim Gooch credit, below. *Got rid of an extra CALL TCHECK (and associated code) that was not needed, so some systems will notice a bit quicker CR/LF response. *Added EXRET (if EXFILE is YES) for those MBASIC, C and Pascal programs which have troubles saving the stack and RETurning to NUBYE. Read the NUBYE.HLP file for a bit more info. *An update to "dummy" BDOS call 84 -- seems this is used by the "METAL" system and Wayne never mentioned it -- so THAT'S why it isn't defined. - Tom Brady Decibel RCP/M - MBBS (404) 288-6858 *Fixed clock update to take place only after an incoming CR is received, so systems with slow clock updating won't notice "hitches". - Jim Gooch Norcross MBBS RCP/M (404) 921-1116 CP/M Plus Update ---------------- *Removed NU-CPM3.ASM cleanup code and merged them (properly) into the NUBYE100.ASM. See NU-CPM3 files in NUBY-SUP.LBR. *EXFILE logic corrected -- CP/M 2.2 and 3 systems will now operate the same at disconnect or carrier loss. *Code has been cleaned up to prevent unecessary loading/unloading of the NUBYE RSX between calls. *RSX cleanup routine between calls now removes any/all RSX's loaded during last caller's session, instead of just the LD generated RSX's. *Drive select logic now uses WBDRIV setting. - George Peace FOG System #10 (717) 657-8699 ------------------- BYE v505 - 04/09/86 *First "east coast release group" version, dedicated to promoting public domain enthusiasm! All code submissions and modification requests from sysops (individuals or groups) will be considered. The contributor of anything incorporated in future releases will receive FULL credit (i.e. name, system name, phone number, etc) -- not just a thx... Beta test sights/contact boards are listed in the ASM file. *All comments have been returned as of v15 -- unless a person is the sole/original author, they do not have the right to remove all comments from a general release version of a public domain program. *Added AUTOSYS, ONHR/OFFHR and DROPLOC -- should be very good news to those of you who operate systems during certain hours only, as well as those who would like to run a system from work. Set AUTOSYS to YES -- ONHR to the hour you wish BYE5 to start answering the phone, OFFHR to the hour you wish it to stop -- walk away and forget it. Everything will be handled automatically for you. Say you leave your office at 5pm (17:00 hours) and get back to work at 9am (9:00 hours), but would like your system to operate from 6pm to 8am. Set ONHR to 18 and OFFHR to 8 and assemble BYE for your other system requirements. Now, run BYE before you leave and it will wait until ONHR to start answering the phone and will stop answering the phone at OFFHR -- all automatically. Unless you set DROPLOC to YES (in which case, BYE will drop into local mode at OFFHR), BYE will continue this ONHR/OFFHR cycle until your computer dies, or you break out of it in the normal manner (^C). Note: This feature only available is you have a clock (CLOCK is YES). For those of you who operate "off the cuff", or occasionally want BYE5 to begin answering the phone when you first run it (regardless of your ONHR setting), all you have to do is hit the ^T key and off it goes! BYE5 automatically resets at OFFHR -- super simple, very handy. *Added CCPOFF -- This figure was hard-coded into all previous BYE5 versions. Originally, it started out at 256, dropped to 128, dropped even lower in v503 and, in v504, came out set to -8! Well, a number of systems have problems with certain housekeeping utilities when it hit this point and others reported system crashes in unlikely places. You will now set this to whatever your system can handle -- most will be satisfied by leaving it set to 128 (default). This provides some buffer between the end of BYE and the beginning of your CCP. *Added FUNKEY -- for those of you who have TPA shortages when trying to use all of BYE's features. Set this to NO and it eliminate all special Sysop function keys, except for the BELL key (^G) and the TWIT key (^N). *Moved all of that "-40H" code in the function key section to the sections where each is actually used, so as not to confuse some folks (rather than tell them "don't mess with the -40H"). Did the same for the "-'@'" used in a number of equates. *Added WHLKEY -- this function key (^E) will allow you to toggle just the WHEEL byte on/off, if used. *Added SETFLG and USRFLG for those of us who don't want the ^U or the ^B to toggle all restriction flags on! Keep in mind, I added the RESUSR code to v503 specifically for us MBBS Sysops (but kept everything generic to please Wayne Masters). We might want a user to have unlimited time, but MBBS provides many useful utilities for fiddling with these bits. Set SETFLG to YES, if you have incorporated support for these access bits -- then, determine which bits you would like to have ^B/^U toggle and set USRFLG accordingly. MBBS users will want SETFLG NO. *Added SHOWTLN -- also for code savings and for those who run a ZCMD version which constantly displays the "time-left-on" or "time-on" system. In this case, set SHOWTLN to NO and the normal "Minutes on: xx" will be displayed with your ^T function. When set YES, your display is: "Minutes left: xx" -- for normal users "Minutes on: xx" -- for unlimited time users *Added NOSHOW -- if you have COMFILE set YES, but don't operate one of the six BBS systems designated, set this to YES and enter your system's .COM filename at the label COMFCB: (near the end of the program). *For those of us (MBBS and some RBBS systems) who use LMBELL and are tired of all that double bell toggle crap (which didn't always work properly), v505 is a blessing. Set LMBELL to YES and the ONLY bell flag location used is the low memory byte located at KILBEL (3BH default). The new CHAT45 also has this support (again), so we don't need to use BYE's internal flag. Set BELOFF to YES, if you wish for BYE to initialize with the console bell flag (LMBELL YES) turned off -- the status of all later toggles will remain in force while BYE is operative. *Placed the header into BYE for those who display the current caller data with the WHOKEY (^W). This header will display above the current caller data -- customize it at the label LCHEAD: near the end of BYE5 code. *If you don't like to have BYE ask your users "how many nulls...", set ASKNUL to NO and BYE5 will now display the default nulls setting to your users upon connect, as well as inform them to change this setting at your system's command menu. The default nulls are based upon the user's MSPEED (see Terry Carroll's credits below). Normally, if your system provides a means for the user to change his/her own nulls, you don't need ASKNUL! *Corrected the routine which handles OFFHK (IMQUIT: routine), since this was improperly sending an ATS0=0 before the ATH1 -- ATS0 should not even be sent, when OFFHK is YES (if your phone is offhook, your modem can't possibly answer!). *Removed mysterious 4800/9600 baud equates which have been in this series for some time, now. Let's keep things included to what is actually available for all and not just a "wow, things to come" wish list. Even when someone irons out a standard 9600 baud protocol (which still supports 2400 baud) the majority of interested sysops will not be able to lay hands on anything for quite a while. *Pulled the BDOS descriptions out of the BYE5.DOC (which has been re- written) and placed it in its own B5-BDOS.DOC file, where more people will see it -- very likely many haven't noticed it was there... *Code has been shortened as much as possible throughout, having removed all ";....", extra lines, etc. All of the opening comments (the bulk of them) have been moved to general information files. Removed all Trantor (WL) bios code and placed same in a separate patch document where it belongs. Wayne probably uses this, as do a number of others, but the majority of us don't -- besides, hardware dependent code such as this does not belong already coded into BYE (in Wayne's own words). All miscellaneous documents and patch files have been placed in a separate .LBR, to help keep the main BYE5 library more reasonable in size. *Corrected this history file to reflect those features and/or modifications added to v503 by me, but which were shown as having been added by Wayne Masters. This included the MSGFIL (adapted from Kim Levitt's MBYE) and OFFHK code, as well as the modifications to enable full Sysop control with the ^B toggle. Also, added credit to Joubert Berger (Atlanta Kaypro MBBS) for the CHEKDU code/support he added to v503, as well as the ZCPR3 fix file now found in the miscellaneous files library. *BDOS call 84 -- why did Wayne Masters stick this dandy in BYE? Would have preferred he make up a doc file to explain how a custom call could be utilized for an individual's system, rather than waste code (granted, only a few bytes) with a useless "put your own customized routine here..." and then continue on with the addition of BDOS call 85. - Tom Brady Decibel RCP/M - MBBS (404) 288-6858 *Added support (adapted from Kim Levitt's MBYE) for the new CHAT45 we have released. This support allows CHAT45 to give a user the option of leaving a private message to the Sysop, when informed that the Sysop is not available. *Moved the code which times-out a user after TOVALUE of no activity to the MSTAT area. MBBS (and possibly other) systems will now properly time-out at any command prompt. This has been a long-standing problem with BYE5/MBBS users. *Added REENTER -- set this to YES to get rid of all the double .COM file loads which BYE performs (especially for MBBS). This will speed up system operation quite a bit. *Removed a number of CALL xxx, RET statements -- the CALLed routines already contained RET statements of their own, so we realize some code savings. - Joubert Berger Atlanta Kaypro MBBS (404) 923-2580 *Added code to cause BYE5 to default nulls to the MSPEED value (i.e. 300 baud = 1 null, 1200 baud = 5, 2400 baud = 6) prior to asking the user (when ASKNUL is YES) "how many nulls...". This was originally hard- coded to set at 5 nulls, but this method is much better. - Terry Carroll Poor Man's Z-NODE (#56) (817) 283-9167 ---------- 03/03/86 v504 *Appreciation is extended to Irv Hoff, Russ Pencin, Gary Inman, Dennis Recla, Les Archambault and the PRACSA sysops for ideas, suggestions and the beta-tests that contributed to this update. *NOTE... All clock inserts are now contained in a new .LBR. Look for B5-CLOCK.LBR to find your clock inserts. *So many sysops have asked for the ability to edit BYE5 on a small floppy system that a method of reducing the size of BYE5 was considered mandatory. You will notice that the squeezed BYE5 source is now appx. 44K and the unsqueezed source is appx. 66K. This will solve many problems for the smaller disk systems and allow faster assembly times for everyone, not to mention the time saved uploading and downloading these files. *Corrected a bug in the CP/M-2 loader that caused the first six bytes of the CCP to be destroyed on some systems. *Added PBBS equate and code to support Russ Pencin's new BBS software written in assembly language. Promises to be a new and welcome addition to public domain (free) bbs software. *Added the BYHANG equate to allow your EXIT file to be loaded and executed with/without BYE5 hanging up on the caller. Some EXIT routines want to display data to the caller before BYE5 hangs up the phone. PBBS uses this technique. *Added LCKEY function key to allow the sysop to reserve his system for local use as soon as the current caller finishes. The sysop can type ^L (BYE5 displays [Last call] on local crt) and leave the room. When the current caller logs off, BYE5 will exit back to cp/m (leaving the modem in a non-answer mode) and signal the sysop (bell) that his system is free for local use. *Expanded the code for ^U (ULTKEY) function key to allow the sysop to enable all the flag bits in LCPTR. This key will now grant unlimited time and enable all the flag bits for the current caller only. *Added equates to allow MBBS users to keep MBBS.COM on any d/u (normally A0). LOGIN.COM and MFMSG.COM can then be kept in an area (normally A14) not available to the caller. *Added LMBELL equate to allow any BBS system (formerly for MBBS only) to keep a low memory bell flag in addition to the internal BYE5 byte. This byte is toggled with the ^G bellkey. RBBS now uses this feature. *BYE5 now displays "Minutes left: nn" unless the Wheel byte is on or MXTIME = 0. In either of those two cases BYE5 displays "Minutes on system: nn". *Added code to allow the newer Hayes-cloned 2400 type modems to work at 2400 bps. Some send a 6 and some a 9 for "Connect 2400" rather than the "Hayes" compatiable 10. *Corrected error in saving previous callers Timeon when sysop is running in the local "E" mode. *The ^B (blank remote modem) now sets/resets the LCPTR flags to enable all functions when the remote is blanked, and restore them to original values when the remote modem is turned back on. *BYE5 now sends a bell to the remote modem (not heard locally) every 1 minute of no-activity. This alerts the caller that BYE5 is waiting for him. The caller is still logged off if TOVALUE expires while BYE5 is waiting. - Wayne Masters - ---------- 02/14/86 v503 *This is a major update to BYE5. Many thanks to the sysops' organizations around the world for contributing suggestions and code for this update, and in particular to PRACSA, Tom Brady, Jack Brown, Kevin Murphy, George Peace, Don Appleby, and Irv Hoff (our "buffer" with the Compu-Serv sysops). - Wayne Masters ---- *Added OFFHK equate to allow BYE to make your modem/phone "busy" while you are using your computer locally. *Added MSGFIL (adapted from Kim Levitt's MBYE) to allow a new message file handling utility (MFMSG.COM as used by MBBS systems) to be called when KMD11 (or later) as well as later versions of XMDM [sic] are given the "RM" command. This specially formatted message file is appended to your message data file by MFMSG, which then returns you to the CP/M prompt. KMD11 alters location 00H to a C2 (instead of normal C3) and does a JMP 0 (warmboot) after the RM file has been uploaded. BYE traps the warmboot call and will load and CALL your .COM file to append the message(s) to your message file. This .COM file must be located on the same D/U area as specified by the COMDRV/COMUSR equates. Utility programs are available which will allow message files to be prepared (formatted) offline and then uploaded with the KMD "RM" command. MBBS uses this feature and other BBS systems can now take advantage of MSGFIL. *Modified the BLNKKEY code to set the sysops wheel byte and path when toggling remote caller off/on with ^B. Maxdriv and Maxuser bytes, PATH, and Wheel are set/reset with this function key, depending on your zcpr2, zcpr3 and chgpath equates. - Tom Brady *Added CHEKDU -- if running NZCPR/ZCPR/ZCMD, you should set this to NO and save some TPA -- BYE doesn't need to duplicate checks already performed by your CCP replacement. If not operating with a CCP replacement, set this to YES and BYE will police the system and prevent users from extending past MAXDRIV/USER (either YES or NO, BYE still holds the correct MAXDRIV/USER values). For ZCPR3 systems, you will need to make the patches mentioned in ZCPR3.FIX to take advantage of CHEKDU set NO. *Most modems, Hayes, USR, Vadic, Anchor....don't need the "ATZ" command between calls. In fact, some of these modems revert to auto-answer when the "ATZ" command is executed, causing potential problems if BYE is trying to reset the modem and the phone rings. Set the new equate DOATZ to NO and that problem is fixed, PLUS, you will notice the system resets between calls 3 or 4 seconds faster. *Fixed the jump table which caused double display when local print (^P) key hit and print option was equated as NO. - Joubert Berger ---- *Previous versions of BYE only ran an exit file (If EXFILE YES) when the carrier was lost. That has all changed in v503. Many sysops asked for the ability to run an exit file any time BYE hangs up on a caller. MBBS users and CP/M-3 users already did that in v501 and up. Now anyone can. There are, depending on your equate selections, 9 conditions that will cause BYE to hangup on a caller. If EXFILE is YES, these 6 conditions will now cause your exit file to be executed: 1) Caller types BYE, 2) Carrier loss, 3) Twit key, 4) Location 000H <> C3 on warmboot, 5) No activity timeout, 6) Time-on-system exceeded. Since a caller can't possibly be logged in for the following 3 conditions, BYE will hang up without running the exit file: 7) RSPEED primetime violation, 8) BYE5 password mismatch, and 9) "Nulls needed" question failed. The sysop is informed on his local console which .COM file (Entry or exit) is loaded. Again, MBBS and/or CP/M-3 users are not affected. The rules for your exit file to follow: Save the stack, do a RETURN, not a warmboot, to re-enter BYE. *The previous callers MXTIME and Time-on-system are now preserved in BYE's fixed lookup table for use by an exit file. The equate LCTON may be changed to a low memory byte to preserve lastcallers time-on- system to a location other than the fixed table. *Added BDOS call 84 which allows the installer to write his own unique subroutine and install it at label SRUDEF. His transient program(s) like ENTRY or EXIT can access that s/r with an 84 BDOS call. See the area marked ++++ Install SubRoutine U DEFine for more details. *Added BDOS call 85 to allow get/set functions for LCPTR. LCPTR contains a bit mapped status register when a user is logged in, and contains the previous callers Timeon when no user is logged in. To use the "get current value": MVI C,85 MVI E,255 CALL BDOS. The value of LCPTR is in A on return. To use the "Set value" : MVI C,85 MVI E,0 MVI D,0-255 (your SET data) CALL BDOS. *Added the ANSKEY function key to allow sysop to force BYE5 to answer the phone. This is handy if you are talking voice to your friend and decide to bring up BYE to exchange data. You can now bring up BYE while on voice, wait for your friend to get set, then type ^A, and be back online without having your friend hangup and pay for another phone call. *Added WBDRIV equate to allow selection of a drive to log to on the first warmboot to cp/m. 99% will use 'A', but some hard disk systems need 'C' or non-A drives. *Added TRANWL equate to help those systems running the Trantor hard disk drivers. This will save 2K for your TPA. *Several other byte-saving features added to save run-time code that you will notice when configuring BYE for your system. - Wayne Masters -