.op ================================================================= The $ R / O R E A D O N L Y -=( July 1986 Issue )=- The monthly news magazine of the Tampa Bay Kaypro User's Group and the DataCOM Super Systems(tm) ================================================================= News and reviews of programs, hardware, and peripherals for users of microcomputers with CP/M, MP/M, MS-DOS, PC-DOS, or TurboDOS operating systems. ================================================================= Steven L. Sanders - Editor (Sysop) ================================================================= The DataCOM Super Systems(tm) is a "state of the art" multi-user remote database with 40mb of files online. An annual fee of $35.00 is required for access, an application may be downloaded by calling (813) 791-1454 at 300/1200/2400 baud or send a SASE along with your request to: TBKUG / DataCOM Super Systems(tm) 2643 Cedar View Court Clearwater, FL 33519 -==( DISCLAIMER )==- Articles and reviews of microcomputers, hardware, software, and other peripherals reflect currently advertised prices as released by the distributors and are included here for YOUR INFORMATION ONLY. The TBKUG/DataCOM Super Systems(tm) is NOT being paid to advertise these products and we cannot be held accountable for the actual retail price and/or performance of said products. ================================================================= .pa .pn .fo$R/O - The news magazine of the DataCOM Super Systems Page # -={ ZERO LENGTH CP/M FILES }=- by Mark Walsh, Denver Kaypro Association I made a mistake once. It could possibly happen again, so I'm prepared. There is an old trick used mostly by assembly language CP/M hackers called the Zero Length File. It is a very simple program that can be used by anyone. One evening, after diligently entering data for several hours, the program (because of poor design of course) took offense at something I'd innocently done. She packed her bags and without even a beep goodbye caught the Red-eye for New York. I had nothing left by my memories and an ugly green picture. I pressed Return in hopes that she might return, but it was time to accept the inevitable. I pressed CTRL-C. Nothing happened! I rationally tried pressing several keys simultaneously in a fist pattern, but that tearless green eye only stared back at my misery. It was last resort time. I found a flashlight and prepared to search the outback for the fabled re-set button. When I saw the familiar sign on message, I knew that I was finally back in control. The "A>" prompt had never looked so good. I typed in DIR and the list of files reassured me. There was my program HARTBRAK.COM still on disk next to the file SAD.TXT. So I turned on my printer, pressed CTRL-P and entered TYPE SAD.TXT. Soon I had a copy of SAD.TXT (Software Ain't Decent) on paper. This ode for lovelorn users advised me to cherish my memories, and keep them intact in the hope that they could be resurrected. Eureka! She might be somewhere over the Ohio, but my memories were safe. The wizards at Digital Research created some resident CP/M commands: DIR, ERA, REN, SAVE, TYPE, USER, A:, B:. These commands don't use program memory. What a relief. If I had entered D instead of DIR, CP/M would have loaded D.COM into my memory and all my work would have been lost. There was a way to get her back from memory. If I created a file with nothing in it, and told CP/M to "run" it, it should load nothing into memory and then begin executing whatever it found in the transient memory of my Kaypro. CP/M only loads and runs files with a .COM extension. I could create a file with nothing in it by telling CP/M to "SAVE" 0 pages (256 byte blocks). I knew that I had everything under control as I entered "A>SAVE 0 REDO.COM" I got this message: NO SPACE. What? Surely there must be room to load nothing! It seems that CP/M has room for 64 directory entries. There were not that many files on the disk, but any file longer than 16k will take up more than one directory space. No problem. My memory still is intact and I haven't given up. Another disk in the A drive will solve the problem. I tried again. Bdos Err on A: R/O I was getting mad now, but I tried to stay cool. I wasn't taking any chances this time. I typed CTRL-C twice. Two warm boots and I finally managed to save absolutely nothing in a file named REDO.COM. My palms were moist as I prepared to try something that hadn't been seen in almost 2000 years. I would rename REDO.COM as LAZARUS.COM with the following command: REN LAZARUS.COM=REDO.COM I entered LAZARUS and hit . The drive spun and there was HARTBRAKer, running with my data intact. The zero length file can be used for a lot more than simply trying to recover from catastrophe. It always tries to run the program you had in memory. Experiment a little. Someone seems to have put REDO.COM on most of my disks, and it's there for much more than that remote possibility, which I hope may never recur. If you, too, make a mistake once, you can possibly recover your program and data by using the zero length file. Just keep your computer's memory safe by using only the resident CP/M commands listed earlier. Some programs modify their code when they are run and can't be recovered (DDT moves itself into high memory). Some programs can be recovered, but they leave the data in Central Park. It won't hurt to try, if your HARTBRAKer visits the Big Apple. Just be careful not to load STAT or D.COM or some other transient program on top of it. -={ What is ANSI.SYS ? }=- by Steve Sanders "What is ANSI.SYS", and, "why do I need a CONFIG.SYS file to be loaded at boot-up?" These questions keep coming up when I talk to new IBM-PC or clone owners and even though I'm no expert, I'll attempt to explain their use. To keep this text simple all referrences to DOS will mean either MS-DOS or PC-DOS version 2.1 or newer. One of the built-in features of DOS is the ability to load special device drivers at boot time. When DOS is booted it will first look for the file CONFIG.SYS in the default directory and executes the commands it finds. These commands can set certain DOS parameters like the number of files it can handle at any given time or set the number of available buffers for faster disk I/O. You can also load special device drivers by including their names after the statement "DEVICE=". The most common device driver is the ANSI.SYS screen driver that will make your CRT respond to the standard ANSI escape sequences. The ANSI.SYS driver is included with the support programs furnished with your DOS distribution diskettes and SHOULD BE LOADED everytime your computer boots up. Here's a sample CONFIG.SYS file, the comments are for clarity and should not be included in YOUR file: FILES=20 Manipulate up to 20 files BUFFERS=20 Assign 20 buffers DEVICE=ANSI.SYS Load ANSI.SYS device driver BREAK=ON Respond to ^C requests The CONFIG.SYS file is just an ordinary ASCII text file created with any text editor, ED, or the COPY program. If you use Wordstar, be sure to create the file in non-document mode or the hi-bits and other characters inserted by Wordstar will really mess things up. The "BREAK=ON" statement will make DOS respond to a control-C request from the keyboard to interrupt the current task and serves to abort most programs. There are several enhanced ANSI drivers available in the public domain, two of them are NANSI and FANSI. NANSI means "new ANSI" and contains all of the sequences found in ANSI.SYS plus a few new ones for inserting/deleting lines and characters not found in the original ANSI.SYS driver. FANSI means "fast ANSI" and has all of the original sequences plus increases the speed of screen writes when in the raw console output mode. NANSI and FANSI are not "cure all" drivers and don't always work well with other resident programs, experimentation will be your best bet. The NANSI driver induces some flickering (snow) on my clone's screen. The new FANSI driver (v1.15H) seems to be the best replacement for ANSI.SYS and most of its old bugs are now fixed. What are ANSI escape sequences? ANSI escape sequences can be used to position the cursor at a specific x/y coordinate, clear the screen, erase lines, change modes, or even re-define keyboard keys. The following tables list the sequences understood by the ANSI.SYS device driver: Cursor Positioning: Cursor position ESC[y;xH where x= 1...79 Cursor Up ESC[nA n = # of lines up Cursor Down ESC[nB n = # lines down Cursor Forward ESC[nC n = # cols to move Cursor Backward ESC[nD Device Status Report ESC[6n Find cursor position Cursor Position Report ESC[y;xR Save Cursor Position ESC[s Restore Cursor Position ESC[u Editing: Erase in Display ESC[2J Clear screen Erase in Line ESC[K Clear to end of line Mode Setting: Set Graphics Rendition ESC[n;n;...nm Character attribute Set Mode ESC[=nh See mode table below Reset Mode ESC[=nl " " " Keyboard Key Reass. ESC["string"p The first character of the "string" gives the key to redefine, the rest of the string is the key's new value. IBM function keys are two byte strings, see the IBM Basic Manual. Example: ESC[0;"dir a:";13;p The above example will redefine the F1 key to generate "dir a:" followed by a carriage return "13". Character Attributes: The Set Graphics Rendition command is used to select the foreground and background colors or attributes. When you use multiple parameters, they are executed in sequence and the effects are cumulative. Attribute code Value 0 All attributes OFF (white on black) 1 Bold (high intensity) 4 Underscore (IBM mono only) 5 Blink 7 Reverse video 8 Invisible 30-37 Foreground blk/red/grn/yel/blu/magenta/ cyan/white 40-47 Background blk/red/grn/yel/blu/magenta/ cyan/white Screen Modes: The IBM BIOS supports several video modes; the codes given in the BIOS documentation are used as parameters to the Set Mode command. Mode Code Value 0 text 40x25 black & white 1 text 40x25 color 2 text 80x25 black & white 3 text 80x25 color 4 bitmap 320x200 4 bits/pixel 5 bitmap 320x200 1 bit/pixel 6 bitmap 640x200 1 bit/pixel 7 (cursor wrap kludge) 13 (EGA) bitmap 320x200 4 bits/pixel 14 (EGA) bitmap 640x200 4 bits/pixel 16 (EGA) bitmap 640x350 4 bits/pixel Mode 7 is an unfortunate kludge; Setting mode 7 tells the cursor to wrap around to the next line when it passes the end of a line; resetting mode 7 tells the cursor to NOT wrap, but rather stay put. So what can we do with all this? Good question and best demonstrated. The following is a .BAT file that you can use to give your IBM-PC or clone a very special prompt. PROMPT $e[s$e[1;1H$d$e[K$e[1;27HLogged Directory is $p $e[1;69H$t$h$h$h$e[u$p$g (Please excuse my line break above and put all this it into your NUPROMPT.BAT file as one un-broken line.) What you end up with is; the current date in your upper lefthand corner, the currently logged directory in the center, and the current time in the upper righthand corner. This info is updated everytime the DOS prompt is re-written. You also end up with the current directory name on your prompt. It looks like this: Wed 5-28-1986 Logged Directory is C:\ROOT 23:35:49 C:\ROOT> If you have a color monitor, try adding $e[44;37m right after the $e[s - this will make the line print in white with a solid blue background. You will also need to add $e[0m just before the $e[u - this will make the prompt and everything else print in normal white on black except for your top line. The "$e" is the same as ESC when used in .BAT files. I hope this info is of use to you, if not, it's fun just playing with the escape sequences and seeing what comes of it all! My thanks to Bond Shands, System Operator of Kay*FOG RBBS in San Francisco (415-285-2687) for the original idea of this custom DOS prompt. -={ RETRIEVING DELETED TEXT IN WORDSTAR }=- by Laurie J. Braaten Anyone who has worked with WordStar for any length of time has probably had the misfortune of deleting the wrong line or block of text. By some fancy manuevering, you might be able to recover the text from your backup file. If you have a photographic memory, you may be able to retype it in no time. But if these do not work, you should be set for a frustating time trying to reconstruct your lost data. Now you can avoid this problem altogether by adding a "Yankback" feature to WordStar. This can be done quite simply with a series of command strings ("macros") which I call "WS Yankback," set up in a key definition program. (The more popular commercial key definition programs such as Smartkey, Xtrakey and the Backgrounder have been reviewed by Glenn Grant in the December 1985 issue of PROFILES. KSSTROKES 4.0, QWIKEY21, & GKEY2 are public domain programs which give good, but more limited results.) HOW TO SET UP WS YANKBACK FIRST, set up four macros which will now be used to delete text in place of their WordStar counterparts. The first will delete a line. The second will delete a block of text. The third deletes text left of the cursor; the fourth deletes text right of the cursor. All macros should be entered as continuous text without spaces. The ^ symbol is the control key, held down while you type the key which follows it; is a carriage return (or ^M). MACRO #1: ^QS^KB^X^S^KK^KWA:YANKEEY^KY MACRO #2: ^KWA:YANKEEY^KY MACRO #3: ^KK^QS^KB^KWA:YANKEEY^KY MACRO #4: ^KB^X^QS^S^KK^KWA:YANKEEY^KY SECOND, enter the yankback command: MACRO #5: ^KRA:YANKEE THIRD, on your WordStar disk, open a file named "YANKEE." This is where your deleted text will be stored. This file will be overwritten every time you delete text, so it does not matter what you type in it--a single character will do. But make sure that you have adequate disk space for any text you may want to delete (2K-6K should be plenty for most operations). Now, when you want to delete a line, use macro #1. It works just like ^Y: place the cursor anywhere on a line and use it to delete the entire line. If you want to yank back the deleted line, execute macro #5. When deleting a block of text, use macro #2 in the same way you would use ^KY. Mark the beginning and end of the block with ^KB and ^KK respectively, and execute macro #2 to delete the marked block. If the block needs to be recovered, macro #5 will yank it back. Numbers 3 and 4 work like ^Q and ^QY--only now the deleted text can be retrieved with the yankback command. (Macro #1 leaves a blank line where the text has been removed. If this is undesirable simple omit the ^S after the ^X.) Before using WS Yankback, be sure to test it thoroughly. If there are errors in the way the macros were entered you could lose more text than you planned to delete, and not be able to recover it. Use a practice file and check all of the commands. If they do not work, carefully recheck the macros to make sure they have been entered correctly. N.B. The yankback command WILL NOT WORK if you use ^Y, ^KY, ^Q or ^QY to delete text. The four macros given above must be used instead of these WordStar commands for the yankback to recover the deleted text. HOW WS YANKBACK WORKS WS Yankback simply writes the deleted text onto the file named YANKEE, and then deletes it from the working text. When the yankback is used, the text is read back into your file at the present position of the cursor. This operation takes some time, which is its major drawback. When deleting blocks of text, however, it may be worth the extra time to have the assurance that the data can be recovered. Since WS Yankback always writes the deleted line on the text YANKEE, the recovery operation will ONLY WORK FOR THE LAST DELETION--you cannot retrieve any materials deleted before the last text was deleted. WHAT ABOUT ^Y ? If you decide to use the first macro in place of ^Y, you may find that you still have problems with ^Y. You may accidentally hit ^Y when you want a ^T, or you may attempt to type an upper case "Y" (which, believe or not, I use quite often) and hit the control key instead of the shift key. I have solved this problem by following Ted Silveira's advice in PROFILES, July/August 1985, p. 44. Using DDT (etc.) or Winstall's custom patch "+" (which does not appear on the options menu), you may change address 054D (0535 in WordStar 3.0) to read "19 19" (hex) instead of "19 00." The result is that it now takes TWO ^Ys (or ^YY) to delete a line, minimizing the possibilities for an accident. Now when a ^Y is hit by mistake, the space bar will get you out of the partially executed command. If you find yourself rapidly typing two or more ^Ts without looking at either the keyboard or the results onscreen, you may want to try Melvyn Halbert's solution, found on the Tampa Bay KUG board (813-791-1454). He suggests changing the "19" at the appropriate address to "1C" (hex), which will reassign the delete line function to ^\ instead of ^Y. -={ AVATEX 300/1200 MODEM }=- The AVATEX 1200 modem is a very attractive alternative to the Hayes Smartmodem(tm) 1200 and costs a lot less. The AVATEX is a full duplex modem that matches the design specs for Bell 212A, feature by feature, and is completely Hayes compatible except for settable 'S' registers. I now own one of the AVATEX 300/1200 modems and it works perfectly with MEX 1.14 and the Smartmodem overlay. The AVATEX responds to the normal "ATDT" or "ATDP" dialing commands used by the Hayes 300 and 1200 Smartmodems. The AVATEX has eight front panel LED indicators; (1) Power ON/OFF, (2) TR (Terminal Ready), (3) SD (Send Data), (4) RD (Receive Data), (5) HS (High Speed - 1200 baud), (6) MC (Modem Clear [ready]), (7) TM (Test Mode - Analog Loopback), and (8) RI (Ring Indicator [for auto-answer]). There are also three push button switches on the front; (1) Power ON/OFF, (2) Voice/Data, and (3) 300/1200 modem speed. Unlike the Hayes and other look-a-like modems, the AVATEX does NOT have a speaker for monitoring the phone line. It does have a modular telephone jack in the back into which you can plug an ordinary phone to "listen in" during dialing. The AVATEX is supplied as a RS232C standalone external modem housed in an attractive beige-colored lightweight plastic cabinet. It has eight dip switches located in an "easy to get to place" on the backside - but you should never really need to change them from the factory setting of all eight up. It also comes with its own 6-foot modular telephone cord and external wallplug transformer/power supply. You do need to supply your own modem cable, it should have a DB25 male connector on each end and support pins 1,2,3,4,5,6,7, & 20. Source: PeopleTalk Associates, Plano, Texas Price: $129.00 Call 1-800-PTBOOKS for order information -={ Disable Call-Waiting }=- Doesn't it drive you nuts when you're trying to use your modem and the cherished "call waiting" option on your phone interrupts to tell you someone is trying to reach you? Norm Hartman, director of corporate communications for Pacific Bell, advises us that you can temporarily cancel call-waiting before using your modem. Just tap in the string *70 before initiating the call. (so that's what the asterisk key on the touch-tone phone is for!) If you have a rotary dial, you must enter 1170 instead. You should hear a double beep followed by a dial tone. Go ahead and place your call; call-waiting will be disabled until you hang up. Of course, you ought to be able to put the initialization string into your modem program so that it will automatically take care of suspending call-waiting. Let us know how it works out. Bob VanWagenen informs us that the new feature is being installed as part of the conversion of phone exchanges to the new easy access system. If it doesn't work for you right now, it should later on. ---Taken from SacraBlue, September 1985. No author indicated. -={ Correction }=- In the May 1986 issue of Read Only I had stated that Worldwide Access had the Adaptec 2070A controller and 20mb Microscience drive for the IBM-PC or clones for $499.00. Worldwide had a problem obtaining the Microscience drives and cannot supply this combination. They do however have the Adaptec 2070A controller bundled with a Seagate ST238 20mb hard disk drive for a price of $579.00 and they are in stock and shipping. Contact: Worldwide Access, 6311-L Desoto Ave., Woodland Hills, CA. 91367 or call 1- 800-826-3736. -={ WHATSNEW in Public Domain }=- All files listed are available on The DataCOM Super Systems, your One-Stop remote database for personal computer users. [PC/MS-DOS] CACHE2.ARC Speeds up disk I/O by using the disk cache method, great improvements noticed especially by floppy-only users but works effectively to speed-up hard disk systems as well. GALAXY11.ARC Galaxy is a full-blown text editor that uses the same commands as Wordstar. It also features pull-down menus and split-screen editing. This is a commercial quality program. WSSI211.LBR This is the latest update to WSSINDEX, a DOS diskette cataloging system. WSSINDEX is an all-in-one program that catalogs, sorts, lists, finds, and generally keeps track of every file you have on floppies. This is the best for IBM-DOS. DISKOVR3.LBR A utility that uses the printer's (Epson FX/RX/MX, IBM Graphix, Okidata) compressed mode to print-out a listing of all files on a diskette. It is just the right size to be pasted on the front of your floppy's sleave. Expands ARC & LBR files. DIRTYDOZ.0Q5 This is a listing of known pirated, bogus, or destructive files uploaded to remote systems handling IBM-DOS files. Most importantly it lists "Trojan horse" programs, these are the ones that do damage to your drives and/or files. NEWPROMP.BAT This batch file when used on a PC with ANSI.SYS loaded will give you a very nice screen display. It prints a header line on your monitor consisting of the current date, logged directory, and current time. FBILIST.ARC This archive has a display program and VIDTEXT picture files of the FBI's Ten Most Wanted Men. Super graphics! COMM3.ARC Details on how-to-use DOS' COMM3: communications port. Hardware modifications are required - not for the novice. FANSI115.ARC The newest Fast-ANSI console driver, replaces the standard ANSI.SYS driver and adds new sequences, faster screen writes, and transient color support. (see ANSI.SYS article) COMANDO3.LBR The latest update to File Commando, a DOS front- end processor/file maint utility. This is from the authors of PCSWEEP and is a very nice does-it-all program for PCs. OPTMIZER.LBR This is a disk packing utility, it moves and organizes file data into contiguous sectors for faster operation. [CP/M 2.x] EPEX11.LBR This is an extended command processor for CP/M 2.2 systems with most of the features of ZCPR3 and instant installation. See the June 1986 Read Only for full details. GKEY2.LBR This is a key redefinition program from our old friend Eric Gans. It offers more features than QWIKEY (QK-21) and SMARTKEY and uses less memory. Great for defining keyboard macro commands and other special function keys. Loads and saves definitions to and from diskfiles for quick or automated start ups. KAY256.LBR Describes and details changing 64k RAM chips for 256k RAM chips in the Kaypro 4. This may also be done to most any Z80 system using 64k chips (almost all of em.) Requires mods to the mainboard (not for the inexperienced!) After the mod you can alter your BIOS to use the extra memory as a RAMDISK or printer buffer. NOTE: I do not as yet have the modified BIOS code the author talks about in one of the files. I will make it available ASAP after we receive it. FILECARD.LBR This is a freeform text database program written in Turbo Pascal. It is kind of like an electronic card file and has several different sort keys available for fast access to your data. ZMODEM.DQC Text file describing the next evolution of file transfer protocols to be used on future versions of popular public domain modem programs and XMODEM. These changes are based on wide acceptance of the new (and fast) 2400 baud modems and will also help overcome delays in packet-switched network telephone (satellite) services. FILT7A.LBR Filters ASCII files, especially Wordstar DOCument files. Resets hi-bits, removes unwanted characters like soft hyphens and carriage returns or dot commands. It optionally removes or adds TABs at all optimum locations. ZDP.LBR A Z80 de-bugging program, unlike DDT or ZSID, ZDP may run in any memory position and does not overwrite the CCP. CRUNCH11.LBR Updated file compression utilities, similar to the SQueeze concept but using a different alogrythm and NOT compatible with SQ/USQ programs. CRunch.COM uses the LZW (Lempel/Zev/Welch) alogrythm scheme to gain an even better compression ratio thus producing smaller compressed files. SAPP12.LBR This is a sort-and-pack utility for CP/M Plus (3.0) users. Sorts the directory, moves deleted files to the end of the directory and packs the remaining active entries. Makes SD and other programs that access the directory run faster. ACOPY10.LBR Attribute COPY, a super replacement for PIP, usable by any CP/M 2.2 or ZCPR3 system. Syntax is very flexible, use either CP/M destination=source format or ZCPR3 du: commands. Also copies according to what file attributes have been set and checks F1 thru F7 bits with optional switch. -={ DOS Wordstar 3.3 Patch }=- The following patches should be applied to WORDSTAR 3.3 to speed up its screen access. Note that the patched routines may not be in exactly the same place in your version of WS.COM, so... Use on a COPY of your WS.COM only, do not use your original file! With the following command, DEBUG will apply these patches to WordStar. debug ws.com