HyPer_HST Manual This is fairly "long-winded". If you don't understand the basic internals of your HST, skip to PART III and then come back to PART I-II OOhhh....I'm sure there are "typos/mis-statement" somewhere even after re-checking and passing by Spazm and TarHeel. I didn't write this for "THEM".........it is for people that don't know DOS/OS so we didn't want 50 pages of jargon. So if you want "perfect", you shoulda done it!! POINT IS THAT IT WORKS GREAT!!!! "Snob Mob" that helped me with this now think 17xxcps is "snail-bait" [or was that "jail" :^) in messages??]. With a "good" line, and both ends "set-up"..... 1810-1880 is normal. =========================================================================== PART I - The History of the HyPer_HST Idea First, let me explain that "Hyper_HST" is not some magical program you can just plug-in and instantly expect to get 1900cps from you HST 14.4 V.42 bis modem. Over the last 2 years, I worked on re-doing a number of device codes such as "serial.device" and also borrowed, begged, and plagarized source codes to optimize my OS. I also found additional utils written by other good coders dealing with killing multi-tasking, turning off audio.device, and other tricks which we experimented with for months and months. After months of re-writing serial.device, mathtrans.library, and other things under V1.33 DOS/ARP (I use ARP C: as C= C: commands suck sump water!!) a couple of things became painfully apparent: 1. The CIA/B chips (8520s) were absolutely critical to using a modem. a. These chips are notorious for "failures", "noise", and other problems. b. CBM designed the Amiga to work via 8520s so that 19,200 was the practical limit under V1.3 as 31,250 was something no modem supported c. This would always be a "weak-link" on the Amiga. 2. I bought an ASDG dual serial card. a. Why CBM only gave us one serial port.....damn if I know??? b. The one port they did give us.......was a "weak link" and using the ASDG I had two "fast" serials. 3. The HST technology works via RTS/CTS handshaking. Essentially the data goes into a buffer in the HST and then must either be received or sent to the computer (depending on whether it is [up/down]load. a. This buffer is designed to be fairly small......meaning it is painfully obvious that the computer must be able to move it, check it for CRC, and clear it VERY QUICKLY. b. If the computer can not keep up it will drop the RTS signal to the HST to quit passing data...... .....this is what is called the infamous "4-14K BLINK" 4. To solve the "BLINK" problem poses two distict thoughts: a. Each "blink" represents approximate 1K of data. Therefore, if you have this "pause" every 10K and are averaging say 96 blocks per minute (@ 1638cps)......the lost 10K in "blinks" is the difference between 106 blocks per minute (1810cps). b. AS A PRACTICAL SOLUTION: getting the "taskpris" to the BBS/TERM, the I/O DEVICE, and the I/O DRIVER is critical to making it fast enough so that the data is continuous between the modem and HST without the RTS/CTS pauses occuring. It was also "critical" to keep other tasks from "stealing" CPU time at these high speeds. The Amiga is working darn hard at read/write, checking CRC, and tasks specific to getting max transfers [BLUNTLY: you can type your background letter later!!] It is also very apparent that things which really ate at the CPU such as "intuition" or tasks that were running with high "taskpris" should be lowered. The darn thing only has 19,200 between the HST <---> computer so any delay whatsoever would likely cause a pause because of overflow or underflow. [BLAME C= !!! Had they had 38.4K and 76.8K serial this would not be such a critical issue with your Amiga. ] 5. TERMINAL PACKAGE/BBS PACKAGE a. THIS IS CRITICAL. Obviously with so many BBS/TERMS the trick is finding a BBS/TERM that can go at full speed under Amiga's 3 bitplane, 8 color ANSI [remember I did this under 1.3x DOS] and run at FULL SPEED!!!! b. Packages such as C-NET, JRjunk, BBS-PC!, or NComm could get perhaps 1650 if you killed the "color" or basically totally "stripped" them to an old phosphor screen XT IBM view. This destroyed 70% of the joy of modeming and the cosmetics of graphics, online games, IFF-ANSI, and other programs so I was STUBBORN AS HELL.....my BBS and TERM had to be fast enough in Z-Modem to handle color w/ full transfers. PART II- The Solution to Ultra High-Speed Modeming 1. I started developing the package as separate little tasks which I eventually could tie together. It would be a "package" of patches, serial.device, '.library', and other files which would be user installed to optimize the environment. 2. We tested over 25 BBS packages and some 40 odd terminal packages. EVERY TEST SHOWED THAT: AZcomm and AmiEXpress were the fastest. 3. We then started experimenting with every conceivable combination of "buffers", taskpris, bitplanes, HD interleaves, and everything else humanly conceivable to get the absolute "MAXED" speed possible under V1.3x DOS. Months of "coding" and "trial-n-error" produced BULLETIN #7 which worked for me with my ASDG Dual and Kronos V3.0 SCSI Controller. 4. I was able to routinely get 1660cps mostly w/out pauses to many boards error free.......and on 20-40% to hit 1700-1800. THAT WAS THE NEXT "$64,000 Question". Why could I sometimes get the 1760s and sometimes not???? Any why did some still "pause"?? 5. BRIDGECARD AND "MA BELL" TIME a. I had an AT 286 bridgecard and bought an inexpensive XT serial for $39.00 that I had tested crystal clean at 38.4K. This got hooked into the phone line. b. I called engineering (Ameritech is a client of mine) and got a complete engineering loop test of our slick which is rated at 1.5megs. I even bought a darn good line monitor. c. Armed with my new tools I started calling myself 1400 times using every route possible thru the CO and switch networking. We even used call forwarding, cellular phone lines, and a few clients' offices with Dimension/other switches to make loops. SURPRISE OF SURPRISES!!!!!!!! I was able to routinely get the 1500-1660 no matter what. Even lines which I would technically call "dirt balls" that met 2400bps specs would work. [In other words....US Robotics had done a tremendous design job to 'specs' of 1650cps even on bad lines]. However, when we got a very good line we started getting rates over 1800cps.....supposedly IMPOSSIBLE!!!! Even worst we started getting "dms" "wrp" rates over 1900 and routinely in the 1860-1885 range when we used good known TESTING LOOPS. OK, what the heck is going on here???????? 6. "Good Lines".....or what really is "GOOD!!" a. Boy what a surprise!!!! It seemed that there is a really wide range of what was considered "good" 2400bps. These variations were not enough to affect normal 1650cps transfers. It seems each TELECO/LD translated the "2400 standards" to Swahili, Pig-Latin, Greek, and Orkian. Don't bet "clean" is "clean"!!!! b. About 5 phone calls the US Robotics to Sue, Bruce, and tech engineering later and we finally get an explanation. [IT WOULD TAKE 6-7 PAGES TO EXPLAIN ALL THE "TECHY STUFF".....] [.....if you want it you can call them or write to engineering] c. The essence is this: 1. When the modem is in continuous mode (no "blink") the HST "training" process steps up it's max rate. OK...logical. BUT, internally HST gets quicker as many circuits can speed up with less strain on QAM, MNP, etc. Hmmmm.....did I just hear that 14.4/1650cps isn't the maximum and they built-in a "MARGIN OF SAFETY" to say 1600-1800????? How to use it?? 2. When you get to 14.4 and a super clean line....due to this "over-engineering", QAM design, MNP5, HST protocoling, and a great design job, chip max, etc.....it CAN GO FASTER!!!! Simply, HSTs can "speed-up" on super clean conditions. Beyond that, you write them directly for how it works. 3. I am told the "MAXIMUM MAXIMUM'S MAXIMUM" testing under "zip" is 1960 and that under "lzh/lha" it is about the same. 7. "BLINK" VS "PHONE LINE QUALITY" a. Well, I had assumed that the "blink" was always a Modem<-->CPU problem. I AM WRONG!!!!!! US Robotics tells me that poor phone lines or interconnects can also cause this effect rarely due to data coming in and their QAM cleaning it which will cause the buffer to fill quicker or slower at any given timeframe causing occasional "blinks" you wouldn't expect. They verified that really serious ones cause ARQ drops but that occasionally you can have a LOCKED ARQ and still get "blinks" unrelated to the Modem<--->Computer due to the speed being variable in actually getting to the 3.25K buffer. They also verified your "232" cable can cause this same effect as the phone line or in causing CRC or other errors. b. I also had assumed that once you were in "continuous" mode that you not only had the Modem<--->Computer correct.....but also you had a GOOD LINE!!!! DO NOT MAKE THAT ASSUMPTION!!!! THIS IS WHAT USR TAUGHT ME!!!! You can have a setup good enough to get continuous which they state will give you 1600-1750cps under most compressions (per their manual). If you want 1750-1900CPS then you have to have both a darn good setup and CLEAN, CLEAR LINES. It is not a "one-or-other" scene. PART III- A practical example of how it all works Let's compare what is going on to an old fashioned fire-fighting team before the days of modern fire trucks. 1. The men start a "bucket brigade" taking buckets (1024bytes=1K) and passing them man to man toward the fire. 2. If any of the men "drop" a bucket then the water is lost. (In our case this is an "ERROR BLOCK" and you get a resend request from the modem or terminal slowing things up). HOWEVER>>>HERE'S THE TRICK!!! Supposing they pass an empty bucket with no water in it. (In our case this is the "pause" times or "blinks"). They've wasted precious time and energy and didn't get one drop on the fire for all that effort. 3. Obviously, everyone is working as fast as possible. But if anyone slows down, then everyone else must slow down or stop until they catch up. (This is equivalent to your HST buffer of 3.25K. If the computer can't keep up taking the buckets then you will get a drop in the RTS to wait.......seen as the "sender" as a temporary "blink" in the SD/CS lights). If one man is "exhausted" totally and must slow down without a replacement, then everyone else must also slow down to keep his pace. (In severe cases this is what we call "down-training" from 14.4K-->12K---->2400bps. If they replace this gent with a fresh firefigher, then obviously they can go the other way and start passing faster again. 4. The "best case" is obviously if everyone works very quickly at the same pace so that everything flows smoothly rapidly moving the buckets in unison from person to person without any pauses or delays and they are able to increase the speed in unison. (This is what HST "retraining" is to higher rater of 9.6, 12.0, & 14.4 in the data pump. In your Amiga, this is the balance between all your "TASKPRIS", buffers, and choice of term/bbs so that everything runs extremely quick and smoothly without other tasks or a hardware chip being "tied up" causing a delay. 5. If everything works our men should be able to quickly put out the fire as other men will return the buckets at the same rate delivered for refilling...so we don't run out of buckets. (In our case this is the 450 "back-channel" on the HST and the computer sending back signals that the CRCs are correct without errors.) PART IV- WHERE THE ACTUAL "INCREASES" COME FROM. 1. The basic HST/computer design is 1600-1800cps at 14.4, and allows for certain time loss due to initial "training", EOF, and other factors. IT ALLOWS FOR CERTAIN SLIGHT "PAUSES" for HD read/writes as the HST was designed knowing most "PCs" would need these. 2. Over 60% of HyPer_HST is based on eliminating the "BLINKS"...... a. These 4-12K "blinks" represent delays as in my "fire brigade".. ......simply they are "lost buckets" of water. b. PRACTICALLY: Each "blink" takes about 1K (same time as a block) meaning "blinking" at 10K costs you 10 blocks/minute transmitted. 1600cps [95 blocks] with 10K "blinks".........is equal to: 1700-1730cps [102-105 blocks WITHOUT THE "PAUSES". This makes perfect sense. If you think of each "blink" as a dropped bucket, then if there were NO DROPS you'd have 10 more to throw on the fire to put it out. 3. HIGH-SPEED SENDING Obviously if everyone gets working in unison, then the possibility exists to increase the rate....something like in competitive rowing where they increase their stroke rate. This is where a REALLY GOOD PHONE LINE COMES IN!!!! a. The HST will "retrain" up and link both modems to the best rate. Internally QAM, retraining, and a ton of "techy" electronics is trying to go as fast as possible with the existing lines, and your setup from HST<---->computer. b. Assuming that the HST<---->Computer is 19.2/38.4K (well above what we need "well-tuned") then the HST<--->HST can start this special high-speed sending if everything is SUPER CLEAN!!! 1760-1900 is based on the 0-9blocks/minutes [17.07cps/block] which can be realized by HST circuitry w/ continuous flow rate smoothly in concert with continously error-free flow without blinking. c. AGAIN...THIS IS A "NON_TECHY" EXPLANATION!!!!!!! 1. The "blinks" cause each HST to have to "talk to each other" as well as the lost time (or buckets). 2. IN ADDITION...it is very hard to hold a very fast pace not only when there are "bucket droppers"....... BUT LET'S CALL IT the "psychological strain" of trying to watch in advance and keep your mind in tune to going this fast without error. Consider it "metal fatigue", "mental circuit exhaustion", "nervous breakdown", "heat chip fail", or whatever term you are technically comfortable relating to based on you technical background and employment. PART V- DIFFERENT HD/CONTROLLER and AMIGA MODELS 1. Suffice it to say........you can see why building a "Universal" plug-in program is extremely difficult if not impossible??? a. Startup-codes with all the possible tasks and priorities b. Type HD, Controller....boths relative speed, taskpri, interleave c. Models from 7MH Ami 1000 to 33MH 3500-T under 1.2/2.0x DOS d. Numerous "3rd party" accelerators, graphics, genlocks, etcitera which use CPU and DOS environment resources e. .......WELL, I THINK YOU GET THE IDEA....OR I HOPE SO????? SUMMARY: I hope this has explained the "project" and the process of testing by which we here at Doc's House have come up with 1700-1900cps rates routinely amongst some of our members and some of their BBS boards. Yes, some of the information herein has changed. Sorry, I am not GOD... .....and he was too busy to do this project!!! I think we now have 97% of all the information needed on how and why it works as we're consulted the telecos, US Robotics, and my most trusted friends and mentors to double-check and reverify everything. SADLY, I can see that writin a "PROGRAM" now appears impractical if not "impossible". There are just too many variables of machines, DOS, HDs, Controllers, and other factors. I will keep a list on my BBS as people write me giving the EXACT SETUPS USED for various combinations. .....if you have a question or problem please call us and we'll try to supply the "setup" or work out what should work based on all our experience, "trial-n-error", and every note we can compile from our members and people I know and respect on my friends' BBS. Doc 614-855-3114 "The Thinking Mans' BBS" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ HST 14.4 V.42b Setting for High Speed Transmission THIS BULLETIN ASSUMES: 1. You have the NEW serial.device and use either ANSIcomm or AZcomm. Online, JRcomm or other packages have not proven to date to be either as fast or reliable. HST 14.4 (without V.42bis use following except use &K0) HST settings for 14.4 V.42bis atz >ok atB1C1E1F1M1Q0V1X4&W >ok at&A0&B1&C1&D2&G0&H1&I0&J0&K3&L0&M4&W >ok at&P0&R2&S0&X1&Y1S11=38S21=001S26=000S15=008&W >ok INTERNATIONAL SETTINGS: atb0&W This is to accept the guard tones from European, Canadian and other V.32 except Bell...uses CCITT standards. AMI-EXPRESS NOTINGS: SYSOPS: In modem setup string on CONFIG1 Screen 3, set G2 at the end. This is necessary with Great Britain and other European systems that use different guard tones. CHANGES FOR AMI-EXPRESS V1.0(j) AND ABOVE!!!!!!!!!!!! 1. For HST V.42bis change the following parameters: ATZ >OK AT&A3S27=000&W 2. May find that S28=013 needed to answer both US/EUROPEAN calls. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PREFERENCES: 1. RATE 19,200 baud 2. ***NOTE*** DOS V2.0 may "try" 38.4K AFTER (REPEAT AFTER) 19.2K setup. ...expect various "individual results" with 38.4K.... 2. F8N1 3. RTS/CTS handshaking (MANDATORY!!!!) 4. Buffering 4K (EVERYONE SHOULD START HERE...then experiment!!!) a. Kronos SCSI- 4K b. GVP Series II- 2K reported best c. Amiga 3000/25- 2K reported best d. Slow >28ms HD- 8-16K reported and MAX 1710cps e. "Flop-no HD" - 512-1K reported best TASKPRIS: BBS/TERM HD/UD_DEVICE [RAM: VDK: DF0:] CONTROLLER 1. KRONOS SCSI- 12 (68020/030) 15 (68000) 2. Flop-no HD - 12 (no improvement remove all other "user-started" tasks) 3. Slow >28ms - 17 (lower input.device to 5) 4. GVP II - 16 AZcomm (**See special file re: HD/CONTROL TASKPRIS) 5. 3000 16-25 - 16 BITPLANES: 1. There is ABSOLUTELY NO REASON with AZcomm not to use 3 bitplane/8 color 2. There is ABSOLUTELY NO REASON to bother with JRjunk, PERIOD!!! Any term which has to be "killed" to 2 color is a poor design and you can quote me to Jack Radigan. Nor do I need 500 knobs/whistles when 95% of the BBSs are AMI: AmiEX/TemPest MS-DOS: PCBoard/WildCat. Maybe a simple AmiANSI/MS-ANSI. Everything else is the same of F8N1, Z-Modem, RTS/CTS, etcitera. You want "wierd" protocols, Y-G, or other things which are slow.....call an Amiga "Tag" BBS and use X-Modem 1200. SPECIAL NOTES FOR PARTICULAR CONTROLLER/HD ARRANGEMENTS: 1. GVP SERIES II a. Many GVP Controllers come with the "Taskpri" built into the ROMS at 5. Use taskpri in your startup-sequence and address your GVP device as: 'Taskpri gvpscsi.device 16' b. Do the same for your partitions such as DH0: DH1: which need the priorities changes. NOTE: Do not use the (':') when addressing your partitions!!!! Ex: taskpri DH0 16...NOT...taskpri DH0: 16 [ED. NOTE]- Remember devices or names with " " [spaces] must be done as: taskpri "this device.2" 16 c. SETTINGS (Courtesy The PathFinder) RAM 16 gvpscsi.device 16 AZcomm 16 DH2 16 (the device from which he U/Ds File System 5 File System 5 WorkBench 1 trackdisk.dev 5 trackdisk.dev 5 input.device 5 DH0 - DH1 10 1. This should be very similar for most GVP Series II. Lower than 16 results in slower CPS; higher setings result in CRC errors and ARQ losses. 2. BOOT UP- with the minimum you need by ";" out tasks which are unnecessary during U/D sessions or remote BBS operations. 3. As of this "update", I am getting 1780-1894cps with HyPer-HST modified systems depending on phone line quality and their internal DOS. 4. CAVEAT: Remember that this is a "WHOLE PROCESS" as I learned the very hard way. If you have outdated commands in your dirs (C: L: LIBS: DEVS:) you will have poor luck trying to reach 1900cps. This whole process is very dependant on having all the latest and fastest C/ASM codes dir updates, libraries, and devices.......a proper setup of the HyPer......and a high-quality phone connection. 5. If you have problems with GVP Controllers please leave me a message at Doc's 614-855-3114 or Rosco's 203-448-6782 THINGS TO "TRY" IF STILL EXPERIENCING PROBLEMS: 1. Remove "user-tasks" from startup-sequence with ";" 2. Remove loadwb/loadwb -debug from startup-sequence with ";" 3. CUSS, SCREAM, CRY, YELL....or call me, Spazm, Mike, Tarheel for help!!!! CAVEATS: 1. Some modems which are non-HST which have MNP Level 5 9600 will be unable to properly connect with the &M4&K3. These you can only call at 2400 and are likely to be university sites, businesses or other 9600 MNP-5 users. From your terminal issue: AT&K0&M4 -this should establish a clear 2400 connection. *******Don't forget to reset to AT&K3&M4 upon DISCONNECTING*******