ZX-TERM*80 V2.5 ADDENDA May, 1988 By F. Nachbaur I have made some "final" changes to ZX-TERM*80, resulting in version 2.5. This version sports a number of additional refinements, making it even more flexible and useful than before. The changes are summarized in this .DOC file. Feel free to circulate this, the program, and the associated Hot Z "NAMES" file to other legitimate users. The program is still only 4K long. Virtually every nook and cranny has been filled, and it is most unlikely that further changes will be necessary or desirable. 1: WRX16-V2 CORE - ZXT80 V2.5 uses the new V2 of Wilf Rigter's WRX16 high-res core. This eliminates the need for a copy of the dummy display file in high memory, thereby removing some of the headaches that this causes. V2.5 should work fine with Memotech 32K RAM packs (without additional 16K pack). It also works with a completely stock TS1500. (In both cases, of course, the all-important 8K static RAM is assumed.) Finally, there is no need for any data swapping, etc. to make the program work with 64K packs. This frees up a little space for some of the added features. Note also that there is no need to select "memory type" in the BASIC configuration portion of the program. 2: NEW ENTRY POINT - The entry point for V2.5 is ten higher than previous versions. E.g., at the default location, enter V2.5 with RAND USR 32280 instead of 32270 as in previous versions. If you relocate it as high as possible (45056), the entry point is 48664 instead of 48654. Internally, some of the routines have been moved about. This may require changes in auxiliary "patch" programs such as BIGRLE and Gary Robinson's PATCH (dual data buffer). 3: BYTE-BACK MD-2 MODEM: Previous versions required that you use SHIFT 6 (modem control) carefully. They only checked if you were pressing the "A" key (to go to "Answer" mode). Any other key was taken to mean "Originate." This meant that you had to press Shift 6 very quickly to avoid a false reading. This has been corrected in V2.5. Also note that, unlike before, you MUST hit shift 6 and select either A or O before getting online; the SIO chip is no longer automatically initialized on entry. (See below.) 3: WESTRIDGE MODEM: The program no longer automatically initializes the modem on entry, and does not shut it off when quitting to BASIC. This allows more flexibility in the --2-- use of the program. For instance, you might have a tape fast-save routine in an alternate bank in 8-16K, or you might have a disk controller mapped in this region. You can thus download a file, quit to BASIC to save it, and re-enter ZX-TERM*80 to continue modemming, download another file, etc. The connection will not be broken by quitting to BASIC or re- entering. (So don't forget to hangup after logging off.) Similarly, you could download a program, test run it to see if it's something you want to keep, and jump back in to download something else if you so decide, else log off. 4: INPUT BUFFER QUEUE EXPANDED: The input buffer has been permanently expanded to 256 bytes, much as if you had employed "useful POKE #13." The buffer address (high byte) is stored in the second byte in the program (generally, this will be the first address beyond RAMTOP). Since most users seem to have 64K, the default is at 65024 (254=FEh * 256). This can be changed by modifying location 16529 as desired. If you are using 16K, a little finagling will be necessary. The first time through, answer "Y" to "INSTALL USER OPTIONS?" and POKE 16529,111. Enter GOTO 500, answer relocate No, and save the modified program to tape. After saving (or subsequent reload), enter ZX-TERM*80 as usual but DO NOT do any modemming yet. Quit to BASIC using ESC, then POKE 16389,111 and NEW. This will lower RAMTOP by 256 bytes, reserving space for the input buffer. Re-enter ZX- TERM*80 and modem to your heart's (and budget's) content. 5: TEXTWRITER MODE: If your save toggle is on, your typed input will be stored in your capture buffer ("Save" buffer). This is as if you had installed "useful POKE #4). The reason this was done is to give you the option of fast message uploading using the ASCII TRANSFER feature, discussed next. 6: ASCII UPLOADING: Some boards don't support XMODEM, but allow uploads/downloads using the "ASCII protocol." This really isn't a protocol at all, since it does no error checking; it simply sends the data, assuming that the other terminal is there catching it all. ASCII downloads can be done with all versions of ZX- TERM*80. Simply open your capture buffer, and press a key (usually SPACE). Uploading, however, was not directly supported until V2.5. Since the main menu keys were all used up, this and the other new features were placed in the FUNCTION mode. When you press FUNCTION (shift enter), you will now get a FUNCTION sub-menu. The symbol keys are used as before for symbols, but you now also have (D)ump, (H)ardcopy and (T)ransmit options. The first two are covered in the next section. The (T)ransmit option proceeds sending the --3-- contents of your capture buffer (or whatever else is in the program area) to the other terminal in a continuous stream. The output is shown in window 2 as it is sent. Pressing SPACE or ESC will prematurely terminate the output stream. Bit 7 is NOT masked, so this is actually a little more than just an "ASCII" uploader. In theory, at least, you could therefore use it for 8-bit data, even Sinclair programs. However, since there is no error-checking, use Xmodem whenever possible for such uploads. With many boards, you can use this to prepare a long message, then ship it to the board in one go (saving time and money). I noticed, though, that on the NNN, the board doesn't have enough time to process each line as it is received. As a result, messages longer than 4 or 5 lines get garbled. In such cases, you might consider uploading your long message to the files area, and leave a short note to the sysop to ask him to transfer it to the message area. 7: BIG PRINTER OPTIONS: The program's handling of big- printer operation has been considerably refined. Previously, there was not much processing of the line-feed (LF) and carriage-return (CR) codes. This caused headaches with some printers, causing to print double-spaced lines in some circumstances, while refusing to line-feed at all in others. V2.5 now does the following. When printing, it completely ignores any LF codes that may be received. The CR code alone is used to signal a newline. When a CR is sent, an LF is automatically sent right afterwards. So set up your printer for the "LF + CR" mode, your printed output will always be spaced correctly. You can now turn the printer on or off using FUNCTION H (Hardcopy toggle). Window 2 will show the present printer ON or OFF status. This was added because some printers continue to accept data into their buffer, even if taken offline. Having software control eliminates the need to take the printer offline, or shut it off completely to clear its buffer. Finally, the (D)ump option can be used to dump the entire contents of the capture buffer to the big printer. This obsoletes the DUMP DATA BUFFER TO PRINTER option in Appendix V of the manual. As with the (T) option, pressing SPACE or ESC terminates the dump. Also as with the (T) option, window 2 will display the data as it is sent. This option can be used either while online, or after logging off. 8: COSMETIC TOUCHES: Finally, some cosmetic changes were made that you may or may not notice. For instance, the main menu now includes options SHIFT 9 (MEMory report) and SHIFT 0 (DELete). Delete, incidentally, sends a BS (ASCII 08) instead of DEL (7Fh), since some boards don't like the DEL code (including the NNN) whereas virtually all will respond --4-- to BS. (That is NOT a value judgement!) Incidentally, you can send a % symbol with "FUNCTION ." and an apostrophe with "FUNCTION SHIFT ." - these were present in previous versions, but were omitted from the table on page 6. USEFUL POKES MODS: Since some routines were moved, some of the useful POKEs have to be changed. Others are now obsolete. #1: POKE 30705 (18561), 0 (196) 30706 (18562), 0 (210) 30707 (18563), 0 (117) #2, #3: OK as published. #4: Implemented. OK to reverse. #5: Obsolete #6: POKE 30109 (17965), 240 (226)* 30110 (17996), 116 (125)* #7, #8, #9, #10: Obsolete #11: Not recommended. Ignore. #12: Not possible. RAND USR (address) to return. #13: Obsolete #14: POKE 32267 (20120), 0 (10) #15: OK as published. #16: Obsolete #17: OK as published.