ORIGINALLY PUBLISHED IN MICROPENDIUM P.O. Box 1343 Round Rock TX 78680 Phone 512-255-1512 Internet jkoloen@io.com MICROREVIEWS FOR SEPTEMBER 1994 by Charles Good The TI community continues to be enhanced by the efforts of Bruce Harrison. Everything of his I am describing this month has been released by Bruce into the public domain. You can get these software packages from me for $1 per disk, which pays for the disk postage and mailer. -------------------- XB COMPILER by Bruce Harrison Most previous attempts at basic language compilers for the 99/4A have required extensive rewrites of existing software. Some were limited to only certain subsets TI basic of extended basic, and all were very difficult to use. Not so with the Harrison compiler. It is not necessary to rewrite your favorite XB software prior to compiling, and the actual process of producing the compiled code is not difficult. Bruce has taken certain XB operations and written assembly code which does the operation faster than XB's GPL interpreter. Whenever a compiled XB program gets to one of these operations it uses Harrison's code for extra speed. If the particular XB operation is not one of those that have been speeded up by assembly code, the compiled XB program branches to GPL and the XB operation occurs at normal speed. This means that everything in a normal XB program works when the program is compiled. Some parts of the compiled program work at normal speed and some work at greatly accelerated speed. File handling (OPEN #, PRINT #, etc) works at normal speed. XB programs that already have imbeded assembly routines can't be compiled, but you can sometimes CALL LOAD assembly object code to low memory and then CALL LINK to this code from a compiled XB program. The following are speeded up by the Harrison compiler: CALL CHAR, CALL COLOR, PRINT (to the screen), ON ERROR, FOR/NEXT (including nested loops), CALL GCHAR, CALL HCHAR, CALL VCHAR, CALL KEY, ON GOTO, and ON GOSUB. If Bruce continues to work on his compiler this list may increase. The process of compiling is multi step but not difficult. Bruce is well known for writing user friendly instructions and provides lots of on disk examples of each step in the compiling process. First you get your XB program working just the way you want it. This XB program is saved in merge format. The merge format program is then run through the multi step compiling process. Once compiled the XB program will OLD and RUN normally. If you BREAK the program (with FCTN/4) you will get the correct BREAKPOINT AT LINE XXX message. You can then type CON to continue the compiled program just like regular basic. You cannot however list or edit a compiled program. You have to go back to the uncompiled XB original code to do any editing and then run the edited code through the Harrison compiler again. The main limitation to the compiler is program size inflation. The compiled program occupies much more memory and disk space than the uncompiled original. For each of the speeded up operations listed above the compilation process adds some hidden assembly code to the program which increases memory requirements. If a speeded up operation is not found in the original XB code then the assembly code for that operation is not added. All of the speeded up operations listed above add 21 sectors to program disk size compared to the original uncompiled XB code. Large XB programs may not be compilable because they run out of memory. This is one reason why Bruce hesitates to add more speeded up operations. The Harrison compiler is the best general use XB compiler available to the TI community. The compiler with on disk documentation and sample files comes on a DSSD disk. Its source code is on a second DSSD disk. ----------------------- DRAWING PROGRAM by Bruce Harrison As the name suggests, this lets you make multi color drawings on screen and save them to disk. You can use the keyboard or joysticks to move the cursor around. You can either start from a blank screen or load in a previously created drawing. You can also load in TI Artist "_P" and "_C" picture files. For text you can load in a TIA font or you can load any CHARA1 type of file (something TIA can't do). You an also load in TIA instances and place them where you want on the drawing screen. Pictures created with Drawing Program can be printed on almost any printer, including Star SG10 and 10X models. They can also be saved to disk, but graphics are NOT saved in TI Artist compatible format. Harrison's Drawing Program isn't nearly as fancy as TI Artist. However in most cases if you need to create screen art work or manipulate graphics that already exist in TIA format the Drawing Program will do very nicely. Unlike TIA, which is commercial, Drawing Program is free. With source code it comes on one DSSD disk. One word of caution. Drawing Program doesn't work on my AVPC system. I don't know if it works with other types of 80 column systems. ------------------------ VIDEO TITLER by Bruce Harrison Bruce was unimpressed with the text only title screens I create for the Lima MUG Conference video tapes so he decided to help me make some really fancy video tape title screens. Video Titler is the result. You are supposed to take the computer screen graphics manipulated with this software and record them onto a video tape. The results are very impressive. As many of you know the video output of a 99/4A can, using a monitor cable, be fed directly into the "video in" jack of a VCR where it can be recorded onto video tape and displayed on the screen of a TV hooked up to the VCR. Video Titler lets you store two full screens of graphics in memory and then rapidly switch back and forth between these pictures, displaying them one at a time on screen and on the video tape you are recording. First you load the pictures into memory. They can be either Drawing Program or TI Artist pictures. Then you press "record" on the VCR and start switching between pictures. If the pictures in memory are only slightly different, rapid switching produces an animaton effect. In addition to instantly switching between the two screen pictures you can wipe the current image in various ways to display the second picture. Wipes can be left to right, right to left, top to bottom, bottom to top, or center to left/right. If you want to display more than two pictures, press "pause" on the VCR. Then load more pictures, replacing those already in memory. Then release the "pause". I can send you Video Titler, some neat video pictures made by Bruce, and the Drawing Program (without source code, no room for it) all on one DSSD disk. ------------------------- FONT CONVERTER by Bruce Harrison A few years ago Jim Peterson created almost 200 screen fonts for use in extended basic software. Bruce Harrison has made an assembly program to convert all of these Peterson screen fonts into CHARA1 program files. The conversion process is somewhat lengthy, since each Peterson screen font has to be individually converted. The result is a whole bunch of mostly 5 sector CHARA1 fonts that can be used with Drawing Program. A unique feature of Drawing Program is its ability to import CHARA1 fonts. You can also use these converted CHARA1 screen fonts with word processing software, although many of them don't look very good used this way. Font Converter comes on a one SSSD flippy disk. The flip side of the disk contains some of Jim Peterson's original screen fonts for you to convert. The entire collection of Peterson's screen fonts for you to convert is available from me on three additional SSSD flippy disks. -------------------- TURNFONT by Bruce Harrison Here is something to do with all the strange CHARA1 fonts you make with Font Converter. Turn them on their sides, 90 degrees, or turn them again to make the characters upside down. Turnfont will input any CHARA1 font and output to a disk file the same CHARA1 font rotated 90 degrees either right or left. You can take a previously rotated font file, run it through Turnfont again, and get an upside down CHARA1 font. The resulting rotated fonts can be used with Drawing Program, Funnelweb's central menus, or with word processing software. The results are really strange and humorous! The software and some sample turned fonts comes on one SSSD disk. ---------------------- CALL LINKable XB ENHANCEMENTS by Bruce Harrison Each of the following Harrison public domain assembly utilities comes on a SSSD disk and can be merged into and CALL LINKed from your favorite XB programs. These can be added to your XB programs in any of three ways. 1- Just CALL LOAD Bruce's utilities into memory and them CALL LINK to them. You do this while you are experimenting with the utilities. 2- Use ALSAVE to imbed a utility into your program. 3- Imbed the utility in your program with "Hi Mem Loader" which, unlike ALSAVE, leaves all of low memory available. strings. Once these utilities are imbeded into your XB program (you can imbed several utilities into the same XB program) they are transparent. You OLD and or RUN the program as you normally would from XB and the assembly code is automatically loaded ready for your program's CALL LINK. Each utility comes with source code, demo XB programs, the necessary software to imbed the utility into your XB program, and Bruce Harrison's user friendly step by step documentation. CALL FILES XB This allows you to do CALL FILES from within a running XB program. Previously CALL FILES could only be executed from command mode. Our computers normally default to CALL FILES(3) which lets us have 3 files open simultaneously. With this utility imbeded in your XB program you no longer have to do a CALL FILES(x) from command mode before running a program that needs more than three simultaneously open files or a program that needs the extra stack memory opened up by CALL FILES(1). Just OLD and RUN your XB program and the needed CALL FILES(x) is done automatically by the program, TIME OUT This puts a time limit for INPUT, ACCEPT AT, and CALL KEY. If data is not entered within the time allowed, the computer assumes just has been pressed and XB program execution continues on the basis of this null string input. The time limit is easily modified by changing a parameter of the CALL LINK statement in the XB program. An obvious use for this sort of time limit is in memory games where a player has only so much time to input an answer. BACKGROUND MUSIC This plays background music while waiting for user input at INPUT, ACCEPT AT, and CALL KEY. You can even have the music play while editing the program from command mode. Actually you can start and stop the music anytime you want. CALL LINK("CHIME") turns it on and CALL LINK("ENDSND") turns it off. Music is provided by a "sound list" as described in the EA manual. Such lists resemble, but arn't quite the same as, a series of CALL SOUND statements. Bruce provides three sound files in both source and object code for those like myself who have no talent creating music and don't understand sound lists. Sounds include a nice 3 part chime and 16 bars of a Vivaldi sonata. An additional utility in the Background Music software package allows you to use music to time out at ACCEPT AT. The music plays for a defined length of time. If there is no user input during this time the computer simulates pressing to yield a null string and the XB program continues from that point. Bruce includes a really cute demo of this feature in the form of a small Jeopardy television game simulation. The Jeopardy theme (the third sound file provided by Bruce) plays while the program displays an answer and waits for the user to input the proper question. When the music is finished, time is up, the opportunity for user input ends, and the user loses. Bruce really appreciates your comments and suggestions. Feedback from TI users is why he enjoys providing us with all this great public domain software. Write him at 5705 40th Place, Hyattsville MD 20781. His phone number is 301-277-3467. I can be reached at P.O. Box 647, Venedocia OH 45894. My phone is 419-667-3131 and you can use cgood@lima.ohio-state.edu to send me internet email.