home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_PAS
/
RLNK110.ZIP
/
RIPLINK.DOC
< prev
next >
Wrap
Text File
|
1994-02-21
|
77KB
|
2,028 lines
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ RIPlink - Version 1.10 ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
RIPlink(tm) - Version 1.10 - Documentation - 02-21-1994
Copyright (C) 1994 by InterProgramming, All Rights Reserved.
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Table of Contents ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
Section Title Page
───────────────────────────────────── ──────
Distribution and Support Information 2
Warranty and Disclaimer 3
License Agreement 3
Registration Information 4
General Information about RIPlink 6
Installation Information 7
Basic Memory Requirements 7
Interfacing with Door Toolkits 8
Definitions
■ Constants 9
■ Types 10
■ Variables 12
■ Procedures, Functions, and Methods 12
Programming Suggestions 38
Comments from InterProgramming 38
Credits 39
Index to Methods 40
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 2 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Distribution and Support Information ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
The RIPlink archive contains eight sub-archives. Each of these eight
sub-archives contains one version of RIPlink. These cover Turbo Pascal
versions 5.5, 6.0, and 7.0 and three different configurations of RIPlink.
Those three configurations are as follows:
R??-EXT.* - EGAVGA.BGI and *.CHR files are external.
R??-INT.* - EGAVGA.BGI and 4 basic fonts (*.CHR) are internal, extra fonts
are external. This provides RIPscrip v1.52 support.
R??-ALL.* - All files are internal. This provides RIPscrip 1.53+ support.
The TP 5.5 version does not include the *.ALL version as it does not support
it. TP 6.0 supports all extended fonts with the exception of Bold (Font 10).
TP 7.0 provides all of the necessary BGI and CHR (font) files. TP 6.0 only
provides the basic fonts, but can use the extended fonts. You may obtain
them from my system as listed below. TP 5.5 only provides the basic fonts,
however it can't use the extended fonts.
The latest version of RIPlink may be downloaded or Freqed from the sites
listed below. Magic file name (for Freq) is: RIPLINK. This will always
provide you with the latest version. If you need the driver files (*.BGI
and *.CHR,) Freq: BGIDRIV.
Files may be obtained from:
The Programming Link The Tech Source The Shadow Lands
(505)822-8944 (505)255-0697 (604)261-6144
14.4kbps, v32bis 14.4kbps, v32bis 19.2kbps, ZyXEL, v32bis
1:301/3 USA 1:301/29 USA 1:153/769 CANADA
Support for RIPlink is available through either private NetMail (FidoNet)
sent to 1:301/3 or Echomail. We regularly read both the DOORWARE and PASCAL
echos on FidoNet. Please address all mail to Tom Morgan. We also offer our
own support echo. If you're interested in carrying it, please send NetMail
to Tom Morgan @ 1:301/3.
Installation instructions may be found below. Please do NOT attempt to
install RIPlink until you have read the installation instructions.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 3 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Warranty and Disclaimer ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
This software and accompanying materials are distributed "as is" without
warranty, neither expressed nor implied; including but not limited to any
implied warranties of merchantability or fitness for a particular purpose.
In no event shall Thomas E. Morgan, InterProgramming or anyone else involved
with the creation or production of this product be held liable for any
damages, including, but not limited to, any lost profits, savings, data or
other incidental, indirect, special, or consequential damages arising out of
the use or inability to use this software, or for any claim by any other
party, even if Thomas E. Morgan or InterProgramming has been advised of the
possibility of such damages. The person(s) using the software bear(s) all
risk as to the quality and performance of the software. Use of this
software assumes acceptance of this statement. This warranty is governed by
the laws of the State of New Mexico.
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ License Agreement ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
This software is distributed under the shareware concept. It is NOT in the
public domain and is NOT freeware. After a reasonable trial period, which
we consider to be 30 days, you MUST register or remove it from use. Any
program using the unregistered version of RIPlink may NOT be distributed or
sold under ANY circumstances at any time. This includes, but is not limited
to, private or pre-release distribution and public distribution. RIPlink
may only be used in the production of door programs. It may NOT be used for
terminal programs, comm programs or BBS packages. Exceptions to this must
be in writing from InterProgramming. RIPlink may NOT be used in the
creation of another toolkit. One registered copy of RIPlink is required for
each programmer who uses RIPlink.
This toolkit and all related programs and documentation are:
Copyright (C) 1994 by Thomas E. Morgan and InterProgramming,
All Rights Reserved.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 4 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Registration Information ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
The unregistered version will either display a short unregistered message
and pause for 10 seconds or will require that you enter a random number at
the local keyboard. Information on this is provided below. When you
register, you wil receive a registered copy of RIPlink and a personalized
registration code. Prices are subject to change without notice.
For your convenience, this form is also provided in the file RIPLINK.REG.
-------------------<Cut Here>-----------------------------------------------
Name :_____________________________________ RIPlink version 1.10
Company :_____________________________________ +-------------------+
| Office use only |
Address 1 :_____________________________________ | |
| Rcvd: |
Address 2 :_____________________________________ | Amt: |
| Sent: |
City/St/Prov:_____________________________________ | Dt: |
+-------------------+
Postal Code :___________________ Voice Number:_______________
Country :___________________ Data Number :_______________
Fax Number :_______________
E-Mail Addresses:__________________________________________________________
Where did you obtain RIPlink? _____________________________________________
Compiler/Version:__________________________________________________________
Comments, suggestions, bug reports, etc (use reverse side if necessary):
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 5 │
└───────────────────────────────────────────────────────────────────────────┘
(Remember, one copy is required for each programmer that uses RIPlink)
RIPlink without source code is $35.00. RIPlink with source code is $75.00.
If you would like RIPlink without source, enter $35.00 here ---+
+--> _______
If you would like RIPlink with source code, enter $75.00 here -+
Enter number of copies here --> X _______
Total Enclosed = _______
In order to obtain your personalized registered copy of RIPlink,
you have the choice of calling our support BBS to download it, or
having it sent via FidoNet. Select your preference:
[ ] I'll download it.
[ ] Please send it to me via FidoNet.
If you would like us to send you a letter informing you when your
registered version is ready for you to download, please include a
self-addressed, stamped envelope.
If you are ordering the source code, please complete the following section.
I, _________________, hereby agree not to release or share any of RIPlink's
source code provided to me by InterProgramming. I also agree not to remove
or obscure the InterProgramming copyright notices.
Signed: ________________________________ Date: ___________
-------------------<Cut Here>-----------------------------------------------
Send this order form along with a check or money order in US funds drawn on
a US bank to:
InterProgramming
P.O. Box 92461
Albuquerque, NM 87199-2461
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 6 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ General Information about RIPlink ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
RIPlink is based off of the Borland Graphics Interface (BGI). The .BGI and
.CHR files are NOT included with the archive. Information on obtaining them
if you need some or all of them is given above (Section: Distribution and
Support.)
RIPlink provides RIPscrip support in two ways. One is an internal support
with various procedures that will translate the given parameters to RIPscrip
commands and send them to the remote side as well and interpret them
locally. The other option is to have RIPlink read in an external .RIP file.
It will then parse and display the RIP screen locally and will optionally
send the commands to the remote side. Because RIPlink is still under
development, it does not fully support all of the commands that make up
RIPscrip. It also has no interactive ability for the Sysop. It will
display the graphics, but will not do mouse support, etc. This may be added
in a future release.
RIPlink is an Object Oriented toolkit. Although not everyone is familiar
with OOP programming, we feel that the provided examples should be enough to
fully use RIPlink. If you have difficulty, support is available from the
locations listed above (Section: Distribution and Support.)
The RIPscrip commands that require that the remote terminal return a value
must be handled with care. RIPlink will only send the codes. It will NOT
wait for the returned information; this is left up to the programmer.
If you are looking for more information regarding the RIPscrip standard, it
is highly suggested that you obtain and read the RIPscrip specification
document. As of this release, the latest version is 1.54.00.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 7 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Installation Information ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
As mentioned above, RIPlink has several different versions. The following
information refers to the different models of RIPlink (EXTernal, INTernal,
and ALL.) Please note that TP 5.5 does not have the ALL model.
As mentioned above, RIPlink has several different versions. You will need
to install the version(s) that best fit your needs. For large applications,
we suggest that you use the EXTernal version. For smaller applications, the
ALL version is useful as it combines all the code into one executable with
requiring external driver files. The INTernal version is best used when you
only need the basic five fonts (0-4). Please note that TP 5.5 does not
support the ALL model. The file names in each version are the same, so
don't attempt to install more than one version in a directory. Please also
note that RIPlink relies upon the GRAPH unit provided with TP. Make sure
that RIPlink has easy access to the GRAPH unit and the appropriate driver
files as necessary.
The installation itself is fairly simple. Once you have chosen the version
which will best serve your needs, unarchive the appropriate file and place
the files in one directory. Then tell TP where to look for the files. In
TP 6.0 and 7.0, this is under Options.Directories.Unit_Directories.
As an introduction to RIPlink we suggest working with RIPDOOR until it is
properly interfacing with the door toolkit. Then move on to using RIPlink
in your own projects.
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Basic Memory Requirements ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
The following memory requirements are based on information gathered from
RIPDOOR under TP7. They may vary from version to version and from
application to application.
No Internal Drivers (Ext): 161k
Basic 5 Internal (Int): 193k
Extended Drivers (All): 266k
Please note that these figures are from our testing here at InterProgramming
and will not necessarily match your results.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 8 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Interfacing with Door Toolkits ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
RIPlink has no internal comm routine support. Instead, RIPlink must be
given information about your existing comm routines whether they are a 3rd
party toolkit, or your own routines. This section will explain how to set
up RIPlink and your comm routines so that they will talk to each other.
Because of the OOP structure of RIPlink, we can simply override one of
RIPlink's procedures to call the appropriate procedure(s) in the comm
routines. This is done by first creating a descendent of the RIPlink
object:
RIPtr = ^RIPObject;
RIPObject = object(RIPObj)
Procedure SendStr(instr : string); virtual;
end;
Now, the SendStr procedure just needs to be overriden so that it will call
the proper procedure to send strings over the modem.
Procedure RIPObject.SendStr(instr : string);
begin
DisplayRemote(instr+#13#10);
end;
This procedure calls the procedure DisplayRemote and sends it the string to
send over the modem. Notice that the procedure appends a CRLF (#13#10) to
the end of the string. Because some comm routines send a CRLF
automatically, we have left it up to the individual programmer to handle.
This is so the CRLF doesn't end up getting sent twice. DisplayRemote will
be different for each set of comm routines, and mostly likely will have a
different name. Also, the procedure you call MUST NOT send the characters
to the local console. If it does send the characters to the local console,
RIPlink's support to send RIP codes to the user and let the Sysop still use
ANSI will be void. In this example, DisplayRemote takes the string and
sends the characters directly to the user. It does not display anything on
the local screen at all.
The next item that must be dealt with is handling the status line. The code
necessary to override the Status Line may be easy or difficult depending on
the nature of your comm toolkit. Of course, with the source code to the
toolkit, it's not that difficult. If you have trouble, contact us and we'll
be happy help you. What must be done is to override or change the existing
status line procedure such that it calls RIPlink's status line procedure.
It ALSO must fill in the string variable:
RipObj.StatText : String[75];
This variable tells RIPlink what text to display. Please note that the
override should ONLY be called if the Sysop wants RIP. The status line has
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 9 │
└───────────────────────────────────────────────────────────────────────────┘
no effect on the user's side. Here is an example procedure that gets called
from a door toolkit. Note that this procedure then calls RIPlink's StatLine
procedure.
Procedure StatusL; far;
begin
RIP^.StatText := UserName+', '+baud+', Time: '+inttostr(timeremaining);
RIP^.StatLine;
end;
This is a simple example which just sets the string variable and then calls
StatLine to display the text.
There is a full example of how to override everything mentioned in this
section in the file RIPDOOR.PAS.
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Definitions: Constants ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
MegaArray : array[0..35] of Char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
Although this probably won't be useful, it is listed here in case you choose
to write your own procedures to convert Decimal to/from MegaNums. MegaNums
are the number system used with all RIPscrip commands. MegaNum is the
shortened name for HexaTriDeciaml. MegaNums are a base-36 number system
with digits ranging from 0-9,A-Z.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 10 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Definitions: Types ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
These are just typical string constants that RIPlink uses:
Str2 = string[2];
Str4 = string[4];
Str12 = string[12];
This record is used for the various polygon related procedures. Details
will be given in the procedures.
PointRec = record
X : word;
Y : word;
end;
This is the Root object. It serves no purpose except to be inherited by the
RIPlink object.
RootPtr = ^Root;
Root = object
constructor Init;
destructor Done; virtual;
end;
This is the RIPlink object. Each part is covered in a later section.
Please note that all parameters are in Decimal, NOT MegaNums. RIPlink does
the conversion for you.
RipPtr = ^RipObj;
RipObj = object(Root)
IconDir : DirStr;
StatText : String[75];
LocalRip : Boolean;
Constructor Init(UseRip : boolean);
Function WordToMega(Num : word) : str2;
Function WordToMega4(Num : word) : str4;
Function MegaToWord(S2 : str2) : word;
Function Mega4ToLong(S4 : Str4) : Longint;
Procedure RipTextWindow(x0,y0,x1,y1: byte; wrap: boolean; size: byte);
Procedure RipViewPort(x0,y0,x1,y1 : word);
Procedure RipResetWindows;
Procedure RipEraseWindow;
Procedure RipEraseView;
Procedure RipGotoXY(x0,y0 : byte);
Procedure RipHome;
Procedure RipEraseEOL;
Procedure RipColor(clr : byte);
Procedure RipSetPalette(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,
c14,c15,c16 : word);
Procedure RipOnePalette(color,value : word);
Procedure RipWriteMode(mode : byte);
Procedure RipMove(x0,y0 : word);
Procedure RipText(instr : string);
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 11 │
└───────────────────────────────────────────────────────────────────────────┘
Procedure RipTextXY(x0,y0 : word; instr : string);
Procedure RipFontStyle(font, direct, size : byte);
Procedure RipPixel(x0,y0 : word);
Procedure RipLine(x0,y0,x1,y1 : word);
Procedure RipRectangle(x0,y0,x1,y1 : word);
Procedure RipBar(x0,y0,x1,y1 : word);
Procedure RipCircle(x0,y0,radius : word);
Procedure RipOval(x0,y0,stangle,endangle,xrad,yrad : word);
Procedure RipFilledOval(x0,y0,xrad,yrad : word);
Procedure RipArc(x0,y0,stangle,endangle,rad : word);
Procedure RipOvalArc(x0,y0,stangle,endangle,xrad,yrad : word);
Procedure RipPieSlice(x0,y0,stangle,endangle,rad : word);
Procedure RipOvalPieSlice(x0,y0,stangle,endangle,radx,rady : word);
Procedure RipBezier(x0,y0,x1,y1,x2,y2,x3,y3,count : word);
Procedure RipPolygon(numpoints : word; var polypoints);
Procedure RipFillPoly(numpoints : word; var polypoints);
Procedure RipFill(x0,y0,border : word);
Procedure RipLineStyle(style,pattern,thick : word);
Procedure RipFillStyle(style,color : word);
Procedure RipFillPattern(pattern : fpt; color : word);
Procedure RipMouse(x0,y0,x1,y1 : word; click, clear : boolean;
instr : string);
Procedure RipKillMouseFields;
Procedure RipBeginText(x0,y0,x1,y1 : word);
Procedure RipRegionText(Justify : boolean; instr : string);
Procedure RipEndText;
Procedure RipGetImage(x0,y0,x1,y1 : word);
Procedure RipPutImage(x0,y0,mode : word);
Procedure RipWriteIcon(fname : str12);
Procedure RipLoadIcon(x0,y0,mode : word; clipbrd : boolean;
fname : str12);
Procedure RipButtonStyle(wid,hgt,orient,flags,bevsize,dfore,dback,
bright,dark,surface,grp_no,flags2,uline_col,
corner_col : word);
Procedure RipButton(x0,y0,x1,y1,hotkey : word; flags : byte;
icon : str12; sLabel : string; Cmd : string);
Procedure RipDefine(flags : word; textvar : str12; width : byte; ques,
default : string);
Procedure RipQuery(mode : byte; instr : string);
Procedure RipCopyRegion(x0,y0,x1,y1,destline : word);
Procedure RipReadScene(fname : str12);
Procedure RipFileQuery(mode : word; fname : str12);
Procedure RipEnterBlockMode(ul : boolean; proto,ftype : word;
fname : str12);
Procedure RipNoMore;
Procedure SendStr(instr : string); virtual;
Procedure StatLine;
Destructor Done; virtual;
Function DisplayRIPfile(Path : string): boolean;
Procedure ParseRip(c : char; sendchar : boolean);
end;
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 12 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Definitions: Variables ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
RipObj.IconDir : DirStr;
This is the directory RIPlink will look in for *.ICN files. If it's not
defined, it will default to the current directory.
RipObj.StatText : String[75];
This is the string which contains the text to display on the status line.
RipObj.LocalRip : Boolean;
If this is true, then RIPlink will display graphics locally. If it's false,
then RIPlink will only send RIP codes to the remote side.
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Definitions: Procedures, Functions, and Methods ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
Init constructor
─────────────────────────────────────────────────────────────────────────────
Purpose : Initializes the RIPlink Object
Declaration: Init(UseRip : Boolean);
Variables : UseRip : Display graphics locally
WordToMega function
─────────────────────────────────────────────────────────────────────────────
Purpose : Convert a Word to a MegaNum
Declaration: WordToMega(Num : word) : Str2;
Returns : 2 Digit MegaNum
Variables : Num : Decimal number to convert
Notes : A MegaNum is RIPscrip's number format. This function is mostly
used internally to RIPlink, but is provided here in case you
find a use for it. Note that the word must not be larger at
1295 as that is the maximum for a 2 digit meganum. If your
word is 1296 or larger, use the WordToMega4 function described
below.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 13 │
└───────────────────────────────────────────────────────────────────────────┘
WordToMega4 function
─────────────────────────────────────────────────────────────────────────────
Purpose : Convert a Word to a 4 digit MegaNum
Declaration: WordToMega4(Num : Word) : Str4;
Returns : 4 Digit MegaNum
Variables : Num : Decimal number to convert
Notes : This function operates just like the WordToMega function. The
only difference is in the length of the meganum returned.
MegaToWord function
─────────────────────────────────────────────────────────────────────────────
Purpose : Convert a MegaNum to a Word
Declaration: MegaToWord(S2 : Str2) : Word;
Returns : Word
Variables : S2 : 2 Digit MegaNum
Notes : This function turns a 2 digit meganum into a word.
Mega4ToLong function
─────────────────────────────────────────────────────────────────────────────
Purpose : Convert a 4 digit MegaNum to a Longint
Declaration: Mega4ToLong(S4 : Str4) : Longint;
Returns : Longint
Variables : S4 : 4 Digit MegaNum
Notes : This takes a 4 digit meganum and turns it into a longint.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 14 │
└───────────────────────────────────────────────────────────────────────────┘
RipTextWindow procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Define the text window
Declaration: RipTextWindow(x0,y0,x1,y1 : Byte; Wrap : Boolean; Size : Byte);
Support : Send only
Variables : x0,y0 : Upper lefthand coordinates
x1,y1 : Lower righthand coordinates
Wrap : Wrap text at right edge?
Size : Size of characters (see char)
Size Font Size X Range Y Range
───────────────────────────────────
0 8x8 0-79 0-42
1 7x8 0-90 0-42
2 8x14 0-79 0-24
3 7x14 0-90 0-24
4 16x14 0-39 0-24
RipViewPort procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Define the view port
Declaration: RipViewPort(x0,y0,x1,y1 : Word);
Support : Send and process
Variables : x0,y0 : Upper lefthand coordinates
x1,y1 : Lower righthand coordinates
RipResetWindows procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Reset the RIP screen, mouse, buttons, etc.
Declaration: RipResetWindows;
Support : Send and process
Notes : This is a "reset button" for RIPscrip. Everything is returned
to its default state when this is called. This includes view
port, text screen, mouse regions, palettes, etc.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 15 │
└───────────────────────────────────────────────────────────────────────────┘
RipEraseWindow procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Erase text window
Declaration: RipEraseWindow;
Support : Send only
RipEraseView procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Erase view port
Declaration: RipEraseView;
Support : Send and process
RipGotoXY procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Move text cursor
Declaration: RipGotoXY(x0,y0 : Byte);
Support : Send only
Variables : x0,y0 : Location to move text cursor to
RipHome procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Home the text cursor
Declaration: RipHome;
Support : Send only
Notes : This moves the text cursor to the upper lefthand corner of the
text window.
RipEraseEOL procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Erase to the End of Line (text)
Declaration: RipEraseEOL;
Support : Send only
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 16 │
└───────────────────────────────────────────────────────────────────────────┘
RipColor procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set drawing color
Declaration: RipColor(Clr : Byte);
Support : Send and process
Variables : Clr : New drawing color (see char)
Value Color
─────────────────────────────────────────────────
00 Black (00 is always the background color)
01 Blue
02 Green
03 Cyan
04 Red
05 Magenta
06 Brown
07 Light Gray
08 Dark Gray
09 Light Blue
10 Light Green
11 Light Cyan
12 Light Red
13 Light Magenta
14 Yellow
15 White
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 17 │
└───────────────────────────────────────────────────────────────────────────┘
RipSetPalette procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set 16 color palette
Declaration: RipSetPalette(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,
c15,c16 : Word);
Support : Send and process
Variables : c1..c16 : Each color in the palette (see chart)
RIP Palette Master Palette
Color Code Color Code Color
───────────────────────────────────────────────
01 (00) 0 Black
02 (01) 1 Blue
03 (02) 2 Green
04 (03) 3 Cyan
05 (04) 4 Red
06 (05) 5 Magenta
07 (06) 7 Brown
08 (07) 20 Light Gray
09 (08) 56 Dark Gray
10 (09) 57 Light Blue
11 (10) 58 Light Green
12 (11) 59 Light Cyan
13 (12) 60 Light Red
14 (13) 61 Light Magenta
15 (14) 62 Yellow
16 (15) 63 White
This chart lists the default colors.
RipOnePalette procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set one color in the palette
Declaration: RipOnePalette(Color,Value : Word);
Support : Send and process
Variables : Color : Which color to change (0-15)
Value : New color for palette (0-63) (see chart above)
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 18 │
└───────────────────────────────────────────────────────────────────────────┘
RipWriteMode procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set the write mode
Declaration: RipWriteMode(Mode : Byte);
Support : Send and process
Variables : Mode : New write mode (see chart)
Mode Description
──────────────────────────────────────
00 Normal drawing mode (overwrite)
01 XOR (complimentary) mode
RipMove procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Move the Current Pointer (CP)
Declaration: RipMove(x0,y0 : Word);
Support : Send and process
Variables : x0,y0 : Location to move to
Notes : This procedure is used to move the graphics pointer, also known
as the current pointer (CP).
RipText procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Write text at CP
Declaration: RipText(InStr : String);
Support : Send and process
Variables : InStr : String to write
Notes : This procedure write "graphics" text. The text is written in a
font in the view port. This text does not go into the text
window.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 19 │
└───────────────────────────────────────────────────────────────────────────┘
RipTextXY procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Write text at a specified location
Declaration: RipTextXY(x0,y0 : Word; InStr : String);
Support : Send and process
Variables : x0,y0 : Location to start writing text at
InStr : String to write
Notes : This procedure is really a combination of the RipMove procedure
and the RipText procedure. As in RipText, this text is
"graphics" text.
RipFontStyle procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set font type, direction, and size
Declaration: RipFontStyle(Font, Direct, Size : Byte);
Support : Send and process
Variables : Font : Font to use (see chart)
Direct : Direction of text (see chart)
Size : Size of font (1-10)
Font Description of Font
────────────────────────────────
00 Default 8x8 font
01 Triplex Font
02 Small Font
03 Sans Serif Font
04 Gothic [Old English] Font
05 Script Font
06 Simplex Font
07 Triplex Script Font
08 Complex Font
09 European Font
10 Bold Font
Value Direction
──────────────────
00 Horizontal
01 Vertical
Notes : Except for font 0, all fonts are scalable. Font 0 is
bit-mapped and looks best in size 1. Fonts 0-4 are the
standard fonts. Fonts 5-10 are only available in the RIP 1.53+
version. Font sizes may range from 1 to 10.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 20 │
└───────────────────────────────────────────────────────────────────────────┘
RipPixel procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a pixel in current drawing color
Declaration: RipPixel(x0,y0 : Word);
Support : Send and process
Variables : x0,y0 : Location to put pixel
RipLine procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a line
Declaration: RipLine(x0,y0,x1,y1 : Word);
Support : Send and process
Variables : x0,y0 : Beginning of the line
x1,y1 : End of the line
RipRectangle procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a rectangle
Declaration: RipRectangle(x0,y0,x1,y1 : Word);
Support : Send and process
Variables : x0,y0 : Upper lefthand corner of rectangle
x1,y1 : Lower righthand corner of rectangle
RipBar procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a rectangle and fill it
Declaration: RipBar(x0,y0,x1,y1 : Word);
Support : Send and process
Variables : x0,y0 : Upper lefthand corner of rectangle
x1,y1 : Lower righthand corner of rectangle
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 21 │
└───────────────────────────────────────────────────────────────────────────┘
RipCircle procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a circle
Declaration: RipCircle(x0,y0,Radius : Word);
Support : Send and process
Variables : x0,y0 : Center of circle
Radius : Length of the radius of the circle
RipOval procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw an oval
Declaration: RipOval(x0,y0,StAngle,EndAngle,xRad,yRad : Word);
Support : Send and process
Variables : x0,y0 : Center of oval
StAngle : Starting angle (see diagram)
EndAngle : Ending angle (see diagram)
xRad : Length of horizontal axis
yRad : Length of vertical axis
90°
│
180°──┼── 0°
│
270°
Notes : A starting angle of 0 and an ending angle of 360 will draw a
complete oval. The angles go counter-clockwise starting at 3
o'clock.
RipFilledOval procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw an oval and fill it
Declaration: RipFilledOval(x0,y0,xRad,yRad : Word);
Support : Send and process
Variables : x0,y0 : Center of oval
xRad : Length of horizontal axis
yRad : Length of vertical axis
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 22 │
└───────────────────────────────────────────────────────────────────────────┘
RipArc procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a circular arc
Declaration: RipArc(x0,y0,StAngle,EndAngle,Rad : Word);
Support : Send and process
Variables : x0,y0 : Center of circle which the arc lies on
StAngle : Starting angle (see diagram in RipOval procedure)
EndAngle : Ending angle (see diagram in RipOval procedure)
Rad : Length of the radius of the circle which the arc
lies on
RipOvalArc procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw an oval arc
Declaration: RipOvalArc(x0,y0,StAngle,EndAngle,xRad,yRad : Word);
Support : Send and process
Variables : x0,y0 : Center of oval
StAngle : Starting angle (see diagram in RipOval procedure)
EndAngle : Ending angle (see diagram in RipOval procedure)
xRad : Length of horizontal axis
yRad : Length of vertical axis
Notes : This procedure is identical to the RipOval procedure. It is
included here for completeness.
RipPieSlice procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a pie slice
Declaration: RipPieSlice(x0,y0,StAngle,EndAngle,Rad : Word);
Support : Send and process
Variables : x0,y0 : Center of circle which the pie slice lies on
StAngle : Starting angle (see diagram in RipOval procedure)
EndAngle : Ending angle (see diagram in RipOval procedure)
Rad : Length of the radius of circle which the pie slice
lies on
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 23 │
└───────────────────────────────────────────────────────────────────────────┘
RipOvalPieSlice procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw an oval pie slice
Declaration: RipOvalPieSlice(x0,y0,StAngle,EndAngle,RadX,RadY:Word);
Support : Send and process
Variables : x0,y0 : Center of circle which the pie slice lies on
StAngle : Starting angle (see diagram in RipOval procedure)
EndAngle : Ending angle (see diagram in RipOval procedure)
RadX : Length of horizontal axis of oval which the pie
slice lies on
RadY : Length of vertical axis of oval which the pie
slice lies on
RipBezier procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a bezier curve
Declaration: RipBezier(x0,y0,x1,y1,x2,y2,x3,y3,Count : Word);
Support : Send only
Variables : x0,y0 : Beginning point of the curve
x1,y1 : Point that pulls the curve; not necessarily on the
curve
x2,y2 : Point that pulls the curve; not necessarily on the
curve
x3,y3 : Ending point of the curve
Count : Number of segments to draw the curve with
RipPolygon procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a closed polygon
Declaration: RipPolygon(NumPoints : Word; Var PolyPoints);
Support : Send and process
Variables : NumPoints : Number of points on the polygon
PolyPoints : Array[1..NumPoints] of PointRec (defined under
Definitions: Types)
Notes : PolyPoints is a variable array. It may be anywhere from 2 to
512 records (or points).
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 24 │
└───────────────────────────────────────────────────────────────────────────┘
RipFillPoly procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a closed polygon and fill it
Declaration: RipFillPoly(NumPoints : Word; Var PolyPoints);
Support : Send and process
Variables : NumPoints : Number of points on the polygon
PolyPoints : See definition and notes under RipPolygon
RipFill procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Flood fill an area
Declaration: RipFill(x0,y0,Border : Word);
Support : Send and process
Variables : x0,y0 : A point in the area to fill
Border : The color of the border surrounding the area to be
filled
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 25 │
└───────────────────────────────────────────────────────────────────────────┘
RipLineStyle procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set the line style, pattern, and thickness
Declaration: RipLineStyle(Style,Pattern,Thick : Word);
Support : Send and process
Variables : Style : Line style (see chart)
Pattern : User defined pattern
Thick : Line thickness (see chart)
Style Description Binary
──────────────────────────────────────────────
00 Normal, Solid Line 1111111111111111
01 Dotted Line 0011001100110011
02 Centered Line 0001111000111111
03 Dashed Line 0001111100011111
04 Custom Defined line
Thick Description
───────────────────────────────
01 Lines are 1 pixel wide
03 Lines are 3 pixels wide
Notes : If Style is 4, then the pattern is defined by the variable
Pattern. Pattern is a 16-bit representation of the pattern.
Repeating Pattern Binary Coding Decimal
──────────────────────────────────────────────
- - - - - - - - 1010101010101010 43690
---- ---- 1111000011110000 61680
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 26 │
└───────────────────────────────────────────────────────────────────────────┘
RipFillStyle procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set the fill style and color
Declaration: RipFillStyle(Style,Color : Word);
Support : Send and process
Variables : Style : Fill pattern style (see chart)
Color : Fill color
Pattern Description Example Misc
───────────────────────────────────────────────────────────────
00 Fill with background color (color #0)
01 Solid Fill (fill color)
02 Line Fill ----------- (thick lines)
03 Light Slash Fill / / / / (thin lines)
04 Normal Slash Fill // // // // (thick lines)
05 Normal Backslash Fill \\ \\ \\ \\ (thick lines)
06 Light Backslash Fill \ \ \ \ (thin lines)
07 Light Hatch Fill ########### (thin lines)
08 Heavy Cross Hatch Fill XXXXXXXXXXX (thin lines)
09 Interleaving Line Fill +-+-+-+-+-+ (thin lines)
10 Widely spaced dot fill ' . ' . ' . (pixels only)
11 Closely spaced dot fill '.'.'.'.'.' (pixels only)
RipFillPattern procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Set a custom fill pattern and color
Declaration: RipFillPattern(Pattern : FPT; Color : Word);
Support : Send and process
Variables : Pattern : Custom pattern (Array[1..8] of Byte)
Color : Fill color
Notes : The custom pattern is an 8x8 square area. Each row is one byte
in the array. The pattern is bit-mapped much like the
RipLineStyle command above.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 27 │
└───────────────────────────────────────────────────────────────────────────┘
RipMouse procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Define a mouse region
Declaration: RipMouse(x0,y0,x1,y1 : Word; Click, Clear : Boolean;
InStr : String);
Support : Send only
Variables : x0,y0 : Upper lefthand corner of region
x1,y1 : Lower righthand corner of region
Click : Invert the region when clicked?
Clear : Clear screen when clicked?
InStr : String to send when region is clicked
RipKillMouseFields procedures
─────────────────────────────────────────────────────────────────────────────
Purpose : Kill all mouse regions
Declaration: RipKillMouseFields;
Support : Send only
RipBeginText procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Begin a text region
Declaration: RipBeginText(x0,y0,x1,y1 : Word);
Support : Send only
Variables : x0,y0 : Upper lefthand corner of text region
x1,y1 : Lower righthand corner of text region
Notes : This command defines a region on the view port for text. This
is usually used for long streams of text. Following this
command should be one or more RipRegionText commands followed
by a RipEndText command.
RipRegionText procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Put text in the current text region
Declaration: RipRegionText(Justify : Boolean; InStr : String);
Support : Send only
Variables : Justify : Do left/righthand justification?
InStr : String to write in the text region
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 28 │
└───────────────────────────────────────────────────────────────────────────┘
RipEndText procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : End the current text region
Declaration: RipEndText;
Support : Send only
RipGetImage procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Get an image from the screen and place it in the clipboard (CB)
Declaration: RipGetImage(x0,y0,x1,y1 : Word);
Support : Send and process
Variables : x0,y0 : Upper lefthand corner of image
x1,y1 : Lower righthand corner of image
RipPutImage procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Move the image in the CB to the screen
Declaration: RipPutImage(x0,y0,Mode : Word);
Support : Send and process
Variables : x0,y0 : Upper lefthand corner of image
Mode : Mode to paste image onto screen with (see chart)
Mode Description Logical
───────────────────────────────────────────────────────────────
00 Paste the image on-screen normally (COPY)
01 Exclusive-OR image with the one already on screen (XOR)
02 Logically OR image with the one already on screen (OR)
03 Logically AND image with the one already on screen (AND)
04 Paste the inverse of the image on the screen (NOT)
RipWriteIcon procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Write the image in the CB to disk
Declaration: RipWriteIcon(FName : Str12);
Support : Send and process
Variables : FName : Icon name (with extension)
Notes : This will override an icon with the same name if one exists.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 29 │
└───────────────────────────────────────────────────────────────────────────┘
RipLoadIcon procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Load icon from disk, paste to screen, and optionally paste to CB
Declaration: RipLoadIcon(x0,y0,Mode: Word; ClipBrd: Boolean; FName: Str12);
Support : Send and process
Variables : x0,y0 : Upper lefthand corner of image
Mode : Mode to paste image with (see chart in RipPutImage)
ClipBrd : Put the image into the clipboard?
FName : Icon name
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 30 │
└───────────────────────────────────────────────────────────────────────────┘
RipButtonStyle procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Define the button style
Declaration: RipButtonStyle(Wid,Hgt,Orient,Flags,BevSize,DFore,DBack,Bright,
Dark,Surface,Grp_No,Flags2,ULine_Col,Corner_Col : Word);
Support : Send and process
Variables : Wid : Width of a plain button
Hgt : Height of a plain button
Orient : Orientation of button label (see chart)
Flags : Flags 1 (see chart)
BevSize : Size of bevel (if enabled)
DFore : Text foreground color
DBack : Dropshadow color
Bright : Hi-lighted color
Dark : Shadowed color
Surface : Button surface color
Grp_No : Group Number
Flags2 : Flags 2 (see chart)
ULine_Col : Underline color
Corner_Col : Corner color
Value Description of Orientation
─────────────────────────────────────────────────
00 Display label above button
01 Display label to the left of button
02 Display label in the center of the button
03 Display label to the right of button
04 Display label beneath the button
Value Description of Flags Field #1
─────────────────────────────────────────
1 Button is a "Clipboard Button"
2 Button is "Invertable"
4 Reset screen after button click
8 Display Chisel special effect
16 Display Recessed special effect
32 Dropshadow the label (if any)
64 Auto-stamp image onto Clipboard
128 Button is an "Icon Button"
256 Button is a "Plain Button"
512 Display Bevel special effect
1024 Button is a Mouse Button
2048 Underline hot-key in label
4096 Make Icon Button use Hot Icons
8192 Adj. vertical centering of label
16384 Button belongs to a Radio Group
32768 Display Sunken special effect
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 31 │
└───────────────────────────────────────────────────────────────────────────┘
Value Description of Flags Field #2
─────────────────────────────────────────
1 Button is in a check box group
2 Highlight hotkey character
4 Explode (zoom out when clicked)
8 Left Justify Label (top/ctr/btm)
16 Right Justify Label (top/ctr/btm)
Notes : Flags1 and Flags2 are bitmapped. As such, you may add values
together to get the desired combination.
RipButton procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Draw a button
Declaration: RipButton(x0,y0,x1,y1,HotKey: Word; Flags: Byte; Icon: Str12;
sLabel: String; Cmd: String);
Support : Send and process
Variables : x0,y0 : Upper lefthand corner of the button
x1,y1 : Lower righthand corner of the button
HotKey : ASCII value of hotkey character for this button
(If this is a letter, it should be uppercase)
Flags : Flags (see chart)
Icon : Name of icon (if any)
sLabel : Button Label (if any)
Cmd : Command for terminal to return when this button is
selected
Value Description
──────────────────────────────────────────────────
1 Draw button as already selected
2 Button is "default" when <ENTER> is pressed
Notes : Flags is a bitmapped field.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 32 │
└───────────────────────────────────────────────────────────────────────────┘
RipDefine procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Define a text variable
Declaration: RipDefine(Flags: Word; TextVar: Str12; Width: Byte; Ques,
Default : String);
Support : Send only
Variables : Flags : Flags (see chart)
TextVar : Variable Identifier
Width : Variable Length
Ques : Question to prompt user with
Default : Default answer (if any)
Value Description
──────────────────────────────────────
01 Save Variable to database
02 Cannot specify a blank response
04 Non-interactive query
Notes : Flags is a bitmapped field.
RipQuery procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Query user for a text variable
Declaration: RipQuery(Mode : Byte; InStr : String);
Support : Send only
Variables : Mode : Query Mode (see chart)
InStr : Query prompt (see Notes)
Mode Description
───────────────────────────────────────────────────────────
0 Process the query command NOW (upon receipt)
1 Process when mouse clicked in Graphics Window
2 Process when mouse clicked in Text Window (any text
variables that return X or Y mouse coordinates return
TEXT coordinates, not graphics coordinates in this
mode. These coordinates are two-digit values instead
of the graphical values that are four digits).
Notes : Due to the various possibilities of this command, it is
suggested that you read about it in the RIPscrip document.
However, it's briefly explained here. InStr includes a
question or statement and a text variable. It might look like
this: 'My name is $FULL_NAME$.' If the text variable
$FULL_NAME$ contained 'John Doe' then the result would be
something like: 'My name is John Doe.'
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 33 │
└───────────────────────────────────────────────────────────────────────────┘
RipCopyRegion procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Copy a region on the screen up or down
Declaration: RipCopyRegion(x0,y0,x1,y1,DestLine : Word);
Support : Send only
Variables : x0,y0 : Upper lefthand corner of region
x1,y1 : Lower righthand corner of region
DestLine : New Y scan line to copy image to
Notes : This command copies the specified region up or down. It does
not clear the original image. This command does not adhere to
the limitations imposed by the view port. It will work
anywhere on the screen.
RipReadScene procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Display/process a RIP file
Declaration: RipReadScene(FName : Str12);
Support : Send only
Variables : FNames : RIP file name
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 34 │
└───────────────────────────────────────────────────────────────────────────┘
RipFileQuery procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Get information of a file (usually an icon file)
Declaration: RipFileQuery(Mode : Word; FName : Str12);
Support : Send only
Variables : Mode : Query mode (see chart)
FName : Name of file to get information about
Mode Description
─────────────────────────────────────────────────
00 Simply query the existence of the file. If it exists, a
"1" is returned. Otherwise a "0" is returned to the Host
(without a carriage return).
01 Same as 0, except a carriage return is added after the
response.
02 Queries the existence of a file. If it does not exist, a
"0" is returned to the Host followed by a carriage
return. If it does exist, the returned text is a "1."
followed by the file size (in decimal). The return
sequence is terminated by a carriage return. An example
of the returned text could be "1.20345".
03 Queries extended return information. If the file does
not exist, a "0" is returned followed by a carriage
return. If it does exist, the text returned to the Host
is in the Format: 1.size.date.time <cr>. An example of a
return statement could be "1.20345.01/02/93.03:04:30<cr>"
04 Queries extended return information. If the file does
not exist, a "0" is returned followed by a carriage
return. If it does exist, the text returned to the Host
is in the Format: 1.filename.size.date.time <cr>. An
example of a return statement could be
"1.MYFILE.RIP.20345.01/02/93.03:04:30 <cr>". Note that
the file extension adds another period into the return
text.
Notes : You must check for the return information and deal with it
yourself.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 35 │
└───────────────────────────────────────────────────────────────────────────┘
RipEnterBlockMode procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Enter file transfer mode with the remote system
Declaration: RipEnterBlockMode(UL: Boolean; Proto,FType: Word;
FName: Str12);
Support : Send only
Variables : UL : True: Upload; False: Download
Proto : Protocol to use (see chart)
FType : Transfer Type (see char)
FName : FileName (if UL, Xmodem, or Kermit)
Value Protocol Filename Required?
──────────────────────────────────────────────
0 Xmodem (checksum) Yes
1 Xmodem (CRC) Yes
2 Xmodem-1K Yes
3 Xmodem-1K (G) Yes
4 Kermit Yes
5 Ymodem (batch) No
6 Ymodem-G No
7 Zmodem (crash recovery) No
Value Description of Block Transfer Contents
──────────────────────────────────────────────────────────────
0 RIP file sequence (display it)
1 RIP file sequence (store them)
2 ICN file sequence (store them in proper directories)
3 HLP file sequence (store it, and auto-load if needed)
4 COMPOSITE DYNAMIC file sequence (batch protocols only)
5 ACTIVE DYNAMIC file sequence (batch protocols only)
Notes : Composite Dynamic and Active Dynamic modes process the files
based on file extension. They will only work for .RIP and .ICN
files though. Composite just stores the files while Active
stores and displays the .RIP files.
RipNoMore procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : End a RIP sequence
Declaration: RipNoMore;
Support : Send and process
Notes : It's suggested that you send 3 of these each time you are going
to prompt the user for input, etc.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 36 │
└───────────────────────────────────────────────────────────────────────────┘
SendStr procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : A procedure to be overwritten to work with your comm routines
Declaration: SendStr(InStr : String);
Notes : An undefined procedure designed to be overwritten. See the
example door provided.
StatLine procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Display a status line
Declaration: StatLine;
Notes : This should be called after RipObj.StatText is (re)set.
Done destructor
─────────────────────────────────────────────────────────────────────────────
Purpose : End the RIPlink processor
Declaration: Done;
Notes : Cleans up. Use when ending your program. Returns to text
mode, etc.
DisplayRIPfile function
─────────────────────────────────────────────────────────────────────────────
Purpose : Display a RIP file.
Declaration: DisplayRIPfile(Path : String): Boolean;
Returns : True: File existed; False: File did not exist
Variables : Path : Full path and name of .RIP file to display
Notes : This procedure calls ParseRip for each character. You may
choose to write your own processor if this one does not suit
your needs.
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 37 │
└───────────────────────────────────────────────────────────────────────────┘
ParseRip procedure
─────────────────────────────────────────────────────────────────────────────
Purpose : Parse next character in a RIPscrip sequence
Declaration: ParseRip(C : Char; SendChar : Boolean);
Variables : C : Character to parse
SendChar : Send this character out the port?
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 38 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Programming Suggestions ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
It is suggested that you include a reference in your documentation that
RIPscrip currently only supports EGA graphics. This will hopefully
eliminate the possibility of people with CGA or Mono monitors who can't seem
to make the RIP graphics work <grin>. RIPlink will still send out RIP codes
to the user, of course.
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Comments from InterProgramming ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
As mentioned above, RIPlink doesn't fully support everything specified by
the RIPscrip standard. At this time, we're looking for code to generate
Bezier curves. If you have any, please send it along so that we can add it
in. We hope you enjoy this product. It has increased registrations of our
products substantially, and we hope it does the same for you. Feel free to
contact us if you need assistance, have comments etc. Also, to any door
author who is interested: Send us a registered copy of your door and we'll
put it up on our board for others to see and use. And, if you send us a
distribution copy, we'll make it available for download and Freq. Finally,
RIP 2.xx is due out sometime in the not too distant future. We will release
another version of RIPlink to support the changes in RIP 2.xx
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 39 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Credits ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
Special thanks go out to the following people:
John Tucker for his support, particularly when first developing RIPlink.
Jason Niver for his tremendous help with many projects and always being
around to help and for being a great friend too!
Jason Trowbridge for just being there and for providing input and comments
on RIPlink. He's also been a great friend.
Michael Welling for his assistance in making RIPlink available for TP 5.5.
And last, but not least, those individuals who sent us messages stating
their interest in this product before it was available, or even known
about.
You were all instrumental in making RIPlink what it is.
THANKS GUYS!
┌───────────────────────────────────────────────────────────────────────────┐
│ RIPlink - Version 1.10 Page 40 │
└───────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
│░░░▒▒▒▓▓▓███ Index to Methods ███▓▓▓▒▒▒░░░│
└───────────────────────────────────────────────────────────────────────────┘
Method Name Page Method Name Page
────────────────── ────── ────────────────── ──────
DisplayRIPfile 36 RipKillMouseFields 27
Done 36 RipLine 20
Init 12 RipLineStyle 25
MegaToWord 13 RipLoadIcon 29
Mega4ToLong 13 RipMouse 27
ParseRip 37 RipMove 18
RipArc 22 RipNoMore 35
RipBar 20 RipOnePalette 17
RipBeginText 27 RipOval 21
RipBezier 23 RipOvalArc 22
RipButton 31 RipOvalPieSlice 23
RipButtonStyle 30 RipPieSlice 22
RipCircle 21 RipPixel 20
RipColor 16 RipPolygon 23
RipCopyRegion 33 RipPutImage 28
RipDefine 32 RipQuery 32
RipEndText 28 RipReadScene 33
RipEnterBlockMode 35 RipRectangle 20
RipEraseEOL 15 RipRegionText 27
RipEraseView 15 RipResetWindows 14
RipEraseWindow 15 RipSetPalette 17
RipFileQuery 34 RipText 18
RipFill 24 RipTextWindow 14
RipFilledOval 21 RipTextXY 19
RipFillPattern 26 RipViewPort 14
RipFillPoly 24 RipWriteIcon 28
RipFillStyle 26 RipWriteMode 18
RipFontStyle 19 SendStr 36
RipGetImage 28 StatLine 36
RipGotoXY 15 WordToMega 12
RipHome 15 WordToMega4 13
--EOF--