ORIGINALLY PUBLISHED IN LIMA NEWSLETTER SEPTEMBER 1989 ^^^^^^^^^^^^^^^^^^^^^ XHi v3.2 ^^^^^^^Xbasic Hi Resolution Graphics Support ^^^^^^^^^a software review by Charles Good ^^^^^^^^^^^^^^^Lima Ohio User Group The 9938 video chip controls all video displays produced by the Geneve and by 99/4A systems that use a DIJIT systems AVPC card or the Mechatronics 80 column peripheral. In addition to the familiar 99/4A display modes, the 9938 chip has two additional graphic modes each of which allows the computer to display any of 512 colors. One of these graphic modes, G7, is 512 pixels wide and allows the simultaneous use of 16 colors. The other, G6, is only 256 pixels wide, but allows the simultaneous display of up to 256 colors. In both cases the color of each pixel can be individually set. Geneve users can utilize these high resolution graphics modes with the recently released "final" Myarc Advanced Basic and with MYART, but these programs will not run on 99/4A systems. Now, with XHi, these high resolution graphis modes are also available from regular TI Extended Basic. XHi was originally designed for use on a Geneve, but it works fine on other kinds of 9938 systems. It is the only software that allows those using a 99/4A with an AVPC or Mechatronics 80 column peripheral to utilize the full graphic potential of the 9938 video chip. XHi is yet another "adds features to regular extended basic" software package resembling those that have been reviewed recently by Barry Traver in COMPUTER SHOPPER. It is a tagged object code file that loads from Xbasic (either from command mode or from within an Xbasic program) with CALL LOAD and takes quite a while to load. XHi only works on systems that use the 9938 video chip. Once loaded XHi resides in low memory expansion, you are returned to Xbasic, and the special graphic features of the 9938 chip are available to the user via CALL LINK statements. All the normal features of Xbasic are retained. All Xbasic commands continue to work normally. To access either of the 9938 chip's high resolution graphic modes you need to incorporate XHi's CALL LINK statements into an Xbasic program and then run the program. You can't try out the CALL LINK's individually from command mode, and this makes experimenting with XHi somewhat difficult. Some (but not all) of XHi's CALL LINK's are described below: -CALL LINK's will display and optionally clear either the G6 or G7 screen. -CALL LINK("NORMAL") switches display back to the normal Xbasc screen, also known as graphics 2 mode (G2). -CALL LINK("DCOL",color number) sets the color of newly activated screen pixels until the color number is changed. -CALL LINK("BACK", color number) sets the background color much as CALL SCREEN does to the G2 screen. -CALL LINK("PLOT",VCOOR,HCOOR) plots a pixel at the stated coordinates. -CALL LINK("CIRCLE",etc) makes a circle from a specified point with a specified radius. -CALL LINK("LINE",etc) draws a line between two specified sets of coordinates. -CALL LINK("VIPORT",etc) creates a rectangular "viewport" on the screen. The effect of this is to create something like a pull down menu window. The viewport can be as large as the entire screen. Output to the screen only alters the area in the viewport. -CALL LINK("XPAND" or "REDUCX", etc) will enlarge or shrink the viewport horizontally. -CALL LINK("COPY", etc) can make multiple copies of the viewport on other parts of the screen. If the viewport has a picture or graphic design, this can produce very interesting effects. -CALL LINK("PRINT",TEXT$, etc) prints a text string starting at specified coordinates. -CALL LINK("CWIDTH") specifies the width of the columns, hence the size of the letters placed on the screen with CALL LINK("PRINT", etc). Minimum letter size will yield 80 column text. -CALL LINK("COLMIX,COLOR,RED,GREEN,BLUE) redefines the RGB components of one of Xbasic's 16 standard colors. -Complete control of high resolution sprites is possible with CALL LINKS. You can create multicolored sprites and have as many as 8 sprites displayed simultaneously on each screen line instead of the 4 that is normally possible with an unmodified 99/4A. The best way to see XHi do its stuff is to run the Xbasic demo programs. LOAD on the XHi disk will boot XHi and then allow you to run the demo programs from menus. The HIRESDEMO Xbasic program (which can be run from one of LOAD's menus) produces an absolutely SPECTACULAR graphics display. Just keep pressing every time the action stops to see the next part of HIRESDEMO. The best way to learn how to use the XHi CALL LINK statements is to study the Xbasic listings of the demo programs and utilities. XHi comes with an extensive documentation file written in English (the author is German). This doc file is easy to read and should be read carefully several times. The doc contains almost everything you need to know about XHi, but specific information is sometimes hard to find because it is buried. As you know, regular Xbasic only supports 16 colors. So how does XHi allow 512 colors to be selected from Xbasic and how can you put 256 of these colors on the screen at one time? With XHi you can redefine any or all of Xbasic's 16 colors, selecting the red, green, and blue component of each redefined color. In this way you can assign to any Xbasic color number (1-16) to any of the 9938 chip's 512 colors. OK, so how can you simultaneously display 256 colors on a G6 screen if you only have 16 colors to play with at one time? Simply create a program that puts your first 16 colors onto the G6 screen wherever you want, and then redefines the 16 Xbasic colors into other colors and puts these additional colors on the G6 screen, etc. The earlier colors will remain on the G6 screen unaltered and will still be there as you put new redefined colors onto the high resolution screen. With XHi you have simultaneous use of both the normal Xbasic G2 screen and either a G6 or G7 high resolution screen. Pixel information for both screens is kept in VDP RAM and you can instantly switch the monitor display from one to the other in a program with commands such as CALL LINK("HIRES") and CALL LINK("NORMAL"). All input is normally in the Xbasic screen unless specially programmed for high resolution display. If you are currently viewing the high resolution screen and you type something, you often won't see what you type because you are typing onto the (temporarily invisible) Xbasic screen. CALL LINK("NORMAL") will switch to the Xbasic screen and show you what you just typed. Any exit to commnd mode from a running Xbasic program while viewing a high resolution screen, without first returning to the Xbasic screen from within the program with CALL LINK("NORMAL"), will scramble the contents of the high resolution screen and leave you looking at high resolution garbage. This includes exits caused by CLEAR (FCTN/4), BREAK, encountering an Xbasic error, or even the logical END of the Xbasic program. You then have to blindly type CALL LINK("NORMAL") to return to the Xbasic command mode screen to see what happened. Any high resolution screen can be saved to or loaded from MYART format with CALL LINK("SAVE" {or "LOAD"},"DSKx.FILENAME"). You can, for example, load a picture created on the Geneve with MYART, modify the picture, and then resave it. The following Xbasic program, when run in the XHi environment, will prompt you for a MYART file name, display the picture, and at the press of any key prompt you for another MYART file name. 100 CALL CLEAR !clears the n ormal Xbasic G2 screen 110 DISPLAY AT(7,2):"MYART D RIVE AND FILE NAME?" !prompt for MYART file name with dri ve 120 ACCEPT AT(7,2):F$ !F$ is the DSKxFILENAME of the pict ure. Program can be safely e nded here with CLEAR (F/4) 130 CALL LINK("CLR256") !swi tches monitor display to G6 high resolution screen and c lears this screen. Change to "HICLR" for G7 display. 140 CALL LINK("LOAD",F$) !lo ads MYART picture file into G6 screen for viewing 150 CALL KEY(0,K,S) !waits f or any keypress 160 IF S=0 THEN 150 !if no k eypress then wait some more 170 CALL LINK("NORMAL") !if a key is pressed returns to regular Xbasic G2 screen. 180 GOTO 100 !restart progra m with prompt for another pi cture file. A utility called ARTLES is included which allows loading of TI Artist pictures (those with both a "_P" and a "_C" file) into a high resolution screen. This utility is called from within XHi with CALL LINK("ARTLES","ARTFILENAM") without disturbing XHi. After viewing the TI Artist picture, you can modify and/or save it in MYART format. The ability to directly call ARTLES from within XHi is new to XHi v3.2. A VERY useful feature that is new to v3.2 of XHi is HARDCOPY, a utility to print MYART graphics on a printer in black and white. You can specify picture size from very small to larger than normal page size. This allows the picture to be artificaly stretched, which sometimes considerably improves the final result. You can also print only part of a picture, entering the upper left pixel coordinates and the size of the rectangular area to be printed. To mimic colors, the dot matrix printer will produce either 16 or 256 different dot densities corresponding to the number of colors in the picture. The HARDCOPY utility that comes with XHi v3.2 is described as a "preliminary version", so the description of its use that follows may not be totally applicable to future versions of HARDCOPY. This is the ONLY utility I know of that allows printing of MYART graphics, at least on 99/4A systems. It's use was very confusing to me at first, but it is really quite simple to use once you know how. There are some MYART pictures that it won't print. Best results are obtained with pictures that have large areas of one color and a light background. -The printer must be set for IBM mode because very fine 1/216 inch line feeds are needed. On my Star SG10 printer IBM mode can only be set with a dip switch. This is the only time I have ever used my printer in IBM mode. -Totally ignore the HCSETUP set up program. IBM mode is same in almost all printers. HARDCOPY is internally preconfigured and normally shouldn't need an external configuration data file. -Enter the MYART file name when prompted and don't leave any trailing blank spaces to the left of the cursor after the file name. Such trailing spaces cause an I/O error. Use DELETE (F/1) to get rid of extra trailing characters rather than typing over them with spaces. Press . -The number of picture colors is displayed (16 or 256). Don't change this (by pressing 1 or 2) unless you have good reason to second guess HARDCOPY's choice. Just press . -You now see two rectangular boxes. One box has a picture color (HOARDCOPY apparently knows which of the 512 possible colors are in the picture) and the other box shows the corresponding printer dot pattern that will emulate this color. You can cycle through these 16 or 256 colors with the arrow keys and you can change the dot pattern of the displayed color by pressing number keys. Don't change the dot patterns. Use the ones already provided by HARDCOPY unless you have a good reason to change. Just press when the two boxes are displayed. -You can now set the picture size, stretch the picture to twice its normal width, and crop the printout by pressing the appropriate keys and following the prompt. If you do not enlarge the picture, your printout will be only a few inches in length and width. -Press 4 to print the picture. If you don't like the results experiment with spreading out the picture. This makes it easier to distinguish between areas of different dot densities. COMPLAINTS: (all rather minor) The actual XHi program works just fine with my AVPC equipped 99/4A. However the LOAD and COLDEF (color definition) Xbasic programs have some features I dislike. Fortunately, since these are written in Xbasic, these programs are easy to modify to my liking. LOAD, as written, requires its disk to be named XHi with a lower case i. The use of lower case letters in disk and file names is not standard practice in the TI world and can lead to problems. You cannot, for example, use lower case letters for disk names of newly initialized disks created with the DMII module or with DM1000. Because LOAD and COLDEF were written on a Geneve, which has a fancy keyboard, these programs reference key codes not often used on a TI keyboard. The author makes use of the Geneve's HOME key frequently when one would expect a press of the key. On the 99/4A keyboard the equivalent of HOME is CTRL/L. You also, in one case, have to figure out that on the 99/4A keyboard you need to press CTRL/. (period) to do something. LOAD and COLDEF need to be altered to get rid of references to DSK.XHi.FILENAME and weird keycodes in order to be more easily used on 99/4A based systems. CONCLUSIONS: I agree with one of my correspondants who stated, "On the Sears scale of things I rate XHi as a BEST." It is a very noble effort to harness the power of the 9938 chip in a familiar environment. For Geneve owners, XHi probably isn't as user friendly as MYART, but it is alot cheaper. It is the only tool Geneve owners have to incorporate high resolution G6 and G7 graphics into the large body of existing Xbasic software. Although the recently released Myarc Advanced Basic will support high resolution graphics, Advanced Basic is largely incompatable with TI extended basic. Both Geneve and 99/4A users will benefit from HARDCOPY. It is said to print MYART graphics in shades of gray with better quality output than can be obtained with MYART's own screen dump. For 99/4A users with the AVPC or the Mechatronics 80 column peripheral XHi is the only show in town. It is the only currently available software package that allows 99/4A systems equipped with the 9938 chip to take full advantage of all the high resolution color graphics capabilities of the 9938. Even if you just want to view MYART graphics created by others, XHi is superior to the Barry Boone MYART viewing program that is distributed with the AVPC. A greater varity of MYART pictures can be displayed with XHi. I very strongly recommend XHi to AVPC and Mechatronics 80 column users. And now a personal comment. I know that XHi v2.0 and v3.0 have been available in the United States since the beginning of the year (1989). On July 1, I sent a fairware payment to the author, Alexander Hulpke Sadowastrasse 68 5600 Wuppertal 1 West Germany. A few weeks later Alexander sent me a disk with his very latest (v3.2) and a short note stating, "Yours is the first fairware payment I have received from the United States. Congratulations!" COME ON NOW PEOPLE, after all this time am I the one and only person in the United States who uses XHi? I don't think so! XHi has obviously taken many 10's of hours of work to create. PAY THE MAN FOR HIS WORK or we may never hear from him again. Alexander has other high resolution and 80 column stuff in the works. I have seen some of this additional material. You may never see any of it unless Alexander gets some more fairware donations. Alexander has promised to send me the next XHi version with an improved HARDCOPY. User groups, not individuals, can obtain a copy the latest XHi by sending a disk and paid return mailer to the Lima User Group, P.O. Box 647, Venedocia OH 45894, USA. I won't complain if you put something on the disk for the Lima UG library. .PL 1