INSTANT GRAPHICS AND SOUND EMULATOR FOR INTERLINK! Copyright 1989 Kevin Moody and Anthony Rau All rights reserved. Instant Graphics! Online Interpreter Copyright 1988,1989 by Larry Mears All rights reserved. Version 2.11 Shareware INTRO Instant Graphics & Sound accessory and Interlink Emulator bring a whole new concept in online graphics and sound! Now see TRUE online graphics and hear true sound over the modem! If you are tired of the bland VT52 colors that most ST BBS' offer, then you will be plesantly surprised by the super fast graphics and sound this NEW Emulator for Interlink will unlock! INSTALLATION Place IG.ACC in root directory of your boot drive A: or C: and select it from the menu bar to use. The desk accessory has some features not found in the IG.EMU both have their own virtues use which best serves your needs. The Emulator loads in just like your ANSI or ATASCII Emulator does. Just double click on the ??? for your "Style" of communications and away you go! If you do this with the RECORD feature on, then it will be done automatically for you when you boot up Interlink. This Emulator will be good for Masterlink too when it becomes available. EASE OF USE This Instant Graphics and Sound Emulator is also fully VT52 compatable. This means you DO NOT have to switch between Instant Graphics and VT52 everytime you call a different BBS! Once the Instant Graphics and Sound Emulator is loaded. Just forget about it! You are all set!! SOME BACK GROUND IG does VDI graphics by way of a attention command sequence, simular to a Hayes modem, and interprets one letter commands and values up to 9999. It also does VT-52 graphics in their standard form or with special attention commands, thus allowing VT-52 graphics by choice, if the standard escape sequences aren't used. So what's so great about VDI? Well it means lines, circles, ovals, rectangles, fill patterns, system fonts, you can have BIG COLORED text any where on the screen. IG with a little help from the users out there could open a new door for telecommunications. This terminal would allow better game programs to be written for FOREM's doors. Another use is bar and pie charts. A good idea would be to have a online comic strip. Ascii publications such as ST-REPORT could embed graphics commands into there text for illustration purposes. If you didn't read it with IG then it'd just look like cryptic BASIC. There are lot's of possibilities and if I come up with anymore good ideas for commands I'll try incorporate them into the next version. SYNTAX IG is case sensitive. G# gets it's attention g# does not. commands can be chained with the > character but they can not exceed one line. In other words IG does not check for a linefeed or CR all the time, it will try to interpret it as a command, chain character, value, or value separator. Line noise will of course blow it's performance to shreds. Any non numerical character can be used as a value separator, I suggest a comma or space. I like to use a : to separate commands when chaining but you can use any non numerical character. If you don't use the chain character you have to have some character there anyway so why not a space or a < but you should be able to even use a number character. I wouldn't do that though it'd be confusing. When using the W command the string is ended with the @ character and if chaining the next command comes directly after the @ no separator at all. OK, I guess you need to see some examples to study over. Chain example: G#I 0 G#A>3,8,1:B>0,0,639,149,1:A>1,1,1:C>2,2:B 30,15,610,134,1 G#E>4,18,0:C>3,3:W>170,35,Instant Graphics!@C 2,1 G#V>319,80,60,0,119:A>3,3,1:V>319,80,60,119,239:A 3,1,1 G#V>319,80,60,239,360:E>0,9,0:T>2,1,2:T 2,1,52 G#L>90,80,240,80:C>3,1:W 140,77,REST@ G#T>2,1,51:L>390,95,540,95:W 445,92,WORK@ G#L>390,60,540,60:W 445,57,PLAY@ G#p 24,19:We all wish it were that way!G#k 1: Notice the C directly after the @ in line number 3 and the colon at the end of the last line to keep the carriage return from being eaten as a value separator. ------------------------------------------------------------------------------ You can execute commands on fly in the same line by having several G#'s. G#v 1:Turn inverse video on G#v 0:and back off. Notice the space between the command and the number, meaning don't chain and the colon after the numbers. The colon will be eaten by the routine that gets numbers from the modem. It has to know when to quit and any non numerical character gets swallowed. A colon after the commands parameters are passed looks good anyway, right? Shades of BASIC huh? Also the commands are case sensitive. A w is a totally different command than W , so be careful. ----------------------------------------------------------------------------- MORE TALK There is a pause command call t in case you were wondering. It lets you pause a screen, it sends a ^S^S times it and then sends a ^Q^Q. Good for messages with multiple screens or long graphic welcome bulletins. This version is FREEWARE. I'd like sysop support spreading this program around and a little hype. Report bugs and comments to: ( IG online graphics interpreter author, write me a letter. ) Larry Mears 11027 Crestfield Dr. Huntsville, AL 35803 ( Authors of sounds and IG interfacing to Interlink, drop us a message.) Kevin Moody and Anthony Rau, Node 436 The Final Frontier BBS (904)-282-3623 Official IGS support BBS. We'll try to fix them if we can, we can not guarantee a fix though and we will not be held responsible for any problems caused by use of this software. After all it is FREE! Just use Flash's or InterLink's buffer to edit the graphic files. Also a ^C executed when IG is writing it's prompts will crash or exit the program. ---------------------------------------------------------------------------- KEYBOARD COMMANDS for IG.ACC ---------------------------- Note: Only the Clr Home key works the same for the IG.EMU and the the Insert key is a graphics toggle on/off, also a CONTROL+SHIFT+R serves the same function as F5 listed below, all other functions for IG.ACC only. FUNCTION KEYS F10 cut graphics off ....Allows online entry of graphic commands. F9 cut graphics on ....Executes any graphics commands from the modem. Important! Default mode is graphics on. If entering a graphics message on a BBS push F10 first. To view it push F9 and tell the BBS to list the message. Do not use ^S and ^Q while graphics commands are executing! F8 execute from file....Read a text file execute imbedded graphics commands. This allows off line composing. F7 read file only ....Read a text file ignore graphics commands. Note: When reading or executing text files it's ok to use ^S ^Q and ^C . F6 duplex toggle..... use half duplex on GENIE. F5 locks out the Resolution switch command. ---------------------------------------------------------------------------- LITTLE KEYPAD INSERT set baud ....Set baud 300 thru 9600 baud. Note: No default at startup, this is so when using FLASH and the ACC the baud remains the same as the host program. None of the other RS323 parameters are changed by this option only baud and I've not tested IG past 2400 baud. CLR HOME restore ....Clear screen, restore resolution and colors. HELP screen ....Short list of keyboard commands. UNDO exit ....Exits Instant Graphics! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ INSTANT GRAPHICS! ----------------- ( VDI FUNCTIONS ) g Graphic scaling G#g 1: ------------------ g = command identifier Turn graphic scaling on or off. When on all X Y coordinates are plotted to an imaginary screen 10,000 by 10,000. 0,0 is in the upper left corner, while the lower right corner is 9999,9999. This means graphics plotted with graphics scaling should look approximately the same in all resolutions! Parameter: 0 = off 1 = on I initialize G#I 0: ------------- I = command identifier Initializes color pallet and most attributes to what ever they were before the Instant Graphics ACC was executed. Issue this command at the start of each graphic sequence and you'll have a common starting point. Parameter: 0 = Set resolution, pallet, and attributes 1 = Set resolution and pallet 2 = Set attributes 3 = Set Instant Graphics! default pallet A attributes for fills G#A 1,1,0: ---------------------- A = command identifier Sets attributes for fills and sets border option. 1st parameter selects pattern type: 0=hollow, 1=solid, 2=pattern, 3=hatch 2nd parameter selects pattern index number it ranges 1-24 for type pattern and 1-12 for type hatch. These patterns are illustrated in the ST BASIC manual, page 95 in mine. 3rd parameter specifies if a border is to be drawn around the filled area. 1=yes, 0=no H hollow set G#H 0: ------------ H = command identifier When on non solids are drawn, a circle will be drawn instead of a disk. Parameter 1=on 0=off M drawing MODE G#M 1: -------------- M = command identifier Parameter sets drawing mode. 1 = replace 2 = transparent 3 = XOR 4 = reverse transparent T line, marker TYPES G#T 2,1,4: --------------------- T = command identifier 1st parameter selects lines or polymarkers to change. 1 = polymarkers ( effects output of the P command ) 2 = lines ( effects D and L commands ) 2nd parameter picks type of line or polymarker depending value of 1st parameter. for polymarkers: 1 = point 2 = plus sign 3 = star 4 = square 5 = diagonal cross 6 = diamond for lines: 1 = solid 2 = long dash 3 = dotted line 4 = dash-dot 5 = dashed line 6 = dash-dot-dot 3rd parameter selects size and line end styles. -size- for polymarkers: 1 thru 8 for lines: 1 thru 41 -line end styles- 0 = both ends square 50 = arrows on both ends 51 = arrow on left, squared on right 52 = arrow on right, squared on left 53 = arrow on left, rounded on right 54 = arrow on right, rounded on left 60 = rounded on both ends 61 = rounded on left, squared on right 62 = rounded on right, squared on left 63 = rounded on left, arrow on right 64 = rounded on right, arrow on left E text EFFECTS G#E 8,18,1: -------------- E = command identifier Sets VDI text effects for text put on the screen with the W command. 1st parameter selects font effect they can be combined 0 = normal 1 = thickened (bold) 2 = ghosted 4 = skewed 8 = undelined 16 = outlined 2nd parameter sets text size in points 1/72 of a inch. Values the default system font may be printed in: 8 9 10 16 18 20 3rd parameter sets the text rotation. 0 = 0 degrees 1 = 90 degrees 2 = 180 degrees 3 = 270 degrees 4 = 360 degrees R set Resolution G#R 1,0: ---------------- R = command identifier Allows to switch between low and medium resolution. Low resolution allows the use of 16 VDI colors only if resolution was set from the desktop, try using the modified VT-52 commands to set background color. Medium resolution only allows 4 colors. If the resolution selected is the one the system is currently in, IG ignores it. This is so you can set the set the color palette and not do a resolution switch. Resolution switching creates havoc for some commercial terminals you may be using IG with. 1st Parameter selects resolution to switch to: 0 = low resolution 1 = medium resolution 2nd Parameter is the system palette flag: 0 = no change 1 = default system colors. 2 = IG default color palette C color set G#C 0,2: ----------- C = command identifier Selects the Pen number to perform the screen operation with. 1st parameter selects screen operation pen to change. 0 = Polymarker color, used for the (P plot command). 1 = line color 2 = fill color 3 = text color, used with the ( W command ). 2nd parameter selects the Pen number 0 thru 15. S set PEN color G#S 1,0,0,7: -------------------- S = command identifier 1st parameter selects pen color to change 0 thru 15. 2nd parameter selects red color level 0 thru 7. 3rd parameter selects green color level 0 thru 7. 4th parameter selects blue color level 0 thru 7. P polymarker PLOT G#P 149,99: ----------------- P = command identifier Plot a point or polymarker shape on the screen. See also the entry for the T and C commands. 1st parameter = X coordinate 2nd parameter = Y coordinate L draw LINE G#L 0,0,300,150: ----------- L = command identifier Draws a line between specified points. See also the entry for T and C commands. 1st parameter = begining X coordinate 2nd parameter = begining Y coordinate 3rd parameter = ending X coordiante 4th parameter = ending Y coordinate D line DRAWTO G#D 149,99: ------------- D = command identifier draws a line from the last polymarker plot, draw LINE or DRAWTO command. You should use the P or L command to first establish a point for DRAWTO to begin at. See also the entry for T and C commands. 1st parameter = X coordinate 2nd parameter = Y coordinate W WRITE text G#W 50,100,Optical Race!@ ------------- W = command identifier Writes text on screen at any X Y coordinate. The @ symbol ends the text to be written. See also the E and C commands. 1st parameter = X coordinate 2nd parameter = Y coordinate 3rd parameter = text ended with @ Chain example: G#W>20,50,Chain@L 0,0,300,190 F flood FILL G#F 600,0: ------------ F = command identifier Fills a area by replacing the color found at specified X Y coordinates till it hits another color of edge of screen. 1st parameter = X coordinate 2nd paraneter = Y coordinate Z filled rectangle G#Z 10,10,200,100: ------------------ Z = command identifer Fills a area. The A commands border set has no effect on this fill. 1st parameter = upper left corner X coordinate 2nd parameter = upper left corner Y coordinate 3rd parameter = lower right corner X coordinate 4th parameter = lower right corner Y coordinate B box G#B 0,0,100,100,0 ------ B = command identifier General purpose command for drawing rectangles. All attributes effect this command. 1st parameter = upper left corner X coordinate 2nd parameter = upper left corner Y coordinate 3rd parameter = lower right corner X coordinate 4th parameter = lower right corner Y coordinate 5th parameter = rounded corners flag 0=no 1=yes U rounded rectangles G#U 100,0,300,150,1 -------------------- U = command identifier Draws a rounded rectangle. 1st parameter = upper left corner X coordinate 2nd parameter = upper left corner Y coordinate 3rd parameter = lower right corner X coordinate 4th parameter = lower right corner Y coordinate 5th parameter = 0 selects filled rounded rectangle with no borders. 1 selects rounded rectangle affected by all attributes and H command as well as line patterns set with the T command. K arc G#K 300,99,75,90,180: ------ K = command identifier Draws a ARC, which is part of a circle. 1st parameter = X coordinate for the circle center 2nd parameter = Y coordinate for the circle center 3rd parameter = radius of the circle 4th parameter = begining angle to start drawing at 5th parameter = ending angle to to stop drawing at J elliptical arc G#J 0,199,400,600,0,270: ----------------- J = command identifier Draws a elliptical ARC, which is part of a oval. 1st parameter = X coordinate for the oval center 2nd parameter = Y coordinate for the oval center 3rd parameter = X radius of the oval 4th parameter = Y radius of the oval 5th parameter = begining angle to start drawing at 6th parameter = ending angle to to stop drawing at O CIRCLE G#O 300,100,75: ---------- O = command identifier Draws a disc or circle depending if the H command is active or not. 1st parameter = X coordinate of circle center 2nd parameter = Y coordinate of circle center 3rd parameter = radius of circle Q ellipse G#Q 300,100,200,60: ---------- Q = command identifier Draws an ellipse, which is a OVAL. See H and A commands also. 1st parameter = X coordinate of oval center 2nd parameter = Y coordinate of oval center 3rd parameter = X radius of oval 4th parameter = Y radius of oval V pieslice G#V 50,50,100,180,270: ----------- V = command identifier Draws a pieslice, which is part of a circle. 1st parameter = X coordinate for the circle center 2nd parameter = Y coordinate for the circle center 3rd parameter = radius of the circle 4th parameter = begining angle to start drawing at 5th parameter = ending angle to to stop drawing at Y elliptical pieslice G#Y 80,80,100,200,0,180: ---------------------- Y = command identifier Draws a elliptical pieslice. which is part of a OVAL. 1st parameter = X coordinate for the oval center 2nd parameter = Y coordinate for the oval center 3rd parameter = X radius of the oval 4th parameter = Y radius of the oval 5th parameter = begining angle to start drawing at 6th parameter = ending angle to to stop drawing at ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Modified VT-52 COMMANDS ------------------------ c COLOR G#c 1,2: -------- c = command identifier Sets text and background color 1st parameter selects text or background 0 = background 1 = text 2nd parameter = color register 0 thru 15 Note: color registers can be changed with the S command but the ST's VDI pen numbers do not corespond with color register numbers here a reference chart: register pen register pen 0 0 8 9 1 2 9 10 3 6 10 11 4 4 11 14 5 7 12 12 6 5 13 15 7 8 14 13 15 1 d delete line G#d 4: -------------- d = command identifier Deletes specified number of text lines, the bottom line on the screen is scrolled upward. Parameter = number of lines to delete. i line insert G#i 1,3: -------------- i = command identifier Inserts lines at cursor position or top of screen. 1st parameter selects type of insert. 0 = move cursor up a line until it hits the top of the screen, then insert blank lines. 1 = Insert line at cursor, bottom line is scrolled off. 2nd parameter = number of times to perform this operation. k cursor G#k 0: --------- k = command identifier Turns text cursor on or off. Parameter: 0 = off 1 = on l line clear G#l 0: ------------ l = command identifier Clears text lines. Parameter: 0 = Clear whole line and carriage return. 1 = Clear line from begining to cursor inclusive. 2 = Clear line at cursor to end of line. m cursor motion G#m 1,20: ---------------- m = command identifier Homes or moves cursor a line at a time or a column at a time, from current position. 1st parameter selects direction. 0 = Home cursor. 1 = up 2 = down 3 = right 4 = left 2nd parameter sets number of times to do this operation. p position G#p 70,19: ----------- p = command identifier Positions cursor at column, line. Like X Y only with characters. 1st parameter = column 0 thru 79 2nd parameter = line 0 thru 24 r remember G#r 0: ----------- r = command identifier Remembers or recalls cursor position. Parameter: 0 = remember cursor position 1 = recall cursor position, and put it there s screen clear G#s 0: --------------- s = command identifier Clears whole screen or portions of it. Parameter: 0 = Clear whole screen home cursor. 1 = Clear from home to cursor. 2 = Clear from cursor to bottom of screen. v inverse video G#v 1: ---------------- v = command identifier Turn inverse video on or off. Parameter: 0 = off 1 = on w line wrap G#w 1: ------------ w = command identifier Turns line wrap on or off. Parameter: 0 = off 1 = on ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CUSTOM COMMANDS --------------- t time a pause G#t 2: --------------- t = command identifier Tells IG to send ^S^S, times it for X seconds and then tells IG to send ^Q^Q. Any key will abort the pause prematurly. MAX time is 30 seconds if more of a pause is needed chain a few together. G#t>30:t 5: I'm hoping this will eliminate the BBS from timing out and logging a user off. Parameter = number of seconds to pause, 30 max. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ eXtended Commands ----------------- Extended commands are invoked by a captial X and a number ranging from 0 to 9999. Right now I've only got the one but it opens a door for 10,000 new commands!!! 0 SPRAY PAINT G#X 0,400,50,200,145,200: --------------- X 0 = command identifier Plots polymarkers at random in a rectangular area with specified concentration. 1st parameter upper left corner X coordinate. 2nd parameter upper left corner Y coordinate. 3rd parameter X range from upper left corner, 255 max. 4th parameter Y range from upper left corner, 255 max. 5th parameter concentration, 9999 maximum. 1 SET COLOR REGISTER G#X 1,4,0: -------------------- X 1 = command identifier Sets a color register with Xbios 7. Use to set a specific register. The S command differs in that it sets a PEN's register. 1st parameter = color register 0 thru 15. 2nd parameter = color value 0 thru 1911. CUSTOM SOUND COMMANDS COMMAND IS: G#b x: x Description ---------------------------------------------- 0 Alien Invasion 1 Red Alert 2 Gunshot 3 Laser 1 4 Jackhammer 5 Teleport 6 Explosion 7 Laser 2 8 Longbell 9 Surprise 10 Radio Broadcast 11 Bounce Ball 12 Eerie Sound 13 Harley Motorcycle 14 Helicopter 15 Steam Locomotive 16 Wave 17 Robot Walk 18 Passing Plane ----------------------------------------------