home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-02-23 | 108.7 KB | 2,200 lines |
- ╔═══════════════════════════════════════════════════════════════════════════╗
- ║ FIRST THINGS FIRST - READ THE FILE WARNING.TXT BEFORE PROCEEDING! ║
- ╚═══════════════════════════════════════════════════════════════════════════╝
- ╔═══════════════════════════════════════════════════════════════════════════╗
- ║ You may want to freq or download the file MAXTIPS.DOC from my BBS to help ║
- ║ you understand the ins and outs of MAX Graphics more clearly. There isn't ║
- ║ anything complicated about adding MAX Graphics to your BBS or doors, but ║
- ║ I figure any extra help and information is better than none at all. True? ║
- ╚═══════════════════════════════════════════════════════════════════════════╝
- ┌────────── ┌─────────── ┌───── ┌─────────────────────────────────────┐
- ┌─── ┌─── ┌─── ┌─── ┌─── │ Creators of "The Comm Router"! │
- ┌─── ┌─── ┌─── ┌─── ┌─── │ │
- ┌─── ┌─── ┌─── ┌─── ┌─── │ Now the official managers of │
- ┌─── ┌─── ┌─── ┌─── ┌─── │ "BBS Utiliteez Software" │
- ┌─── ┌─── ┌─── ┌─── ┌─── │ │
- ┌─── ┌─── ┌─── ┌─── ┌─── │ Stephan Pollack [CEO] │
- ┌────────── ┌─────────── ┌───── │ Doug Harrington [Chief Programmer] │
- │ FidoNet 1:285/703 - utilz@bbc.net │
- Online Development Incorporated │ Support BBS/FAX: 308-762-2239 │
- └─────────────────────────────────────┘
- ───────────────────────────────────────────────────────────────────────────────
- ▀▀▀ ▀▀▀ ▀▀▀▀▀ ▀▀ ▀▀
- ▀▀▀▀ ▀▀▀▀ ▀▀ ▀▀ ▀▀ ▀▀
- ▀▀ ▀▀▀ ▀▀ ▀▀▀▀▀▀▀ ▀▀▀ ╔══ ╦═╗ ╔═╗ ╦═╗ ╦ ╦ ╦ ╔═╗ ╔═╗
- ▀▀ ▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀▀ ║ ╦ ╠╦╝ ╠═╣ ╠═╝ ╠═╣ ║ ║ ╚═╗
- ▀▀ ▀▀ ▀▀ ▀▀ ▀▀ ▀▀ ╚═╝ ╩╚═ ╩ ╩ ╩ ╩ ╩ ╩ ╚═╝ ╚═╝ v1.15
- ───────────────────────────────────────────────────────────────────────────────
- The Universal Multimedia Interface For BBS Software
- Copyright 1995-1997 * Larry L. Athey * BBS Utiliteez Software
- ───────────────────────────────────────────────────────────────────────────────
-
-
- Information Regarding MAX Graphics:
- ───────────────────────────────────
- Notice is hereby given that the MAXscript/MAXcontrol/MAXcolor language,
- and MAXterm are products of BBS Utiliteez Software and are protected by
- US copyrights listed with the US Library Of Congress (1996)....
-
- No changes, additions, subtractions, or other modifications shall be made
- to MAXscript/MAXcontrol/MAXcolor language or the MAX Graphics development
- kit without express written permission from Larry L. Athey, BBS Utiliteez
- Software, Alliance, Nebraska, USA....
-
- The MAXscript/MAXcontrol/MAXcolor language may be used in any BBS or Door
- software 100% royalty free. You are also allowed to implement full local
- graphics viewing in any BBS or Door software 100% royalty free. However,
- any program that uses the MAXscript/MAXcontrol/MAXcolor language *MUST*
- bear the MAX Graphics/BBS Utiliteez Software copyright notice....
-
-
- Example: MAX Graphics and the MAXscript/MAXcontrol/MAXcolor language is
- Copyright 1995-1997 * Larry L. Athey * BBS Utiliteez Software
-
-
- Disclaimer:
- ───────────
- MAX Graphics, MAXscript/MAXcontrol/MAXcolor and MAXterm are by no means
- copies of, or otherwise plagiarized remote graphics methods used by any
- other BBS software. Even though MAXterm responds to 3 commands used by
- RIPscript and other RIP capable BBSes, this isn't any kind of a copyright
- infringement of the RIP technology. These same strings of text randomly
- occur in computers all the time. Besides, according the the US Library Of
- Congress there is no copyright or trademark issued protecting the text
- strings: !|1K|*|#|#|# or ! ....
-
- Even though there may be some similarities between MAX Graphics and some
- other graphical BBS packages, this is not done intentionally. Since I have
- ran about every graphical BBS out there from DOS to Windows platforms, I'm
- bound to create things in the image of my own memory. I by no means, just
- set out to duplicate someone else's program or interface. If there is any
- part of MAX Graphics that resembles any program you may have written, just
- treat it as a parody. You know, like what Weird Al Yankovich does to other
- people's songs. The only difference is that I just have a crappy sense of
- humor when it comes to programming....<G>....
-
- This document and the MAX Graphics development kit are freeware, but are
- not public domain.
-
- ....End of disclaimer....
-
-
- ───────────────────────────────────────────────────────────────────────────────
-
-
- One Quick Note Before We Start:
- ───────────────────────────────
- I'm going to apologize ahead of time in case any part of this documentation
- seems kind of vague. I'm a programmer, not a teacher, so all I can do is my
- best. Plus, it appears that there is a world wide campaign to abolish the
- reading of any and all documentation, so I really don't spend a whole heck
- of a lot of time writing any documentation any more. If for some reason you
- can't understand what a certain feature does by reading this document, all
- I can suggest is that you tinker around with that feature for a while until
- you understand what it's actually doing. Hands on experience is always the
- best teacher and most effective way of learning something new....
-
- I am going to tell you right now that the word "RIP" is used who knows how
- many times in this document, but to normal people that doesn't matter...It
- is just that there are some people in this world that like to pick my docs
- apart to find things to whine about for who knows what reason, and that is
- one point a couple people have made to me. They seem to think that I need
- to learn more about "Product Focus" because the word RIP is mentioned like
- 150 times here...Big deal, RIP is part of the product focus, accept it....
-
-
- ───────────────────────────────────────────────────────────────────────────────
-
-
- What Is MAX Graphics Anyway?
- ────────────────────────────
- What is MAX? MAX Graphics is alternative to the inferiority of RIP1, 2 & 3
- graphics. I'm not about to plagiarize on any other graphical BBS out there,
- so what I have done is devised a new SVGA graphics protocol that you can
- implement into any RIP capable BBS. RIP and RIP2 simply do not offer a high
- enough quality graphical user interface for the caller, yet for some reason,
- people insist on supporting the RIP format in their doors and BBSes. RIP1 is
- only an EGA graphics interface, RIP2 is barely SVGA interface, RIP3 is yet
- another WinDozzzze based internet/telnet toy, but MAX is a true full SVGA
- graphical user interface with full digital sound capabilities that you can
- drop in and use with _ANY_ BBS package out there!
-
- MAX is mainly for those people that want to be able to offer a _True_ SVGA
- graphical user interface to their callers without forcing them have to go
- out and change BBS software. All you really need to do to implement MAX
- Graphics into any BBS is rename or save all of the .MAX screens to .RIP or
- whatever naming convention your BBS uses for RIP screen files and put them
- where your BBS will read and send them. Unfortunately, BBSes with built in
- local display of RIP graphics won't be able to display these screens locally.
- Hey, maybe you or someone else out there will drum up the nerve to write a
- BBS package that will display local MAX Graphics. <G> Until then what you
- can do is modify your BBS program's system prompts to say "MAX" instead of
- RIP to eliminate confusion for your callers. If your BBS doesn't have the
- capability to edit prompts, you could always take the long way around the
- block and use a hex editor. Be advised that this may be a violation of the
- warranty or copyright of your BBS software. It's completely up to you how
- you choose to go about modifying your system prompts.
-
- Unlike other graphical BBS terminals (past and present) you can run the
- MAXterm program in conjunction with any other existing terminal program.
- MAXterm is compact and can be made even more compact by simply deleting
- portions of the program you don't need. Some people will not want to use
- the bundled screen and icon editors, so you would simply delete the two
- files SCRNEDIT.EXE and ICONEDIT.EXE....By doing so, you can cut the disk
- requirements for MAXterm down to about 200K. In addtion, MAXterm saves
- disk space by compressing all of its graphics resources when they aren't
- in use. Other programs such as RIPterm, FX-Term, StarLink, Etc, keep all
- of the resources stored on the hard drive uncompressed thus chewing up
- disk space and slowing down the program's overall operation due to the
- excessive disk access time required to locate a specific resource file.
-
- Be advised that neither MAXterm or MAXscript/MAXcontrol/MAXcolor support
- RIP graphics due to a HUGE royalty fee involved. This is the main reason
- that the MAX Graphics development kit is 100% royalty free. RIP has been
- commercialized from day one and is still commercialized to this day. Plus,
- even if I were able to get permission to support RIP graphics, it would be
- pointless. RIP and MAX use a completely different graphics interface and
- script decoding methods. MAXterm would become so bloated from the excess
- code (and out-dated EGA graphics code at that), it would simply retard the
- program to the point of being inoperable on most systems.
-
- Anybody can create and view MAX screen files. All you need is a copy of the
- MAXterm terminal or a text editor. Creating a MAX screen file is as simple
- as writing a graphics program in Pascal and BGI. The MAXterm program can
- edit and display screens locally and has a built in editor for creating or
- modifying icons.
-
-
- Here is a very brief overview of what MAX graphics can provide:
- ───────────────────────────────────────────────────────────────
- -Pascal like script language (More "English-Like" than RIPscript).
- -Allows the use of MAXcontrol "Control Code Language" to enhance speed.
- -All remote screen colors can be changed via MAXcolor codes.
- -Freeware Borland/Turbo Pascal 7.0 door and utility development kit.
- -Allows the use of MAX screens in any RIPscript v1.54 capable BBS.
- -All screens use 640x480 pixel resolution and 256 colors.
- -Fully mouse driven graphical user interface with windows.
- Window types: 1. Standard Block (Similar to MS-Windows 3.XX or OS/2)
- 2. Invisible (Used for saving screen regions)
- 3. Flat Panel (A window with no title header)
- 4. Transparent (Similar to looking thru a window screen)
- 5. Standard Panel (Similar to Windows 95)
- -Use of icons in screens (Multiple sizes and styles).
- -Use of buttons in screens (Multiple sizes and styles).
- -Use of over 300 GEM fonts in screens (Say it with me, "NO BGI FONTS!").
- -Use of a scrolling picklist in any screen.
- -Use of a text file reader in any screen.
- -Use of a text editor in any screen.
- -Use of data entry fields in screens (5 different types).
- -Use of 256 color PCX graphics images in screens.
- -Use of VOC/WAV/MID sound files in any screen.
- -The creation of fully animated 640x480x256 resolution door games.
- -Freeware MAXterm user resource update door for any BBS.
- -More is yet to come!
-
-
- NOTE: The name MAX is in no way connected with the Maximus BBS software....
-
-
- ───────────────────────────────────────────────────────────────────────────────
-
-
- Creating Screen Files:
- ──────────────────────
- Unlike other graphics protocols out there, MAX Graphics does not require
- you to unload $200.00 on a paint/drawing program. Even though a paint or
- drawing program is considered to be a luxury, it's by no means a necessity.
- MAXpaint is available to streamline screen creation, but if you don't want
- to invest any money in software, then you will be pleased to know this....
- MAXterm has complete local screen editing and viewing capabilities as well
- as an icon editor. If you are familiar with the Pascal programming language,
- then MAXscript will be like second nature to you. If you are not familiar
- with Pascal, fear not, this will still be an easy language for you to learn.
- MAXscript is a very Human Like script language. There is no need for you to
- learn a bunch of mundane pipe codes or escape sequences, everything is done
- with simple commands and variables. The only thing you may have a hard time
- getting used to is the resolution of the screens, but that won't last for
- long. When I first got into using high resolution graphics in my programs,
- it took me about 2 or 3 weeks to get used to 640x480x256 after working with
- 80x25x16 for God knows how many years before that.
-
-
- A quick example of a very basic screen file would look like this:
- ─────────────────────────────────────────────────────────────────
- Start_Screen()
- Draw_Window(100,100,630,380,1,'Welcome To MAX Graphics!')
- Put_Image(150,150,'CLOUD.PCX')
- Shadow_Text(350,150,5,0,2,'This Sure Beats RIP Eh?')
- Draw_Button(530,350,80,67,1,20,'Continue')
- Play_Sound('FUNKY.VOC')
- End_Screen()
-
- NOTE: MAXscript commands are NOT case sensitive!
-
- In the above example, there are 7 elements to the screen. I will refer to
- them as Element #1....Element #7 in my explanation of their functions....
- All commands always end with a pair of left and right parenthesis to tell
- MAXterm when it has reached the end of a command string. In most commands,
- the parameters or Variables are separated by commas inside of parenthesis.
- Any text you wish to print, and any file names you wish to define must be
- declared inside of apostrophes. Those are the only rules you have to follow
- with script commands. Pretty simple huh?
-
- Element #1: This tells MAXterm that a new screen is about to be drawn and
- it needs to clear or reset all variables in memory. All screens
- absolutely must begin with the Start_Screen() command or its
- MAXcontrol counterpart!
-
- Element #2: This draws a window on the screen using 4 coordinates. In all
- examples where specific screen coordinates are used, they will
- be in the fashion of X1,Y1,X2,Y2...Your X coordinates are the
- columns and the Y coordinates are the rows. In an SVGA screen,
- your minimum and maximum X1,Y1,X2,Y2 coordinates are limited
- to 0,0,639,479. So the window in the example shown above will
- be plotted at 100,100,630,380....
-
- But what about the other two parameters/variables? The other
- two parameters are for telling MAXterm what type of window to
- display and what text to place in the window header. See the
- "Overview" section above for a definition of window types.
-
- Element #3: This tells MAXterm to display a graphic image at the X1,Y1
- coordinates. MAX Graphics only supports 256 color PCX images.
- This shouldn't present any problem since there are a number
- of shareware programs & utilities out there that can convert
- any graphics image from one format to any other and alter its
- color palette if necessary.
-
- Element #4: This tells MAXterm to display a string of text at the X1,Y1
- coordinates. This command tells MAXterm to make the text be
- in color #5 (Magenta) with a #0 (Black) background. MAXterm's
- first 15 colors in its palette match the first 15 colors in
- the ANSI palette. The next parameter tells MAXterm which font
- to use for the text. MAXterm has three built in fonts and can
- load any font from an external GEM font file. The definitions
- for the fonts are: 1 - 5x8 Bitmapped Font
- 2 - GEM "System" Font
- 3 - 8x14 ROM Resident Font
- 4 - User Defined External Font
-
- The last parameter of course is the text you wish to display.
-
- Element #5: This tells MAXterm to draw a button on the screen at the X1,Y1
- coordinates. The third parameter is the width of the button in
- pixels, this might take a little time to get used to. The next
- parameter, the 67 tells MAXterm what character to send to the
- BBS when this button is clicked with the mouse. The next param-
- eter tells MAXterm whether or not to plot a Small Icon on the
- button (1=Yes, 0=No). The next parameter is the number of the
- icon in the currently selected "Small_Icon" library file. The
- last parameter of course is the text to print in the button.
-
- NOTE: The "67" is the ASCII value for the character "C". I'm
- sure that most people don't know the ASCII values for
- each character on your keyboard, so the screen editor
- in the MAXterm program has a routine to read & display
- the ASCII values for you.
-
- Element #6: This tells MAXterm to play a sound file. The MAXterm program
- supports VOC, WAV, and MID (MIDI) sound files.
-
- Element #7: This tells MAXterm that the end of the screen file has been
- sent and that it should jump into "Wait State". MAXterm has
- two modes: Draw Mode and Wait State. The command that throws
- MAXterm into Draw Mode is the same command string that a BBS
- or door sends to RIPterm to tell it to clear the screen and
- prepare to draw a new screen. All screens absolutely must end
- with the End_Screen() command or its MAXcontrol counterpart!
-
- There you have it, a very basic example of a MAXscript screen file. As you
- will see further on into this document, there are a lot more MAXscript and
- MAXcontrol commands. Don't let the large number of commands intimidate you,
- they are only here to provide complete flexibility in screen, door and BBS
- design. Even the most sophisticated of screen files can be created using
- the bare minimum of script commands.
-
- All MAX commands must appear on a line by themselves! You cannot put two
- MAX commands on the same line and expect them to work. You can also not
- put a MAX command and something like a BBS color code on the same line or
- MAXterm will regard the entire command as being invalid. If you need to
- insert something like a color code into a screen file, it must be put on
- a line completely by itself.
-
-
- The RIPscript Misconception:
- ────────────────────────────
- There is one misconception you may have about this and I will clear that up
- for you right now. Even though RIP's graphics are based on short strings of
- these crazy obscure characters, it's not any faster. RIP graphics are all
- based on "Line Drawing" methods all the way down to the BGI fonts used in
- RIP graphics, there are very little, if any, predefined graphics elements
- or "Graphics Primitives". You may think that first example script command
- is so long that it would take longer to draw than any RIP command would....
- WRONG! MAXterm and the MAX Graphics development kit already have the Window
- Primitive predefined. If you were to do the same thing with RIP, you would
- need to send 40....Say it with me....FORTY COMMANDS to draw a simple window
- on the user's screen. To draw a "Transparent" window on the user's screen
- you would need to send in upwards of 40,000 commands to the user because you
- would have to plot out the majority of the window Pixel-By-Pixel. Now do you
- see the MAX advantage?
-
- The RIPSCRIP.DOC makes a huge deal out of the fact that their language is
- not humanly readable. They claim that it is faster than other languages
- they compared it against (in 1991 and before) that were humanly readable,
- but they didn't have MAX at that time. They were trying to design their
- language around slowpoke 2400 baud to 9600 baud modems. The truth is now
- nobody (nobody in their right mind) uses any less than a 14400 baud modem.
- RIP's methods still aren't that fast even with their short little cryptic
- script commands. They fail to tell you that RIPscript takes anywhere from
- 10 times to 40 times or more of their commands to do the same thing that
- you can do with one command from other languages. MAXscript is the slowest
- way of communicating with MAXterm, but it is still light years faster than
- RIPscript - EVEN AT 2400 BAUD!
-
- Take a look at the RIPSCRIP.DOC some time, it's available on just about
- any BBS, and see how many RIPscript commands it would take to equal just
- one MAXscript command. If you really want to speed up things in MAX, you
- can also use MAXcontrol commands which are basically just as cryptic as
- RIPscript commands. Every MAXscript command has a MAXcontrol counterpart,
- so you can sacrifice the humanly readable concept in exchange for added
- display speed. It's up to you how you want to do things, but either way
- you look at it - RIP graphics simply do not compare to MAX Graphics in
- any way - not in speed - and most definitely not in appearance!
-
-
- The Difference Between MAXscript and MAXcontrol Commands:
- ─────────────────────────────────────────────────────────
- There are two ways of communicating with MAXterm. MAXscript is a script
- language that is humanly readable and understandable. MAXcontrol is also a
- script language of sorts, however it is not meant to be humanly readable.
- It is low level language meant to communicate with MAXterm at a much faster
- rate and provide complete Host <> Caller interaction.
-
- MAXcontrol works with MAXterm by using a two way communications method.
- MAXcontrol codes are not readable by the average Joe. A MAXcontrol command
- always starts with an ASCII #255 followed by a ~ (ASCII #126) and is
- terminated with another ASCII #255 to indicate the end of the command. The
- actual MAXcontrol commands are placed between the ASCII #126 and the final
- ASCII #255. Just like MAXscript, your parameters or variables are to be
- separated by commas with your text and hotkey declarations to be placed
- inside of apostrophes. MAXcontrol codes may also be used in a screen file
- with MAXscript commands. That kind of defeats the purpose of the MAXscript
- screen files being humanly readable by others, but that's completely up to
- you how you want to create your screens. You can replace any script command
- with a control command to give your screens an extra speed boost. MAXterm
- first looks for MAXcontrol codes, if it doesn't detect the MAXcontrol code
- sequence, it will then look for MAXscript commands. All MAXscript commands
- have a MAXcontrol code counterpart, see below:
-
- MAXscript: Draw_Window(100,100,630,380,1,'Welcome To MAX Graphics!')
-
- MAXcontrol: #255#126#128100,100,630,380,1,'Welcome To MAX Graphics!'#255
- Or: ~Ç100,100,630,380,1,'Welcome To MAX Graphics!'
-
- Keep in mind that you CANNOT put the 4 characters "#255" in a MAX screen
- file or send them to the comport in your program and expect results from
- it. The #255 is the ASCII value of a character. Since this character has
- no actual screen image, just like the spacebar creates, the #255 is used
- strictly for clarity purposes only.
-
- In most text editors, you can add an extended key code anywhere by using
- your ALT key and your numeric keypad. For example, to add an ASCII #255,
- you would hold your ALT key and type 2 5 5 on the numeric keypad. After
- you release the ALT key, the character will appear. This procedure also
- works in most programming IDE's as well.
-
- Notice in the "Or:" example, you can't see the ASCII character #255 but
- it's still in there. Go to that line and hit your END key and you'll see
- that your cursor will show up one space past the end of the line. Now you
- may not believe this, but the MAXcontrol commands really are about 50% to
- 60% faster than MAXscript commands. The string Draw_Window( is replaced by
- a single ASCII character #128. If you are a programmer, what this means is
- MAXterm can use a "CASE" routine instead of an "IF THEN ELSE", which you
- know is a major advantage. Either way you look at it, the command line for
- a MAXcontrol command is shorter, which means it will transfer faster, it
- doesn't take a rocket scientist to figure that out. ;)
-
-
- ───────────────────────────────────────────────────────────────────────────────
-
-
- The Ins & Outs Of MAX Graphics:
- ───────────────────────────────
- As mentioned in the above, MAXscript can be used in any BBS that supports
- RIP graphics (ie: RIPscript v1.54)....When a BBS detects RIP graphics in
- the remote's terminal program, it sends an ASCII #27 plus [ plus ! (!).
- RIPterm will return "RIPSCRIP015410", but all most BBSes look for is to see
- if there is now data available at the comport after sending that string of
- text. MAXterm returns "RIPSCRIP015400" upon reception of the ! RIPscript
- Autosensing command, even though it is not RIP compatible. This is just to
- fool the BBS into thinking it is so the BBS can send the MAX screen files
- renamed as RIP screen files.
-
- After your BBS or door program has determined whether or not the user has
- RIP capabilities, you send the string #255~#255 to the comport. Remember,
- the #255 is an ASCII #255, not the 4 characters: # and 2 and 5 and 5. When
- MAXterm receives this string of commands, it will return the version number
- of MAXscript it supports (ie: #.##)....From this point on, you will need to
- tell your program that "YES" the remote caller does have MAXscript _AND_
- MAXcontrol capabilities.
-
- Now before any RIP compatible BBS or door sends screen file data to the
- remote, it sends a pair of commands to tell the remote to clear the screen
- of any previously sent graphics, see below:
-
- RIP Clear Screen: Command #1 = #13#10 (Blank Line)
- Command #2 = #12#13#10 (Same as TTY Clear Screen)
-
- This basically has the same effect on MAXterm. This tells any MAX Graphics
- compatible terminal program to kill all active windows on the screen. Some
- RIP capable BBS programs and doors will only send the second command, so
- you will have to design your programs mainly around Command #2 to clear the
- screen. Command #1 is mainly just to send a blank line to tell the terminal
- program ignore any previous commands which helps prevent display errors. In
- the event your BBS doesn't send the ASCII #12 to clear the graphics screen,
- you will need to insert it at the beginning of your screen files. Keep in
- mind that some BBSes rely on the RIP screen file to clear the screen. Look
- at a RIP screen file created with RIPaint sometime. You will see that the
- ASCII character #12 is always on a line by itself at the beginning. As you
- can very well guess, RIPscript is another one of those things that never
- really achieved widespread standardization. TeleGrafix standardized it in
- their specifications, but not all BBS authors followed suit (there's a big
- surprise....NOT!). DOOR.SYS, FILES.BBS, and FILE_ID.DIZ all suffered the
- same thing, hopefully MAX Graphics won't....Anyhow, if the author of your
- BBS software neglected to follow the RIP standards to the "T", I would
- suggest you add a blank line and then an ASCII #12 at the beginning of
- every screen file in your BBS.
-
- After this command has been sent, this tells MAXterm to jump into "Draw
- Mode". While the program is in Draw Mode, it will only respond to MAXscript
- and MAXcontrol commands. It will completely ignore ANSI escape sequences
- and RIPscript commands at this point. From here, you must send commands to
- the terminal programs to instruct them to draw items on the screen, or jump
- into "Wait State" mode. All MAX screens must always end with an End_Screen()
- Or #255#126#254#255 to throw them in to "Wait State". If your BBS or Door
- program sends added information after the screen file is sent, you need to
- add a "Text View Window" immediately before the End_Screen() command.
-
- In some BBS or door programs, after a RIP screen is drawn, they may create
- some sort of dynamically generated text at the bottom of the screen. Some
- BBS programs do this to tell the user what the currently selected message
- or file area is or other system messages. If your BBS or door does this you
- will need to define a Text View Window somewhere on the screen using the
- command Text_View_Window(X1,Y1,C,R) or #255#126#252X1,Y1,C,R,#255....Keep
- in mind this command should appear immediately before your End_Screen()....
-
- A counterpart to the Text_View_Window() command called Text_View_Port() is
- available that performs the same function, but is only the view port with
- no window frame around it. The command syntax is exactly the same....
-
- In some cases, your BBS or door program will require MAXterm to emulate a
- regular ANSI/ASCII terminal program. MAXterm responds to the same command
- strings that RIPterm does to throw it back into text mode, see below:
-
- RIP To Text: Command #1 = #13#10 (Blank Line)
- Command #2 = !|1K|*|#|#|# (Plus a #13#10)
- Or Command #2 = !|1K|*| (Plus a #13#10)
- Or Command #2 = #27[1! (Plus a #13#10)
-
- Again, the first command may not be sent by all BBS and door programs, keep
- in mind though that MOST of them do. Also, some BBSes only follow up their
- RIP commands with just a #13 rather than a #13#10, however, most of them do
- send the #13#10. The second commands are the ones that you should really
- focus on. The second command will instruct MAXterm to pop up a new window
- on the screen that supports 80x25x16 resolution using font type #3. Font
- type #3 is needed so the program can display high ASCII characters. MAXterm
- is also capable of dropping all the way back to full text mode ANSI in the
- event of this command.
-
- To throw MAXterm back into graphics mode, simply send the RIP clear screen
- command again. Keep in mind that while MAXterm is in text mode, or ANSI
- emulation mode - all MAX commands will be interpreted as raw text. In the
- event that you attempt to use a MAX screen file in your BBS and all you
- see are the raw commands, you will have to manually add a blank line and
- an ASCII #12 at the beginning of the screen file.
-
-
- THIS IS EXTREMELY IMPORTANT, READ IT AND UNDERSTAND IT!
- ───────────────────────────────────────────────────────
- In some BBS packages, there are oversights by the author where they forgot
- to add the "RIP to TEXT" command, one such reported case is with Renegade.
- The author forgot to add the "RIP to TEXT" command before displaying files
- and messages, possibly in even more places than that. In this event, if a
- user selects to list files, they will be given a blank SVGA screen with no
- apparent way of escape. Programming errors like this can cause you serious
- headaches as well as for your users.
-
- So, how do you fix it? SIMPLE!....Since I have no experience with Renegade
- I can't give you any specifics, but this general information should point
- you in the direction you need to accomplish remedying the error. MAXterm
- and RIPterm both respond to the same command to flip the terminal back to
- text mode. As stated in the above, the two commands used to make MAXterm
- and RIPterm do this are:
-
- RIP to TEXT: !|1K|*|#|#|#
- Or: #27[1!
-
- In the case of some BBS packages, there is a "Language File". This file is
- usually just a text file with each line being the text for specific system
- prompts. This isn't gospel, because there are also some packages that use
- a separate screen file for every system prompt. If there is a place in the
- BBS software where a "RIP to TEXT" command is needed, but does not exist,
- it is usually pretty simple to add one. In one of my experiments in TriBBS
- I had to add this command to the beginning of a prompt in the BBS language
- file. What I first did was add the color code to turn the text to Black on
- Black. This was just to hide the !|1K|*|#|#|# command. Then I added that
- command right before changing the color back to what the prompt originally
- used. That command by itself added to the beginning of the prompt fixed
- the problem where the user was stuck at a blank SVGA screen. This can be
- adapted to almost any BBS package. If not, then you should contact your
- BBS software author and tell him/her to correct this error in their code.
-
-
- Handling Windows:
- ─────────────────
- MAXterm and the MAX Graphics development kit handle windows in a similar
- fashion to the way OS/2 and Windows does. Meaning, every time you draw a
- new window, the previous window and its functions become inactive. You'll
- notice this right away because the window header of the previous window
- will darken every time a new window pops up. The only time you won't have
- this "Visual Index" is in the event you are using "Flat Panel" windows or
- "Invisible" windows. In that case, you'll just have to be sure you kill a
- window when it's no longer needed. Otherwise, the user will be stuck at a
- window with no obvious way out which will force them to drop carrier. By
- using multiple windows you can create menus with sub-menus and and make
- it possible to have an unlimited number of buttons and fields per screen.
- Refer to the Draw_Window() and Kill_Window() commands for more info.
-
-
- Handling PCX Images:
- ────────────────────
- All 256 color PCX image files have their color palette values stored in the
- last 768 bytes of the file. Divide this by three and what you have is 256
- groups of three numbers. These three numbers are the Red, Green, Blue values
- for each color (#0 to #255) in that order. Chances are that every PCX image
- will have values which are different from the values used in MAX Graphics so
- the image will need to be "Re-Scaled" on the fly, or the image will need to
- be permanently Re-Scaled with some kind of a graphic image file editor. One
- of the best shareware editors (if not the all around best) is a program by
- the name of "NeoPaint" from the NeoSoft Corporation. You can usually find
- this program on any shareware CD-ROM, or you can call their support BBS at
- (503)383-7195 or send a message to support@neosoft.com and ask where you can
- find it on the internet. At the end of this document you will find the color
- values (Red, Green, Blue values) for each color in the MAX Graphics palette.
- There is also a file included in this archive called MAXGRAPH.PAL which is a
- pre-made palette file for the NeoPaint program which will allow you to do a
- permanent palette Re-Scale on the image. If you don't Re-Scale the palette,
- then MAX Graphics will attempt to Re-Scale the image on the fly before
- displaying. The down side to this is that the colors won't match exactly due
- to the excessive amount of code required to perform an accurate Re-Scaling
- and there will be a very noticable delay. You would be wiser to permanently
- Re-Scale the image before using it in any screen file.
-
-
- External Font Files:
- ────────────────────
- MAXterm and the MAX Graphics development kit all use the GEM font format.
- GEM fonts are used by a tremendous number of programs such as NeoPaint and
- NeoBook from NeoSoft and numerous other programs developed using the GX-Text
- programming kit by Genus Microprogramming. There are also a few utilities
- out there to convert Windows fonts to GEM format. This gives you an endless
- amount of available fonts to use in your screens and MAX Graphics compatible
- programs. For lots of GEM fonts and other GEM font utilities, please call
- the BBS number listed at the end of this document.
-
-
- Inline Color Tokens:
- ────────────────────
- Inline color tokens are used for coloring text files and message text.
- These were probably first introduced in the RoboBOARD/FX BBS software,
- and then adopted by other graphical BBS packages. Only colors 0 to 15
- are valid for use as inline color tokens. An inline color token looks
- like this: {0} or {12} or {14}. You simply put a number (0 to 15) in a
- pair of fancy brackets and it changes the color of any following text.
- ie: Standard_Text(100,100,15,2,'This {14}is {15}a {14}test.')....This
- would create a string of text alternating between white and yellow.
-
-
- Handling Icons:
- ───────────────
- MAX Graphics supports 3 sizes of icons, 16x16, 30x30 and 60x60 pixels. Each
- pixel is a color value 0 to 255 with color #255 being transparent. You may,
- at your own discretion, use icons from RoboBOARD/FX by Seth Hamilton, or
- from Shotgun Professional by GUNN Data Systems. The RoboBOARD/FX *.ICO &
- the Shotgun *.30 icon files must be renamed with the extension *.002 and
- the Shotgun *.16 icon files must be renamed with the extension *.001. There
- are also a few utilities for RoboBOARD/FX out there that will convert any
- Windows icon to the *.ICO, *.30, or *.002 format, so you shouldn't have any
- problems finding enough icons for your system. You may also create your own
- icons using MAXterm's built in icon editor.
-
- If you are running any MAX compatible doors in your BBS, you may want to
- add a command or set of commands at the beginning of the menu screen file
- that the door is called from to restore the icon library file names or the
- mouse mask. Some doors may use their own custom icon libraries or may also
- change the mouse mask. So you will want to change them back to the default
- values for your BBS upon returning from the door. Doing this is simple and
- shouldn't be looked at as a "Task" or anything like that. All you need to
- do is add at the most, 4 commands to that menu screen, such as:
-
- Small_Icon_Library('ICON_LIB.001') [Use whatever icon library file name]
- Medium_Icon_Library('ICON_LIB.002') " "
- Large_Icon_Library('ICON_LIB.003') " "
- Mouse_Mask(0) [Use whatever mouse mask number]
-
- Doing this will assure that when a caller returns from a door, they will
- be seeing the correct icons in your screens and the correct mouse mask.
-
-
- Icons and Door/BBS Programming:
- ───────────────────────────────
- If you are writing a MAX Graphics compatible door or a BBS program you can
- chop the size of your icon libraries down to just the size you need if you
- aren't using all 100 icons in the library. By doing this, you can prevent
- your icons from being altered in MAXpaint as well since MAXpaint will only
- read 100 record icon libraries. You are by no means required to distribute
- full size icon libraries with your programs. When you are displaying icons
- you are simply seeking to a specific zero based record location. So if you
- write a program that only uses 5 icons, then chop that sucker down to only
- 5 records (icons). This will save space in your archive, on the hard drive,
- and will result in a faster transfer in automatic resource update programs.
-
-
- MAX and ANSI/ASCII:
- ───────────────────
- If you are unfamiliar with the ins & outs of graphics programming, then you
- are probably not aware of the fact that fonts in graphics mode don't have a
- background color. Such is the case with the GEM fonts in MAX Graphics and
- the BGI fonts in RIP. When you try to support ANSI terminal emulation in a
- graphics based program, you need to first block out the area where the font
- is to be located using the current ANSI background color. As you can guess,
- this slows things down quite a bit, especially in the case of scrolling the
- screen. If you intend to use MAX Graphics in your BBS, you should do one of
- two things:
-
- 1. Use MAX screens throughout your BBS as to avoid flip-flopping between
- graphics and ANSI emulation mode.
-
- 2. Eliminate any ANSI screens that excede 24 lines (ie: Rows) as to avoid
- scrolling MAXterm's screen in SVGA ANSI emulation mode.
-
- This may sound like a lot of work, but if you simply do one of these two
- things, you will have more users trying MAXterm and staying with MAXterm.
- The reason a lot of users try a graphical terminal program and then switch
- back to their original ANSI terminal program is because if the speed of
- ANSI in regular Plain Jane text mode. If you simply create a matching MAX
- screen for all ANSI/ASCII screens, then MAXterm will work just that much
- faster, and your users will continue to use MAXterm.
-
-
- Special Files:
- ──────────────
- MAXterm supports some special files that may be of interest to you. In the
- dialing directory of MAXterm, you will notice a field for each BBS entry
- called "Board ID". This is the 8 letter name that a BBS uses for its .PKG
- files, or in other cases, its ID for its QWK/REP packets. When you start
- up MAXterm, it will unpack DEFAULT.PKG which is a compressed file with the
- default graphics resources. Each BBS can custom create their own .PKG file
- which you can download and place in your \RESOURCE\ subdirectory. You will
- want to change the Board ID in the diailing directory to match the first 8
- letters of the .PKG file. It's best to keep your .PKG files in ZIP format,
- but you may choose any archive method. You just need to make sure all of
- your users have this archiver in their DOS path. MAXterm is compiled with
- all the correct command line parameters for ZIP, ARJ, LHA and RAR archives.
- There are also spaces for adding the name of a batch file to execute any
- other type of archiver program.
-
- In your .PKG file, besides storing font files, image files, or sound files,
- you may also include a file named BACKDROP.MAX which is a script file you
- wish to display immediately upon connection to your system. This will be an
- actual indestructable backdrop which will display all the time. Most people
- put graphics images, custom drawings, or other text in their back drops. It
- is completely up to you what you want to display there. The Start_Screen()
- and End_Screen() commands are not required in this screen file....
-
-
- Handling Remote Screen Files:
- ─────────────────────────────
- As mentioned in the above, you can store MAX screen files in your graphics
- resource packages. These can be a little tricky if you don't follow a few
- basic rules. If you aren't careful, you can lock up the user's terminal by
- sending the wrong commands. A remote screen file is the same as any other
- MAX screen file, with the exception that there is no Start_Screen() and
- End_Screen() command in the screen file. The screen file your BBS sends is
- what sends those two commands. An example would be like this:
-
- Your BBS sends this information: Start_Screen()
- Draw_Window(100,99,539,400,5,'RIP... NOT!')
- Show_Remote_Screen('REMOTE1.MAX')
- End_Screen()
-
- The file REMOTE1.MAX does this: Set_Fill_Style(1,239)
- Bar(104,127,204,395)
- Bar(104,127,534,227)
- Load_Font('CAM42.FNT')
- Shadow_Text(12,40,14,0,4,'Welcome To MAX Graphics!')
- Load_Font('TTL12_68.FNT')
- Shadow_Text(128,150,10,0,4,'RIP... NOT!')
- Load_Font('CAM42.FNT')
- Shadow_Text(172,243,10,0,4,'This Is MAX!')
- User_Button(449,355,80,35,16)
- Put_Medium_Icon(497,358,3)
- Standard_Text(462,365,0,2,'Quit')
- Standard_Text(462,365,4,2,'Q')
-
- Now this is only a basic example of the way you would use a remote screen
- file. In most cases, the reason you would want to use a remote screen file
- is because the file is so huge that it would draw too slow if you were to
- send it over the modem line by line. Even a slowpoke 386/SX25 with a 2400
- baud modem would draw a 500+ line screen file in just a few seconds. This
- is why the Remote_Screen_File() concept was implemented. You can make your
- BBS or door program fly like a jet by using this method. As you can guess,
- if the user doesn't have the file REMOTE1.MAX in their graphics resource
- package, they will see nothing and may think their terminal has locked up
- on them and drop carrier. You should Keep your Draw_Window() commands in
- your main screen file, this is just a safety precaution. You never know
- if a user will attempt to modify your resources on their system, so you
- should try to keep all critical commands out of the remote screen files.
-
-
- Getting Remote Data:
- ────────────────────
- Getting data from the remote such as, getting editor text, or getting the
- entry field data, etc, requires you follow just one simple rule. You must
- get the needed data before the current window is killed. Once you kill the
- current window, that data is gone forever. So if your BBS or door program
- requires information from the terminal whether it be from the text editor
- or from data entry fields, be sure you get this data before any command is
- sent to clear the graphics screen, or to flip the terminal back to text
- mode, or before any Kill_Window() command is sent.
-
-
- Handling PickLists and Text Readers:
- ────────────────────────────────────
- If you plan on using picklists or text readers in your screens or programs,
- keep in mind that these items must be the first item in the window. If you
- ignore this rule, then your users will get locked into a loop that they can
- only get out of by their dropping carrier. Picklists and text readers will
- always occupy button numbers 1 and 2. So you will need to have one more
- button on the screen to escape from the loop. If you are doing this in your
- programs, you will need to look for button number 3 rather than 1. Now, the
- most important part about text readers and picklists....You will need some
- method of escape from one of these screens, the most obvious choice is to
- add a button to the screen. The ordinal value that this button returns must
- be and alternate keypress. Say for example you used Draw_Button() to plot
- a button somewhere on the screen and labeled it "Quit", the "Q" would be
- highlighted in red. Set the ordinal value that button returns to 16 which
- would force the user to either click on that button with their mouse, or
- press ALT-Q to escape the loop. Keep in mind that not all BBSes allow the
- use of alternate keypresses, so picklists and text readers should only be
- used in doors or BBSes that directly support MAX Graphics.
-
-
- MAX Limits and General Rules:
- ─────────────────────────────
- All MAX screens must contain at least one window! If you do not observe
- this rule, you will be having numerous users dropping carrier on your BBS
- because they will be locked into a blank SVGA screen with no way out.
-
- All MAX commands must appear on a line by themselves! You cannot put two
- MAX commands on the same line and expect them to work. You can also not
- put a MAX command and something like a BBS color code on the same line or
- MAXterm will regard the entire command as being invalid. If you need to
- insert something like a color code into a screen file, it must be put on
- a line completely by itself.
-
- The Minimum/Maximum X1,Y1,X2,Y2 screen coordinates are 0,0,639,479 but you
- should limit your screens to 0,21,639,458 to allow for a status bar at the
- top and bottom of the screen set to a 20 pixel height.
-
- Colors range from 0 to 255 with colors 0 though 16 matching the same colors
- found in the ANSI color palette.
-
- Color number 255 in icon files is transparent.
-
- The maximum number of buttons you can have in a window is 30. Buttons are
- defined as Draw_Button(), Radio_Button(), User_Button(), Click_Zone() and
- the scroll buttons on the picklist or text reader. Even though a BBS will
- have no problems sending screen files with more than 30 buttons, however,
- MAXterm with bomb out with a "Constant Out Of Range" error.
-
- As with button number limits, the 30 count limitation also applies to the
- entry fields and flipping icons. Exceeding this limit will also cause the
- MAXterm program to bomb out with a "Constant Out Of Range" error.
-
- As with button number limits, the 30 count limitation also applies to the
- Button Extensions.
-
- If for any reason you need more buttons, fields, or flipping icons, simply
- create another window and link it as a sub-menu. Keep in mind that as soon
- as the next window is drawn, all your buttons, fields, and flipping icons
- in the previous window will become inactive. To reactivate them you simply
- kill the last window drawn on the screen.
-
- Only one picklist, or one text reader, or one text editor is allowed per
- window. You cannot mix and match these in the same window and you cannot
- have more than one of any of them per window. Failing to observe this rule
- will result in your users being locked into a never ending loop without
- any form of escape.
-
- The picklist is limited to 800 items with each item being 80 characters
- wide. This is the absolute largest the picklist could be made due to the
- 64K limit in Pascal's data segment. There's absolutely nothing that can
- be done to make this any larger outside of resorting to disk access for
- the picklist, which of course, would slow down performance in a big way.
-
- Certain commands _MUST_ be used with a follow up command. You can place
- other commands between the initial and follow up commands, but when you
- are suppose to use a follow up command and neglect to do so, you will
- crash or lock up MAXterm. The initial and follow up commands are shown
- below:
-
- Initial: Follow Up:
- ───────────────────────────────────────────────────
- New_Pick_List() Set_Up_Pick_List()
- New_Text_Editor() Run_Text_Editor()
- New_Text_Reader() Show_Text_Page()
-
- You can place other commands in between these commands to load up text
- files, define a new text file for the editor to save to, or to reset the
- picklist to a specific item number before display. Whatever you decide
- to put between them is up to you. Just keep in mind that you _MUST_ call
- the follow up command some time before the End_Screen() command is called.
-
- There is a very special exception to this concept. There are three commands
- that absolutely must be used together: Start_Text_File(), Put_Text_File(),
- and End_Text_File(). These three commands are used for creating a text file
- in the caller's \SESSION\ subdirectory. You can put as many Put_Text_File()
- commands as needed in between Start_Text_File() and End_Text_File(), just
- remember that none of these three commands can be used without the others!
- If you attempt to use any of these commands strictly on their own, you can
- be guaranteed that you will crash the remote caller's terminal program.
-
-
- ───────────────────────────────────────────────────────────────────────────────
-
-
- MAXscript and MAXcontrol Command Library:
- ─────────────────────────────────────────
- After your BBS or door program has determined whether or not the user has
- RIP capabilities, you send the string #255#126#127#255 to the comport. If
- the caller has MAXscript and MAXcontrol capabilities, it will return the
- the MAXscript version number it supports in the format #.## ....From here
- you will tell your program "YES" there is FULL remote MAX Graphics support.
-
-
- AddTo_PickList('Text String')
- MAXcontrol: #255#126#149'Text String'#255
- This command adds items to the picklist. The maximum number
- of items in a picklist is 800. Each item should be less than
- or equal to 80 characters wide. If it is longer, the excess
- length will simply be truncated.
- See Also: New_PickList(), SetUp_PickList(),
- Reset_PickList(), Get_Pick_Info()
-
-
- Animate_Icon(XStart,YStart,XEnd,YEnd,Delay,IconSize,Icon)
- MAXcontrol: #255#126#173XStart,YStart,XEnd,YEnd,Delay,IconSize,Icon#255
- This command animates a Small, Medium, or Large icon from
- XStart/YStart to XEnd/YEnd. "Delay" is the total number of
- milliseconds between each icon plot. "IconSize" determines
- whether the icon is a Small, Medium, or Large icon (1-Small,
- 2-Medium,3-Large) and "Icon" is the icon's record position
- in the current icon library. Here's a hint to help eliminate
- flicker when animating the icon....The "Delay" should be a
- multiple or a divisor of the icon's pixel width or height.
- Meaning, a medium icon that is 30x30 pixels should have a
- delay factor of 15,30,60,120,etc....There is no technical
- proof to warrant this, however, this is the method I use
- and it sure works for me on my system....
- See Also: Flip_Icon()
-
-
- Bar(X1,Y1,X2,Y1)
- MAXcontrol: #255#126#159X1,Y1,X2,Y1#255
- This command draws a solid filled rectangle on the screen
- defined by the X1,Y1,X2,Y2 coordinates with the currently
- selected color and fill style selected by Set_Fill_Style().
- See Also: Set_Fill_Style(), Rectangle()
-
-
- Button_Extension(ButtonNumber,'UpTo20Characters')
- MAXcontrol: #255#126#183ButtonNumber,'UpTo20Characters'#255
- In some BBS packages such as PCBoard, Renegade, Nexus, Etc,
- you may assign entire strings to certain functions on your
- menus. In standard MAX and RIP buttons you can only send a
- character per button press. By adding an extension to the
- button, you can send the character assigned to the button
- and up to 20 additional characters. Buttons are drawn on
- the screen in sequential fashion and are numbered in the
- MAXterm program from #1 up to #30. So let's say you want
- to make the first button drawn on the screen send a string
- like "/G"....You would first plot a button and assign the
- character "/" to it. Since you are working with the first
- button you would use Button_Extension(1,'G') to add the
- "G" to the first button on the screen. Now when ever the
- user clicks on that button, it will send "/G" instead of
- just the "/" character by itself.
-
-
- Change_Field(FieldNumber)
- MAXcontrol: #255#126#152FieldNumber#255
- This command will tell your program to make a new Entry
- Field active. After this command is issued, you need to
- issue the command Redraw_Field() to make the change take
- effect. This command is mainly for BBS and Door programs.
- See Also: Entry_Field(), Redraw_Field(), Field_Text()
-
-
- Clear_Screen(Color)
- MAXcontrol: #255#126#161Color#255
- This command will clear the screen from 0,21,639,458 in the
- color determined by the "Color" variable. This command will
- not touch the top and bottom status bars.
-
-
- Click_Zone(X1,Y1,Width,Height,HotKey)
- MAXcontrol: #255#126#171X1,Y1,Width,Height,HotKey#255
- This command turns a specified region of the screen into a
- button of sorts. This will basically draw a frame on the
- screen that presses and releases with mouse clicks. X1/Y1
- is where the zone starts. "Width" is the width of the zone
- in pixels and "Height" is the height of the zone in pixels.
- "HotKey" is the ASCII value of the character the zone is
- suppose to represent. Using this command in conjunction
- with the Bar() command allows you to create buttons with
- custom sizes, colors, and fill styles.
- See Also: Draw_Button(), Radio_Button(), User_Button()
-
-
- Draw_Bezier(X1,Y1,StartAngle,EndAngle,XRadius,YRadius,Color)
- MAXcontrol: #255#126#172X1,Y1,StartAngle,EndAngle,XRadius,YRadius,Color#255
- This command draws a filled elliptical sector using X1/Y1 as
- the center point, and XRadius/YRadius as the horizontal and
- vertical axis. The sector travels from StartAngle to EndAngle
- and is drawn in the color specified by "Color". The sector is
- filled with the current fill style set by Set_Fill_Style().
- See Also: Draw_Elipse(), Set_Fill_Style()
-
-
- Draw_Button(X1,Y1,PixelWidth,HotKey,UseIcon,Icon#,'ButtonTitle')
- MAXcontrol: #255#126,#130X1,Y1,PixelWidth,HotKey,UseIcon,Icon#,'ButtonTitle'#255
- This command draws a standard raised button on the screen
- at X1/Y1 coordinates. This type of button has a predefined
- height of 20 pixels. You define the width of the button with
- the PixelWidth variable. This width is intentionally not
- predefined so you can create a more customized look to the
- screens you create. The HotKey variable determines the key's
- (ASCII Value) that needs to be pressed to make MAXterm return
- the Button # value. With no buttons on the screen, the button
- value is zero. If this is the first button on the screen, the
- button value will return a 1, if it's the second button, it
- will return a 2, and so on. The UseIcon variable tells MAXterm
- whether or not to plot a 16x16 (Small Icon Type) icon on the
- button (0=No,1=Yes). The Icon# variable determines the icon
- number in the currently selected 16x16 icon library file.
- See Also: Small_Icon_LIB(), Radio_Button(),
- Click_Zone(), User_Button()
-
-
- Draw_Circle(X1,Y1,Radius,Color)
- MAXcontrol: #255#126#158X1,Y1,Radius#255
- This command draws circle on the screen inside with the
- X1,Y1 coordinates being the center of the circle. Radius
- is the amount of pixels from the center to the outmost
- edge of the circle. The color of the cirle is determined
- by the "Color" variable. The circle can be filled with a
- a color and pattern of your choice. See the Flood_Fill()
- command for more information.
- See Also: Flood_Fill(), Set_Fill_Style()
-
-
- Draw_Ellipse(X1,Y1,StartAngle,EndAngle,XRadius,YRadius,Color)
- MAXcontrol: #255#126#166X1,Y1,StartAngle,EndAngle,XRadius,YRadius,Color#255
- This command draws and elliptical arc using X1/Y1 as the
- center point, and XRadius/YRadius as the horizontal and
- vertical axis. The ellipse travels from StartAngle to
- EndAngle and is drawn in the color specified by "Color".
- See Also: Set_Fill_Style(), Flood_Fill(), Draw_Bezier()
-
-
- Draw_Line(X1,Y1,X2,Y2,Color)
- MAXcontrol: #255#126#132X1,Y1,X2,Y2,LineColor#155
- This command draws a line from X1,Y1 to X2,Y2 in the color
- specified by the variable "Color".
-
-
- Draw_Rectangle(X1,Y1,X2,Y2,Color)
- MAXcontrol: #255#126#162X1,Y1,X2,Y2#255
- This command is similar to the Bar() command with the small
- exception that there is no fill, this is just a frame. You
- can still fill the rectangle with the Flood_Fill() command
- if you wish. The color of the frame is determined by the
- variable "Color".
- See Also: Flood_Fill(), Set_Fill_Style()
-
-
- Draw_Triangle(X1,Y1,X2,Y2,X3,Y3,Color);
- MAXcontrol: #255#126#178X1,Y1,X2,Y2,X3,Y3,Color#255
- This command draws a triangle on the screen using the
- variables X1/X1, X2/Y2, X3/Y3 as the triangle's points
- going clock-wise with X1/Y1 being the top point of the
- triangle. The triangle is drawn in the color specified
- by the "Color" variable. The triangle is drawn unfilled
- but can be filled by Flood_Fill().
- See Also: Flood_Fill(), Set_Fill_Style()
-
-
- Draw_Window(X1,Y1,X2,Y2,WindowType,'WindowTitle')
- MAXcontrol: #255#126#128100,100,630,380,WindowType,'WindowTitle'#255
- This command draws a window at X1,Y1,X2,Y2 the coordinates.
- WindowType defines which type of window to display on the
- user's screen. There are four window types at this time:
- 1 - Standard Block Window
- 2 - Invisible Window
- 3 - Flat Panel Window
- 4 - Transparent Window
- 5 - Standard Panel Window
- Any window type setting outside of these ranges will cause
- the program to default to window type #1.
- See Also: Kill_Window()
-
-
- Editor_File('FILENAME.TXT')
- MAXcontrol: #255#126#176'FILENAME.TXT'#255
- This command tells the text editor what file name to save
- the text in MAXterm's text buffer to. The file is stored
- in the user's \MAXTERM\SESSION\ subdirectory. This command
- needs to be called some time before Run_Text_Editor() or
- the program will use the default TEXTFILE.TXT file name.
- See Also: New_Text_Editor(), Run_Text_Editor(),
- Load_Text_File(), Start_Text_File(),
- Put_Text_File(), End_Text_File()
-
-
- End_Screen()
- MAXcontrol: #255#126#254#255
- This command is used in either screen files or BBS or door
- programs to throw MAXterm into its "Wait State" mode. This
- command must be issued at the end of EVERY screen file or
- when ever your BBS or door program is finished drawing. This
- command does not apply to remotely stored screen files.
- See Also: Start_Screen()
-
-
- End_Text_File()
- MAXcontrol: #255#126#182#255
- This command closes the text file created by Start_Text_File()
- so that it can be read by Load_Text_File(). Absolutely do not
- forget to issue this command after Start_Text_File() and do
- not issue this command unless there was a Start_Text_File()
- previously issued. Ignoring these rules will cause MAXterm to
- crash, no doubt about it!
- See Also: Start_Text_File(), Put_Text_File(), HTML_Browser()
-
-
- Entry_Field(X1,Y1,EntryType,Width,'DefaultText')
- MAXcontrol: #255#126#131X1,Y1,EntryType,Width,'DefaultText'#255
- This command plots an entry field on the screen at X1/Y1
- coordinates. This is only meant to be used with BBS or
- door programs due to the way it returns the text entered
- in the fields. However, you can still use these in your
- screens for purely cosmetic purposes. There are six types
- of EntryTypes: 0 - Normal Input
- 1 - Numeric Input
- 2 - Proper Input
- 3 - Date/Phone # Input
- 4 - Secret Input
- 5 - Upper Case Input
- After all of your items have been drawn in the window you
- will issue the End_Screen() command which will activate the
- scrolling of the Entry_Fields. In some part of your program
- you will have to execute the command Get_Field_Data() after
- the user clicks a button which is not a Picklist or Text File
- Reader scroll button. This will tell MAXterm to send the text
- string from each field to the comport in a fashion similar to
- a MAXcontrol code. The entry fields are numbered 1..30 as they
- are drawn on the screen and text strings will be returned to
- your BBS or door in a sequential fashion with a #13#10 at the
- end of each text string. MAXterm will send a #255#255#13#10
- to indicate there is no more data to send.
- See Also: Get_Field_Data()
-
-
- Field_Text(FieldNumber,'Field Text')
- MAXcontrol: #255#126#248FieldNumber,'Field Text'#255
- This command is mainly for MAX BBS and Door programs....
- At some point in your program, you will find the need to
- dynamically change the text in an entry field. This command
- is to be used in conjunction with Change_Field() and the
- Redraw_Field() commands. Say you have three fields on the
- screen, the last field drawn is Field #3. Then say that for
- some reason you suddenly need to change the text in field
- #3. You would execute this command, then Change_Field(3),
- the Redraw_Field(). You may also omit the Change_Field()
- and Redraw_Field() and wait for the user to change to this
- field on their own.
- See Also: Entry_Field(), Change_Field(), Redraw_Field()
-
-
- Flip_Icon(X1,Y1,Icon1,Icon2,Icon3,Icon4,Size);
- MAXcontrol: #255#126#179X1,Y1,Icon1,Icon2,Icon3,Icon4,Size#255
- This command is used to place icons on the screen that will
- continuously draw over top of each other while the mouse is
- in operation. This creates an animated effect and is useful
- for creating spinning or flipping images. Be careful when
- using this feature, the more icons you have flipping, the
- slower your mouse will react. If at all possible, use the
- "Small" icons for this feature to increase mouse reaction.
- See Also: Put_Small_Icon(), Put_Medium_Icon(), Put_Large_Icon(),
- Small_Icon_Lib(), Medium_Icon_Lib(), Large_Icon_LIB()
-
-
- Flood_Fill(X1,Y1,BorderColor)
- MAXcontrol: #255#126#165X1,Y1,BorderColor#255
- This command fills an area starting at the X1/Y1 coordinates
- using the color and fill determined by the Set_Fill_Style()
- command. The BorderColor variable determines the color of
- the lines (or borders) where you want the fill to stop at.
- Say you used the command Draw_Circle(100,100,50,64). The
- border of the circle is in color #64. After you determine
- the color and style of the fill with Set_Fill_Style(), you
- would use Flood_Fill(100,100,64) to fill the circle to its
- borders or any other overlapping shapes so long as their
- borders are in color # 64 as well.
- See Also: Set_Fill_Style(), Draw_Rectangle(), Draw_Circle()
-
-
- Frame_High(X1,Y1,X2,Y2)
- MAXcontrol: #255#126#144X1,Y1,X2,Y2#255
- This command simply draws a pseudo 3-D frame on the screen
- at the X1,Y1,X2,Y2 coordinates that appears to be raised.
- Meaning the top and left side of the frame are brighter
- than the bottom and right sides.
- See Also: Frame_Low()
-
-
- Frame_Low(X1,Y1,X2,Y2)
- MAXcontrol: #255#126#145X1,Y1,X2,Y2#255
- This command is the opposite of the Frame_High() command.
- This draws a frame on the screen at X1,Y1,X2,Y2 that
- appears to be lowered.
- See Also: Frame_High()
-
-
- Get_Editor_Text()
- MAXcontrol: #255#126#249#255
- This command is used to send the text saved to the text file
- created by the text editor. The text is sent in the form of
- a character by character transfer with a #13#10 at the end
- of every line to indicate a line feed. The MAXterm program
- will send a #255#255#13#10 to indicate there is no more data
- to send.
- See Also: New_Text_Editor(), Run_Text_Editor()
-
-
- Get_Field_Data()
- MAXcontrol: #255#126#250#255
- This command is NEVER to be used in anything but a BBS or a
- door program. NEVER use this command in screen files! If your
- program uses entry fields for anything, then you will need a
- way of getting the field data from the user's terminal back
- to your program. For every entry field on the user's screen,
- this command will cause the remote's terminal program to send
- the text string from each field with a #13#10 at the end. The
- MAXterm program will send a #255#255#13#10 to indicate there
- is no more data to send.
- See Also: Entry_Field()
-
-
- Get_Pick_Info()
- MAXcontrol: #255#126#247#255
- This command is used to get the pick list item number and
- text. First the item number will be sent followed by the
- string #13#10, then the item text will be sent in the same
- fashion. The MAXterm program will send a #255#255#13#10 to
- indicate that it is finished sending data.
- See Also: New_Pick_List(), Set_Up_PickList,
- Reset_PickList(), Add_To_PickList();
-
-
- Hide_Mouse()
- MAXcontrol: #255#126#139#255
- This command hides the mouse cursor from view. This is
- important to do before you do any drawing or text plotting
- of any kind. If you don't, the user will end up with a
- blemish on the screen as soon as they move their mouse.
- You shouldn't have to worry about using this command or
- the Show_Mouse() command if you are drawing complete MAX
- screen files with the Start_Screen() and End_Screen() in
- them. About the only people that will ever have to worry
- about these commands are BBS or BBS door programmers.
- See Also: Show_Mouse()
-
-
- HTML_Browser('FILENAME.HTM')
- MAXcontrol: #255#126#187'FILENAME.HTM'#255
- This command starts up MAXterm's HTML browser. The actual
- HTML file must have the .HTM file extension, .HTML is not
- a valid file extension in DOS. The .HTM file must already
- exist in the caller's \SESSION\ subdirectory. You can use
- a resource update door to get the file to the user, but it
- is wiser to build the file on the fly if you change your
- HTML files on a regular basis. The HTML2MAX.EXE utility in
- MAXpaint will automatically convert an HTML file to a MAX
- screen file your BBS can send on the fly. Otherwise, you
- will need to add the remote text file building commands in
- the HTML file where needed.
- See Also: Start_Text_File(), Put_Text_File(), End_Text_File()
-
-
- Kill_Window()
- MAXcontrol: #255#126#129#255
- This command is mainly used in BBS or door programs designed
- around MAX Graphics. Any time you use Draw_Window(), you must
- use Kill_Window() unless you are creating screens. Any time a
- new screen is sent, the RIP clear screen command is sent prior
- to the screen file. This does a global Kill_Window in MAXterm,
- so you don't have to worry about using this in your screens.
- The reason for this command is so you can kill any window you
- have created in order to restore that portion of the screen
- and also restore buttons/fields/picklists/editor/reader/etc
- that may happen to exist in the previous window (if any).
- See Also: Draw_Window()
-
-
- Large_Icon_LIB('FILENAME.003')
- MAXcontrol: #255#126#135'FILENAME.003'#255
- This tells MAXterm to change icon library files for its
- "Large" (60x60) icons. All Large icon libraries have an
- extension of "003"....If the extension is any different,
- the default icon library will be used.
- See Also: Medium_Icon_LIB(), Small_Icon_LIB(),
- Put_Large_Icon()
-
-
- Load_Font('FILENAME.FNT')
- MAXcontrol: (#255#126#148'FILENAME.FNT'#255
- This command will dispose of the currently loaded GEM
- font file in memory and load a new one. GEM font files
- must have the .FNT extension. These fonts are the user
- defined fonts and referred to as Font Type #4.
- See Also: Standard_Text(), Shadow_Text()
-
-
- Load_Text_File('FILENAME.TXT')
- MAXcontrol: #255#126#167'FILENAME.TXT'#255
- This command is used to load a text file into the buffer
- used by the text reader and text editor. This command is
- called _AFTER_ the call to New_Text_Reader() and after
- the call to New_Text_Editor(). Note: You don't have to
- load a text file into the text editor if you don't want
- to. Run_Text_Editor() and Show_Text_Page() are called
- _AFTER_ this command. This file must exist in the user's
- ?:\MAXTERM\SESSION\ subdirectory.
- Note: The text buffer only allows for 99 lines of text.
- See Also: New_Text_Editor(), New_Text_Reader(),
- Run_Text_Editor(), Show_Text_Page(),
- Editor_File(), Start_Text_File(),
- Put_Text_File, End_Text_File()
-
-
- Lowered_Box(X1,Y1,X2,Y2)
- MAXcontrol: #255#126#147X1,Y1,X2,Y2#255
- This command draws a box on the screen at that appears to
- be lowered at the X1,Y1,X2,Y2 coordinates.
- See Also: Raised_Box()
-
-
- MAXecute('FILENAME.EXE');
- MAXcontrol: #255#126#185'FILENAME.EXE'#255
- This command instructs MAXterm to execute a special program
- called a "MAXecutable". These are special executable files
- that run within the MAXterm environment. Some developers have
- found that they can make more elaborate programs by working
- outside of the MAXscript constraints. So they have written
- doors that run a special executable on the remote end. This
- command is usually reserved for door developers.
-
-
- Medium_Icon_LIB('FILENAME.002')
- MAXcontrol: #255#126#134'FILENAME.002'#255
- This tells MAXterm to change icon library files for its
- "Medium" (30x30) icons. All Medium icon libraries have an
- extension of "002"....If the extension is any different,
- the default icon library will be used.
- See Also: Small_Icon_LIB(), Large_Icon_LIB(),
- Put_Medium_Icon()
-
-
- Mouse_Mask(MaskNumber)
- MAXcontrol: #255#126#141MaskNumber#255
- This command changes the "Mask" of the mouse cursor. There
- are a total of 19 mouse masks: 0 - Standard Arrow
- 1 - Up Arrow
- 2 - Down Arrow
- 3 - Left Arrow
- 4 - Right Arrow
- 5 - Check Mark
- 6 - Up Hand
- 7 - Down Hand
- 8 - Left Hand
- 9 - Right Hand
- 10 - Stop Hand
- 11 - Hour Glass
- 12 - Diagonal Cross
- 13 - Rectangular Cross
- 14 - Rectangular Box
- 15 - Target Cross
- 16 - Target Circle
- 17 - Target Box
- 18 - Question Mark
- Any number outside of these ranges will cause the
- mouse mask to default to zero.
- See Also: Hide_Mouse(), Show_Mouse()
-
-
- New_PickList(X1,Y1,OnScreen,Width)
- MAXcontrol: #255#126#168X1,Y1,OnScreen,Width#255
- This command initializes the scrolling picklist on the
- screen and allocates memory for it. The upper left corner
- of the picklist will be at X1/Y1 coordinates. The OnScreen
- variable determines how many items (in rows) will appear
- on the screen, and the Width variable determines how wide
- (in characters) the picklist will be. There are however a
- couple rules you must follow when using picklists in your
- screens and programs. The picklist MUST be the first item
- in the window. When you are in your repeat loop initiated
- by End_Screen() the top scroll button in the picklist with
- return 1 and the other will report 2. All other buttons
- added to the screen after the picklist will return values
- from 3 on up.
- See Also: AddTo_PickList(), SetUp_PickList,
- Reset_PickList(), Get_Pick_Info()
-
-
- New_Text_Editor(Y1)
- MAXcontrol: #255#126#154Y1#255
- This command initializes the text editor on the screen. You
- will notice that there only a Y1 coordinate because the
- text field takes up the whole width of the screen. You'll
- need to call Draw_Window() before this for two reasons...
- The first reason is because you will most likely want to
- have some kind of a header to display what the text file
- or message is that is being edited. The second reason is
- because you will need to save the entire screen before
- you plot the editing field on the screen. That way when
- the user is done with their editing, you can make a call
- to Kill_Window() to restore the entire screen. After you
- call this command, you may optionally stuff the buffer
- with text from a text file. See Load_Text_File() for more
- information.
- See Also: Draw_Window(), Kill_Window(), Editor_File(),
- Load_Text_File(), Run_Text_Editor()
-
-
- New_Text_Reader(Y1)
- MAXcontrol: #255#126#156#Y1#255
- As with the New_Text_Editor command, this command uses
- only the Y1 coordinate because the text file reader takes
- up the whole width of the screen. All of the same rules
- as the New_Text_Editor command apply here. You will need
- to issue a command to Draw_Window() to save the previous
- screen. See Load_Text_File() for more information.
- See Also: New_Text_Editor(), Draw_Window(),
- Kill_Window(), Show_Text_Page()
-
-
- Pie_Slice(X1,Y1,StartAngle,EndAngle,Radius,Color)
- MAXcontrol: #255#126#175X1,Y1,StartAngle,EndAngle,Radius,Color#255
- This command draws a pie slice on the screen using X1/Y1
- coordinates as the center "Point" and draws the arc of
- the slice from StartAngle to EndAngle. The over all size
- of the slice is determined by "Radius". The pie slice is
- drawn in "Color" and filled by the current color and fill
- style determined by Set_Fill_Style()
- See Also: Set_Fill_Style(), Draw_Bezier()
-
-
- Play_Sound('SOUND.FIL')
- MAXcontrol: #255#126#163'SOUND.FIL'#255
- This command plays 1 of three types of sound files through
- the user's sound card. Supported sound formats are VOC, WAV,
- and MID (MIDI). The user MUST have the environment variable
- for their sound card set for their sound card before this
- function will work for them.
-
-
- Put_Image(X1,Y1,'IMAGE.PCX')
- MAXcontrol: #255#126#164X1,Y1,'IMAGE.PCX'#255
- This tells MAXterm to display a graphic image at the X1,Y1
- coordinates. MAX Graphics only supports 256 color PCX files
- since this is strictly an SVGA interface. Converting and/or
- cropping the image or altering its palette can be done with
- about any shareware or commercial graphics image editor. One
- such shareware image editor is called NeoPaint from NeoSoft
- Corporation and is available on almost any shareware CD-ROM.
-
-
- Put_Large_Icon(X1,Y1,IconNumber)
- MAXcontrol: #255#126#136X1,Y1,IconNumber#255
- Plots a "Large" (60x60) icon at the X1/Y1 coordinates.
- IconNumber is the zero based record number of the icon
- in the currently selected Large_Icon_LIB. If the icon
- number you select IconNumber is larger than the amount
- of icons in the library (minus 1), then icon #0 will
- be used instead.
- See Also: Put_Small_Icon(), Put_Medium_Icon(),
- Large_Icon_LIB()
-
-
- Put_Medium_Icon(X1,Y1,IconNumber)
- MAXcontrol: #255#126#137X1,Y1,IconNumber#255
- Plots a "Medium" (30x30) icon at the X1/Y1 coordinates.
- IconNumber is the zero based record number of the icon
- in the currently selected Medium_Icon_LIB. If the icon
- number you select IconNumber is larger than the amount
- of icons in the library (minus 1), then icon #0 will
- be used instead.
- See Also: Put_Small_Icon(), Put_Large_Icon(),
- Medium_Icon_LIB()
-
-
- Put_Pixel(X1,Y1,Color)
- MAXcontrol: #255#126#177X1,Y1,Color#255
- This command is as "Low-Level" as low-level can get.
- This plots a single pixel at X1/Y1 coordinates in the
- color specified by the "Color" variable. This command
- may not be of that much use to you, but it is here in
- case you do actually need it.
-
-
- Put_Small_Icon(X1,Y1,IconNumber)
- MAXcontrol: #255#126#138X1,Y1,IconNumber#255
- Plots a "Small" (16x16) icon at the X1/Y1 coordinates.
- IconNumber is the zero based record number of the icon
- in the currently selected Small_Icon_LIB. If the icon
- number you select IconNumber is larger than the amount
- of icons in the library (minus 1), then icon #0 will
- be used instead.
- See Also: Put_Medium_Icon(), Put_Large_Icon(),
- Small_Icon_LIB()
-
-
- Put_Text_File('String');
- MAXcontrol: #255#126#181'String'#255
- After you have created the text file using the command
- Start_Text_File(), you must call this procedure repeatedly
- until you are finished writing to the file. Keep in mind
- that in _SCRIPT.PAS this command uses Pascal's WRITELN....
- See Also: Start_Text_File(), End_Text_File(), HTML_Browser()
-
-
- Radio_Button(X1,Y1,HotKey)
- MAXcontrol: #255#126#170X1,Y1,HotKey#255
- This command draws a small rounded button on the screen at
- X1/Y1 coordinates. The HotKey variable is the ASCII value
- of the character that is returned when the user clicks on
- the button with their mouse. Unlike the Draw_Button command
- there is no icon, pixel width, icon settings, or title for
- this type of button.
- See Also: Draw_Button(), Click_Zone(), User_Button()
-
-
- Raised_Box(X1,Y1,X2,Y2)
- MAXcontrol: #255#126#146X1,Y1,X2,Y2#255
- This command draws a box on the screen at that appears to
- be raised at the X1,Y1,X2,Y2 coordinates. This is basically
- a Flat Panel Window with no screen saving abilities.
- See Also: Lowered_Box()
-
-
- Redraw_Field()
- MAXcontrol: #255#126#153#255
- This command must be issued immediately after a call to the
- Field_Text() and Change_Field() commands. This command is
- mainly for BBS and Door programs.
- See Also: Entry_Field(), Change_Field(), Field_Text()
-
-
- Reset_PickList(ItemNumber)
- MAXcontrol: #255#126#151#255
- This command resets the highlight bar in the picklist to a
- specified picklist item. You issue this command and then
- issue the SetUp_PickList() command.
- See Also: New_PickList(), AddTo_PickList(),
- SetUp_PickList(), Get_Pick_Info()
-
-
- Reset_Remote()
- MAXcontrol: #255#126#169#255
- This command is used to reset all colors and file names in
- the remote's terminal program to their default values. See
- the section of this document on MAXcolor codes.
-
-
- Run_Text_Editor()
- MAXcontrol: #255#126#155#255
- This command must be issued ONLY after the New_Text_Editor()
- command has been issued.
- See Also: New_Text_Editor(), Load_Text_File(), Editor_File()
-
-
- Set_Fill_Style(Pattern,Color)
- MAXcontrol: #255#126#160Pattern,Color#255
- This sets the fill style to be used to fill in the center
- of a Bar or Circle. A setting of zero will cause the shape
- to be drawn on the screen with just the frame being set by
- the "Color" variable. There are 12 different fill styles:
- 0 - No Fill
- 1 - Solid Fill
- 2 - Line Fill
- 3 - Light Slash Fill
- 4 - Heavy Slash Fill
- 5 - Heavy Back Slash Fill
- 6 - Light Back Slash Fill
- 7 - Light Cross Hatch
- 8 - Heavy Cross Hatch
- 9 - Interleave Fill
- 10 - Wide Dot Fill
- 11 - Close Dot Fill
- Any number outside of these ranges will cause the fill
- style to default to zero.
- See Also: Bar(), Circle(), Polygon()
-
-
- SetUp_PickList()
- MAXcontrol: #255#126#150#255
- After the picklist has been initialized with New_PickList()
- and has had items added to it with AddTo_PickList(), it is
- now ready to run in the mouse loop. This command tells the
- program that you are finished adding items to the picklist
- and that it is now ready. When using picklists you need to
- remember that the picklist always adds two buttons to the
- beginning of your screen. The current item in the picklist
- with the highlight bar on it is returned in the variable
- PickInfo.Current in the MAX Graphics interface unit. Should
- you wish to return that text into your program, you would
- access it as PickList[PickInfo.Current]....
- See Also: New_PickList(), AddTo_PickList(),
- Reset_PickList(), Get_Pick_Info()
-
-
- Shadow_Text(X1,Y1,TextColor,ShadowColor,FontType,'Your Text')
- MAXcontrol: #255#126#143X1,Y1,TextColor,ShadowColor,FontType,'Your Text'#255
- This is command is similar to Standard_Text() except this
- command plots your text with a shadow behind it. You simply
- define two colors here instead of just one....
- FontTypes are: 1 - 5x8 bitmapped font
- 2 - GEM "System" font
- 3 - 8x14 ROM resident font
- 4 - External GEM font
- See Also: Standard_Text(), Load_Font()
-
-
- Show_Mouse()
- MAXcontrol: #255#126#140#255
- Any time a call to Hide_Mouse() is called, you will need
- to call this command to re-enable the users mouse cursor.
- You shouldn't have to worry about using this command or
- the Hide_Mouse() command if you are drawing complete MAX
- screen files with the Start_Screen() and End_Screen() in
- them. About the only people that will ever have to worry
- about these commands are BBS or BBS door programmers.
- See Also: Hide_Mouse()
-
-
- Show_Remote_Screen('FILENAME.MAX')
- MAXcontrol: #255#126#251'FILENAME.MAX'#255
- This command is used to display a remotely stored screen
- file. In some cases, a screen can simply become too large
- to send over the modem and display quick enough for your
- likings. What you can do is create a screen file and then
- place it in your PKG file for your system. Keep in mind
- that the actual screen file must not contain either the
- Start_Screen() or End_Screen() commands. Those commands
- will already be issued in the screen file that executes
- the Show_Remote_Screen('FILENAME.MAX') command.
- See Also: Start_Screen(), End_Screen()
-
-
- Show_Text_Page()
- MAXcontrol: #255#126#157#255
- This command must be issued ONLY after the New_Text_Reader()
- command has been issued, this activates the text reader.
- See Also: New_Text_Reader
-
-
- Siren()
- MAXcontrol: #255#126#184#255
- This command is the equivalent to the CTRL-G Bell in an
- ANSI/TTY terminal program, only it's about 100 times as
- annoying. This simply creates a siren tone through the
- caller's PC speaker.
- See Also: Play_Sound()
-
-
- Small_Icon_LIB('FILENAME.001')
- MAXcontrol: #255#126#133'FILENAME.001'#255
- This tells MAXterm to change icon library files for its
- "Small" (16x16) icons. All Small icon libraries have an
- extension of "001"....If the extension is any different,
- the default icon library will be used.
- See Also: Medium_Icon_LIB(), Large_Icon_LIB(),
- Put_Small_Icon()
-
-
- Standard_Text(X1,Y1,TextColor,FontType,'Your Text')
- MAXcontrol: #255#126#142X1,Y1,TextColor,FontType,'Your Text'#255
- This command is used to plot text at the X1/Y1 coordinates
- on the screen. TextColor is the color of your text and
- FontType is the type of font you want you text printed
- in. FontTypes are: 1 - 5x8 bitmapped font
- 2 - GEM "System" font
- 3 - 8x14 ROM resident font
- 4 - External GEM font
- See Also: Shadow_Text(), Load_Font()
-
-
- Start_Screen()
- MAXcontrol: #255#126#253#255
- This command is used in either screen files or BBS or door
- programs to throw MAXterm into "Draw mode". This command must
- be issued at the beginning of EVERY screen file to clear/reset
- all variables in MAXterm's memory. This command does not apply
- to remotely stored screen files.
- See Also: End_Screen()
-
-
- Start_Text_File('FILENAME.TXT')
- MAXcontrol: #255#126#180'FILENAME.TXT'#255
- This command builds a text file in the the caller's \SESSION\
- subdirectory. This can be used for about any purpose, but the
- main reasons would be for creating a text file to load in the
- text editor or text reader. Keep in mind that this command
- absolutely MUST be followed up by an End_Text_File() command
- or you could possible cause MAXterm to crash the next time
- this command is called.
- See Also: Put_Text_File(), End_Text_File(), HTML_Browser()
-
-
- Text_View_Port(X1,Y1,C,R)
- MAXcontrol: #255#126#186X1,Y1,C,R#255
- This command can be used in screen files or BBS and door
- programs. The reason for this function is that there are
- some BBS programs that create dynamically generated text
- after the screens are drawn. This text is most generally
- to tell the user what the active file or message area is
- or to send the user general system info or warnings. You
- would use this command to define a view port the screen
- where you want this information displayed. This command
- plots the Text View Port at X1/Y1 coordinates with the
- R defining how many text rows to display and with the C
- defining how many text columns to display.
- See Also: Text_View_Window()
-
-
- Text_View_Window(X1,Y1,C,R)
- MAXcontrol: #255#126#252X1,Y1,C,R#255
- This command can be used in screen files or BBS and door
- programs. The reason for this function is that there are
- some BBS programs that create dynamically generated text
- after the screens are drawn. This text is most generally
- to tell the user what the active file or message area is
- or to send the user general system info or warnings. You
- would use this command to define a window on the screen
- where you want this information displayed. This command
- plots the Text View Window at X1/Y1 coordinates with the
- R defining how many text rows to display and with the C
- defining how many text columns to display.
- See Also: Text_View_Port()
-
-
- User_Button(X1,Y1,Width,Height,HotKey)
- MAXcontrol: #255#126#174X1,Y1,Width,Height,HotKey#255
- This command draws and actual button on the screen in the
- current button face color. Similar to Click_Zone(), only
- this user defined zone is filled with color.
- See Also: Draw_Button(), Radio_Button(), Click_Zone()
-
-
- ───────────────────────────────────────────────────────────────────────────────
- TO BE CONTINUED: (More Commands Are Sill Being Added, Hang In There!)
- ───────────────────────────────────────────────────────────────────────────────
-
-
- MAXcolor Commands:
- ──────────────────
- You can remotely change the colors used in the user's terminal program for
- drawing graphics primitives. However, there are no text based counterparts
- to these commands in order to retain the highest possible speed. These are
- similar to MAXcontrol commands, the exception to the rule is that the #126
- in MAXcontrol is replaced by a #125, all MAXcolor variables start at #127.
- For a better description of what each variable is used for, please see the
- file SVGAUNIT.PAS in the MAX Graphics development kit.
-
- Win1Back = #255#125#127ColorNumber#255
- Win4Back = #255#125#128ColorNumber#255
- Win1High = #255#125#129ColorNumber#255
- Win4High = #255#125#130ColorNumber#255
- Win1Low = #255#125#131ColorNumber#255
- Win4Low = #255#125#132ColorNumber#255
- Win1Frame1 = #255#125#133ColorNumber#255
- Win1Frame2 = #255#125#134ColorNumber#255
- Win4Frame = #255#125#135ColorNumber#255
- ActiveHdr = #255#125#136ColorNumber#255
- InactiveHdr = #255#125#137ColorNumber#255
- HdrTitle = #255#125#138ColorNumber#255
- ButtonFrame = #255#125#139ColorNumber#255
- ButtonFace = #255#125#140ColorNumber#255
- ButtonHigh = #255#125#141ColorNumber#255
- ButtonLow = #255#125#142ColorNumber#255
- ButtonHot = #255#125#143ColorNumber#255
- ButtonText = #255#125#144ColorNumber#255
- FrameHigh = #255#125#145ColorNumber#255
- FrameLow = #255#125#146ColorNumber#255
- BoxBack = #255#125#147ColorNumber#255
- BoxHigh = #255#125#148ColorNumber#255
- BoxLow = #255#125#149ColorNumber#255
- FieldTextHigh = #255#125#150ColorNumber#255
- FieldTextLow = #255#125#151ColorNumber#255
- FieldBack = #255#125#152ColorNumber#255
- FieldFrame = #255#125#153ColorNumber#255
- FieldHigh = #255#125#154ColorNumber#255
- QuoteColor = #255#125#155ColorNumber#255
- MsgColor = #255#125#156ColorNumber#255
- TearColor = #255#125#157ColorNumber#255
- FlagColor = #255#125#158ColorNumber#255
- MsgIDcolor = #255#125#159ColorNumber#255
- TextBack = #255#125#160ColorNumber#255
- PickHighFore = #255#125#161ColorNumber#255
- PickHighBack = #255#125#162ColorNumber#255
- ScreenColor = #255#125#163ColorNumber#255
-
-
- Special System Commands:
- ────────────────────────
- MAXterm also responds to special commands that are actually extensions of
- the MAXcolor commands. MAXcolor commands are allocated from #127 to #199,
- MAXterm system control commands are allocated from #200 to #254 using the
- variable type #125. (Are ya' confused yet? <G>) These extended commands
- are for querying MAXterm for special information, making it perform some
- special functions, and changing its internal variables. If you are not a
- programmer, then these commands will have little or no value to you and
- should be avoided at all costs.
-
- #255#125#200#255 : This command is used to make MAXterm send back the
- user's name and password. Both of these are sent to
- the BBS/Door program followed by a #13#10. When the
- terminal is finished, it will send a #255#255#13#10.
-
- #255#125#201#255 : This command tells MAXterm to send a complete list
- of all resources in the \SESSION\ subdirectory. Each
- resource file name is sent to the BBS/Door followed
- by a #13#10. When the terminal is finished, it will
- send a #255#255#13#10. This command is very usefull
- if you are implementing automatic resource updating.
-
- #255#125#202#255 : This command tells MAXterm to change its download
- path to the \SESSION\ subdirectory.
-
- #255#125#203#255 : This command tells MAXterm to change its download
- path to the \RESOURCE\ subdirectory.
-
- #255#125#204#255 : This command tells MAXterm to change its download
- path back to its original path after it has been
- changed to another path.
-
- #255#125#205#255 : This command tells MAXterm to send back all of its
- critical system information. Each line of info is
- followed by a #13#10. When the terminal is finished
- it will send a #255#255#13#10.
-
- #255#125#206'FILENAME.EXT'#255 : This command tells MAXterm to delete
- a specific file in the \SESSION\ sub-
- directory. This is especially handy
- for updating your own resources or if
- you have implemented previewing of
- image files in your BBS/Door program.
-
- #255#125#207'FILENAME.EXT'#255 : This command tells MAXterm to delete
- a specific file in the \RESOURCE\ sub-
- directory. This is especially handy
- for doing complete updates of your
- BBS resource .PKG file.
-
-
- ───────────────────────────────────────────────────────────────────────────────
-
-
- The MAX Graphics Color Palette:
- ───────────────────────────────
- To provide full compatibility from platform to platform, the actual palette
- settings (Red, Green, Blue values) are shown below. In BGI and most every
- other graphics programming interface, the Red, Green, Blue values are in a
- range of 0 to 63. Below are the Red, Green, Blue values shown left to right
- for each color in the MAX Graphics palette. The first row of numbers shown
- is color #0 and the last is color #255. In a lot of cases, these settings
- can be copied to a text file and used in other "Paint" programs such as the
- NeoPaint program from NeoSoft Corporation. Included in this archive called
- MAXGRAPH.PAL which is a pre-made palette file for NeoPaint. For information
- on how to obtain a copy of the NeoPaint program, please contact the company
- at the address or phone numbers listed below....
-
- NeoSoft Corporation
- 354 NE Greenwood Avenue, Suite 108
- Bend, OR 97701-4631
-
- VOICE: (503)389-5489
- FAX: (503)388-8221
- BBS: (503)383-7195
-
- MAX Graphics Palette Values:
- ────────────────────────────
- 0 0 0
- 0 0 42
- 0 42 0
- 0 42 42
- 42 0 0
- 42 0 42
- 42 21 0
- 42 42 42
- 21 21 21
- 21 21 63
- 21 63 21
- 21 63 63
- 63 21 21
- 63 21 63
- 63 63 21
- 63 63 63
- 15 3 12
- 18 6 15
- 21 9 18
- 24 12 21
- 28 16 25
- 32 20 29
- 36 24 33
- 40 28 37
- 44 32 41
- 48 36 45
- 52 40 49
- 56 44 53
- 58 46 55
- 60 48 57
- 62 50 59
- 63 54 60
- 0 0 18
- 0 0 23
- 0 0 28
- 0 0 33
- 0 0 38
- 0 0 43
- 0 0 48
- 0 0 53
- 0 0 58
- 0 0 63
- 0 8 63
- 0 15 63
- 0 20 63
- 0 25 63
- 0 30 63
- 0 35 63
- 0 40 63
- 0 45 63
- 0 50 63
- 0 55 63
- 0 60 63
- 0 63 63
- 7 10 31
- 12 15 41
- 17 20 41
- 22 25 46
- 27 30 51
- 32 35 56
- 37 40 61
- 41 48 63
- 15 0 30
- 20 0 35
- 25 0 40
- 30 0 45
- 35 0 50
- 45 0 60
- 50 0 63
- 55 25 63
- 58 31 63
- 63 35 63
- 63 40 63
- 63 45 63
- 63 50 63
- 63 55 63
- 63 60 63
- 0 18 0
- 5 22 0
- 10 27 5
- 15 32 10
- 20 37 15
- 25 42 20
- 30 47 25
- 35 52 30
- 40 57 35
- 45 62 40
- 0 20 0
- 0 25 0
- 0 30 0
- 0 35 0
- 0 40 0
- 0 45 0
- 0 50 0
- 0 55 0
- 0 60 0
- 0 63 5
- 0 63 26
- 0 63 34
- 18 63 43
- 40 63 48
- 52 63 54
- 58 63 55
- 20 0 0
- 25 0 0
- 30 0 0
- 34 0 0
- 38 0 0
- 42 0 0
- 46 0 0
- 50 0 0
- 54 0 0
- 58 0 0
- 62 0 0
- 63 22 22
- 63 32 32
- 63 35 35
- 63 43 43
- 63 45 45
- 63 52 52
- 63 57 57
- 20 9 0
- 25 14 5
- 30 19 10
- 35 24 15
- 40 29 20
- 45 34 25
- 50 39 30
- 55 44 35
- 60 49 40
- 63 52 43
- 63 55 48
- 63 57 50
- 29 12 0
- 37 16 0
- 41 18 0
- 48 18 0
- 53 18 0
- 56 21 3
- 59 24 6
- 63 28 10
- 63 32 0
- 63 38 10
- 63 43 10
- 63 49 18
- 63 52 0
- 63 54 0
- 63 56 0
- 63 58 0
- 63 60 0
- 63 63 0
- 63 63 10
- 63 63 20
- 63 63 30
- 63 63 40
- 63 63 50
- 0 15 15
- 0 20 20
- 0 25 25
- 0 30 30
- 0 35 35
- 0 40 40
- 0 45 45
- 0 50 50
- 0 55 55
- 0 60 60
- 30 63 63
- 41 63 63
- 50 63 63
- 52 63 63
- 40 0 25
- 43 0 27
- 46 1 29
- 53 2 34
- 59 8 36
- 63 12 40
- 63 20 41
- 63 25 44
- 62 31 47
- 63 35 49
- 62 44 56
- 63 49 60
- 63 10 10
- 63 15 15
- 63 20 20
- 63 25 25
- 63 30 30
- 63 35 35
- 63 40 40
- 63 45 45
- 63 50 50
- 63 55 55
- 20 20 0
- 25 25 0
- 30 30 0
- 35 35 5
- 40 40 10
- 45 45 15
- 50 50 20
- 55 55 25
- 60 60 30
- 63 63 40
- 63 63 50
- 63 63 58
- 0 10 0
- 0 17 0
- 10 20 10
- 15 25 15
- 20 30 20
- 25 35 25
- 30 40 30
- 35 45 35
- 40 50 40
- 45 55 45
- 50 60 50
- 55 63 55
- 25 15 0
- 30 20 5
- 35 25 10
- 40 30 15
- 45 35 20
- 50 40 25
- 55 45 30
- 60 50 35
- 63 55 40
- 63 60 45
- 2 2 2
- 5 5 5
- 8 8 8
- 10 10 10
- 12 12 12
- 14 14 14
- 16 16 16
- 18 18 18
- 20 20 20
- 22 22 22
- 24 24 24
- 26 26 26
- 28 28 28
- 30 30 30
- 32 32 32
- 34 34 34
- 36 36 36
- 38 38 38
- 40 40 40
- 42 42 42
- 44 44 44
- 46 46 46
- 48 48 48
- 50 50 50
- 52 52 52
- 54 54 54
- 56 56 56
- 58 58 58
- 61 61 61
- 63 63 63
-
- ───────────────────────────────────────────────────────────────────────────────
-
- -=≡STANDARD DISCLAIMER≡=-
-
- Not responsible for direct, indirect, incidental or
- consequential damages resulting from any defect, error, or
- failure to perform. No other warranty expressed or implied.
- Some of the trademarks mentioned in this product appear for
- identification purposes only. Backup all hard drives,
- floppies, and CD-ROMs before running this or any other
- program. Any resemblance to real persons, living or dead is
- purely coincidental. Void where prohibited. Some assembly
- required. List each check separately by bank number.
- Batteries not included. Contents may settle during
- shipment. Use only as directed. Do not use while operating
- a motor vehicle or heavy equipment. Postage will be paid by
- addressee. Apply only to affected area. May be too intense
- for some viewers. Do not stamp. Use other side for
- additional listings. For recreational use only. Do not
- disturb. All models over 18 years of age. If condition
- persists, consult your physician. No user-serviceable parts
- inside. Freshest if eaten before date on carton. It takes
- ten first class stamps to mail a VHS cassette. This product
- is meant for educational purposes only. Do not apply to
- mucous membranes. Subject to change without notice. Times
- approximate. Simulated picture. Your mileage may vary.
- This is not a news broadcast. No postage necessary if mailed
- in the United States. Breaking seal constitutes acceptance
- of agreement. For off-road use only. As seen on TV. One
- size fits all. Many suitcases look alike. Contains a
- substaintial amount of non-tobacco ingredients. Celebrity
- lookalike. Colors may, in time, fade. Slippery when wet.
- For office use only. Not affiliated with the American Red
- Cross. Drop in any mailbox. Edited for television. Keep
- cool; process promptly. Post office will not deliver without
- postage. List was current at time of printing. At
- participating locations only. Not the Beatles. Substantial
- penalty for early withdrawal. Grass catcher must be attached
- or door closed while engine is running. Do not write below
- this line. Falling rock. Lost ticket pays maximum rate.
- Your cancelled check is your receipt. Add toner. Place
- stamp here. Avoid contact with skin. Sanitized for your
- protection. Be sure each item is properly endorsed. Sign
- here without admitting guilt. Slightly higher west of the
- Mississippi. Not affiliated with Snyder's of Berlin.
- Employees and their families are not eligible. Beware of
- dog. Not responsible for errors in typesetting or
- photography. Contestants have been briefed on some questions
- before the show. Limited time offer, call now to insure
- prompt delivery. You must be present to win. Dramatized for
- television. Persons using hold-open latches must remain at
- the refueling point during refueling. No passes accepted for
- this engagement. No purchase necessary. Use only in
- well-ventilated area. Keep away from fire or flame. Replace
- with same type. Approved for veterans. Booths for two or
- more. Check here if tax deductible. Bleu Cheese 25¢ extra.
- Some equipment shown is optional. Price does not include
- taxes. No Canadian coins. Not recommended for children.
- Prerecorded for this time zone. Reproduction strictly
- prohibited. 3% surcharge on Visa and MasterCard. No
- solicitors. No pedestrians, bicycles, or farm machinery. No
- anchovies unless otherwise specified. Vapors harmful. Stop
- engine. No smoking. List at least two alternate dates.
- First pull up, then pull down. Call toll free before
- digging. Driver does not carry cash. Record additional
- transactions on back of previous stub. Dealer retains
- incentives. May not be available in Alaska, Hawaii, and
- Puerto Rico. Sorry, Canada Eh!
-
- This notice supersedes all previous notices.
-
- ───────────────────────────────────────────────────────────────────────────────
-
- Stephan Pollack [CEO]
- Douglas Harrington Jr. [Chief Programmer]
- Online Development Incorporated
- 921 Box Butte Ave.
- Alliance, NE, 69301
- FAX/BBS #: (308)762-2239
- FidoNet : 1:285/703
- Internet : utilz@bbc.net
- http://www1.ridgecrest.ca.us/~sprice/maxgraphics.html
-
- ╔═══════════════════════════════════════════════════════════════════════════╗
- ║ You may want to freq or download the file MAXTIPS.DOC from my BBS to help ║
- ║ you understand the ins and outs of MAX Graphics more clearly. There isn't ║
- ║ anything complicated about adding MAX Graphics to your BBS or doors, but ║
- ║ I figure any extra help and information is better than none at all. True? ║
- ╚═══════════════════════════════════════════════════════════════════════════╝
-