O M N I V I D HAVE YOU EVER YEARNED FOR A WAY TO INCLUDE THOSE FLASHY WINDOWS IN PROGRAMS YOU WRITE FOR YOUR '83 CP/M KAYPRO II OR 4, XEROX 820-1, OR BIG BOARD-1. NOW YOU CAN!! AND, MUCH MORE!! BLAZING FAST ASSEMBLY LANGUAGE DEVICE DRIVERS PROVIDE FULL SUPPORT FOR WINDOWS AND SPRITES ! INTERFACES WITH ASSEMBLY OR ANY HIGH LEVEL LANGUAGE. EVEN NOVICE PROGRAMMERS CAN EASILY INCLUDE IMPRESSIVE SCREENS IN THEIR OWN PROGRAMS. T H E O M N I V I D D E V I C E To use the features of OMNIVID you need only send control codes or escape sequences via any CONSOLE OUTPUT routine. It's that easy. For example, to open a window, you simply send the ESCAPE code (1BH) followed by a capital W and the upper left corner row/column and lower right row/column coordinates. The string to send would be as follows: ESC,W,upleft row + 32, column + 32, loright row + 32, column + 32 Thus: 1BH,'W',32,32,43,53 opens a window of 12 rows and 22 columns with its upper left corner at the screen's home position. The OMNIVID device supports all the standard video functions already supported by your computer plus many more, such as: Blink on, Blink off, Cursor on, Cursor off, Save cursor location, Restore cursor to saved location, Fetch character, Ignore next n characters, Insert column, Delete column, Insert row, Delete row, Scroll right, Scroll left, Scroll up, Scroll down, Get cursor character, Set cursor character, Get fill character, Set fill character, Make window, Copy window contents, Copy window and contents, Move window contents, Move Window and contents, Swap window contents, Swap window and contents, Open current window to full size, Window bounds intercept on, Window bounds intercept off, Lock scroll, Unlock scroll, Line lock on, Line lock off, Null character rejection on, Null character rejection off, Get screen relative cursor position, and others ! And, each affects only the current window - regardless of window size !! T H E W I N D O W S D E V I C E The WINDOWS device adds extensions to the OMNIVID device, enabling more advanced functions such as SPRITES !! MULTIPLE SCREENS !! and ROW TABLE DRIVEN SCREENS !!!!! Any one screen may contain up to eight sprites. They may move independently over or under one another without altering their contents or the base screen's contents. Each sprite may have its own priority level to determine the order in which they stack. In other words, if a screen contains eight sprites of identical size, and all are at the same location, the one with the highest priority level will be the only sprite visible. Changing the priority levels instantly changes which sprite is visible. Sprites and windows may be either engaged (made visible) or disengaged (made invisible but still active). Pop-ups and pull- downs are easy. Multiple screens may be held in memory for instant use at any time. Each may have its own sprites attached, and be selected at any time as your program demands. ROW TABLE DRIVEN SCREENS allow you to create screens with each row at non-consecutive memory addresses. You merely provide the WINDOWS device with a table of addresses corresponding to each row you wish displayed. The WINDOWS and OMNIVID devices will then use the memory at these addresses for all subsequent operations. You can even re-map the actual video memory if you wish. SLOTS.COM (included) is a realistic slot machine game with three wheels which actually spin! This program demonstrates the use of ROW TABLE DRIVEN SCREENS. The rows containing the visible wheel images are mapped into the actual video memory (center screen). The next rows containing the upcoming wheel images are mapped into program memory. By sending SCROLL UP escape sequences, the invisible rows in program memory magically spin (scroll) onto the center of the CRT. T H E R E P O R T D E V I C E The REPORT DEVICE returns requested information to an application program through the standard CONSOLE INPUT routine. (Just as if it had been typed on the keyboard.) This permits easy interface to any High Level Language. Just send an escape sequence to request the information you desire, then sample the CONSOLE INPUT routine to retrieve the report. If the report device is not used, the same information is always available to the experienced programmer in the DE register pair. Escape sequences to which the report device will respond include: Fetch character, Get screen relative loright of current window, Get screen relative upleft of current window, Report OMNIVID version number, Get screen relative cursor position, Get window relative cursor position, Get current base screen number, Get current screen number, Get priority of screen #n, and more ! A L S O I N C L U D E D T H E M O U S E D E V I C E Another first for the Xerox 820-1 and the 83 CP/M Kaypro II and 4. A device driver which supports a MICROSOFT compatable serial (RS-232) mouse. (Can be configured to support the popular LOGITECH C7 serial mouse.) Think of it ! Now you can write 'mouse driven' programs with pop-ups and pull-downs for your Xerox or Kaypro ! SETMOUSE.COM (included) allows you to configure the MOUSE DEVICE to send your selection of key and motion codes. You may also choose to send different motion codes depending on whether either mouse key or keys are depressed. The ratio of mouse movement to cursor movement may be set according to your own tastes or needs. And, for the more serious programmer, the MOUSE DEVICE contains its own callable function dispatcher permitting all the above characteristics to be changed by your own programs. T H E S C R E E N D U M P D E V I C E This device driver allows the contents of the current CRT screen to be dumped to your printer. W I N D O W . B O X Have you ever watched the windows demo program (WINDEMO.PAS) from the PC version of Turbo Pascal and longed to do the same on your CP/M Xerox 820-1, Big Board-1, or 83 Kaypro II or 4. Now with OMNIVID and this toolbox, you can. This toolbox adds compatability with the IBM PC version of Turbo Pascal ! Procedures and functions included: Draw(X1,Y1,X2,Y2,OnOff:integer; Plot(X,Y,OnOff:integer); GetPic(var:Buffer:AnyType;X1,Y1,X2,Y2:integer); PutPic(var:Buffer:AnyType;X1,Y1,X2,Y2:integer); Circle(X,Y,Radius,OnOff:integer); GetChar:char; Arc(X,Y,Angle,Radius,OnOff:integer); Window(X1,Y1,X2,Y2:integer); WhereX:integer; WhereY:integer; WhereXY(var X,Y:integer); Window(Uc,Ur,Lc,Lr:integer); Fullscreen; CursorOn; CursorOff; CursorStat:boolean; SetFillChar(NewFill:char); GetFillChar:char; MoveWindow(Op:MoveType;UC,UR:integer); CopyWindow(Op:MoveType;UC,Ur,:integer); SwapWindow(Op:MoveType;UC,UR:integer); GetWindow(var Uc,Ur,Lc,Lr:integer); WindowSize(var Cols, Rows:integer); and MORE !!! S W I N D O W . B O X For those using SBASIC, this toolbox provides similar versatility as the above toolbox for Turbo Pascal. T U R T L E . B O X Yes, a TURTLE GRAPHICS toolbox for use with Turbo Pascal. (Graphics character ROM (below) is desirable.) The following functions and procedures are supported: HomeXY; Back(Dist:real); Forwd(Dist:real); Heading:real; HideTurtle; ShowTurtle; NoWrap; Wrap; PenDown; PenUp; SetPenColor(Color:integer); (even color is dark/odd is light) SetPosition(X,Y:real); SetHeading(Angle:real); SetScale(X,Y:real); TurnLeft(Angle:real); TurnRight(Angle:real); TurtleDelay(Ms:integer); Sound(I:integer); NoSound; TurtleInit; Home; ClearScreen: TurtleWind(X,Y,W,H:integer); TurtleWindow(X,Y,W,H:real); TurtleThere:boolean; Xcor:real; Ycor:real; TurtleExit; Note that two versions of the turtle are provided. TURTLE.BOX will operate with a standard character rom, while the other, FTURTLE.BOX is written to operate with the FLEXISOFT Graphics Character Rom. This rom provides a 4 pixel per character graphics character set located from CHR(16) thru CHR(31). This increases the resolution of the resulting image from 80x24 to 160x48, which results in a much more detailed image. Both versions of the turtle operate on a "shadow" screen of which the physical CRT image is a reduced resolution image. S C R E E N S . B O X Yet another toolbox for use with Turbo Pascal enables easy multiple screens and sprites from within your turbo programs. F L E X U T I L . C O M A device driver management utility. With FLEXUTIL.COM it's quick and easy to create an executable .COM file which loads your selection of the OMNIVID device drivers in protected upper TPA, above the BIOS, or at any absolute address. Information on how to write and include your own device drivers is also provided. S L O T S . C O M A realistic slot machine game with three spinning wheels demonstrates ROW TABLE driven screens. J A W S A game to demonstrate the ability to animate using the OMNIVID device drivers. Elude the monsters and score big points! T H I S E N T I R E P A C K A G E O N L Y $ 4 9 . 9 5 ( I N C L U D E S S H I P P I N G ) Available soon for 84 CP/M Kaypros and PC compatables. VISA, MC, COD, OR CHECK or Order while online by selecting the

lace order option from one of the MESSAGE SYSTEM menus. Full documentation available on disk for only $6.00. Demo Disk only $6.00. A L S O A V A I L A B L E : A GRAPHICS CHARACTER ROM for the Xerox 820-1 or 83 Kaypro II or 4. This new character rom provides a pixel graphic (160 x 48) as well as a thin-line character set. Great for those window borders you will need when using the OMNIVID device drivers above. You will also find that the standard alphanumeric character set is improved over the original. ROM price $19.95 (includes shipping). VISA, MC, COD, OR CHECK or Order while online by selecting the

lace order option from one of the MESSAGE SYSTEM menus. TEL 606-325-3736 9AM to 6PM EST F L E X I S O F T 3987 VALLEY VIEW DRIVE ASHLAND, KY 41101