ORIGINALLY PUBLISHED IN MICROPENDIUM
P.O. Box 1343 Round Rock TX 78680
Internet [email protected]
MicroReviews for March 1995 Micropendium
by Charles Good
By the time you read this it will almost be time for the next totally free all TI and Geneve Lima Multi User Group Conference. Lima, in northwest Ohio is only a day's drive from many places in the midwest and eastern part of the United States and Canada. I hope to meet many of you personally at this event Friday evening and Saturday April 28 and 29. If you need more information about the MUG Conference please contact me. My address is at the end of this column.
Here are more public domain offerings from Bruce Harrison. We certainly are fortunate to have him working for us for free. Each software product described below comes on disk with demonstration XB programs, source code, very well written documentation, and something you almost never get with public domain software...free technical help! Each documentation file ends with the statement, "Should you need assistance, contact the author directly", followed by Bruce's address and home voice phone. Even if you don't need this help, phone Bruce some evening and tell him how much you enjoy his software and the neat uses you have found for his public domain products. Bruce really likes such personal expressions of appreciation and encouragement.
VIDEO TITLER UPDATE by Bruce Harrison
If you own an DOS computer you can purchase from the Damark liquidation catalog (item B-4600-379944 for $160-- the cheapest price I have ever seen for this sort of thing) a device that lets you display your computer video on a TV or send the computer video to a VCR for recording onto video tape. OR you can do the same thing by running your 99/4A's monitor cable to the "video in" of a VCR. You can then observe your computer's video on a TV attached to the VCR while you make a video tape recording of the 99/4A's video. For a minimum of $50 you can purchase software that will let you create custom title screens for your homemade video tapes using the above described DOS computer board, OR you can do the same thing with your 99/4A using Bruce Harrison's recently updated free Video Titler public domain software.
I've reviewed Video Titler before in this column, but Bruce has updated the product several times since. What I have in hand is dated Dec 28, 1994. Bruce says in his letter to me dated Dec 17, "Here's the final update (at least for this year) of the Video Titler." He then sent me two more updates, each with added features, before the year ended. What you do is load into memory two TI Artist pictures or two pictures created with Bruce's Drawing Program (also public domain and on the same disk as Video Titler). You can then alternate back and forth between these two images. You feed this display to a VCR (via the "video in" jack on the VCR) to record onto video tape. If you want to record more than two computer pictures onto videotape you press "pause" on the VCR, load in another picture in place of one of the two pictures in the computer's memory, release the VCR's "pause" and continue to record.
The neat thing about Video Titler is the wide variety of ways Bruce provides to alternate (wipe) betweem the two pictures in computer memory. The updated software has a whole bunch of wipes not found in the original. To wipe, just press a specific key on the keyboard, as described in the documentation. Different buttons produce different kinds of wipes. The following wipes are available: fast from top to bottom, fast from bottom to top, slow from top to bottom, slow from bottom to top, slow from left to right, slow from right to left, slow horizontal from center to edges, slow horizontal from edges to center, slow vertical from middle to top and bottom, slow vertical from top and bottom to middle, spiral inward from edges to center, spiral outward from center to edges, venetian blind wipe top to bottom, venetian blind from bottom to top, fast or slow speed random relacement of 192 (fast) or 384 (slow) separate screen areas till other image is fully displayed, upper left corner to lower right, upper right corner to lower left, lower left corner to upper right, lower right corner to upper left, instant change to green (or black, or white) followed by a pause then the other image.
Each of these will go from whichever picture is currently displayed to the other picture in memory. You can toggle back and forth between frames at any time with a keypress. The visual effects are dazzling! I've talked to two users who think Video Titler is superior to anything available for DOS (ie IBM compatible) computers for making video tape title screens. Send me $1 and I will send you the most recent update of Video Titler plus Bruce's Drawing Program on one DSSD disk.
HORIZON RAMDISK PASSWORD by Bruce Harrison
Both Bruce Harrison and a member of my local user group have the same problem. They each have several indoor cats which like to jump up onto the computer table and walk on the keyboard. To deal with this difficult situation, Bruce Harrison created a password program which won't let you access your computer unless you type in the correct password. First set up Password on your Horizon Ramdisk. Then every time you turn on the computer, press the "any key" to get past the color bar screen, and you are immediately prompted for a password. As you type this password your typing is not echoed onto the screen so that nosy cats and kids can't look over your shoulder and learn your secret. If you decide to step away from the computer for awhile and leave it turned on, you can reactivate the password feature. This prevents the cat from messing up your work while you are away.
Password has only been tested on a 99/4A system with Horizon ramdisks and may not work with other types of media. Send me $1 and I'll send it to you on a SSSD disk.
CHECKTIME by Bruce Harrison
This is fun for software users, useful for XB programmers, and seems to bring into question the true usefulness of some well known XB programming techniques. Checktime accurately measures the speed of XB programming code.
To use this utility first CALL LOAD it into low memory and then OLD an extended basic program into memory. Insert a CALL LINK into the XB program at the point where you want to start timing and another CALL LINK into the XB program at the point where you want timing to end. Then RUN the XB program, which will execute normally. After the XB program finishes running or after you manually stop the program with a BREAK you can display on screen the duration of the timed operation rounded to the nearest second, more or less accurate to 1/60 second. Then try modifying your XB program so that timed operation runs faster, and check out your modification's execution speed.
Since the early days of our computer we have read articles in 99er magazine, Micropendium, and user group newsletters about how to speed up XB programs. Two techniques that are supposed to accomplish this are using short variable names instead of long names, and using multi line statements instead of single line statements. Bruce includes a couple of demo programs that show the effect of these two techniques using Checktime. Running a for-next loop 2000 times into a variable 14 characters long ("ANYOLDVARIABLE") takes 2 minutes and 5 seconds. Renaming the variable to only one character ("A") shortens run time by only 6 seconds. Repeating a for-next loop coded with four single line basic statements 5000 times takes 5 minutes and 2 seconds. Reprogramming this loop into a single multi line statement shaves only 1 second off of this running time! Bruce also includes some demos that show significant improvements in execution time by using more efficient XB code. One is a very simple modification of a bubble sort that improves sorting speed from 1 minute 14 seconds to only 18 seconds.
Send me $1 and I will send you Checktime on a SSSD disk.
ULTIMATE DELAY by Bruce Harrison
Ultimate Delay is for use by XB programmers. This assembly CALL LINKable routine will provide accurately timed delays in XB programs irrespective of the speed of your computer. This means that the delay is the same length of time for a program running on a regular 99/4A, a bus modified 99/4A (32K internally on the 16K bus), and a Geneve.
You can use this routine in two ways. 1- You can insert an unrestricted delay of any time length (timed in 10ths of a second) anywhere in the program. During the dalay the keyboard is ignored except for FCTN/= (Quit). 2- You can insert a delay that will time out either after a period of time or when a key is pressed. You have the option here of returning the ASCII code of the first key pressed to a variable for later use by your program. These sorts of things can be done with regular extended basic using for-next loops and CALL KEY, but the delay lengths will differ when the program is run on different types of machines. Coding for delays is much simpler with Ultimate Delay, and delay time is the same when run on different types of computers.
To experiment you can manually CALL LOAD Ultimate Delay into low memory and then play around with inserting the needed CALL LINKS into various places in your extended basic program and observing the results. Once you get your extended basic program working to your satisfaction you can attach Ultimate Delay to your program. You can then OLD and RUN your program without the bother of separately CALL LOADing Ultimate Delay. Software tools and directions for attaching Ultimate Delay to your extended basic programs are included on the SSSD Ultimate Delay disk. Send me $1 and I will send you this disk.
RANDOM NUMBER by Bruce Harrison
This comes on a SSSD disk. It's yours for $1. It is a set of assembly utilities for the XB programmer. that generate random numbers much faster than XB's RND function. You CALL LOAD and CALL LINK to the routines, or you embed them into your finished XB program. Bruce provides several direct comaprison demo programs that show how his routines assign 300 random numbers to arrays in about 1-3 seconds, while using RND to do the same thing takes 25 seconds.
One set of routines will randomly assign up to 500 integers between -32768 and 32767 to an array variable such as DIM A(500). It takes about 1 second to do this. You can specify the max and minimum size of the randomly generated numbers within the above range, and you can also specify with or without replacement. Without replacement means that a randomly generated integer number will not appear more than once in the array. With replacement means that a randomly generated number will be put back into the pool of possible numbers and may appear several times, randomly of course, in the array.
Bruce provides a useful demo of random integer number generation in the form of a card shuffling XB program. How may times have you seen a TI card game say on screen "Please wait, I'm shuffing the deck", and then make you wait awhile while this is done? Bruce's demo program does the schuffling really fast! Random numbers 1-52 are generated without raplacement and then displayed in random order on the screen.
Another set of routines generates floating point numbers of any size. An unlimited number of floating point random numbers can be generated with these routines, limited only by the size of the array where the numbers are to be assigned. Large arrays take up lots of memory. It takes about 3 seconds to grind out and assign 300 of these floating point random numbers. You can specify the max and minimum size of the nunbers to be generated and you can specify whether or not to truncate the number at the decimal point thus creating big number integers.
Bruce Harrison, 5705 40th Place, Hyattsville MD 20781.
Charles Good, P.O. Box 647, Venedocia OH 45894.
Internet email [email protected]
Return to the MICROREVIEWS page