Q p4 @` /@`! #@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ @ ` @ ` ׀  @` @`!Aa   !Aa!#Ao')+-/13A579;=?A!CAoGIKMOQ!SAUaY]_/cAeaikmoq!sAuaw{}/@` /@`! #@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ @ ` @ ` ׀  @` @`!Aa   !Aa!#Ao')+-/13A579;=?A!CAoGIKMOQ!SAUaY]_/cAeaikmoq!sAuaw{}/CHAPT04 TUT ;CHAPT05 TUT ;4 CHAPT06 TUT ; COLEXPLDBAS ;4COMPAN PRG ;F>DISK RSC ;4EDITTXTCBAS ;EDITTXTMBAS ;FANCYFMTBAS ;'FSEL_INPLST ; GEMWIND BAS ;=GENCOLORRSC ;}GENMONO RSC ;}HELPBOX1BAS ;HELPBOX DAT ;ICON BAS ;" LOWRADIOLST ;"? MONEXPLDBAS ;%T2README 1ST ;2 TUTOR PRG ;6V9TUTOVL  ;EEWDEHIREZLST ;W 32KCLIP2PRG ;[64KCLIP2PRG ;aCALDEMO1BAS ;gCHAPT01 TUT ;n *CHAPT02 TUT ;yrCHAPT03 TUT ;>  The GFA Companion Tutorials: Copyright (c) 1987 Marathon Computer Press All rights are reserved.  This material may not be reproduced except for the personal use of registered owners of The GFA Companion.  Chapter 4 - Using The GFA Basic Companion Clipboards 4.00 Background  What is a Clipboard? Well, a Clipboard is a glorified scratch pad really. The benefits to be derived from it's usage is the quicker loading of data, graphic images, & etc. The two versions included with this release of The GFA Basic Companion are in two versions; 32K and 64K in size. You say, why only 2 sizes and why not bigger? Well, the Clipboard is not supposed to serve as a full scale Ram Disk, remember that it is there to service the passing of data between programs and to aid in shortening graphic images loading times. If you want a variable size Ram Disk, you sho!uld look into MichTron's M-Disk Plus. Although the Clipboard is in essence a small Ram Drive, it is furnished for a different purpose.  4.01 Applications  An example application would be that you have 2 D.E.G.A.S. screens that you are using with one of your programs and you don't want to have to keep both of the screens resident in Ram throughout the program. Enter the Clipboard! Just have your application move the two screens up into the clipboard to be called upon later when needed. Since the largest of the 2 Clipboards will comfortably hold 2 D.E.G.A.S. screens, there will be no need to access the disk in Drive A later to load them. The access time on the Graphic images and data files stored in one of the Clipboards is phenomenally fast compared to either Floppy or Hard Disk storage.  Perhaps you have a series of programs that will need data interchanged between them. For example you may have just written an accounting program that needs to post the ledger entries to several files, however the various modules are contained in different separately compiled GFA Basic programs. Once again, enter the Clipboard to the rescue! All you would need to do in this case is just write the data to the Clipboard once and Chain between the various modules accessing the data as needed. For an application such as this you'll probably want to use the 32K version of the Clipboard.  These concepts are approaching the Medium Skill to Advanced Level of programming in GFA Basic, but the power afforded by these simple utilities will save you from devising many very complicated solutions worked out in desperation to substitute for a System Clipboard.  4.02 Technical Facts About the Clipboards  1. The Clipboards are installed as Mini-Ram Disks in the Drive M slot.  2. You may install the Drive M Icon from the Desktop for either variety. The data can also be accessed from the Desktop once an Icon has been installed for the Clipboard.  3. To Auto-Boot the Clipboard, just place it in an AUTO folder. To then display the Icon on a permanent basis, install the Clipboard as Drive M and save the Desktop.  4. To access the Clipboard {either variety} from a running GFA Basic Program just use a Chdrive 13 {Drive M} command. Sub-directories may be established within the Clipboard as on any other logical drive. 5. To see if the Clipboard is currently installed, use the Drive Map techniques covered in the .LST libraries and GFATIP files that cover the subject.  6. Remember that you are responsible for the maintenance of the files that are contained on the Clipboard, and if you try to load too many you will get a drive full error. The Dfree(0) and Files command can be used within a running program to help you keep track of how much room remains on the Clipboard. You may also use the Kill command to delete files stored on the Clipboard.  4.03 License Information  As a registered owner of The GFA Basic Companion, you may use the Clipboards in any application that you develop for Commercial Release provided:  The programs are not to be altered in any fashion. Mention the following in Documentation:  This program contains a compiled version of The GFA Basic Companion Clipboard developed by Marathon Computer Press. The Clipboard is (c)1987 Marathon Computer Press  You may not: Upload the Clipboards to any BBS. That includes with any program that needs the Clipboard. Sorry, but that's the deal. If this policy is updated, you will be notified. You may also give away applications using the Clipboard to your friends as long as they understand and accept this conditional license. *9/ZZZ i  The GFA Companion Tutorials: Copyright (c) 1987 Marathon Computer Press All rights are reserved.  This material may not be reproduced except for the personal use of registered owners of The GFA Companion.   Chapter 5 - Sequential File Handling This chapter will briefly discuss how you write to and read from Sequential Files. So without further ado, let's get started.  5.00 Background  A sequential file is one that is read from disk or written to disk one record or line at a time in sequential order. This is different from Random Access file operations as Random Access methods can selectively read records stored in a file, {no particular order}. The most common and easy to use is the Sequential method, so that is the one covered in this tutorial.  5.01 Creating and Writing A File  To design a file you must have some sort of data that you wish to store to disk. That data can be a series of strings, numbers, characters, etc.. For our demonstration we will use a small array of text strings.  Dim Tex_lines$(5) Tex_lines$(1)="Line 1" Tex_lines$(2)="Line 2" Tex_lines$(3)="Line 3" Tex_lines$(4)="Line 4" Tex_lines$(5)="Line 5" ' Now let's open a file to write to 'Open "O", #1,"Sample.Dat" ' Now for the loop to write the data to disk For Loop=1 to 5 Print #1,Tex_lines$(Loop) Next Loop ' Next we close the file Close #1 End 5.02 Reading From a Sequential File  Provided the Tex_lines$ array is still dimensioned, we would read the data back into the array like this.  Open "I", #1,"Sample.Dat" For Loop=1 to 5 Line Input #1,Tex_lines$(Loop) Next Loop Close #1  Line Input allows the full range of characters available on the ST to be read into memory without exclusion.]  True, this is a 'down and dirty' example of File Handling, but perhaps when coupled with the GFA Basic Manual it will further your understanding of reading and writing to sequential files. *9/ZZZ  The GFA Companion Tutorials: Copyright (c) 1987 Marathon Computer Press All rights are reserved. This material may not be reproduced except for the personal use of registered owners of The GFA Companion. Chapter 6 - Advanced Topics and Closing Overview 6.00 Background This short chapter is to head you in the right direction for searching out and using advanced material. The first requirement is that you MUST have reference material. The Three Books listed in the REFS.TXT file are probably the most comprehensive available on the market at the time of this product's publishing. The next section will list some suggested reading. 6.01 Suggested Reading & References 1. ATARI ST GEM Programmer's Reference ABACUS SOFTWARE P.O. Box 7211, Grand Rapids, MI 49510 (616)241-5510 2. ATARI ST Internals ABACUS SOFTWARE (Same address as above) 3. Programmer's Guide To GEM SYBEX, INC. 2344 Sixth Street, Berkeley, CA 94710 4. The ATARI ST Developer's Kit (If you plan on doing commercial release of your software, the price of $300 is worth the reams of documentation and development tools. Comes with a C compiler, Assembler, Resource Construction Set, and more. Not recommended for those that only intend to use GFA Basic for enjoyment.) Contact: ATARI CUSTOMER RELATIONS P.O. Box 61657 Sunnyvale, CA 94088 6.02 The List Libraries and Basic Examples A comprehensive set of procedures is contained within The GFA Basic Companion .LST libraries for you to study and merge into your own programs. VDI, GEMDOS, XBIOS, and BIOS  functions are presented varying degrees of coverage. They are by no means a Full set of instructions that are possible with GFA Basic. The bulk of the procedures are to pick up where GFA Basic is lacking in resident commands. You will note that the majority of the procedures are contained in the AES.LIB. A few of the procedures are duplicates for resident GFA Basic commands, and they are included to show you alternative methods to accomplish a task. Many of the procedures are Cross Referenced for you with some or all of the above listed references to make it easier to locate them in the documents. The first time beginner will want to first become acquainted with GFA Basic as a new language before going off to try out some of the example procedures. On the Libraries Disk there is a folder named Examples.Bas that contains some very well constructed Public Domain programs that will introduce you to a wealth of GFA Basic's capabilities. The programs were downloaded from GEnie's MichTron Product Support Round Table library. My thanks to all of the programmer's that contributed to Public Domain Software on the MichTron RT. Special Thanks to: Mr. Jim Luczak Author of: Picclip.Bas GFA_FX.Bas Vdisamp.Bas 6.03 Disclaimer While every attempt has been made to thoroughly test and implement any and all of the procedures contained in the .LST libraries, there is no guarantee as to the quality and performance of the programs and the fitness for a particular purpose. You assume the ENTIRE risk as to the quality and performance of any and all of the programs contained therein. They are provided here as a part of the Tutorials and are meant to be used as learning tools. If you include them in your own programs for Public Domain Distribution, please place a notice stating where you got the procedure from, IE.. Rem "This procedure extracted from The GFA Basic Companion .LST Libraries." *?  WARNING: The source code generated by Compan.Prg {The Source Code Generator}, may not be distributed in .LST or .BAS format. You must abide by the Licensing Agreement that states you must first Compile or PSAVE the source code. This includes any of the programs that are contained in the Programs Folder on the Program Disk. Any source code produced by the Generator comes under the restriction. No exceptions to this limitation are allowed! Most every development tool on the market utilizes this type of limitation. It would be no different than giving away the Binary Libraries contained within a C compiler package. The Generated Source Code carries full Copyright protection. If you have any questions about giving away any portion of the source code contained on Disks provided with The GFA Basic Companion, please contact MichTron, Inc. *>  *9/ZZZ GfABASIC@VZZZdnnn3|3333333334444REZKXYCHOICE1CHOICE2CHOICE3LXRXTYBYOFFSETOFFSET2ATEMPUSEKEYBDKEYKBOUTCREDLINELINSTYLE EXPLODE.LST EXPLCRD1.LST EXPLTEX1.LST EXPLWID1.LST EXPLCRED.LST EXPLCOLR.LSTL Exploded dialog box demonstration {color}: By John B. Holder 6/28/87 F xF The GFA Basic Companion Computer Generated Source Code 1987   H This source code is Copyright (c) 1987 Marathon Computer Press * && 8 Distributed by MichTron, Inc.  J Legal owners of The GFA Companion are granted a non-exclusive license H to distribute applications containing this source code without any s, additional royalties or licensing fees.  0 Provided the following conditions are met: s B The user agrees not to distribute any applications containing F this source code modified or unmodified in any manner unless the y< the program/application is in compiled or PSAVED form. n F To release this source code in any other manner is a violation of < Title 17 of the U.S. Code governing copyrighted works. o6 Violators will be prosecuted o4 All rights are reserved. d F Please Honor Our Copyright and the Conditions Outlined Above   E F Q F@()!For Med Rez Only | !!Sorry!FrqF! F!8FYF#(!!!@F%!!F!! !GF%!!FMF#YFPqF!># EXPLCOLR.LST procedure #  #+F#FoNow for your object data s o o%!!Fo$!F&Now for the Main Dialog Box Objects ! ! !`F$!F! ! !`F$!@! !PFOMain Box Label R'(!0!in the Slidepercent variable as a number between 0 and 100. .FnT# end EXPLCOLR.LSTdrawlines procedure # ># EXPLCRD1.LST procedure #  #+F#E F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution C*Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box # o6* Warning Warning * 6This style of box will require considerable scaling to work in Low Resolution. i6*3 8Here are the coordinates to adjust for box movement. s@By adjusting these coordinates you can move the box anywhere n:on the screen. Don't forget the different resolutions.  nBMoving a box on screen is as easy as adjusting these 4 points: nEHHFxE Fx E Fx E==Fx E E E ESome High Rez Scaling now.. aFR E   Fc FE EF*@@ !@@ F EF EF EF EF EF  EF@ EF` EF EF EF  EF0 EF@ EF2 E( This is just another example of what isFh2 E( possible with The GFA Basic Companion.Fh E F 4 E$ Demo Prepared by John B. HolderFe2  E# 1987 Marathon Computer PressF$@ E Fm6` E' The GFA Basic Companion is soon to beF* E released by:Fs* E MichTron, Inc.F.  E Tel: (313) 334-5700F 60 E' At Marathon Computer Press, We Go TheF4@ E$ Distance For Creative Computing!FF%!!F $!F! !! F! !! F$!F" ! ! ! F2Here is where we define the text size and style ,to change the size you must change the 6 8however, other modifications may have to occur also. eFt(! !!PFf E00F fF(! !!@Ff E F FE fbFF@'\!  !$ E X P L O D E D DIALOG BOX DEMOF fF@'\! pp!$ E X P L O D E D DIALOG BOX DEMOF FfEG@F (! F('\!# H#  ! F fF(!!!@F$'6! !ContinueF$!F2/! !::! FLFESFERFEPFEQF gZFDgh/:  FD %!!F2/! !::! FF FF FF Pause 5 jF.F @# end of EXPLCRD1.LST procedure # ># EXPLTEX1.LST procedure #  #+F#E F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution C*Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box # o8Here are the coordinates to adjust for box movement. s@By adjusting these coordinates you can move the box anywhere n:on the screen. Don't forget the different resolutions.  nBMoving a box on screen is as easy as adjusting these 4 points: nExxFxE Fx E``Fx E..Fx E E kFF E Fx E  F  FE:This style of box will require considerable scaling to pwork in Low Resolution.  oF %!!Fe kF(!!!PFo kF!(!!!@Fo F!$!F! !! F! !! F$!F"! !! F ldF!N' ! !))FD lFN' ! !))FD F mF!N' ! !) Want More Eh? FD mjFN' ! !) Want More Eh? FD F mF!N' ! d!) 'FD nFN' ! X!) 'FD F nF!N' ! !) As you can see, the possiblities FD nFN' ! !) As you can see, the possiblities FD F o4F!N' ! >!) are really only limited by your own FD oFN' ! 4!) are really only limited by your own FD F oF!N' ! d!) imagination. Every serious GFA Basic FD p:FN' ! X!) imagination. Every serious GFA Basic FD F pF!N' ! !) Programmer will surely want to have FD pFN' ! |!) Programmer will surely want to have FD F qPF!N' ! !) a copy of this program for his or her FD qFN' ! !) a copy of this program for his or her FD F rF!N' ! +!) software library. FD rVFN' ! "!) software library. FD F rF!N' ! >!) 'FD s FN' ! 4!) 'FD F slF!N' ! Q!) This is an example of a text only FD sFN' ! F!) This is an example of a text only FD F t F!N' ! d!) box created by the Companion's Source FD trFN' ! X!) box created by the Companion's Source FD F tF!N' ! w!) Code Generator. FD u&FN' ! j!) Code Generator. FD F uF!N' ! !) 'FD uFN' ! |!) 'FD F v<F!N' ! !) Press Any Key to Return FD vFN' ! !) Press Any Key to Return FD F vF!N' ! !))FD wBFN' ! !))FD FHNow that you box has been created for you, you have to use a routine Jto hold the screen until the user is ready to continue. Pick one from Jbelow. Also Be Sure To Include The Instructions On Line 16 Of Your Boxa.  e*For a wait routine with the mouse use: r n$For a keyboard wait routine use:  Ea F(!!!@F =FpjFp  Pause 5 .F:# end EXPLTEX1.LST procedure # ># EXPLWID1.LST procedure #  #+F#j ! FE F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution C*Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box # o8Here are the coordinates to adjust for box movement. s@By adjusting these coordinates you can move the box anywhere n:on the screen. Don't forget the different resolutions.  nBMoving a box on screen is as easy as adjusting these 4 points: nE``FxE Fx EHHF  E>>F  E E {zFF EppFx E Fx FEBThis style of box is intended for use ONLY with Medium or High nresolution screens.  eFl!F%!!Fr$!F! !!  F ! !!  F $!F! !!  Fd6! PP !!   F(!!!FP('! `` !CONTINUEF |F!(!!!@F` |F!(!!!PF` F!8'0!   !So You Want To Hear More?F }>F! E  F  FEd'P! 88 !E Well, The GFA Basic Companion is a dedicated Dialog Box GeneratorF }F! E  F8 FEf'P!  !Ffor GFA Basic. It also comes with many examples of how to effectivelyF ~HF! E  F FEd'P! ,, !Euse the Generator and GFA Basic in general. There are two disks fullF ~F! E  F, FEX'P! TT !8of help files, and source code. Quite a deal at $49.95!FiFNow to get the user's o.k. to continue either by mouse or keyboard. FoERFESFn Fe$F(FF j! ! F  Pause 5 (!!!@F.FL# end EXPLWID1.LST procedure # C=B A^hy0Rr`:W` Efv*oM" m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNߢHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNDHz2?< NA\pdAxr0XQ)K\NN(fNx ,`NuJrBjNuHz?<&NN\NFCAp$L Qp N29lrBlJpNN2pMN29@pdAr 0Q0tr N9lNNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu    -pa2|a>:><|a4g RGj`a(0GVfA1G<ap??<?<NM\Nu??< NMXNu&8*:EENuHn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuNpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8Nh6.JgtBnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?Nh<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNu~c0NQNuNJ@g,A,BBgHQ?<=NAP FJ@k??<>NAXtNutNuJ@jD@vqapvNr)@p `H@)@prtNAHplrtNB 2pNppNdpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNrv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNuAl 2l 4L VA0000000000prtN9Cp rtNAv` Av `Avl 2l 4)lVHNZaBp0,l 2Nua40,HNua*p0,l 4Nuaprt0,l 22,l 44,NuN9||BlBlrҌpsNBNu0<}N& ?<NNC`&?<NNT"@ C <}N`N~(* 9AJA)H@@[000][ˈN Evz`* [g" ]g |g QSz` zQSpQ][ɈN Dvx`* [g" ]g |g QSx` xQSpQ]Bp4N2HNu*( INA)H @depd ae zb QB DNA\)H @ e` ae zb \gQBA BhNpZN2A BP"`#|}NA"H0,tg"Hg \f`A\fS A ENAR@H`2QNu@9@JpNN2r|<N @xepw2A$JBjDFHB t`0QBl9F)lVTAtp 9| N2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NNx"l`dpNAtrdJhk\QpaNH ld$l`"Hg: k&@0+R`g k#&@0+S@H3 Q&f)I`LNu?<?<NAXJgJgNAH@B pNA NuApNN$N`$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN _0HpNp"_0HqNp"_0HqNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNuNVHNu Ihd"*N`$E8*$R`"QˈN ENu2)A IJAfr4(Ae*RBBc0*SA?N`$E$R`QˈN ENup`(* 0(iN`$E 4R`Q$D 4R`QˈN DN ENu2p <0N``QNu?Hl?<GNAPA"HJf SNpC 0(gFd"P$I` *N`$E$R(S@jv A(Wf( ae zb Q DNuH&NրNꚶjNuHRp` HRpJQfpNNq Y QfdЀЀ 0NuNNNq Y Qfd ЀЀNuNN $_& Y Qfdփփ!8NNN0$_& if"QdփփHRN|NN~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@NL"2` NqR YEjrd0` SjN$_N6ЀЀ 2$4BBN$_N6ЀЀ 0N$_N6ЀЀN YQf "_Nq*eNN*< NqbІSGfN$_NփփHRN$_Nփփ!8N $_Nփփ"@HHRN| YQf "_&Nq*eNN*<&NqbֆSGfNp"X4g S`"QNuNuNJPgBP, d4d<e<Ѐ"ЀЁE Y0gR@2DAH!b` `ЀЀ`Ѐ"ЀЁE. l ,`2"X2g,e($UAk&QHPS Y2g RSj _b l ,"X2geb J"F\N~" KC`e Nx`d \N l\Ӭ\ NupNd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNu?k?<NM"UAf J@fH@NuDW?<NMXNu0,p2,rR@RANuS@SA9@p9ArNu9@pN4, 6fprta0,2,NuA4, 6f9@9Ap rt`Blf`pBlf`p9| f|9Fd@9@hNX9@^9A`9Ab~`$aJf,H@ Kg Mg Pg Hf~`BSGj>RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HNLNu0,^2,`NrzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(NXldeS@f lbfSl`9Ab9FdNupapqr`p`"p`tdbDA0Hg<<R@f|0HN`*JFk*HQ/??<?NAXfX ENuJkpNp`p`\F( &I.` ??<NMXJ[j E&DNu<(`|HP?N<pg2JFg W"X2@e2<A`QNCpR@ 1 fA 0! "_N|, HHHNup`pNu)H9@Jp4N2P'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNNHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(NV)l g,vARC( g9CJ9|Lp!,N2 FPeNuA JpBQA/)H )l gBlJpN2B Aprt0 0BBB R@ @efA000 0PB0 *00 000\0X0 *0000 0P0BX0, *@00p1| 1|QBX0 $HTH0P &0 *0,NupNSk [0NupNuHPaH8 _&X Pf/|~ K!zag @ ep 24C"2 S@ػ Td BTA3A0C4$I2a222B"0@2A\xvaRg<2#M 4B3BS@ -f ػ Td>BAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8N2p>L8NAJ0?C bL000zH?A/.)HpN2LrHH/>Bl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CN0`@k Ap0(/.NuA Nup)@JphN2LtH &JKBCH .A/~0 1PP1P1PA L? &<@>AFG0000X0000X0000X0000C ~AJ0g0  pi, N2"F QNu _b@gGHpp 0f NuGNp @"l`Yd&-KNNx"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`$Y8gHRDD*D%H8#$c2g# HRDD%H`p"l`Qd&&| NuNx"l`QepZNpr`&AdRd QJBgRBBABJk"l` d&6&|0!NuNx"l` epZNC ҳfHP0(N`$W$RR@H`2Q"H _$l` dd" $X&0BP6Y&|Hg R@@%E ҳeHQ0)N$_$RR@H`2QNu$Y 0P1@Hg R@@%NuNx$l` epZN"X0gBPHR@@"D#Nu/&#k gH`Nq-KNuNNHxpCB~NVBHxpANCB~NBHxpBNCB~NBHxpCNCB~NBHxpDNCB~NBHxpENCB~NBHxpFNCB~NHxHxp1NCB~NHxHxp2NCB~NHxHxp3NCB~NHxHxp4NCB~NHxHxp5NCB~NHxHxp6NCB~NHxpCr~NVA:N?<NNTANl?<NNTANlAN&<x*<NVfN+`HxNH4Currently works only in |Medium or High Resolution! HPNT Sorry r"_ N +@(Np"NCN|A5N)|-> A탐r(NBNT Style of text to use? | |%HPNH Norm | Bold | Ital r"_ N +@(+m(0AN&<x*<NfN9pNpNpNp NN9pNpNpNpN -0Np&<x*<NnpJBgp/ -0Np&<x*<NtpJBgp$VHfN:pN -0NpH <r$<L8NNNB -0NpH <r$<L8NNCfN -0WWHfN:pNpNBpCfNpNpA탐NNp&<x*<NAjNpNpCfNNBmdAN&<x*<NfN;vA` 0A`N&<x*<NN"<NA탐NAN&<x*<NfN;A 00N;A 0A 0 <r$<ANATN&<x*<N>fN=A?$NA>jNpNpCfNNA`N&<x*<NN"<NA탐NAB 0 <r$<ABNpNABNCfNNA NABNN&<x*<NN"<NABNC NNN`NqNqN`NqpNpNpNpNAZN&<x*<NN"<NNHContinueNpNpN"AZN&<x*<NN"<NAZN&<x*<NN"<aN(pNBNH*Box is now defined: |Save as .LST file? |HPNH Save | Abort r"_ N +@( -(~NCA탄NANBmdBm^A NAfNNNBm@pNpNpN"prdNAZN&<x*<NN"<NtprdNAZN&<x*<NN"<N(pNpN"priNAZN&<x*<NN"<N(NNAN&<x*<NfN?NprNpp*NNNNprNpp*NNNNprNpNn Enter Line 4ANN` of Box, enter *q or *Q to AbortNNprNpNN`> N@NprNpp*NNNNprNpp*NNNNprNpNn Enter Line 4ANN` of Box ,enter *q or *Q to AbortNNprNpNN`> ANC Nr(NANC NHPNH*q"_N,pJBgp/ANC NHPNH*Q"_N,pJBgp$VHfNA AN/A C N,AT 0ATN&<x*<N>fNCBNT Style of text to use? | |HPNH Norm | Bold | Ital r"_ N +@(+m(0pN -0Np&<x*<NnpJBgp/ -0Np&<x*<NtpJBgp$VHfNBZpN -0NpH <r$<L8NNNAN/ -0NpH <r$<L8NNCfN -0WWHfNBpNpNAN/pCfNpNpANC NNNp&<x*<NAjNNNA탺NNH NewBox.lstCN|pNHPNH\*.LST"_NHPHmA탺""_NHmA "_N,gNCA탺NSVHgpNHmA "_N6fNMAXNpONHPAr"_N0pNNTRem #### HPA"_NHPNH procedure #"_NNNpNp'NNAZ H0Af 0A` 0 Al =0pNN` Procedure ANNApNAPNpNNn5' * Warning Warning *#NpNNn5' This style of box will require considerable scaling%NpNN`' to work in Low Resolution.NpNNn5' *3%NANpNN`' NpNp'NNpNNn' Some High Rez Scaling now..*NpNN`If Rez=2NpNNn By=By+By-Ty4NpNNnEndifTNpNp'NNpNNn Sget Tempuse$4NpNNnDim Linstyle%(12),Credline$(12)4NBm <r$<ANpNN` Linstyle%(ANNn)= eANCfNNNN`NqNqA 0 <r$<ANpNN` Credline$(ANN`)=ANANC NNANNN`NqNqpNNn Deffill 0,2,8 NpNNn Defline 1,2!NpNN`Pbox Lx,Ty,Rx,ByNpNNnBox Lx,Ty,Rx,By%NpNNn Defline 1,1%NpNNnBox Lx+5,Ty+2,Rx-5,By-2NpNNn1' Here is where we define the text size and style%NpNN`*' to change the size you must change the 6NpNN`6' however, other modifications may have to occur also.NpNN`If Rez=2NpNNnDeftext 1,Linstyle%(0),0,13mNpNNn Offset=22sNpNN`ElseNpNN`Deftext 1,Linstyle%(0),0,6NpNNn Offset=10sNpNNnEndifsNpNN`If Rez=2NpNNnText Lx+55,Ty+20,)ANA탐NANNpNN`ElseNpNNnText Lx+55,Ty+15,ANA탐NANNpNNnEndif5NpNNn For X=1 to 12NpNN`Deftext 1,Linstyle%(x)NpNN`*Text Lx+55,(Ty+25+(X)*Offset),Credline$(x)NpNN`Next XNpNNnDeftext 1,1,0,6XNpNNnText Lx+182,By-9,4ANN`ContinueANNpNNn Defline 1,29NpNN`Box Lx+175,By-19,Rx-186,By-4NpNN`RepeatNpNN`K=MousekNpNN`X=MousexNpNN`Y=MouseyNpNN`:Until K=1 and X>Lx+175 and XBy-19 and YfN[A`N&<x*<NA`NA`N&<x*<NN"<*NNTFatal4NpNpNA`NzN>fN\A`N&<x*<NA`NA`N&<x*<NN"<NNT Not Fatal4NpNpNpNpNAZN&<x*<NN"<NNHContinueNAZN&<x*<NN"<TNNTAbort4NpNpN"AZN&<x*<NN"<NAZN&<x*<NN"<FN(AZN&<x*<NN"<QNAZN&<x*<NN"<~N( <NBNT/Error Box is Created: | Save to .Lst File? | 4HPNH Yes | No r"_ N +@( -(~N]BmdBm^NNA탺NNH ErrBox.lstCN|pNHPNH\*.LST"_NHPHmA탺""_NHmA "_N,gN^fA탺NSVHgHmA "_N6fNk2pNAXNpONHPAr"_N0pNNTRem # HPA"_NHPNH procedure #"_NNNpNN` Procedure ANNApNAPNAZ u0Af 0A` E0Al 0pNNnClr Tempvar,Yoffset4NANpNN`If Rez=2NpNNn Yoffset=By-Ty4NpNN` Tempvar=35NpNNnEndif5NpNNn3' This style of box is suitable for all resolutions#NpNp'NNpNN`*' Precede this routine with On Error GosubNpNp'NNpNNn Sget Tempuse$uNpNNn Deffill 0,2,8%NpNNn Defline 1,2!NpNN`If Rez=2NpNN`Deftext 1,0,0,13NpNN`ElseNpNNnDeftext 1,0,0,6%NpNNnEndif,NpNN`Pbox Lx,Ty,Rx,By+YoffsetNpNNn Defline 1,2yNpNNnBox Lx,Ty,Rx,By+Yoffset%NpNNn Defline 1,1+NpNNnBox Lx+5,Ty+2,Rx-5,By-2+YoffsetrNpNNntitle$=+ANNn  Error eANNpNN`If Rez=2NpNNnText Lx+37,Ty+20,Title$ NpNN`ElseNpNNnText Lx+37,Ty+10,Title$%NpNNnEndif7NpNN`Eline2$=ANNn Number = 4ANNpNN`*Text Lx+35,Ty+25+Tempvar,Eline2$+Str$(Err)NpNp'NNpNNn Deftext 1,25NpNNn-' You should use a conditional statement here4NpNN`>' to determine if the error is recoverable or fatal. If fatalNpNNn' the text style should be 1,0.vNpNp'NNpNN`If Rez=2NpNN`Tempvar=Tempvar+10NpNNnEndifeNpNNnText Lx+53,Ty+40+Tempvar,0ANNnFataloANNpNp'NNpNN` Deftext 1,0 NpNN`(' The reverse of the above is true here.NpNN`If Rez=2NpNN`Tempvar=Tempvar+10NpNNnEndifeNpNNnText Lx+40,By-30+Tempvar, ANNn Not Fatal4ANNpNp'NNpNNnDeftext 1,0,0,6mNpNNnText Lx+15,By-10+Yoffset,ANN`ContinueANNpNNnText Rx-55,By-10+Yoffset,ANNnAbortnANNpNNn Defline 1,10NpNN`*Box Lx+13,By-19+Yoffset,Rx-69,By-6+YoffsetNpNN`*Box Rx-58,By-19+Yoffset,Rx-13,By-6+YoffsetNpNNn Clr Choice%+NpNNn Deffill 1,2,84NpNN`RepeatNpNN`K=MousekNpNN`X=MousexNpNN`Y=MouseyNpNN`' If Continue is chosen:NpNNnEIf K=1 and X>Lx+13 and XBy-19+Yoffset and YRx-58 and XBy-19+Yoffset and Y' From this point on, you're own your own with error handling!NpNN`Until Choice%<>0NpNNn Sput Tempuse$!NpNNnPause 5eNpNN`Clr Tempuse$,Yoffset,TempvarNpNN`ReturnNpNNnRem # end 4ANN` procedure #NpNNNBmBNT What Size? | |#HPNH 1/2 | 3/4r"_ N +@(pN -(SWHfNl6A6 0AZ x0Ar 0Ax 0A` 0 Af `0Al .0AN&<x*<NfNl6AlN&<x*<NAlN -(UWHfNlA6 0AZ D0A` @0 Ar p0Ax 0Af `0Al 80AN&<x*<NfNlAlN&<x*<NAlNpNpNpNAN&<x*<NfNm@pNpNpNpNNmXpNpNpNp NpNpN"AN&<x*<NfNnAZN/AfN"NA`N/AlN"NtAZN/AfN"NA`N/AlN"N(pNpN"AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(No2NNprNpNn'Enter the lines for the text box below:NNprNpNnTo exit enter *Q or *q"lNNprNpN`,Hi Resolution Text Only Dialog Box WorkbenchNBNH< Text Entry Style: | Ragged or Centered? | HPNH Rag | Cent | Abort r"_ N +@(AxN&<x*<NAN -(~NovpNNBNHH Begin Text Entry: | Enter *q or *Q to | Quit or Save HPNH OK r"_ N +@(ANAxNCNTpNppNA 0AxNANAN&<x*<NfNqNprNpNnLines Remaining in Workspace = |ANANNNNn 4Nq\Npr-NpNNnLines Remaining in Workspace = nANANNNNn 4A6N&<x*<NfNshNAN&<x*<NNrNpANCNr(NANCNHPNH*q"_N,pJBgp/ANCNHPNH*Q"_N,pJBgp$VHfNrhAN/A CN, <r$<ANNAxNBmA y0 AxNANNfNrA y0 A~ 0AN&<x*< NfNrA y0 AN&<x*< NVfNshNAN&<x*<NNrNpp(NNNNAN&<x*<NNrNpANCNNNA6N&<x*<NfNvLNAN&<x*<NNr NpANCNrfNuANCNHPNH*s"_N,pJBgp/ANCNHPNH*S"_N,pJBgp$VHfNu|AN/A CN, <r$<ANNAxNA~ 0A y0 AxNANNfNuA y0 A~ 0AN&<x*< NVfNvLNAN&<x*<NNr Npp(NNNNAN&<x*<NNr NpANCNNNN`6NqA|NANNNBNTI Begin Text Entry: | Enter *q or *Q to | Quit or Save HPNH OK r"_ N +@(ANAxNCNTpNppNA 0AxNANAN&<x*<NfNwNprNpNnLines Remaining in Workspace = ANANNNNn 4NwNpr-NpNNnLines Remaining in Workspace = nANANNNNn 4A6N&<x*<NfNzJNAN&<x*<NNrNpANCNr(NANCNHPNH*q"_N,pJBgp/ANCNHPNH*Q"_N,pJBgp$VHfNyAN/A CN, <r$<ANNAxNBmA y0 NyzANCNNNp&<x*<NA0NpNp'NNpNN`"' For a keyboard wait routine use:NpNN` ' A=Inp(2)NpNN`' NpNNn Sput Tempuse$4NpNN` Clr Tempuse$NpNNnPause 5$NpNN`ReturnNpNN`Rem # end ANN` procedure # NpNNNAN&<x*<NfNNpNpNpN"pNpNpNp"<N <"<Ntp"<N <"<N(pNpN"p"<N <"<N(pNpNpNp Np-"<NNT Radio Buttons4NpNpNpNpNpA"<NNH How manyNpK"<NNH Buttons?NAfNpNpNpNBmNANlNANlNA$NlAN&<x*<NPpJBgp/AN&<x*<NVpJBgp/AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/A$N&<x*<NpJBgp$VHfN <"<N <"<mNtpNBmA 0AN&<x*<NVfN,AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/A$N&<x*<NpJBgp$VHfN(pR"<Np\"<mNtpNA 0A 0AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/A$N&<x*<NpJBgp$VHfN*A @0pa"<Npk"<mNtpNA 0AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/A$N&<x*<NpJBgp$VHfN,pp"<Npz"<mNtpNA 0A @0AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/A$N&<x*<NpJBgp$VHfN,p"<N <"<mNtA `0A 0ANzN>gANzN>fN^ANNNpR"<Np\"<mN(pZ"< NNT 2 Buttons4Npa"<Npk"<mN(pi"< NNT 3 Buttons4Npp"<Npz"<mN(px"< NNT 5 Buttons4Np"<N <"<mN( <"< NNT 7 Buttons4N <"<N <"<mN( <"< NNT Abort 4NNNAN&<x*<NfNBmNA 0AN&<x*<NfN A탄NANNNNXAN&<x*<NfN@ANAN&<x*<NfNlANAN&<x*<NfNANAN&<x*<NfNANNNpNpNpNpK"<N <"<NtpNpN"pK"<N <"<N(AN&<x*<NfNpNpNpNp "<Np7"<NtpNpN"p "<Np7"<N(p"<Np5"<N(pNpN"NA N&<x*<NNr NpNnTwo Radio ButtonsNNA N&<x*<NNrNpNnEnter the title of the box:NNA N&<x*<NNrNpN`> A탐rNA탐NNp&<x*<NA ArNANNp&<x*<NA ArNANNp&<x*<NAfNAN&<x*<NfNBpNNTText Lx+74,Ty+35,0HPA"_NHPpAN"_NHPA"_NNNpNNTText Rx-88,Ty+35,HPA"_NHPpBN"_NHPA"_NNNAN&<x*<NfNpNNTText Lx+74,Ty+35,HPA"_NHPp1N"_NHPA"_NNNpNNTText Rx-88,Ty+35,HPA"_NHPp2N"_NHPA"_NNNpNNHText Lx+24,By-7,HPA"_NHPA"_NHPA"_NNNpNNTText Rx-140,By-7, HPA"_NHPA"_NHPA"_NNNpNN`' Now to get an answer for youNpNN` Clr ChoiceNpNN`RepeatNpNN`X=MousexNpNN`Y=MouseyNpNN`K=MousekNpNNn?If X>(Lx+63) and X<(Rx-233) and Y>(Ty+27) and Y<(By-18) and K=1#NpNN`Choice=1NpNNnEndif!NpNNn?If X>(Lx+228) and X<(Rx-70) and Y>(Ty+27) and Y<(By-18) and K=1%NpNN`Choice=2NpNNnEndif!NpNNnUntil Choice<>0 A탐rNA탐NNp&<x*<NA ArNANNp&<x*<NA ArNANNp&<x*<NAfNtAN&<x*<NfNpANCN|pBNCN|pNNTText Lx+74,Ty+35,5HPA"_NHPpAN"_NHPA"_NNNpNNTText Rx-88,Ty+35,HPA"_NHPpBN"_NHPA"_NNNNp1NCN|p2NCN|pNNTText Lx+74,Ty+35,HPA"_NHPp1N"_NHPA"_NNNpNNTText Rx-88,Ty+35,HPA"_NHPp2N"_NHPA"_NNNpNNTText Lx+24,Ty+48,HPA"_NHPA"_NHPA"_NNNpNNHText Rx-140,Ty+48,HPA"_NHPA"_NHPA"_NNNpNNHText Lx+152,By-10,HPA"_NHPNHOK"_NHPA"_NNNpNN`' Now to get answers for youNpNNnClr Choice1,Choice2,Choice3%NpNN`RepeatNpNN`X=MousexNpNN`Y=MouseyNpNN`K=MousekNpNNn7If X>Lx+63 and XTy+27 and YLx+228 and XTy+27 and YLx+146 and XTy+57 and Y0NpNN`V' The chosen buttons return the value of one to you in the ' Choice(number) ' VariableNpNNnC' If button 1 chosen, Choice1=1 and If button 2 chosen, Choice2=1bNpNN`J' If the buttons are not chosen they will equal 0. Choice1=0 or Choice2=0NpNNnPause 5tNpNNn Graphmode 14NpNNn Defline 1!NpNNn Deftext 1%NpNNn Sput Tempuse$4NpNN` Clr Tempuse$NpNN`ReturnNpNNH Rem # end HPA"_NHPNH procedure #"_NNNpNNNpNpNpNp"<N <"<NtpNpN"p"<N <"<N(AN&<x*<NfNpNpNpN <"<N <"<NtpNpN" <"<N <"<N( <"<N <"<N(NpNpN"NprNpN`Five Radio ButtonsNNprNpNnEnter the title of the box: NNprNpN`> A탐rNA탐NNp&<x*<NN A ArNANNp&<x*<NA ArNANNp&<x*<NA"<NpH"<N(pF"<NANNprNpN` Enter the function for button 3:NNprNppNNNNprNpN`> ArNANNp&<x*<NA ArNANNp&<x*<NA0A` a0Af p0Al 0A탺NNT Fivbutn.lst4CN|pNHPNH\*.LST"_NHPHmA탺""_NHmA "_N,gNA탺NSVHgHmA "_N6fNpNAXNpONHPAr"_N0pNNTRem # HPA"_NHPNH procedure #"_NNNpNp'NNpNN` Procedure ANNApNAPNANpNN`*' This box is suitable for all resolutionsNpNNn Sget Tempuse$tNpNNn Graphmode 1!NpNNn Deffill 1,2,24NpNNnDeftext 1,0,0,64NpNNn Defline 1,34NpNN`Pbox Lx,Ty,Rx,ByNpNNnBox Lx,Ty,Rx,By%NpNNn Defline 1,1%NpNNTText Lx+30,Ty+10,4HPA"_NHPA탐"_NHPA"_NNNpNNn Deffill 1,2,84NpNNnPbox Lx+25,Ty+25,Rx-200,Ty+40NpNNnPbox Lx+25,Ty+45,Rx-200,Ty+60%NpNNnPbox Lx+25,Ty+65,Rx-200,By-55%NpNNnPbox Lx+25,By-50,Rx-200,By-35%NpNNnPbox Lx+115,By-20,Rx-110,By-5%NpNNn Deffill 0,2,8,NpNNnPbox Lx+25,Ty+25,Rx-203,Ty+39%NpNNnPbox Lx+25,Ty+45,Rx-203,Ty+59%NpNNnPbox Lx+25,Ty+65,Rx-203,By-56%NpNNnPbox Lx+25,By-50,Rx-203,By-36%NpNNnPbox Lx+115,By-20,Rx-113,By-6%NpNN`Box Lx+25,Ty+25,Rx-203,Ty+39NpNN`Box Lx+27,Ty+27,Rx-205,Ty+37NpNN`Box Lx+25,Ty+45,Rx-203,Ty+59NpNN`Box Lx+27,Ty+47,Rx-205,Ty+57NpNN`Box Lx+25,Ty+65,Rx-203,By-56NpNN`Box Lx+27,Ty+67,Rx-205,Ty+77NpNN`Box Lx+25,By-50,Rx-203,By-36NpNN`Box Lx+27,By-48,Rx-205,By-38NpNN`Box Lx+115,By-20,Rx-113,By-6NpNN`Box Lx+117,By-18,Rx-115,By-8NAN&<x*<NfNxpNNTText Lx+38,Ty+35,1HPA"_NHPpAN"_NHPA"_NNNpNNTText Lx+38,Ty+55,HPA"_NHPpBN"_NHPA"_NNNpNNTText Lx+38,By-60,HPA"_NHPpCN"_NHPA"_NNNpNNTText Lx+38,By-40,HPA"_NHPpDN"_NHPA"_NNNNרpNNTText Lx+38,Ty+35,HPA"_NHPp1N"_NHPA"_NNNpNNTText Lx+38,Ty+55,HPA"_NHPp2N"_NHPA"_NNNpNNTText Lx+38,By-60,HPA"_NHPp3N"_NHPA"_NNNpNNTText Lx+38,By-40,HPA"_NHPp4N"_NHPA"_NNNpNNHText Lx+124,By-10,HPA"_NHPNHOK"_NHPA"_NNNpNNTText Lx+68,Ty+35,HPA"_NHPA"_NHPA"_NNNpNNTText Lx+68,Ty+55,HPA"_NHPA"_NHPA"_NNNpNNTText Lx+68,By-60,HPA"_NHPA"_NHPA"_NNNpNNTText Lx+68,By-40,HPA"_NHPA"_NHPA"_NNNpNN`' Now to get answers for youNpNNn+Clr Choice1,Choice2,Choice3,choice4,choice5NpNN`RepeatNpNN`X=MousexNpNN`Y=MouseyNpNN`K=MousekNpNNn7If X>Lx+27 and XTy+27 and YLx+27 and XTy+47 and YLx+27 and XTy+67 and YLx+27 and XBy-48 and YLx+117 and XBy-18 and Y0NpNN`V' The chosen buttons return the value of one to you in the ' Choice(number) ' VariableNpNNnC' If button 1 chosen, Choice1=1 and If button 2 chosen, Choice2=1bNpNN`$' The same is true for buttons 3 & 4NpNN`J' If the buttons are not chosen they will equal 0. Choice1=0 or Choice2=0NpNNnPause 5tNpNNn Graphmode 14NpNNn Defline 1!NpNNn Deftext 1%NpNNn Sput Tempuse$4NpNN` Clr Tempuse$NpNN`ReturnNpNNH Rem # end HPA"_NHPNH procedure #"_NNNpNNNpNpNpNprdN <"<NtpNpN"prdN <"<N(AN&<x*<NfNpNpNpN <rhN <"<NtpNpN" <rhN <"<N( <rjN <"<N(NpNpN"NprNpNnSeven Radio Buttons4NNprNpNnEnter the title of the box: NNprNpN`> A탐r-NA탐NNp&<x*<NA ArNANNp&<x*<NA ArNANNp&<x*<NA ArNANNp&<x*<NA ArNANNp&<x*<NA ArNANNp&<x*<NA ArNANNp&<x*<NALx+82 and XTy+27 and YRx-118 and XTy+27 and YLx+82 and XTy+57 and YRx-118 and XTy+57 and YLx+82 and XBy-48 and YRx-118 and XBy-48 and YLx+208 and XBy-18 and Y0NpNN`V' The chosen buttons return the value of one to you in the ' Choice(number) ' VariableNpNNnC' If button 1 chosen, Choice1=1 and If button 2 chosen, Choice2=1bNpNN`D' The same is true for buttons 3, 4, 5, 6. Choice7 is the exit codeNpNN`J' If the buttons are not chosen they will equal 0. Choice1=0 or Choice2=0NpNNnPause 5tNpNNn Graphmode 14NpNNn Defline 1!NpNNn Deftext 1%NpNNn Sput Tempuse$4NpNN` Clr Tempuse$NpNN`ReturnNpNNH Rem # end HPA"_NHPNH procedure #"_NNNpNNNAZ H0A` 0 Af 0Al =0AN&<x*<NfN1AlNNHAfNL8NAlNANA~NA Np C~NTp C NTBpC~NHxpC~NHxpC~NHxpC~NHxpC~NHxpC~NHxpC~NHxpC~NHxpC~NHx pC~NHx pC~NHx pC~NHx pC~NHxNH(These boxes allow you to get from 1 to 6C N,HxNH(user selected choices from a Dialog Box.C N,HxNH C N,HxNT% These are the available options:C N,HxNH 2 Buttons = 1 ChoiceC N,HxNT 3 Buttons = 2 ChoicesC N,HxNT 5 buttons = 4 ChoicesC N,HxNT 7 Buttons = 6 ChoicesC N,Hx NH C N,Hx NT) Just select the option desired from the4C N,Hx NH(next dialog box. You will then be askedC N,Hx NHto supply label names.C N,pNpNpNpNpN"AZN/AfN"NA`N/AlN"NtAZN/AfN"NA`N/AlN"N(pNpN"AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AN&<x*<NfN5pNpC~NNpNp NA 00N5pNpC~NNpNpNA 0AN&<x*<NfN6AZN&<x*<NN/AfN&<x*<NN"NNH" Radio Button Box InformationNN6AZN&<x*<NN/AfN&<x*<NN"NNH" Radio Button Box InformationNA 0 <r$<ANpNANC~NNAZN&<x*<NN/AfN&<x*<NHA NANNL8NN"NANC NNN`hNqpNpNpNpNAZN&<x*<NN/ <r$<AlNNN"NNHContinueNpNpN"AZN&<x*<NN/ <r$<AlNNN"N <r$<A`NNN/ <r$<AlNNN"N(NzNCN|NA$NlNANlNANlHmA "_N6gN9A$N&<x*<NpJBgp/AZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/ <r$<AlNNANNVpJBgp/ <r$<AlNNANNPpJBgp$VHgpNpNpNAZN&<x*<NN/ <r$<AlNNN"N <r$<A`NNN/ <r$<AlNNN"NtA~NA NANANNNBm <r$<ANp9@A r @0A r @0AN9@A r @0NAN/Bp0,Cr~NxAN/Hxp0,Cr~NxAN/Hxp0,Cr~NxN`hNqNNBm <r$<ANp9@A r @0A r @0AN9@AN/pCr~N9@AN/pCr~N9@AN/pCr~N9@NN`~NqNNHx; <r$<&<x*<NhANNN/HxHx2Hx2HxHxHxAXNpNpNpNpNpNpNpNpNpN"pK"<N <"<NtpK"<N <"<N(pNpN"pU"<NNH Return To The Desktop? NpNpNpNpd"<Nps"<Ntpd"<|Nps"<NtpNpNpNpd"<Npr"<Ntpd"<|Npr"<Ntpd"<Npr"<N(pf"<Npp"<N(pd"<|Npr"<N(pf"<~Npp"<N(pn"<NpANNpn"<NpBNNp{"<NNH Yes, Good Bye! Np{"<TNNT No, I'll Stay 4NBmNANlNANlNA$NlAN&<x*<NPpJBgp/AN&<x*<NVpJBgp/AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/A$N&<x*<NpJBgp$VHfN?zA 0AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/AN&<x*<NPpJBgp/AN&<x*<NVpJBgp/A$N&<x*<NpJBgp$VHfN@PA 0ANzN>g NNBmBmpAN&<x*<NfN@A p0Al p0NpNpNpNprNA N&<x*<NN"<pNtpNpN"prNA N&<x*<NN"<pN(pNpN"prNA N&<x*<NN"<nN(pNA N&<x*<NN"<&NA N&<x*<NN"<gN(pNpNpNpNA N&<x*<NN"<0NNHCONTINUENAN&<x*<NfNBnpdrN <"<pNtpdrN <"<pN(NBNprNpN`. Hi Resolution Wide Information Box WorkbenchNprNpN`Please enter title of box:NNprNpN`> A탐r#NAN&<x*<NfNC A&rFNAN&<x*<NfND6AlN&<x*<NAlNAlN&<x*<NNr(NA&NNprNppINNNNprNpNn%Please enter the second line of text:4NNprNpN`> A,rFNAN&<x*<NfNEAlN&<x*<NAlNAlN&<x*<NNr(NA,NNprNppINNNNprNpNn)Please enter the third line of text: 4NNprNpN`> A2rFNAN&<x*<NfNFAlN&<x*<NAlNAlN&<x*<NNr(NA2NNprNppINNNNprNpN`*Please enter the last line of text: NNprNpN`> A8rFNAN&<x*<NfNFAlN&<x*<NAlNAlN&<x*<NNr(NA8NBNH" Information Box Now Defined | | HPNH Save | Abort r"_ N +@( -(~NGzNNAZ `0A` 0 Af p0Al *0A탺NNT Widebox.lst4CN|pNHPNH\*.LST"_NHPHmA탺""_NHmA "_N,gNH&A탺NSVHgHmA "_N6fNQ:pNAXNpONHPAr"_N0pNNTRem # HPA"_NHPNH procedure #"_NNNpNp'NNpNN` Procedure ANNpNN`Clr Offset,Offset2NApNAPNANpNN`If rez=2NpNNn Offset=604NpNN` Offset2=10NpNNnEndif0NpNN`@' This style of box is intended for use ONLY with Medium or HighNpNNn' resolution screens.tNpNp'NNpNNn Sget Tempuse$eNpNNn Graphmode 1!NpNNn Deffill 0,2,84NpNNn Defline 1,3!NpNNnPbox Lx,Ty,Rx,By+Offset4NpNN`Box Lx,Ty,Rx,By+OffsetNpNNn Defline 1,1+NpNN`Box Lx+2,Ty+2,Rx-2,By-2+OffsetNpNNn'Box Rx-74,By-13+Offset,Rx-9,By-5+OffsetYNpNNnDeftext 1,0,0,4sNpNNTText Rx-64,By-7+offset,,HPA"_NHPNHCONTINUE"_NHPA"_NNNpNN`If Rez=1NpNNnDeftext 1,0,0,6sNpNN`ElseNpNN`Deftext 1,0,0,13NpNNnEndif,NpNNTText Lx+11,Ty+10+Offset2, HPA"_NHPA탐"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+26,Ty+23+Offset2,HPA"_NHPA&"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+26,Ty+33+Offset2,HPA"_NHPA,"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+26,Ty+43+Offset2,HPA"_NHPA2"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+26,Ty+53+Offset2,HPA"_NHPA8"_NHPA"_NNNpNNnE' Now to get the user's o.k. to continue either by mouse or keyboard.4NpNN`RepeatNpNN`K=MousekNpNNn Keybd$=Inkey$4NpNNHUntil K<>0 or Keybd$<>HPA"_NHPA"_NNNpNNn Defline 1 NpNNn Deftext 1%NpNNn Sput Tempuse$4NpNNnClr Tempuse$,Offset,Offset2NpNNnPause 5$NpNN`ReturnNpNNH Rem # end HPA"_NHPNH procedure #"_NNNpNNNA`Np C`NTBmAN&<x*<NfNQA p0NpNpNpNp#rNA N&<x*<NN"<NtpNpN"p#rNA N&<x*<NN"<N(pNpN"pNp%rNA N&<x*<NN"<N(pNpNpNpNA N&<x*<NNrRNA N&<x*<NN"<N(A N&<x*<NNrUNNHCONTINUENAN&<x*<NfNS&pNpNpNpNNS>pNpNpNp NAN&<x*<NfNSpd"<N <"< Ntpd"<N <"< N(NSNprNpN`0 Hi Resolution Long Information Box WorkbenchNNprNpNnPlease Enter Box Title:BNNprNpN`> A탐rNA탐NNp&<x*<NA pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfNVpAlN&<x*<NAlNNprNpNnPlease Enter Line 2 Text:4NNprNppNNNNprNpN`> pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfNWTAlN&<x*<NAlNNprNpNnPlease Enter Line 3 Text:4NNprNppNNNNprNpN`> pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfNX8AlN&<x*<NAlNNprNpNnPlease Enter Line 4 Text:4NNprNppNNNNprNpN`> pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfNYAlN&<x*<NAlNNprNpNnPlease Enter Line 5 Text:4NNprNppNNNNprNpN`> pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfNZAlN&<x*<NAlNNprNpNnPlease Enter Line 6 Text:4NNprNppNNNNprNpN`> pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfNZAlN&<x*<NAlNNprNpNnPlease Enter Line 7 Text:4NNprNppNNNNprNpN`> pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfN[AlN&<x*<NAlNNprNpNnPlease Enter Line 8 Text:4NNprNppNNNNprNpN`> pC`NrNAlN&<x*<NNr#NpC`NNAN&<x*<NfN\AlN&<x*<NAlNNprNpNnPlease Enter Line 9 Text:4NNprNppNNNNprNpN`> p C`NrNAlN&<x*<NNr#Np C`NNAN&<x*<NfN]AlN&<x*<NAlNNprNpN`Please Enter Line 10 Text:NNprNppNNNNprNpN`> p C`NrNAlN&<x*<NNr#Np C`NNBmpBNH" Information Box Now Defined | | HPNH Save | Abort r"_ N +@( -(~N^A`NNNAZ p0A` H0Af 0Al /0A탺NNT Longbox.lst4CN|pNHPNH\*.LST"_NHPHmA탺""_NHmA "_N,gN_LA탺NSVHgHmA "_N6fNlpNAXNpONHPAr"_N0pNNTRem # HPA"_NHPNH procedure #"_NNNpNp'NNpNN` Procedure ANNApNAPNANpNN` Clr OffsetNpNN`If Rez=2NpNN` Offset=120NpNNnEndif0NpNNn3' This style of box is suitable for all resolutions#NpNp'NNpNNn Sget Tempuse$oNpNNn Graphmode 1!NpNNn Deffill 0,2,84NpNNn Defline 1,3!NpNNnPbox Lx,Ty,Rx,By+OffsetaNpNN`Box Lx,Ty,Rx,By+OffsetNpNNn Defline 1,1+NpNN`Box Lx+2,Ty+2,Rx-2,By-2+OffsetNpNN`(Box Lx+67,By-13+Offset,Rx-65,By-5+OffsetNpNNnDeftext 1,0,0,4sNpNNTText Lx+70,By-7+Offset,5HPA"_NHPNHCONTINUE"_NHPA"_NNNpNN`If Rez=2NpNN`Deftext 1,1,0,13NpNN`ElseNpNNnDeftext 1,1,0,6%NpNNnEndif,NpNNn Clr Offset24NpNN`If Rez=2NpNN` Offset2=10NpNNnEndif0NpNNTText Lx+13,Ty+10+Offset2, HPA"_NHPA탐"_NHPA"_NNNpNNn Deftext 1,00NpNN`If Rez=2NpNN` Offset2=25NpNNnEndif5NpNNTText Lx+20,Ty+25+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+20,Ty+35+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+20,Ty+45+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+20,Ty+55+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+20,Ty+65+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+20,Ty+75+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+20,Ty+85+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNTText Lx+20,Ty+95+Offset2,HPA"_NHPpC`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNHText Lx+20,Ty+105+Offset2,HPA"_NHPp C`N"_NHPA"_NNNpNN`If Rez=2NpNN`Offset2=Offset2+10NpNNnEndiffNpNNHText lx+20,Ty+115+Offset2,HPA"_NHPp C`N"_NHPA"_NNNpNNnE' Now to get the user's o.k. to continue either by mouse or keyboard.4NpNN`RepeatNpNN`K=mousekNpNNn Keybd$=Inkey$4NpNNHUntil K<>0 or Keybd$<>HPA"_NHPA"_NNNpNNn Defline 1 NpNNn Deftext 1%NpNNn Sput Tempuse$4NpNN`Clr Tempuse$,Offset2NpNNnPause 5$NpNN`ReturnNpNNH Rem # end HPA"_NHPNH procedure #"_NNNpNNNANNNprNpN`>  Function Key Box Definition Procedure NNpr NpN`,  Enter Quit to abort NNprNpN`Please enter title of box:NNprNpN`> A탐rNA탐NNp&<x*<NA Ap H0ANHmNHQUIT"_N,fNoDNyAnCtN|NprNpp(NNNNprNpNn#Now for 1st Function Key Secondary:4NNprNpN`> ANHmNHQUIT"_N,fNoNyAnCzN|NprNpp2NNNNp2NNNNprNpN`Function Key 1 Defined as:NNprNpN` Primary = AtNNNprNpN` Secondary = AzNNNprNpNn!Now for 2nd Function Key Primary:4NNp rNpN`> Ap H0ANHmNHQUIT"_N,fNq&NyAnC턀N|Np rNpp(NNNNprNpNn#Now for 2nd Function Key Secondary:4NNp rNpN`> ANHmNHQUIT"_N,fNqNyAnC턆N|NprNpp2NNNNp2NNNNprNpN`Function Key 2 Defined as:NNp rNpN` Primary = A턀NNNp rNpN` Secondary = A턆NNNp rNpNn!Now for 3rd Function Key Primary:4NNp rNpN`> Ap H0ANHmNHQUIT"_N,fNsNyAnC턌N|Np rNpp(NNNNp rNpNn#Now for 3rd Function Key Secondary:4NNp rNpN`> ANHmNHQUIT"_N,fNsNyAnC턒N|Np rNpp2NNNNp2NNNNp rNpN`Function Key 3 Defined as:NNp rNpN` Primary = A턌NNNp rNpN` Secondary = A턒NNNprNpNn!Now for 4th Function Key Primary:4NNprNpN`> Ap H0ANHmNHQUIT"_N,fNtNyAnC턘N|NprNpp(NNNNprNpNn#Now for 4th Function Key Secondary:4NNprNpN`> ANHmNHQUIT"_N,fNuNyAnC턞N|NprNpp2NNNNp2NNNNprNpN`Function Key 4 Defined as:NNprNpN` Primary = A턘NNNprNpN` Secondary = A턞NNNprNpNn!Now for 5th Function Key Primary:4NNprNpN`> Ap H0ANHmNHQUIT"_N,fNvNyAnC턤N|NprNpp(NNNNprNpNn#Now for 5th Function Key Secondary:4NNprNpN`> Ap H0ANHmNHQUIT"_N,fNwzNyAnC턪N|NprNpp2NNNNp2NNNNprNpN`Function Key 5 Defined as:NNprNpN` Primary = A턤NNNprNpN` Secondary = A턪NNNpr Npp2NNNNprNpN`0 Keys are now defined, Save This Box? Y/NNpNANlAN&<x*<NpJBgp/AN&<x*<NpJBgp$VHgNyTAN&<x*<NpJBgp/AN&<x*<NpJBgp$VHgNyT`DAN&<x*<NpJBgp/AN&<x*<NpJBgp$VHfNyAyNNNA탺NNH Functbox.lstCN|pNHPNH\*.LST"_NHPHmA탺""_NHmA "_N,gNz0A탺NSVHgHmA "_N6fNpNAXNpONHPAr"_N0pNNTRem # HPA"_NHPNH procedure #"_NNNpNp'NNpNN` Procedure ANNApNpNN` Rez=Xbios(4)NpNNnA' This style of box is intended for use only with Medium and HighNpNN`H' Resolution screens. You may however use the same techniques presentedNpNN`F' in this source code to create a function key box for Low Resolution.NpNp'NNpNNn Sget Tempuse$cNpNNn Graphmode 1!NpNNn Deffill 0,2,84NpNNn Defline 1,5,2%NpNNnHidem,NpNNn If Rez=2 Then%NpNNn Deffill 0,2,8%NpNN`Pbox 75,35,564,350NpNNnBox 75,35,564,350%NpNN`Deftext 1,0,0,13NpNNnEndif,NpNNn If Rez=1 Then!NpNN`Pbox 75,20,564,179NpNNnBox 75,20,564,179%NpNNnDeftext 1,0,0,6!NpNNnEndif,NpNNTPrint At(25,4);%HPA"_NHPA탐"_NHPA"_NNNpNNnPrint At(20,6);NpNNHPrint HPA"_NHPNH(''Press Key Indicated To Toggle Values''"_NHPA"_NNNpNNnDefault_screen:NpNNnPrint At(25,9);%NpNNHPrint HPA"_NHPNTF1 = e"_NHPA"_NNNpNN`Print At(25,11);NpNNHPrint HPA"_NHPNTF2 = "_NHPA"_NNNpNN`Print At(25,13);NpNNHPrint HPA"_NHPNTF3 = "_NHPA"_NNNpNN`Print At(25,15);NpNNHPrint HPA"_NHPNTF4 = "_NHPA"_NNNpNN`Print At(25,17);NpNNHPrint HPA"_NHPNTF5 = "_NHPA"_NNNpNN`Print At(25,20);NpNNHPrint HPA"_NHPNH Press the Spacebar to Exit"_NHPA"_NNNpNN`If Key_choice1=0NpNNnPrint At(30,9);%NpNNHPrint HPA"_NHPAt"_NHPA"_NNNpNNnEndifNpNN`If Key_choice1=1NpNNnPrint At(30,9);%NpNNHPrint HPA"_NHPAz"_NHPA"_NNNpNNnEndifNpNN`If Key_choice2=0NpNN`Print At(30,11);NpNNHPrint HPA"_NNHmA"_NNNpNNnEndifNpNN`If Key_choice2=1NpNN`Print At(30,11);NpNNHPrint HPA"_NHPA턆"_NHPA"_NNNpNNnEndifNpNN`If Key_choice3=0NpNN`Print At(30,13);NpNNHPrint HPA"_NHPA턌"_NHPA"_NNNpNNnEndifNpNN`If Key_choice3=1NpNN`Print At(30,13);NpNNHPrint HPA"_NHPA턒"_NHPA"_NNNpNNnEndifNpNN`If Key_choice4=0NpNN`Print At(30,15);NpNNHPrint HPA"_NHPA턘"_NHPA"_NNNpNNnEndifNpNN`If Key_choice4=1NpNN`Print At(30,15);NpNNHPrint HPA"_NHPA턞"_NHPA"_NNNpNNnEndifNpNN`If Key_choice5=0NpNN`Print At(30,17);NpNNHPrint HPA"_NHPA턤"_NHPA"_NNNpNNnEndifNpNN`If Key_choice5=1NpNN`Print At(30,17);NpNNHPrint HPA"_NHPA턪"_NHPA터"_NNNpNNnEndifNpNN`DoNpNN`A=Inp(2)NpNN` Exit If A=32NpNN`If A=187NpNN`Switch=1NpNN`If Key_choice1=0NpNNn Key_choice1=1!NpNN`ElseNpNNn Key_choice1=0%NpNNnEndifeNpNNnEndif%NpNN`If A=188NpNN`Switch=1NpNN`If Key_choice2=0NpNNn Key_choice2=1!NpNN`ElseNpNNn Key_choice2=0%NpNNnEndifeNpNNnEndif%NpNN`If A=189NpNN`Switch=1NpNN`If Key_choice3=0NpNNn Key_choice3=1!NpNN`ElseNpNNn Key_choice3=0%NpNNnEndifeNpNNnEndif%NpNN`If A=190NpNN`Switch=1NpNN`If Key_choice4=0NpNNn Key_choice4=1!NpNN`ElseNpNNn Key_choice4=0%NpNNnEndifeNpNNnEndif%NpNN`If A=191NpNN`Switch=1NpNN`If Key_choice5=0NpNNn Key_choice5=1!NpNN`ElseNpNNn Key_choice5=0%NpNNnEndifeNpNNnEndif%NpNNn If Switch=14NpNNnGoto Default_screen4NpNNnEndifuNpNN`LoopNpNNn Sput Tempuse$eNpNN` Clr Tempuse$NpNN`:' The values are returned in the variables Key_choice(1-5)NpNN`@' If the primary is selected the value is 0 and if the secondaryNpNN`,' was chosen the value in the variable is 1.NpNp'NNpNN`ReturnNpNNH Rem # end HPA"_NHPNH procedure #"_NNNpNNNApN/An"NAnN(CN|AnNNpApNNVfNHmnAnNNpApNNNN"_NCnN|NNAN&<x*<NfNJA 0NNH.  Flip Page |  Flip Back | Return to Quit C턼N|A6 0AZ x0Ar 0Ax 0A` 0 Af `0AN&<x*<NfNAl /0NAl #0pNpNpNAN&<x*<NfNppNpNpNpNNpNpNpNp NpNpN"AZN/AfN"NA`N/AlN"NtAN&<x*<NfN <rsN <"< NtAZN/AfN"NA`N/AlN"N(pNpN"AN&<x*<NfN| <rsN <"< N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AN&<x*<NfND <"<NA턼NN\ <<"<NA턼NHxNT Want some help? HPNT No | Yes r"_ N +@(pN -(UWHfNAZ H0A` 0 Af 0Al =0AN&<x*<NfNfN2AB 0 <r$<ABNNprNpp-NNNNprNpNn > 4ANCNNr*NANCNNCN|AN&<x*<NANAN(HPNHQUIT"_N,fNf <r$<ANNANAN/A CNN, <r$<ANNANAB @0AX 0NANCNNNNp&<x*<NA 0NpNNn Pages=Pages+1!NpNNnEndifeNpNNn Pointer=14NpNp@NHPA"_NHPNT drawlines"_NNNpNN`DoNpNNnKeyinput=Inp(2)rNpNN`0' See if the key pressed was the <= left arrow NpNNnIf Keyinput=203eNpNN` If Pointer>1NpNNnPointer=Pointer-14NpNp@NHPA"_NHPNT drawlinese"_NNNpNNnEndifNpNN`ElseNpNNn' We do nothingrNpNNnPointer=Pointer%NpNNnEndifoNpNN`"' Now for the => right arrow key NpNNnIf Keyinput=205gNpNN`If Pointer <r$<ANNNNpNNT3Text Lx+26,(Ty+11)+10*Drawlines+(Offset*Drawlines), HPA"_NHPNH$(Startloop+Drawlines)"_NNNpNN`Next DrawlinesNpNN`ReturnNpNNH Rem # end HPA"_NHPNT)drawlines procedure #"_NNNpNNNANHxpC~NVNpNpNpNpNp Np"<NNTEditable Dialog Box Workbench)NpNpNpNpNprNp"<NHxNT+Do you want to display|Resolution Outlines?4HPNH Yes | No r"_ N +@( -(~N NTCHold down the button to draw box outline and release when satisfied CN|ADNprNpONNpr NNT# Dialog Box Outline is now defined iNA :NAN&<x*<NfNBHxNT7 Kill this box? | Let's Keep it? | Leave?4HPNT Kill | Keep | Bye %r"_ N +@( -(SWHfNBN -(Np&<x*<NpJBgp/AN&<x*<NpJBgp$VHfN6HxHxANC~NdHxHxANC~NdHxHxANC~NdHxHxANC~NdAN&<x*<NN/AN&<x*<NN"N <r$<ANNN/ <r$<ANNN"N(HxHxAN&<x*<NC~NdHxHxAN&<x*<NC~NdHxHx <r$<ANNC~NdHxHx <r$<ANNC~NdprNpONNNTEHold down the button to draw box 1 outline and release when satisfiedCN|ADNprNpONNprNNT#First Dialog Object Box is defined:aNA :NAN&<x*<NfN6HxHxANC~NdHxHxANC~NdHxHxANC~NdHxHxANC~NdAN&<x*<NN/AN&<x*<NN"N <r$<ANNN/ <r$<ANNN"N(HxHxAN&<x*<NC~NdHxHxAN&<x*<NC~NdHxHx <r$<ANNC~NdHxHx <r$<ANNC~NdpNNTEHold down the button to draw box 2 outline and release when satisfiedCN|ADNprNpONNprNNH$Second Dialog Object Box is defined:NA :NAN&<x*<NfN6HxHxANC~NdHxHxANC~NdHxHxANC~NdHxHxANC~NdAN&<x*<NN/AN&<x*<NN"N <r$<ANNN/ <r$<ANNN"N(HxHxAN&<x*<NC~NdHxHxAN&<x*<NC~NdHxHx <r$<ANNC~NdHxHx <r$<ANNC~NdpNNTEHold down the button to draw box 3 outline and release when satisfiedCN|ADNprNpONNprNNT#Third Dialog Object Box is defined:aNA :NAN&<x*<NfN6HxHxANC~NdHxHxANC~NdHxHxANC~NdHxHxANC~NdAN&<x*<NN/AN&<x*<NN"N <r$<ANNN/ <r$<ANNN"N(HxHxAN&<x*<NC~NdHxHxAN&<x*<NC~NdHxHx <r$<ANNC~NdHxHx <r$<ANNC~NdNTCHold down the button to draw an exit box and release when satisfiedCN|ADNprNpONNpNprNNH"Exit Dialog Choice Box is defined:NHx HxANC~NdHx HxANC~NdHx HxANC~NdHx HxANC~NdAN&<x*<NN/AN&<x*<NN"N <r$<ANNN/ <r$<ANNN"N(Hx HxAN&<x*<NC~NdHx HxAN&<x*<NC~NdHx Hx <r$<ANNC~NdHx Hx <r$<ANNC~NdANAN&<x*<NfN Dialog Box is now Defined: To save the box choose  ContinueNA :NAN+@pNNNprNpONNprNANpNpNpN"pNpBLBPAN&<x*<NN+@T -\Np&<x*<NN+@XN+@dN+@h -LJWHfNVNH +@l +@p +@L -p`]HfN +m`p -ldVHfN:+mld -phVHfNT+mph` -dANl -hANl+|t+mlx+mp| -tSWHfNBNH +@ +@ +@t -`]HfN+m` -xVHpJBgp/ -|VHpJBgp$VHfN> -p"-lN -|"-xN( -p"-lN -"-N(+mx+m|`B -xANl -|ANl -p"-lN -"-N(pNpAN/AN"NAN/AN"N(NNANpNpNpprNpPNNprNNTAEnter A Box Title: Left Button = Keep Right Button = Start Over4NpNpANA CN|NANlNANlNA$NlNCN|HmA "_N6fNƠHmA"_NCN|AN/AN"NANpNA$N&<x*<NfN,N\Hx HxNNpC~NdHx HxNNpC~NdANNzA$N&<x*<NfNZA CN|ANA$N&<x*<NgpNpNpprNpONNprNNH@Enter Box 1 Text: Left Button = Keep Right Button = Start OverNpNpANA CN|NANlNANlNA$NlNCN|HmA "_N6fNfHmA"_NCN|AN/AN"NANpNA$N&<x*<NfNHx HxNNpC~NdHx HxNNpC~NdN\ANNzA$N&<x*<NfN A CN|ANA$N&<x*<NgpNpNpprNpONNprNNH@Enter Box 2 Text: Left Button = Keep Right Button = Start OverNANpNpA CN|NANlNANlNA$NlNCN|HmA "_N6fN,HmA"_NCN|AN/AN"NANpNA$N&<x*<NfNʸHx HxNNpC~NdHx HxNNpC~NdN\ANNzA$N&<x*<NfNA CN|ANA$N&<x*<NgpNpNpprNpONNprNNH@Enter Box 3 Text: Left Button = Keep Right Button = Start OverNANpNpA CN|NANlNANlNA$NlNCN|HmA "_N6fNHmA"_NCN|AN/AN"NANpNA$N&<x*<NfN~HxHxNNpC~NdHxHxNNpC~NdN\ANNzA$N&<x*<NfN̬A CN|ANA$N&<x*<NgpNpNpprNpONNprNNTCEnter Exit Box Text: Left Button = Keep Right Button = Start Over4NANpNpA CN|NANlNANlNA$NlNCN|HmA "_N6fNͼHmA"_NCN|AN/AN"NANpNA$N&<x*<NfNHHxHxNNpC~NdHxHxNNpC~NdN\ANNzA$N&<x*<NfNvA CN|ANA$N&<x*<NgpNpNpAgANNbNNpNpA탺NNT Custmbx.lst4CN|pNHPNH\*.LST"_NHPHmA탺""_NHmA "_N,gNўA탺NSVHgHmA "_N6fNpNAXNpONHPAr"_N0pNNTRem # HPA"_NHPNH procedure #"_NNNpNp'NNpNN` Procedure ANNApNAPNpNNnA' It is up to you to design this box to the specifications neededNpNNnA' in the desired resolution. If you are unsure if a box will fit%NpNNnE' within the bounds of a given resolution, use the resolution overlay4NpNN`.' option with the Custom Designed Box routine.NpNp'NNpNNn Sget Tempuse$ NpNN`' Now for your object dataNpNp'NNpNp'NNpNNn Deffill 0,2,8jNpNNn Defline 1,2!NpNNn%' Now for the Main Dialog Box ObjectstNpNNnPbox HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNn Defline 1,1NpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNn'Main Box LabelNpNNnText Hx pC~NNp,NHx pC~NNp,NHPA"_NHPA"_NHPA"_NNNpNp'NNpNNn' Choice Box #1NpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNnText Hx pC~NNp,NHx pC~NNp,NHPA"_NHPA"_NHPA"_NNNpNp'NNpNNn' Choice Box #2NpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNnText Hx pC~NNp,NHx pC~NNp,NHPA"_NHPA"_NHPA"_NNNpNp'NNpNNn' Choice Box #3NpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNnText HxpC~NNp,NHxpC~NNp,NHPA"_NHPA"_NHPA"_NNNpNp'NNpNN` ' Exit BoxNpNN`Box Hx pC~NNp,NHx pC~NNp,NHx pC~NNp,NHx pC~NNNpNN`Box Hx pC~NNp,NHx pC~NNp,NHx pC~NNp,NHx pC~NNNpNNnText HxpC~NNp,NHxpC~NNp,NHPA"_NHPA"_NHPA"_NNNpNp'NNpNN`' End of Object Box DefinitionNpNp'NNpNN`>' If you want to add additional text, this is the area for it.NpNp'NNpNp'NNpNNn' Now for the User Input:aNpNNnM' See the source libraries for techniques to get user input from the keyboard>NpNNnS' If you intend to use text entry, you should leave room in your Dialog Box for it.4NASlx+11 And XSty And YSrx-11 And XSty And YSlx And Y>Sty And YMincount>NpNNnActualcount=Actualcount-14NpNNn X=ActualcountlNpNNH@Redraw_sliderHPA"_NNNpNNn Graphmode 1NpNNnDeftext 1,0,0,64NpNNnText ,HxpC~NNp,NHxpC~NNp,NHPA"_NHPA"_NHPA"_NNNn +Percent$!NpNNnEndifNpNNnEndif%NpNN`' Main Box Object managementNpNNn If K=1 and X> HxpC~NNNn and X<4HxpC~NNNn and Y>4HxpC~NNNn and Y<4HxpC~NNNpNN` If Choice1=0NpNNn Choice1=1!NpNNn Deffill 1,2,84NpNNnPbox ,HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNn Deftext 0NpNNn Graphmode 24NpNNnText Hx pC~NNp,NHx pC~NNp,NHPA"_NHPA"_NHPA"_NNNpNN`ElseNpNNn Graphmode 1NpNNn Deftext 1,0%NpNNn Deffill 0,2,84NpNNnPbox ,HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNnText Hx pC~NNp,NHx pC~NNp,NHPA"_NHPA"_NHPA"_NNNpNNn Choice1=0 NpNNnEndif NpNNnEndif%NpNNn If K=1 and X>4HxpC~NNNn and X<4HxpC~NNNn and Y>4HxpC~NNNn and Y<4HxpC~NNNpNN` If Choice2=0NpNNn Choice2=1!NpNNn Deffill 1,2,84NpNNnPbox ,HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNn Deftext 0NpNNn Graphmode 24NpNNnText Hx pC~NNp,NHx pC~NNp,NHPA"_NHPA"_NHPA"_NNNpNN`ElseNpNNn Graphmode 1NpNNn Deftext 1,0%NpNNn Deffill 0,2,84NpNNnPbox ,HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNnText Hx pC~NNp,NHx pC~NNp,NHPA"_NHPA"_NHPA"_NNNpNNn Choice2=0 NpNNnEndif NpNNnEndif%NpNNn If K=1 and X>4HxpC~NNNn and X<4HxpC~NNNn and Y>4HxpC~NNNn and Y<4HxpC~NNNpNN` If Choice3=0NpNNn Choice3=1!NpNNn Deffill 1,2,84NpNNnPbox ,HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNn Deftext 0NpNNn Graphmode 24NpNNnText HxpC~NNp,NHxpC~NNp,NHPA"_NHPA"_NHPA"_NNNpNN`ElseNpNNn Graphmode 1NpNNn Deftext 1,0%NpNNn Deffill 0,2,84NpNNnPbox ,HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNN`Box HxpC~NNp,NHxpC~NNp,NHxpC~NNp,NHxpC~NNNpNNnText HxpC~NNp,NHxpC~NNp,NHPA"_NHPA"_NHPA"_NNNpNNn Choice3=0NpNNnEndifNpNNnEndif%NpNNnPause 84NpNN`Until K=1 and X>Hx pC~NNNn and X<4Hx pC~NNNn and Y>4Hx pC~NNNn and Y<4Hx pC~NNNpNNn Deffill 1,2,8!NpNNnPbox ,Hx pC~NNp,NHx pC~NNp,NHx pC~NNp,NHx pC~NNNpNNn Deftext 0 NpNNn Graphmode 24NpNNnText HxpC~NNp,NHxpC~NNp,NHPA"_NHPA"_NHPA"_NNNpNN`Pause 10NpNNn Graphmode 14NpNNn Sput Tempuse$4NpNN` Clr Tempuse$NpNN`B' Box values are returned in the Choice1,Choice2,Choice3 variablesNpNN`F' with a value of 1 indicating selection. Slider percentage is storedNpNNn=' in the Slidepercent variable as a number between 0 and 100.tNpNN`ReturnNpNNH Rem # end HPA"_NHPNT)drawlines procedure #"_NNNA' By adjusting these coordinates you can move the box anywhereNpNNn9' on the screen. Don't forget the different resolutions.eNpNp'NNpNN`@' Moving a box on screen is as easy as adjusting these 4 points:NpNNnLx=gAZNNpNNnRx=A`NNpNNnTy=AfNNpNNnBy=AlNNpNp'NNpNp'NNNNpNNnE' The GFA Basic Companion Computer Generated Source Code 19874NpNp'NNpNp'NNpNNnG' This source code is Copyright (c) 1987 Marathon Computer Press4NpNNn)' '&8NpNN`8' Distributed by MichTron, Inc. NpNp'NNpNN`H' Legal owners of The GFA Basic Companion are granted a non-exclusive NpNN`J' license to distribute applications containing this source code withoutNpNN`L' any additional royalties or licensing fees with the following exception:NpNp'NNpNNnA' The user agrees not to distribute any applications containingeNpNN`D' this source code modified or unmodified in any manner unless theNpNNn;' the program/application is in compiled or PSAVED form. sNpNp'NNpNNnE' By your use of this product you consent to all of the above terms4NpNN`2' with no exceptions, or exclusions of any kind.NpNp'NNpNN`F' To release this source code in any other manner is a violation of NpNN`:' Title 17 of the U.S. Code governing copyrighted works.NpNN`4' Violators will be prosecutedNpNN`2' All rights are reserved.NpNp'NNpNN`D' Please Honor Our Copyright and the Conditions Outlined AboveNpNp'NNNNAZ 0A` p0Af 0Al 0ANpNpNpNpNpNpNpNpNpN"AZN/AfN"NA`N/AlN"NtAZN/AfN"NA`N/AlN"N(pNpN"AZN&<x*<NN/AfN&<x*<NN"NNH Dialog Box Options NpNpNpNAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtpNpNpNAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/ <r$<AlNNN"NNH Continue N <r$<A`NNN/ <r$<AlNNN"NNT Abort 4NBmNANlNANlNA$NlAZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/AfN&<x*<NANNVpJBgp/ <r$<AlNNANNPpJBgp/A$N&<x*<NpJBgp$VHfNA 0AZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/AfN&<x*<NANNVpJBgp/ <r$<AlNNANNPpJBgp/A$N&<x*<NpJBgp$VHfNA 0ANzN>gANANNNAZ 0A` p0Af 0Al 0ANpNpNpNpNpNpNpNpNpN"AZN/AfN"NA`N/AlN"NtAZN/AfN"NA`N/AlN"N(pNpN"AZN&<x*<NN/AfN&<x*<NN"NNH Labeling Options NpNpNpNAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtpNpNpNAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/ <r$<AlNNN"NNH Add Text N <r$<A`NNN/ <r$<AlNNN"NNT Skip Text 4NBmNANlNANlNA$NlAZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/AfN&<x*<NANNVpJBgp/ <r$<AlNNANNPpJBgp/A$N&<x*<NpJBgp$VHfNA 0AZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/AfN&<x*<NANNVpJBgp/ <r$<AlNNANNPpJBgp/A$N&<x*<NpJBgp$VHfNA 0ANzN>gpNANANNNAZ 0A` p0Af 0Al 0ANpNpNpNpNpNpNpNpNpN"AZN/AfN"NA`N/AlN"NtAZN/AfN"NA`N/AlN"N(pNpN"AZN&<x*<NN/AfN&<x*<NN"NNT Add A Slider Box? NpNpNpNAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtpNpNpNAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"NtAZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(AZN&<x*<NN/ <r$<AlNNN"NNT Yes N <r$<A`NNN/ <r$<AlNNN"NNH No NBmNANlNANlNA$NlAZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/AfN&<x*<NANNVpJBgp/ <r$<AlNNANNPpJBgp/A$N&<x*<NpJBgp$VHfN#^A 0AZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/AfN&<x*<NANNVpJBgp/ <r$<AlNNANNPpJBgp/A$N&<x*<NpJBgp$VHfN$dA 0ANzN>gpNANANNNANAZ `0A` 0 Af p0Al 0pNppNpNpNpNpN"AZN/AfN"NA`N/AlN"NtAZN/AfN"NA`N/AlN"N(pNpN"AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNN"N(pNpNpNpNpNpNpNpNAZN&<x*<NN/AfN&<x*<NN"NNHAdding A Slider Box:NAZN&<x*<NN/AfN&<x*<NN"NNHD To add a Slider Box, just hold down the left mouse button and moveNAZN&<x*<NN/AfN&<x*<NN"NNHFthe slider into position. When it is located in the desired position,NAZN&<x*<NN/AfN&<x*<NN"NNH:just release the mouse button. That's all there is to it!NAZN&<x*<NN/AfN&<x*<NN"NNT?  Press Down on the Left Mouse Button and Hold Down to Start.4NNA$NlA$N&<x*<NgNANlNANlNA$NlCA 0AN&<x*<NANCA 0AN&<x*<NA$NA)NA$NzNgfANNNANpNCN|pNC N|pNpN"AN/AN"NAN/A$N"N(AN&<x*<NfN*AN&<x*<NN/AN&<x*<NN"NAN <r$<ANNN/AN&<x*<NN"NA NN+FAN&<x*<NN/ <r$<A$NNN"NAN <r$<ANNN/ <r$<A$NNN"NA NAN&<x*<NN/AN"NAN&<x*<NN/A$N"N <r$<ANNN/AN"N <r$<ANNN/A$N"NpNpNpNAN&<x*<NN/AN"N <r$<ANNN/A$N"NtpNpNpNAN&<x*<NN/AN"NAN&<x*<NN/A$N"NtAN&<x*<NN/AN"NAN&<x*<NN/A$N"N(NNBmdBm^Bm|AZ u0A` E0Af 0Al 0AN&<x*<NfN-AfNAlNNAZNA` 0ANpNpNpNpNpN"AN&<x*<NfN.4pNpNpNp NN.LpNpNpNpNAZN/AfN"NA`N/AZNAlNNN"NtpNpN"AZN/AfN"NA`N/AZNAlNNN"N(pNpN"AZN&<x*<NN/AfN&<x*<NN"N <r$<A`NNN/ <r$<AlNNAZNNN"N(NT  Error C탐N|AN&<x*<NfN0AZN&<x*<NN/AfN&<x*<NN"NA탐NN0PAZN&<x*<NN/AfN&<x*<NN"NA탐NNT Number = CN|AZN&<x*<NN/AfN&<x*<NA`NNN"NHmNpJBgp/AxNzN>pJBgp$VHfN6A76NA$N&<x*<NpJBgp/AZN&<x*<NANNVpJBgp/ <r$<A`NNANNPpJBgp/ <r$<AlNNAZNNANNVpJBgp/ <r$<AlNNAZNNANNPpJBgp$VHfN8AZN&<x*<NN/ <r$<AlNNAZNNN"N <r$<A`NNN/ <r$<AlNNAZNNN"NtpN+|A$N&<x*<NpJBgp/ <r$<A`NNANNVpJBgp/ <r$<A`NNANNPpJBgp/ <r$<AlNNAZNNANNVpJBgp/ <r$<AlNNAZNNANNPpJBgp$VHfN: <r$<A`NNN/ <r$<AlNNAZNNN"N <r$<A`NNN/ <r$<AlNNAZNNN"Nt+|NA76N -JVHgANANBm^BmdA+xNNN*Ft D &b(Z8^2\2~(:d8n <\8d8 & 288\^nr|>`T Fzn,  4Ptz:||r& f 4VFRZzf>0l0bp>ZzP>P68<^0j& Zx( X 6b*Z`d 0*&&& ^  d @& J"l$ ^  d@Z& "      l& d8>ZZNZZNZZNZZ&x       "& PZZNZZNZZNZZNZZNZZ04PvvR6誤& Z:> ^t $&  0 z  z  z  z   VZp& \BvzvZ4Pt~.P0b|rN0dFpNZx& &( XR&~VR&R&R&& &&l.F.@^f^f^f^f^f`^f8&  J*rR&..80258,34,43,20,1 wpwU33ss77w+ @? @ ' @ 0' @ 0  @?0 @0 @ 0 @ 0 GfABASIC$BFFFFFFFTTT ^       $$$$REZKXYCHOICE1CHOICE2CHOICE3ATEMPUSEKEYEDIT LIN_TO_EDITOUT EDITCUST.LSTMF#Y! " Choice 1 = "FFY! " Choice 2 = "FFY! " Choice 3 = "FF$Y! "Editable Text = "FF0Yp!H "Press any key to quit..."FEa FqFE># EDITCUST.LST procedure #  #+F#F The GFA Basic Companion Computer Generated Source Code 1987   H This source code is Copyright (c) 1987 Marathon Computer Press  J Legal owners of The GFA Companion are granted a non-exclusive license H to distribute applications containing this source code without any s, additional royalties or licensing fees.  0 Provided the following conditions are met: s B The user agrees not to distribute any applications containing F this source code modified or unmodified in any manner unless the y< the program/application is in compiled or PSAVED form. n F To release this source code in any other manner is a violation of < Title 17 of the U.S. Code governing copyrighted works. o6 Violators will be prosecuted o4 All rights are reserved. d  nE F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution *Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box  oBIt is up to you to design this box to the specifications needed Bin the desired resolution. If you are unsure if a box will fit Fwithin the bounds of a given resolution, use the resolution overlay 0option with the Custom Designed Box routine. t  Fk&)!Sorry For Medrez Only!!OK!FqF! F! pNow for your object data s o o(!!!@F%!!F$!F&Now for the Main Dialog Box Objects $!! !<Ft$!F$!! !<Ft$0!' ! !:FtMain Box Label .'6!H!The GFA Basic CompanionF.'6!p!Custom Designed Box DemoF('B! !by John B. HolderFx6'%!4! 1987 by Marathon Computer PressF4'*!H!Distributed by MichTron, Inc.Fs"'M!\! Only $49.95Fb0'2!!Click the Mouse in Box orFn:'#!!#Press the Tab Key to Edit the FieldF Choice Box #1 $4!L!!FK$<!T!!FK'!!Option 1F Choice Box #2 $\!,! !`FK$d!0! !\FK' !L!Option 2F Choice Box #3 $8!t!q!FK$<!x!o!FK'! !Option 3F Exit Box $b!"!\!4FK$f!$!Z!2FK'!-!QuitF End of Object Box Definition  n@If you want to add additional text, this is the area for it. v f fNow for the User Input: NSee the source libraries for techniques to get user input from the keyboard TIf you intend to use text entry, you should leave room in your Dialog Box for it. 6If you have text entry routines, Insert them here: o f&Now for an editable text item entry  oThe setup is as follows: i$>!!  ! FeYL!  "F-F oFf2Here we read the keyboard and the mouse buttons ESFERFEPFEQFMain Box Object management i: &>   FF"YH!  "> FYL!  "F`!FYH!  " F &zJFE F FF F '$7 FyF"YH!  "> FYL!  "F`!F 'JFE F FYH!  " F F F< (<TTFo 'FEF%!!F$<!T!!F(F!F'!!Option 1F (F!F(!F%!!F$4!L!!F$4!L!!F$<!T!!F'!!Option 1FEF FE FE< )d 00\\Fo )6FEF%!!F$d!0! !\F(F!F' !L!Option 2F )F!F(!F%!!F$\!,! !`F$\!,! !`F$d!0! !\F' !L!Option 2FEF FE FE< +J<ooxxFo *FEF%!!F$<!x!o!F(F!F'! !Option 3F +FF!F(!F%!!F$8!t!q!F$8!t!q!F$<!x!o!F'! !Option 3FEF FE FE {F<%RfZZ$$22Fo%!!F$f!$!Z!2F(F!F'!-!QuitF { F!FDBox values are returned in the Choice1,Choice2,Choice3 variables aHwith a value of 1 indicating selection. Slider percentage is stored >in the Slidepercent variable as a number between 0 and 100. .FnT# end EDITCUST.LSTdrawlines procedure # ?+_GfABASIC`r|REZSLXSRXSTYSBYMINCOUNTMAXCOUNT ACTUALCOUNTKXYCHOICE1CHOICE2CHOICE3 SLIDEPERCENTATEMPUSELARROWRARROWPERCENTKEY LIN_TO_EDITOUT CUSTOMBX.LSTREDRAW_SLIDERCUSTOMBX.LST CUSTOMBOX.LSTMFFY! " Choice 1 = " FiY! " Choice 2 = " FiY! " Choice 3 = " Fi"Yp! " Slider = ""%Fy$Yp! "Editable Text = "F0Yp! "Press any key to quit..."FEa FqFE># CUSTOMBX.LST procedure #  #+F#F The GFA Basic Companion Computer Generated Source Code 1987   H This source code is Copyright (c) 1987 Marathon Computer Press  J Legal owners of The GFA Companion are granted a non-exclusive license H to distribute applications containing this source code without any s, additional royalties or licensing fees.  0 Provided the following conditions are met: s B The user agrees not to distribute any applications containing F this source code modified or unmodified in any manner unless the y< the program/application is in compiled or PSAVED form. n F To release this source code in any other manner is a violation of < Title 17 of the U.S. Code governing copyrighted works. o6 Violators will be prosecuted o4 All rights are reserved. d  n nE F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution *Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box  oBIt is up to you to design this box to the specifications needed Bin the desired resolution. If you are unsure if a box will fit Fwithin the bounds of a given resolution, use the resolution overlay 0option with the Custom Designed Box routine. t p  F()!This demo For High Rez!!OK!FqF! F!FoNow for your object data s o o%!!Fo$!F&Now for the Main Dialog Box Objects $(!! !0Ft$!F$(!! !0Ft$8!! !/FtMain Box Label (!!!PFH'`!:!2This is an example of a Custom Designed Dialog BoxF(!!!@F Choice Box #1 $!!!&Fm$!!!$Fm*'R!!Option Box Number 1Ff Choice Box #2 $!5!!^Fb$!7!!\Fb*'X!L!Option Box Number 2Ff Choice Box #3 $!n!! Fb$!p!! Fb*'X!!Option Box Number 3Ff Exit Box $ !!e!Fb$!!c!Fb'!!Quit BoxF End of Object Box Definition  n@If you want to add additional text, this is the area for it. a(!!!PF.'%!!The GFA Basic CompanionF4'!!1987 Marathon Computer PressFu4'! !Distributed by MichTron, Inc.Fr(!!!Fo6'4!,!Demo Prepared by John B. HolderFl(!!!@F0'%!u!Release 1.00 Will Soon BeFo0'%!!Available For Only $49.95Fn0'%! !From Particpating DealersFnNow for the User Input: NSee the source libraries for techniques to get user input from the keyboard TIf you intend to use text entry, you should leave room in your Dialog Box for it. Slider X Y Parameters are: nECCFPE@ FPE!!FPE&&FP E Now let's draw the slider box EFEF$!F!!!F &F'!!F'!!F &F'!!F'!!F F !! !F !! !F%!!F !! !F%!!F!$'C!!Slider = 0% FF0!!(!F0!!(!FE@FE(FEF E E6If you have text entry routines, Insert them here: o4' !4!Click the mouse in the box orFb2' !>!Press Tab to Edit This FieldF$%!M! !aFdY4!` "FP-Fs f<The Inkey$ reads the keyboard down below and tells us if #FThe tab key has been pressed. You can also use the mouse to select #the option. FfESFERF EPF EQF EEditable text management s *>7 JFF Y0!` "Fe>  FY4!` "Fe` !F *FE  F FEY0!` "( FY4!` "FF  F: +" %  MM aaFF Y0!` "Fe>  FY4!` "Fe` !F *FE  F FEY0!` "( FY4!` "FF  FSlider Object Management u4 + 0    FMF!F(!!!@F 'C!!Slider F F, ,J 0   F ,F F EF EFMFF!F(!!!@F 'C!!Slider F F F, , 0   F ,F EFF EFFMFF!F(!!!@F 'C!!Slider F F FMain Box Object management < .p    $$Fo - F  EF%!!F$!!!$F(F!F*'R!!Option Box Number 1F .lF!F(!F%!!F$!!!&Fb$!!!&Fb$!!!$Fb*'R!!Option Box Number 1F EF FE FE< /   77 \\Fo /, F  EF%!!F$!7!!\F(F!F*'X!L!Option Box Number 2F /F!F(!F%!!F$!5!!^Fb$!5!!^Fb$!7!!\Fb*'X!L!Opt3ion Box Number 2F EF FE FE< 1d   pp  Fo 0 F  EF%!!F$!p!! F(F!F*'X!!Option Box Number 3F 1`F!F(!F%!!F$!n!! Fb$!n!! Fb$!p!! Fb*'X!!Option Box Number 3F EF FE FE {F<)H  cc  Fo%!!F$!!c!F(F!F'!!Quit BoxF { F!FDBox values are returned in the Choice1,Choice2,Choice3 variables aHwith a value of 1 indicating selection. Slider percentage is stored >in the Slidepercent variable as a number between 0 and 100. .FnT# end CUSTOMBX.LSTdrawlines procedure # L# Redraw_sliderCUSTOMBX.LST procedure # # #+F#%!!F#$!F !! !F%!!F !! !F%!!F! 4R (F0!!(!F0!!(!F 4F  !! !F  !! !F F E = A @ % FE# @ FE F.FE.3wGfABASICvvv~~~444#~$%&&'$'$'$'*'*'*'2'j'j'j'jTRACKXREZONSNDUMMYBLOCK1BLOCK2AX1X2Y1Y2XX1XX2X1CONTX2CONTKYDISKTYPEDISK_HITXXYYCLIP_LENCOLR_LEN CLIP_WIDTH CLIP_HITEREZ_PICX_FORMAT_SWITCH1XFORMAT_SWITCH2 CRASH_DISKBUFFERBMBUFF2BUF2BUFF1 FREESPACEDISK_HITFILENAMEMASTERBLANKSCREEN1PICCOLRVIRGINMAGIC INTERLEAVESPTDEVSIDETRACKFLLERSNDISKTYPEEXFLAGSIDESREZCURRDRIVOUTV2STRINGLOOPBEGIN SHOW_TITLEWARNING FORMAT_DISK SHOW_DONE FORMAT2_DISKGETSIDES SHOW_BLOCKSDRAW_FORMATTERDETERMINE_DRIVEINDIVIDUAL_TRACKSINDIDIDUAL_TRACKSANIMATE CLIPLOADERPUT_CLIPPThis is a demonstration file to show you just what is possible with GFA Basic Pand the Pbox Command. The acutal formatting routine is a cleaned up version Pof Public Domain Source Code Downloaded from GEnie. However, the dialog box Proutine contains many of the techniques presented in The GFA Basic Companion, 8so please do not upload this source code to any BBS. T oE F iX JFP)!: You must be in | Medium Resolution | To use me! !! SORRY !FqF! F!%!!F!! !GF Equates "EeeFo sector format data 2E5yFomagic constant, must be used as is EF,EF order of sectors on disk (usually 1) 6EFsectors per track (use 9 for standard) 6Dev%=0 !drive #; 0 for A, 1 for B .Sides%=0 !disk side, 0 or 1 EF EF EF$EFtrack to be formatted, 0-79 o,E5yF actually an unused longword e,E  ! Fbuffer for the track data DE ! Fbuffer for clearing the boot & fat tracks (E ! Fbuffer for boot sector :EFs Serial No., should be randomized longword mLNote: a serial number > &H010 results automatically in a random SN. -gosub disktype rDDisktype%=2 !Disk types 0=40 track, single sided (180K) B 1=40 track, double sided (360K) B 2=80 track, single sided (360K) B 3=80 track, double sided (720K) < -1=no change to disk type (B EF 0=not executable, 1=executable, -1=no change to boot sec. 0 main loop  ajFMFMF(The animate procedure does just that: PIt animates the formatting process. Not only does it give you something nice Jto look at but also graphically displays errors as they occur {if any}.  oM FFERFEQFEPF: o  \\F%F$ !\! !F { F%F$ !\! !F$ !\! !F%F(F'!|!AF(F'1!|!BFEFEF F: p*>>\\F%F$*!\!>!F { F%F$*!\!>!F$*!\!>!F%F(F'1!|!BF(F' !|!AFEFEF FE: q  **>>F%F$ !*! !>F { F%F$ !*! !>F$ !*! !>F%F(F'!:!SF(F'1!:!DF EF EFEF FE: r*>>**>>F%F$*!*!>!>F { F%F$*!*!>!>F$*!*!>!>F%F(F'1!:!DF(F'!:!SF EF EFEF FE: tZ  ffzzF%F$ !f! !zF svJFMF sF { Fp)!SDisk Not Defined: | format SSDD Disk in Drive A?| Define Drive & Type.!! Yes | Define !FwLF F%!!FJ$ !f! !zF$ !f! !zF F:n  F%F$ !! !F { F%!!FJ$ !! !F $ !! !F V)!B Fancy Formatter | 1987 | Marathon Computer Press!! OK !FqFP=L +F=v6EGF=v,EG F0E !z !z !!!!!!! FMF uF uFwDEGF v Fnd)!PBad Disk: | Multiple errors encountered| Check Write Protect Tab!! OK !F jFBEFFFkEFFFkEF FEw:EG F0E !z !z !!!!!!! FMF vF vJF xj FFE!z !! ! F&E!z !z !!!!! F EA FgFF x F!P)!%Disk Formatted: | Free Space = A  | Errors = 0 !! OK !F x^FiP)!!Disk Not Properly Formatted: | A  Errors Encountered!! OK !F F!g Fs FM FFjFjF.F  P=M  P=M +F  E F | JF%!!F$H! !@ !3F$! !F$H! !@ !3F$!!F$p! ! !.F(!!!@F,'!H!Diskette Track WindowF '!x!DriveF $ !\! !FF$*!\!>!FF(F'!|!AF'1!|!BF(F'!8!TypeF$ !*! !>FF$*!*!>!>FF(F'!:!SF'1!:!DF(F'!t!FormatF$ !f! !zFF '!!QuitF$ !! !FF'!*!Side 0F'b!*!Side 1F F M F.F + FFindividual tracks ~F F big box %F$R!X!  ! FS$R!X!  ! FF seperator $@!X!@! FFtwo track boxes $W!d!;!FF$E!d!  !FFE FtE Ft}EG`F,W!dd!W!F ,E!dd!E!F E F }NF~BEGF*W!d!;;!dF*E!d!  !dFE F }F F.FE  +F %F ~z JF EFF%F FF EXXF EjjF EhhF EFEFFFEOOF JF ~F ! ! ! F DF! @ F. !# #  ! !# #  F F  F    JFE  FE  FD!# ##    !!# ##    F F P ppJFE  FE  FD!# ##    !!# ##    F F p JFE pFE pFD!# ##pp   !!# ##p   F F \ HHJFE  FE  FD!# ##    !!# ##    F F HppJFE HFE HFD!# ##HH   !!# ##H   F F hp JFE pFE pFD!# ##pp   !!# ##p   F F   JFE  FE  FD!# ##    !!# ##    F F F$if two sided well lets display it :JF DFd! !! F F!  F .!# #  !!# #  F F F   JFE FE FD!# ##    !!# ##    F F  ppJFE FE FD!# ##    !!# ##    F F p JFQEpFEpFD!# ##pp   !!# ##p   F F  HHJFE FE FD!# ##    !!# ##    F F *HppJFEHFEHFD!# ##HH   !!# ##H   F F p JFEpFEpFD!# ##pp   !!# ##p   F F 6  JFE FE FD!# ##    !!# ##    F F F%F.FL@I +F@ EH F.FE = = = = =+ FE\PROGRAMS.LIB\DISK.RSCFM FDEHHFEHHFDeffill 2,2,8 Pbox 0,0,639,199 F"lEG H FoEFEFM FH(F!F FFH'\!>!1Fancy Formatter 1987 by Marathon Computer PressFs =.F=.This procedure was developed by Jim Luczak Band the PicClip program, elsewhere in the source code libraries  n+ F R- Pic Clip File Loader -  -( Filename$ --> Pic Clip File  " Fc 7I!M!F:M!!!!!F E! F! E! F!M!z !FM!z !F8MFz F$=!  Install Color palette = I@!z F.F+ F&=" l" Xx,Yy --> Screen Coordinates = !! !F&=" l.F= H:  , #( "eC! eC! u ~Xy.|6' This is a painless File Selector Routine that will handle the chore ' of getting a file name for you. It will return all valid GEM names ' ex. PROGRAM.PRG PROGRAM.TOS OVERLAY TEXT.DOC etc. ' 1987 Marathon Computer Press (c)1987 ' This routine is for you to use as you see fit. ' Procedure Fsel_input Repeat ' ' You may place any path desired below in the "\*.*" ' Fileselect Dir$(0)+"\*.*",File$,Dummy$ Exit If Dummy$="" Until Len(Dummy$)<>1 If Dummy$<>"" @Strip_file_path Endif Return ' ' Procedure Strip_file_path Local Size Size=Len(Dummy$) For Strippat=Size To 1 Step -1 If Mid$(Dummy$,Strippat,1)="\" Then File$=Right$(Dummy$,(Size-Strippat)) Strippat=1 Endif Next Strippat Return GfABASIC;(<<<<<<<<<<<<<TRUEFALSEBIOS_REZMREZHREZ SCR_ORG_X SCR_ORG_YREZ SCR_MAX_Y SCR_MAX_XW_GETW_SETW_CALC TOP_MARGINWFULLOLD_FULXOLD_FULYOLD_FULWOLD_FULHWATTRIBSWCLOSEDWFULLEDWARROWEDWHSLIDEDWVSLIDEDWSIZEDWMOVEDWGUESS SLID_HORZ_POS SLID_VERT_POSSLID_HORZ_SIZESLID_VERT_SIZECHAR_CELL_WIDTHCHAR_CELL_HEIGHTTXT_CHARTXT_LINE TXT_WIND_W TXT_WIND_H TOT_TXT_LEN TOT_TXT_LINESI1ATTRXPOSYPOSWIDTHHEIGHTWXWYWWWHMAXYWHMARKWTEMPHTEMPXTEMPYTEMPTEST MSG_EVENT OPEN_WINDOW SETWINDFULLPAGE_UPPAGE_DNROW_UPROW_DNPAGE_LTPAGE_RTCOL_RTCOL_LTSETHSLIDSETVSLID SETWINDSIZ SETWINDMOV CALC_VERT_POS SETWINDVSLID DRAW_WINDOW CALC_HORZ_POS SETWINDHSLID CALC_TXT_WIND SIZE_SLIDERS CALC_HORZ CALC_VERT> Window Demo --- GFA Systemtechnik 1986 --- : Extensive work by John Tal/Michtron/1987   o: Works in Color(med-rez) or Mono(hi-rez)  a r* F EFEF E@bios function call for screen resolution and returned values .EFoEFEF E$screen size (to be used with Rez) E  FoEHHFo E@get screen resolution from Xbios/Trap #14, opcode=Bios_rez=4 . E Fn E8calc to allow this demo to function in med or Hi rez s EF EFF EGEM opcodes  EPPF  ERRF  EXXF  E,working margin on GFA basic screen at top  E00F E&vars for tracking window full state EFEFE FrE Fr E F E&window attributes(&HFFF=all active) E Fi E(event messages return values in Menu nE00FgE88FgE@@FgEHHFgEPPFgEXXFgE``FgEppFg Evars to track sliders EFEFEFEF E$vars to track and calc text size e EFc!EF E<position in string array for upper left corner of window z"EF#EF E,window size in chars for text to displayE o$EF%EF&E88F 'EF E2create sample data to manupilate within window of E\ +For further information contact: F f E\ (Gordon Monnier &F f E\ (President, MichTron Inc. F l E\ \Fl  E\For Immediate Release: FFl@ E\GFA BASIC by GFA Systemtechnik >Fl` E\ MichTron is pleased to announce the release of GFA BASIC. GFA BASIC Fl E\was developed by our friends in Germany, GFA Systemtechnik. MichTron is Fl E\delighted that we can continue to bring you dynamic and useful programs Fl  E\from both home and abroad. Besides this package from Germany, we are Fl0 E\currently releasing new programs from England, Scotland, and France. Fl@ E\ GFA BASIC is a high level language for the ATARI ST that is as easy to FlP E\program as BASIC yet offers full access to system features and an execution Fl` E\speed that rivals assembly language. 8Flp E\ The concept behind the development of GFA BASIC was not to make Fl E\further minor improvements in BASICs programming language but to develop a Fl E\totally new form of BASIC which would meet the following criteria: Fl E\structured programming should be made possible in its entirety, everyone Fl E\who has programmed in BASIC should be able to use the new Interpreter in Fl  E\the shortest time possible, and the advantages already present in BASIC Fl( E\should be found in the newly developed BASIC. /Fl0 E\ GFA BASIC offers the user a BASIC Interpreter which, apart from Fl8 E\entirely fulfilling the before mentioned conditions, also offers the user Fl@ E\other advantages. The GFA BASIC Interpreter is very compact; it uses only FlH E\55 KBytes of 'precious' memory on your ATARI ST. The Interpreter has an FlP E\extremely fast processing speed; it needs less than half a second to carry FlX E\out an empty FOR-NEXT loop 10,000 times. 4Fl` E\ GFA BASIC also makes structured programming possible. In order to do Flh E\this, several additional structure commands were added to the list of BASIC Flp E\commands. For example: DO ... LOOP, WHILE ... WEND, REPEAT ... UNTIL, and Flx E\PROCEDURE (with local variables) were among those added. It was considered Fl E\necessary to limit the amount of commands to one per line to keep the Fl E\structure of the program simple. |<|< ?? ???? ? ??????? ????y?~<?????>??????~????????????????|????? ?????~<? ?????? ???? ??????????? ????? ????~>|<??~?~|~???~| |x????|x?xx????xx?xx????xx~|????xp?~<????????? ????? ??????~|x? ><><|xx p`  8080p`!2B!UUUUUUUUUUUUUUUUUUUUUUUUUUA!* ? A!U?@PA!jAA!UBPA!mBA!UBPA!mBA!UBPA!mBA!UBPA!mBA!UBPA!mBA!UBPA!mB$A!UB`PA!mB??mm.. ?A!UBߺ??PA!mB~~A!UB mmOOccyy||PA!mB%A!UBpsǾ PA!mB""@H"" "' A!UB@s PA!mBb0A!UB}S|}}`PA!mB}B}}8A!UBPA!mB@8Jx  A!UBDUD_D!!QQ PA!mB8D< A!UB A  PA!mB<A=}9}A!UBA_}yPA!mB A 8ǎ@|@|)PA  $D Q y@FAAU}A UUUUUUUUUU BL<EPA <c<A UUUUUUUUUU PA "A UUUUUUUUUU%PA  ' psA UPU( "" P9  's ]6 UPUP:uux6 ?* p^6 UUU?UU >PWW5 * :]]O4 UUUUUUUUUU<@9Pju]UW1 " `""̂"m (烿S?WWUUUUOUUUU]W]WUTPh Qlc`UpD6`UUUUUUUUUUb^UWUuUUUUUUUWUUu]]WU^n"~` s 7?UWx?U}UUUUUUUժueTիWAEcTmg`U`@?ZWU_WUU__UUUUUUuUժU USUO?UUWWUUWWUeTիU\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUbUUUU Uj5UUWU_WU~U]]U]WUUWڪ UUUWUOUzuuU]WUUUpUUUUUUUUUUUUU2UUUUU_U?UuUWUUU_UUUUUUU_U?UWUիUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU__UUUUTUUUUUUUUUUUWծWUUUUUUUUxUUUUUUUUU_U?__xz]UUUUUUUU^UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTUUUUUUUUUUUׇ==?juuUUUUUUUUUUUUUUUUUUUU?UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTUUUUUUUUUUUUժU WUUUUUUUUUUMUUUUUUUUUUUUUU ]UUUUUUUUUUUUU\qqqqqqqqqqqqVUUUUUUUUUUUUU*ժUȈ݈]UUUUUUUUUU88888888888UUUUUUUUUUUUUTUTuUUUUUUUUUU UUWqqqqqqqqqqquUUUUUUUUUUUUUUUUWUWUw#UժUUUUUUUUUU88888888888UUUUUUUUUUUUUUSUU/WUUUUUUUUUUUUUqqqqqqqqqqqUUUժUUUUUUUUUUUUUUUWUW]UUUUUUUUUUU* 888888888888jUUUUUUUUUUUUUUUUWUuUUUUUUUUUUUU5U qqqqqqqqqqqqUUUUj5UUUUUUUUUUUUUUUUU_uUUUUUUUUUUUj@*UUUUUUUUUUUUUUUUUUOUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUZUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUW@P@EUWY UUUUUUUUUUUUUUUUUUWUUUUUUUUUUUU d*@w8rUUUUUUUUUUUUUUUUUWUUUUUUUUUUUUUWUUVUUUUUUUUUUUUUUUUUWUUUUUUUUUUUUqUUUUUUUUUUUUUUUUWUUUUUUUUUUUUUuUUU_UU}UUUWUU}UUUWUU]UUUUUUUUUUUUUUU<ժUUUUUUUUUUUUUUUWUUUUUUUUUUUU UUUUUUUUUUUUUUUWUUUUUUUUUUUU? UUUUUUUUUUUUUUWUUUUUUUUUUUU@ϪUUUUUUUUUUUUUWUUUUUUUUUUUU5 W`  @~}UUUUUUUUUUUUUWUUUUUUUUUUUUj@ @ @ @@ @  j @UUUUUUUUUUUUWUUUUUUUUUUUUU@X @ @ @P P@0P@UPժUUUUUUUUUUUWUUUUUUUUUUUU? 0?` 0 `y}~UUUUUUUUUUUWUUUUUUUUUUUU_? 0?` 0PT `TUUUUUUUUUUWUUUUUUUUUUUU @ @@(@ @@ ``UUUUUUUUUUWUUUUUUUUUUUUU` @ @@ P T @   V8~0<>~UUUUUUUUUWUUUUUUUUUUUU0? `?@'0`UUUUUUUUWUUUUUUUUUUUUU0? `?@'T0`U7UUUUUUUUUWUUUUUUUUUUU  @ @ @ j@ UUUUUUUWUUUUUUUUUU U@ @ @5`@0U@@U_UUUUUUWUUUUUUUUU_ 0?0@ ? p@`?U?UUUUUWUUUUUUUU_W 0?0@ ? pU` UUU|UUUUUWUUUUUUUW*  @ @@j`UUUUWUUUUUUU UT@ @ @@5UUUUUUUUUU@0@ PUUUW>?UUUUWUUUUUU j@ 0`0?8`j`UUUWUUUUU _ 0`0?UUUUUUUUUUG8`UTpUUUU|UUWUUUU_  *; ?U>UWUUU_UUUU@0(UUUUUUUUUUU@@VUUUU WUWUUW```` WUUU@?U`UUUUUUUUUUUQ`UpUQAW WU; `  UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU@@WU`  @`)`pUUW);* ==  0 0ff11\)00ff11 0 0ff11<<11@x<x<~>|<??|????????????????{>??|???>?>???~?~???? =???????????????|??8@????>????|???????????????????????? ?ρ????~<?~?~>|?~|~?||??|x??xx??xx??x?x??xx??xx??x??~??|?>??x??????????????????~|>>|x<<xp88px ` 00`5440`4  4`04@4@4@2 @4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@4@?4@`4@a4@!4@14@4@4@4@4@4@4@4@4@x4@89CA4@$ED@x4@ ED@4@ 9Cx4@ 4@4@1K4@a x 0)4@">a yʀ4@ "a2 4@ 1xK4@ 4@4@`04@"% @@  ?  Uw@ 0  @  Uxx@  ߸ U\>  _فX =>U^x h~`|`5flف ?W h``$|Y@ ?W> h lg`6`vـ uU h lf`;6`f6́<uU  l|`|s7 H=U|@  n~` 7 800=U  g8o`` U_>@  c0mg``<t@U_  ?UW?  <pUW<  0_  xpp ` `   p@   W?@ >UU  UU~ =UU  ` U<  =U_H   _ yc0  <=W=|   ׃@   8ᇀ@   ?   x    ' p~ '  c1c1c1c1c1c1c1  c1c1c1c1c1c1c0  1c1c1c1c1c1c1c 1c1c1c1c1c1c1c@ c1c1c1c1c1c1c1! c1c1c1c1c1c1c0! 1c1c1c1c1c1c1c" 1c1c1c1c1c1c1c<$ c1c1c1c1c1c1c1 c1c1c1c1c1c1c08  1c1c1c1c1c1c1c@   1c1c 1c1c1c1c1c@x@  c1c1c1c1c1c1c1   c1c1c1c1c1c1c0 p@ @1c1c1c1c1c1c1c  @"  ( ( )  Ӡwsp   cV p 5 6S  dʪwv    0 ` ` 00 ` 00 ! 0` p ` ` `  ` ` 00   @@  @   < @     *p  *@  *@   ( `   (   @@@@@@0@   @0 0 0`` @   @``@PP@  @   0pp@  b`         @` 8@ @@   0 0`@ (` `@   ``P@@0@ 0     0  p`0  |8 ?7_ ?/ 7_@ ?0 `@0 0@@@x`  ` 0   @`>8 8@`0 @ P@   0 p@ ~ _@@8 o@ _ p? 8 ``@@ @  ``@ `@@`@ @0 @0   0  @ @@ @ /@ 88  @@  ?@   0  0      @8 p @88 p  @@@    0   @q ?  @  . . q8.@ .@ .@ .@ . @. .`x. . =.=.  0f1.@ 0f1.0f1.0f1J 0f1J 0f1J<1J<1GfABASICNVVVVdddd8>>>>DDDDLLLLREZLXRXTYBYOFFSETPOINTERPAGESOVERFLOWKEYINPUT STARTLOOP DRAWLINESXTEMPUSE HELPBOX1.LST HELPBOX1.LSTHELPBOX1.LSTDRAWLINESLThis is an example of how to read in a data file for use with the Helpbox Doption. A bit of experimentation will show you the possiblities.  pRBoth Helpbox1.Bas & Helpbox.Dat must be in the same folder for this example to work properly. a o oMF#># HELPBOX1.LST procedure #  #+F#F The GFA Basic Companion Computer Generated Source Code 1987   H This source code is Copyright (c) 1987 Marathon Computer Press * && 8 Distributed by MichTron, Inc.  H Legal owners of The GFA Basic Companion are granted a non-exclusive L license to distribute applications containing this source code without N any additional royalties or licensing fees with the following exception:  B The user agrees not to distribute any applications containing F this source code modified or unmodified in any manner unless the e< the program/application is in compiled or PSAVED form. n F By your use of this product you consent to all of the above terms 4 with no exceptions, or exclusions of any kind. o F To release this source code in any other manner is a violation of < Title 17 of the U.S. Code governing copyrighted works. o6 Violators will be prosecuted o4 All rights are reserved. d F Please Honor Our Copyright and the Conditions Outlined Above   E F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution C*Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box  o8Here are the coordinates to adjust for box movement. s@By adjusting these coordinates you can move th e box anywhere n:on the screen. Don't forget the different resolutions.  nBMoving a box on screen is as easy as adjusting these 4 points: nExxFxE FxE``FxE//Fx E E>This style of box will require considerable scaling to work in Low Resolution. i,Now to load your text lines into an array  o Let's make room for our Data:  e e* F e e Now to read in the Data File  o o7I!M! Helpbox.datFtn EGFt =`M! F X FF$8MF' That's all there is to it.  M M MFjFF%!!F F(!!!@F   F!EF E F(!!!PF  F!!!!F$!F!!!F$!F"!!!F  F!J'@! !.  Flip Page |  Flip Back | Return to Quit F !FJ'@! !.  Flip Page |  Flip Back | Return to Quit F F EF"Now to set up the paging scheme E%@ FE @FF !F EF  FEEFMFF Ea F2See if the key pressed was the <= left arrow   " KFe !F EFMF F " FWe do nothing EFo FE$Now for the => right arrow key   " MFg "zF EFFMF "FWe do nothing EFo FE FE6Check to see if the key pressed was the return key k "Z PPFh!FFFj!FF FX F. * Warning * DThe mouse was turned off at the start of this procedure so if you <need the mouse when you return use a Showm command here. o.FeL# end HELPBOX1.LST procedure # &Now for the actual drawing routine 1L# HELPBOX1.LSTdrawlines procedure # +F# $F#2 !@@!00!ppFr $F2 !@@!00!HHFr F E#@ @F0% EG@F %Z  F8'P!#0   # !  F# %( F.FT# end HELPBOX1.LSTdrawlines procedure # x `/  PPA&<$|6 Line 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 line 9 line 10 line 11 line 12 line 13 line 14 line 15 line 16 The Last Line DGfABASIC...zvAXKYSWITCHOUTICONINVERTIT NORMAL_MODEPThis is an example of how to create an interactive Icon with GFA Basic Source NCode. If there is enough demand for this sort of Icon, perhaps a dedicated FIcon Maker can be put together. Let MichTron know what you think. e c: This Demo is 1987 by Marathon Computer Press (c)1987 ( All Rights are reserved t 4 Please do not Upload this source code to any BBS  P$Y ! "Sample Icon ProgramF4Y !  "Press the Right Mouse ButtonF"Y !@ " To Quit...FiNY !  "6This Demo Taken From The GFA Basic Companion LibrariesF:Y !0 "# By John B. HolderFMFqFIcon tester 1 +FMFFF!F j!!F { FERFEQFEPF ZF:,LLLF F  F,F F,FF F F (F.F+FEF%!!F$!!F$L!L!!FF$L!L!!F !F$!!FNow for the object $p!\!f!zF$f!z! !zF$ !z!!\F$!\!p!\F$!!F$h!|! !|F$ !|!!^F$!!FEGxHF!^!!bbF vF$!!F$v!v!!vF!F4Yp! "Icon is now selected F{F.F+FFEF%!!F $!!F$H!H! !F$H!H! !F$L!L!!F$ !!4!F$ !!4!F Now for the object $p!\!f!zF$f!z! !zF$ !z!!\F$!\!p!\F$!!F$h!|! !|F$ !|!!^F$!!F $EGxHF!^!!bbF F$!!F$v!v!!vF(!!!F2Yp! "Icon is not selected F$'4!!Floppy Drive AF.FTx@Twobutn.lst Rem # TWOBUTN.LST procedure # ' Procedure Twobutn.lst ' The GFA Basic Companion Computer Generated Source Code 1987 ' ' ' This source code is Copyright (c) 1987 Marathon Computer Press ' ' Legal owners of The GFA Companion are granted a non-exclusive license ' to distribute applications containing this source code without any ' additional royalties or licensing fees. ' ' Provided the following conditions are met: ' ' The user agrees not to distribute any applications containing ' this source code modified or unmodified in any manner unless the ' the program/application is in compiled or PSAVED form. ' ' To release this source code in any other manner is a violation of ' Title 17 of the U.S. Code governing copyrighted works. ' Violators will be prosecuted ' All rights are reserved. ' ' ' Rez=Xbios(4) ' Rez=0 if machine is in low resolution ' Rez=1 if machine is in medium resolution ' Rez=2 if machine is in high resolution ' You may use the Rez variable in conditional statements concerning your box ' ' This box is suitable for all three resolutions ' Here are the coordinates to adjust for box movement. ' By adjusting these coordinates you can move the box anywhere ' on the screen. Don't forget the different resolutions. ' ' Moving a box on screen is as easy as adjusting these 4 points: Lx=154 Rx=480 Ty=75 By=130 If Rez=0 Lx=0 Rx=326 Endif ' ' Sget Tempuse$ Deffill 1,2,2 Deftext 1,0,0,6 Defline 1,3 If Rez=0 Pbox Lx+10,Ty,Rx-10,By Box Lx+10,Ty,Rx-10,By Else Pbox Lx,Ty,Rx,By Box Lx,Ty,Rx,By Endif Defline 1,1 Text Lx+65,Ty+10," " Deffill 1,2,8 Pbox Lx+61,Ty+25,Rx-230,By-15 Pbox Lx+226,Ty+25,Rx-65,By-15 Deffill 0,2,8 Pbox Lx+61,Ty+25,Rx-233,By-16 Pbox Lx+226,Ty+25,Rx-68,By-16 Box Lx+61,Ty+25,Rx-233,By-16 Box Lx+63,Ty+27,Rx-235,By-18 Box Lx+226,Ty+25,Rx-68,By-16 Box Lx+228,Ty+27,Rx-70,By-18 Text Lx+74,Ty+35,"A" Text Rx-88,Ty+35,"B" Text Lx+24,By-7," " Text Rx-140,By-7," " ' Now to get an answer for you Clr Choice Repeat X=Mousex Y=Mousey K=Mousek If X>(Lx+63) And X<(Rx-233) And Y>(Ty+27) And Y<(By-18) And K=1 Choice=1 Endif If X>(Lx+228) And X<(Rx-70) And Y>(Ty+27) And Y<(By-18) And K=1 Choice=2 Endif Until Choice<>0 ' The chosen button is returned to you in the ' Choice ' Variable ' If button 1 chosen, Choice=1 and If button 2 chosen, Choice=2 Pause 5 Sput Tempuse$ Clr Tempuse$ Return Rem # end TWOBUTN.LST procedure # GfABASIC@VZZZdnnn1F1111111111111REZKXYCHOICE1CHOICE2CHOICE3LXRXTYBYOFFSETOFFSET2ATEMPUSEKEYBDKEYKBOUTCREDLINELINSTYLE EXPLODE.LST EXPLCRD1.LST EXPLTEX1.LST EXPLWID1.LST EXPLCRED.LSTD Exploded dialog box demonstration: By John B. Holder 6/28/87  xF The GFA Basic Companion Computer Generated Source Code 1987   H This source code is Copyright (c) 1987 Marathon Computer Press * && 8 Distributed by MichTron, Inc.  J Legal owners of The GFA Companion are granted a non-exclusive license H to distribute applications containing this source code without any s, additional royalties or licensing fees.  0 Provided the following conditions are met: s B The user agrees not to distribute any applications containing F this source code modified or unmodified in any manner unless the y< the program/application is in compiled or PSAVED form. n F To release this source code in any other manner is a violation of < Title 17 of the U.S. Code governing copyrighted works. o6 Violators will be prosecuted o4 All rights are reserved. d F Please Honor Our Copyright and the Conditions Outlined Above   E F Q F ()!For High Rez Only | !!Sorry!FqF! F!8FYF#(!!!@F%!!F!! !GF#%!!FMF#YFPqF!># EXPLODE.LST procedure #  #+F# E FFoNow for your object data s o o%!!Fo$!F&Now for the Main Dialog Box Objects $8!!L!Ft$!F$8!!L!Ft$<!$!J!FtMain Box Label *'X!h!Exploded Dialog DemoF Choice Box #1 $@!H!5!FD$@!H!5!Fg$P!L!3!Fg$'@!x! Tell Me More!Fg Choice Box #2 $I!T!  !FD$I!T!  !Fg$J!X! @ !Fg$'X!! Show Me More!Fg Choice Box #3 $C!B!A!pFD$C!B!A!pFg$E!D!@!nFg&'j!Z!And Even More!!FD Exit Box $ !7!@ !GF$ !7!@ !GF$ !8!@ !FFV't!@!@ Press the Space Bar or Click The Mouse Here To Quit The Demo F End of Object Box Definition oFfESFERFEPFEQFMain Box Object management i< X"P33LLFo XFEF%!!F$P!L!3!F(F!F$'@!x! Tell Me More!FMF#!F(!F%!!F$@!H!5!F$@!H!5!F$P!L!3!F$'@!x! Tell Me More!FEF FE FE< YJ @ XXFo YFEF%!!F$J!X! @ !F(F!F$'X!! Show Me More!FMF!F(!F%!!F$I!T!  !F$I!T!  !F$J!X! @ !F$'X!! Show Me More!FEF FE FE< ZE@@DDnnFo ZFEF%!!F$E!D!@!nF(F!F&'j!Z!And Even More!!FMF!F(!F%!!F$C!B!A!pF!$C!B!A!pF!$E!D!@!nF!&'j!Z!And Even More!!FEF FE FE {FBV\1188FF F%!!F$ !8!@ !FFa(F!F,']!@!See You Later. Bye!F {pF!FjF.FnT# end EXPLODE.LSTdrawlines procedure # ># EXPLCRD1.LST procedure #  #+F#E F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution C*Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box # o6* Warning Warning * 6This style of box will require considerable scaling to work in Low Resolution. i6*3 8Here are the coordinates to adjust for box movement. s@By adjusting these coordinates you can move the box anywhere n:on the screen. Don't forget the different resolutions.  nBMoving a box on screen is as easy as adjusting these 4 points: nEHHFxE Fx E Fx E==Fx E E E ESome High Rez Scaling now.. _FR E   Fc FE EF*@@ !@@ F EF EF EF EF EF  EF@ EF` EF EF EF  EF0 EF@ EF2 E( This is just another example of what isFh2 E( possible with The GFA Basic Companion.Fh E F 4 E$ Demo Prepared by John B. HolderFe2  E# 1987 Marathon Computer PressF$@ E Fm6` E' The GFA Basic Companion is soon to beF* E released by:Fs* E MichTron, Inc.F.  E Tel: (313) 334-5700F 60 E' At Marathon Computer Press, We Go TheF4@ E$ Distance For Creative Computing!FF%!!F $!F! !! F! !! F$!F" ! ! ! F2Here is where we define the text size and style ,to change the size you must change the 6 8however, other modifications may have to occur also. cFt(! !!PFf E00F cF(! !!@Ff E F FE d,FF@'\!  !$ E X P L O D E D DIALOG BOX DEMOF dpF@'\! pp!$ E X P L O D E D DIALOG BOX DEMOF FdEG@F (! F('\!# H#  ! F dF(!!!@F$'6! !ContinueF$!F2/! !::! FLFESFERFEPFEQF eZFDe2/:  FD %!!F2/! !::! FF FF FF Pause 5 jF.F @# end of EXPLCRD1.LST procedure # ># EXPLTEX1.LST procedure #  #+F#E F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution C*Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box # o8Here are the coordinates to adjust for box movement. s@By adjusting these coordinates you can move the box anywhere n:on the screen. Don't forget the different resolutions.  nBMoving a box on screen is as easy as adjusting these 4 points: nExxFxE Fx E``Fx E..Fx E E hFF E Fx E  F  FE:This style of box will require considerable scaling to pwork in Low Resolution.  oF %!!Fe ilF(!!!PFo iF!(!!!@Fo F!$!F! !! F! !! F$!F"! !! F j.F!N' ! !))FD jFN' ! !))FD F jF!N' ! !) Want More Eh? FD k4FN' ! !) Want More Eh? FD F kF!N' ! d!) 'FD kFN' ! X!) 'FD F lJF!N' ! !) As you can see, the possiblities FD lFN' ! !) As you can see, the possiblities FD F lF!N' ! >!) are really only limited by your own FD mPFN' ! 4!) are really only limited by your own FD F mF!N' ! d!) imagination. Every serious GFA Basic FD nFN' ! X!) imagination. Every serious GFA Basic FD F nfF!N' ! !) Programmer will surely want to have FD nFN' ! |!) Programmer will surely want to have FD F oF!N' ! !) a copy of this program for his or her FD olFN' ! !) a copy of this program for his or her FD F oF!N' ! +!) software library. FD p FN' ! "!) software library. FD F pF!N' ! >!) 'FD pFN' ! 4!) 'FD F q6F!N' ! Q!) This is an example of a text only FD qFN' ! F!) This is an example of a text only FD F qF!N' ! d!) box created by the Companion's Source FD r# EXPLWID1.LST procedure #  #+F#j ! FE F(Rez=0 if machine is in low resolution ,Rez=1 if machine is in medium resolution C*Rez=2 if machine is in high resolution nNYou may use the Rez variable in conditional statements concerning your box # o8Here are the coordinates to adjust for box movement. s@By adjusting these coordinates you can move the box anywhere n:on the screen. Don't forget the different resolutions.  nBMoving a box on screen is as easy as adjusting these 4 points: nE``FxE Fx EHHF  E>>F  E E yDFF EppFx E Fx FEBThis style of box is intended for use ONLY with Medium or High nresolution screens.  eFl!F%!!Fr$!F! !!  F ! !!  F $!F! !!  Fd6! PP !!   F(!!!FP('! `` !CONTINUEF zF!(!!!@F` zF!(!!!PF` F!8'0!   !So You Want To Hear More?F {F! E  F  FEd'P! 88 !E Well, The GFA Basic Companion is a dedicated Dialog Box GeneratorF {F! E  F8 FEf'P!  !Ffor GFA Basic. It also comes with many examples of how to effectivelyF |F! E  F FEd'P! ,, !Euse the Generator and GFA Basic in general. There are two disks fullF |F! E  F, FEX'P! TT !8of help files, and source code. Quite a deal at $49.95!FiFNow to get the user's o.k. to continue either by mouse or keyboard. FoERFESF}8 Fe$F(FF j! ! F  Pause 5 (!!!@F.FL# end EXPLWID1.LST procedure # j Rr\jfv The GFA Basic Companion Release 1.02 Notes Some auto scaling was included in the Generator Source Code output for owners of Monochrome Systems. If you own a Color system and would like to optimize your code (shorten the size), then where this scenario occurs: If Rez=2 Then * * * Endif You may delete sections of code that appear in the above manner, however your code will not be portable to both types of systems (Mono or Color). Assigning Text Styles: In some of the generated modules the text size is defined via the Deftext command. In your routines that call source code modules created with The GFA Basic Companion, it is always a good idea to re-define the text size if there is a doubt as to what the value is after a procedure call. For example, Radio Button Boxes always assign Deftext 1,0,0,6 to the called routine. If you are running a program under High Resolution, you will want to enter the following: Deftext 1,0,0,13 ! to return to normal High Rez font. Immediately following the Procedure call. Exiting Sequences: To ease the use and facility of the Source Code Generator, some extra exit routines were tacked into the main program. In most instances when prompted to enter a data line either a *q, *Q, or quit will abort the process. In all cases you are notified of the exit procedure via either a text line or an alert box. Source Code Examples: Some interesting variations of what is possible with the program can be found on the program's diskette. Many new library functions (procedures) were added to the library diskette also just prior to release. ** However, due to space limitations not all referenced examples will appear on the diskettes. ** TRADEMARK NOTIFICATION: Throughout this product you will see reference to several products by other manufacturers. This notification serves the purpose of acknowledgement of those trademarks. ATARI, TOS, and ATARI ST are trademarks of ATARI, Inc. GEM, and GEM Desktop are trademarks of Digital Research, Inc. Motorola and MC68000, are trademarks of Motorola, Inc. D.E.G.A.S. is a trademark of Batteries Included, Inc. GFA Basic is a trademark of GFA Systemtechnik Companion is a trademark of Marathon Computer Press ABACUS is a trademark of ABACUS Software, Inc. Sybex is a trademark of Sybex, Inc. MAKING A BACKUP When making a backup of copy of your GFA Companion disks, it is important that you format a blank disk and"drag the files", which is explained in the Atari User's manual. If you have single sided disk drives you will have to split the data up and copy it to two different formatted disks.  Developer's Notice: Portions of This Program Package Were: "Developed using TDI Modula-2/ST 0272-742796(UK), (214)340-4942(USA)"  Shipping List Programs Disk: Libraries Disk: *GFACLIP *EXAMPLES.BAS *PROGRAMS.LIB *C_COMMND.EXM README.1ST AES.LIB TUTOVL "BIOS.LIB COMPAN.PRG GEMDOS.LIB TUTOR.PRG VDI.LIB GENCOLOR.RSC XBIOS.LIB GENMONO.RSC GFATIPS.PD CHAPT01.TUT PIC_CLIP.DAT CHAPT02.TUT REFS.TXT CHAPT03.TUT CHAPTO4.TUT CHAPTO5.TUT CHAPT06.TUT "*" Denotes Subdirectory `9Q` Efv*oM\ m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNHz2?< NA\pdAxr0XQ)K\NNZxN ,`NuJrBjNuHz?<&NN\NCAp$L Qp N9lrBlJpNNpMN9@pdAr 0Q0tr N9lNNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu    -pa2|a>:><|a4g RGj`a(0GVfA1G<ap??<?<NM\Nu??< NMXNu&8*:EENuHnv 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuNpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|(  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8N6.(JgtBn(Nupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNu~c0NQNuNJ@g,A,BBgHQ?<=NAP FJ@k??<>NAXtNutNuN` A$ HJo d*b` QjNuQjNubNN>/N.,*Q(,l؅kb/,h?<INA\/?<HNA\Jg< l`"ld۬d۬`)Dl$I& `&bۛp0R@@b&C CX`~/,l?<HNA\p=NX$_*(<HREHRa" EHRa DHRa??<KNNANNuN @ep~QBNuJ@jD@vqapvN)@p `H@)@prtNAHplrtNB 2pNpNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNuAl 2l 4L VA0000000000prtN9Cp rtNAv` Av `Avl 2l 4)lVHNaBp0,l 2Nua40,HNua*p0,l 4Nuaprt0,l 22,l 44,NuN9||BlBlrҌpsNBNu0<}N& ?<NNC`&?<NNT"@ C <}N`N>(* 9AJA)H@@[000][ˈN Evz`* [g" ]g |g QSz` zQSpQ][ɈN Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NHNu@9@JpNNr|<N @xepw2A$JBjDFHB t`0QBl9F)lVTAtp 9| N2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NN"l`dpNAtrdJhk\QpaNH ld$l`"Hg: k&@0+R`g k#&@0+S@H3 Q&f)I`LNu?<?<NAXJgJgNAH@B pNA NuApNNN$N$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN _0HpNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNTVHNuH&NTրNTjNuHRp` HRpJQfpNNq Y QfdЀЀ 0NuNNNq Y Qfd ЀЀNuNN,$_& Y Qfdփփ!8NNNP$_& if"QdփփHRNNN~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@NL"2` NqR YEjrd0` SjN$_N$ЀЀ 0N YQf "_Nq*eNN*< NqbІSGfN$_Nbփփ!8N YQf "_&Nq*eNN*<&NqbֆSGfNp"X4g S`"QNuNuNJPgBP, d4d<e<Ѐ"ЀЁE Y0gR@2DAH!b` `ЀЀ`Ѐ"ЀЁE. l ,`2"X2g,e($UAk&QHPS Y2g RSj _b l ,"X2geb J"F\N>" KC`e N`d \N l\Ӭ\ NupNd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNu"p`tdbDA0Hg<<R@f|0HN*JFk*HQ/??<?NAXfX ENuJkpNp`p`\F( &I.` ??<NMXJ[j E&DNup`pNu)H9@Jp4NP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNNzHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(NV)l g,vARC( g9CJ9|Lp!,N FPeNudA JpBQA/)H )l gBlJpNB Aprt0 0BBB R@ @efA000 0PB0 *00 000\0X0 *0000 0P0BX0, *@00p1| 1|QBX0 $HTH0P &0 *0,NupNSk [0NupNuHPaH8 _&X Pf/|~ K!zag @ ep 24C"2 S@ػ Td BTA3A0C4$I2a222B"0@2A\xvaRg<2#M 4B3BS@ -f ػ Td>BAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8Np>L8NAJ0?C bL000zH?A/.)HpNLrHH/>Bl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CN0`@k Ap0(/.NuA Nup)@JphNLtH &JKBCH .A/~0 1PP1P1PA L? &<@>AFG0000X0000X0000X0000C ~AJ0g0  pi, N"F QNu _b@gGHpp 0f NuGNp @"l`Yd&-KNN"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`$Y8gHRDD*D%H8#$c2g# HRDD%H`p"l`Qd&&| NuN"l`QepZN"X0gBPHR@@"D#NuNHxpC퀲~NvA)N?<NNTAN2?<NNTAN2AN&<x*<NfN#HxN4Currently works only in |Medium or High Resolution! HPN Sorry r"_ N+@xNzp"NCZNA'Np&C퀦NtBN Desk C퀦NLHxN About Program C퀦NLHxN-C퀦NLHxN-1C퀦NLHxN-2C퀦NLHxN-3C퀦NLHxN-4C퀦NLHxN-5C퀦NLHxN-6C퀦NLHx A C퀦NLHx N The Tutorials -C퀦NLHx N Read a Chapter C퀦NLHx A C퀦NLHx N Quit C퀦NLHxN Quit C퀦NLHxN What Version? 4C퀦NLHxA C퀦NLHxA C퀦NLA퀦NpN@Nz)|% JN6N`NzpNA N2NXA N&<x*<NfN%A,NA N&<x*<NfN&NpN8pNH@ЃdHA@B@H@хk HAҁHAрSB BbNuNBpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|V  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</N JFkSFk&aQN `Ha"FFaQL8N6.VJgtBnVNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNu~c0NQNuvNP)@p `H@)@prtN^AHplrtN^B 2pNNpNBpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtN^papap9@p`pvNPv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtN^Al 2l 4HVNu9Cp rtN^Av` Av `Avl 2l 4)lVHNf0<}N& ?<NNC`&?<NNT"@ C <}N`N@((?<NN.?<NNX@LvA HA HNupmrtA)HA)HN^(* 9AJA)H@@[000][ˈN Evz`* [g" ]g |g QSz` zQSpQ][ɈN Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NHNu*( INA)H @depd ae zb QB DNA\)H @ e` ae zb \gQBA BhNpZNA BP"`#|}NA"H0,tg"Hg \f`A\fS A ENAR@H`2QNur|<N @xepw2A$JBjDFHB t`0QBl9F)lVTAtp 9| N^2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NNx"l`dpNAtrdJhk\QpaNH ld$l`"Hg: k&@0+R`g k#&@0+S@H3 Q&f)I`LNuApNN|$N`$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN _0HpNp"_0HqN,p"_0HqN,E ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNuNVHNu Ihd"*N`$E8*$R`"QˈN ENu2)A IJAfr4(Ae*RBBc0*SA?N`$E$R`QˈN ENup`(* 0(iN`$E 4R`Q$D 4R`QˈN DN ENu2p <0N``QNu?Hl?<GNAPA"HJf SNr ,* N& ( EN C"Sj|Ac9@^9A`9Ab~`$aJf,H@ Kg Mg Pg Hf~`BSGj>RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HN$LNu0,^2,`NXzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(N>ldeS@f lbfSl`9Ab9FdNupapqr`p`p`pNu)H9@Jp4NP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNNHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(NVA JpBQA/)H )l gBlJpNB Aprt0 0BBB R@ @efA000 0PB0 *00 000\0X0 *0000 0P0BX0, *@00p1| 1|QBX0 $HTH0P &0 *0,NupNSk [0NupNuHPaH8 _&X Pf/|~ K!zag @ ep 24C"2 S@ػ Td BTA3A0C4$I2a222B"0@2A\xvaRg<2#M 4B3BS@ -f ػ Td>BAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8Np>L8NTAJ0?C bL000zH?A/.)HpNLrHH/>Bl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CN 0`@k Ap0(/.NuA Nup)@JphNLtH &JKBCH .A/~0 1PP1P1PA L? &<@>AFG0000X0000X0000X0000C ~AJ0g0  pi, N"F QNu?S@k&8L &LeBLe,C`(A? fHa)_ 2TNuBlJ`l *bl ,bH .N0S@k@>A PC/~. 0(JgRJ)@g1@CJ2fP2HP" &" *pdN0,r W1@AJ00 piN9|L@NpiN _CL""pe`9| LpiN9|LphNLtH 2H/`SBSC@AHH/jP 6P/^P0<rtN^papapapaL/jr`S@k6@ A 9PJg8BPpfNpgN9| LphN9@JfdBlJa\Q 6BB 2`NuS@k @ A 9pJg a$Bp`NuHS&I. FV 7p&NZ9l/h8,:,L/d4,pĴ@cS@9@p4,rŴAcBSA9Ar`8pJ, 7fnJ/^k0 Eg$2,/h pg  qfH9A/hpjNF` R0AD X0AN<&<x*<NAJNPBmTBmZCJA\ 0C2Ab 0AJNN NAXN<&<x*<NgN3D`N NpNA"NAtNNBNDo Another Chapter now? | |HPN Yes | No r"_ N.+@ -SWHfN4nAX 0N4rNAzNLA(N >LAN >LAN >pNAPN8FAPNACV  "002AC\  "002A(Cb  "002A.Ch  "002CA 0CA 0C(A 0C.A 0A킲NANN N NANpN ANN8NA@N N NLA4N >pN ANN8NA@N N NLA.N >LA(N >LAN >LAN >pNpNANpNANpNA(NpNA.NAPNN N NLA.N >LA(N >LAN >LAN >pNA킲NANN N NLA.N >LA(N >LAN >LAN >A킲NAN8/AN8" A0AN8/AN8" A0AN8/A(N8" A0AN8/A.N8" A0pNpN A@N A큼NANC4A큤 0p0, 9@A r @0A4N89@A>N8NN NLA4N >C4A큪 0p0, 9@A r @0A4N89@A>N8NN NLAFN >LA@N >LARN >LALN >A@NN8NAFNN8NN NLA@N >A큼NAN   > FF f . 4 F f 4 . ֌ : DD}@Widebox.lst Rem # WIDEBOX.LST procedure # ' Procedure Widebox.lst Clr Offset,Offset2 ' The GFA Basic Companion Computer Generated Source Code 1987 ' ' ' This source code is Copyright (c) 1987 Marathon Computer Press ' '& ' Distributed by MichTron, Inc. ' ' Legal owners of The GFA Companion are granted a non-exclusive license ' to distribute applications containing this source code without any ' additional royalties or licensing fees. ' ' Provided the following conditions are met: ' ' The user agrees not to distribute any applications containing ' this source code modified or unmodified in any manner unless the ' the program/application is in compiled or PSAVED form. ' ' To release this source code in any other manner is a violation of ' Title 17 of the U.S. Code governing copyrighted works. ' Violators will be prosecuted ' All rights are reserved. ' ' Please Honor Our Copyright and the Conditions Outlined Above ' ' Rez=Xbios(4) ' Rez=0 if machine is in low resolution ' Rez=1 if machine is in medium resolution ' Rez=2 if machine is in high resolution ' You may use the Rez variable in conditional statements concerning your box ' ' Here are the coordinates to adjust for box movement. ' By adjusting these coordinates you can move the box anywhere ' on the screen. Don't forget the different resolutions. ' ' Moving a box on screen is as easy as adjusting these 4 points: Lx=14 Rx=624 Ty=15 By=85 ' ' If Rez=2 ' By inserting the next two lines we effectively move the entire box to the ' bottom of a High Resolution Screen. Ty=Ty+300 By=By+300 ' ' ' That's all there is to it! Simple Huh? ' Offset=60 Offset2=10 Endif ' This style of box is intended for use ONLY with Medium or High ' resolution screens. ' Sget Tempuse$ Graphmode 1 Deffill 0,2,8 Defline 1,3 Pbox Lx,Ty,Rx,By+Offset Box Lx,Ty,Rx,By+Offset Defline 1,1 Box Lx+2,Ty+2,Rx-2,By-2+Offset Box Rx-74,By-13+Offset,Rx-9,By-5+Offset Deftext 1,0,0,4 Text Rx-64,By-7+Offset,"CONTINUE" If Rez=1 Deftext 1,0,0,6 Else Deftext 1,0,0,13 Endif Text Lx+11,Ty+10+Offset2,"Sample Wide Style Box:" If Rez=2 Offset2=Offset2+10 Endif Text Lx+26,Ty+23+Offset2," This example will show the movement of a box on a high resolution" If Rez=2 Offset2=Offset2+10 Endif Text Lx+26,Ty+33+Offset2,"screen while remaining at the top of the screen on a medium resolution" If Rez=2 Offset2=Offset2+10 Endif Text Lx+26,Ty+43+Offset2,"screen." If Rez=2 Offset2=Offset2+10 Endif Text Lx+26,Ty+53+Offset2," " ' Now to get the user's o.k. to continue either by mouse or keyboard. Repeat K=Mousek Keybd$=Inkey$ Until K<>0 Or Keybd$<>"" Defline 1 Deftext 1 Sput Tempuse$ Clr Tempuse$,Offset,Offset2 Pause 5 Return Rem # end WIDEBOX.LST procedure # H`N "pNGNuNV*x ڄ=E*P-E@-M-VNh-H ng nf-n*.P-ENB nf Nh-hN. nf BBN n e Nh-PN-n I"8B,)n9n)n )n)n)n|.n 9/@>,VNhYN`NsN^NuNVBn:.EIBtPRn nfI* -EI* -EI* -EI* -EI* -Ez-E=| Bn=|BnBn <I* "NB=|N=|=|=|Bn=|z-E <I* "NB=|4=|=|=|Bn=|(mI* -E <I* "NB=|Bn=|BnBn <I* "NBN hpL?09"NAN^NuNV/-+NI Gz+WBn:.IJ4PgRn`=y" n d:.I0PN(z:. HEBEHE HEx0D8.I@Rnz:. HEx0D8.I@RnI GzWBn:.I8.nGP@Rn:.IJ4Pg`N+_N^NuF'/NNn-/=-/H"Q ,IL?/^>/^Nf,oNsF'/NNn-/=-/H"Q G*- =/^Nf,oNs/NNn-/=/-/H _"h$",HL?/^>/^Nf,oNsF'SSfWWNsSf>NsSfF NsSfNqNsSf NNsNhBBB 9Z!B*H$C! `N h <L? <NAN`WNsNVH|".$. &(*HDHEHABBمCمHABBBCHBHCԃԄ-A -BL>N^NuNVHx". $.bBCh8BAHA62HC6BAHA`B6HCBAHA8<㑲eRCQ-C -ALN^NuNVH(. ,..BGg^<BEgV<✚G|HF⌈0BDHD8 H@∀HDkSEؼdREJEk|m pN B` -D LN^NuNVH .g*2<bH@|bQAU-@LN^NuNVHLHD6HFC[40<@g6@gBC?ckp@@t?0H@26HFЃ6HGHACBCHCуHD6CHABCHCу6HFЃ6҃т6HGBDHD҄т6҃т6HFBCHCCтHE6҃тHFHAFHABFHFцHGBEHE҅тPт6xz gRDCB詂[ f ԂӁрC c&JCk*H@@CH@Jgv-@-ALN^NuTOpr`pN NVHLHD2AgHF0@grA@?kz2A[FDHFHDrva$$rvar փՂkN@k,փՂ`@އ݆\Þ[j ޅ݄JA]NuTtvH LN^NupN |Նd @kr2~ BHBB@HBJgp``NVHp".gH4        <4."n8  @  `N "pNGNuNV*x ڄ=E*P-E@-M-VNh-H ng nf-n*.P-ENB nf Nh-hN. nf BBN n e Nh-PN-n I8B,)n9n)n )n)n)n|.n 9/@>,VNhYN`NsN^NuNVBn:.EIBtPRn nfI* -EI* -EI* -EI* -EI* -Ez-E=| Bn=|BnBn <I* "NB=|N=|=|=|Bn=|z-E <I* "NB=|4=|=|=|Bn=|(mI* -E <I* "NB=|Bn=|BnBn <I* "NBN hpL?09NAN^NuNV/-+NI Gz+WBn:.IJ4PgRn`=y n d:.I0PN(z:. HEBEHE HEx0D8.I@Rnz:. HEx0D8.I@RnI GzWBn:.I8.nGP@Rn:.IJ4Pg`N+_N^NuF'/NNn-/=-/H"Q ,IL?/^>/^Nf,oNsF'/NNn-/=-/H"Q G*- =/^Nf,oNs/NNn-/=/-/H _"h$",HL?/^>/^Nf,oNsF'SSfWWNsSf>NsSfF NsSfNqNsSf NNsNhBBB 9T!B*H$C! `N h <L? <NAN`WNsNVH|".$. &(*HDHEHABBمCمHABBBCHBHCԃԄ-A -BL>N^NuNVHx". $.bBCh8BAHA62HC6BAHA`B6HCBAHA8<㑲eRCQ-C -ALN^NuNVH(. ,..BGg^<BEgV<✚G|HF⌈0BDHD8 H@∀HDkSEؼdREJEk|m pN B` -D LN^NuNVH .g*2<bH@|bQAU-@LN^NuNVHLHD6HFC[40<@g6@gBC?ckp@@t?0H@26HFЃ6HGHACBCHCуHD6CHABCHCу6HFЃ6҃т6HGBDHD҄т6҃т6HFBCHCCтHE6҃тHFHAFHABFHFцHGBEHE҅тPт6xz gRDCB詂[ f ԂӁрC c&JCk*H@@CH@Jgv-@-ALN^NuTOpr`pN NVHLHD2AgHF0@grA@?kz2A[FDHFHDrva$$rvar փՂkN@k,փՂ`@އ݆\Þ[j ޅ݄JA]NuTtvH LN^NupN |Նd @kr2~ BHBB@HBJgp``NVHp".gH4/9:/9>/9:NPIB((/9F/9B/9F/9BNPIJ((#A #; #B#:o#F@#8Q#L #6Ŭ#Z#57#tŮ#3VBN^NNV n"n *.Jf *. JgJgS`N zd"Y`JgS`N^NuNVH n f`Nz:.p -EJng nf(z:.p ڹ//. /.aZO pN< ng nf(/. z:.p ڹ//.a"O pNpN"?.?.?./. ?.(yNO L?N^NuNVH n fpN?.(yNTL?N^NuNVH n fI* N?.(yNTL?N^NuNV:. ?(nHTa\N^NuNV< aRT< aHTN^NuNV:. ?(nHTa\aN^NuNV?<#Hy:a\z/HnadP*.p -E d ?<,Hy`a\?<$Hya\?<Hy?< B'*./HyHnaO*93z ڹp #/9HyaPJf?<Hya\-y-y(nBXYJg`I89|9|9|9|9| 9| 9||N^Nu#r#v#~*<!r*<!v*<!~NuNxNVUaJgV*</a4X?< HyaB\?<Hya2\(y/ *, ڬ(,ڄ/Bga\(_N^NuGFA Basic Companion Custom ClipboardThere is not enough RAM to build a Clipboard. Clipboard Installation has Failed!!66 Can't Build Clipboard! GFA Basic Companion 64K Clipboard(c)1987 Marathon Computer Press<@ *lDP2         (          p>        <4."n8  @  GfABASICf(Z6 ((((..2bbbjYEARFLAGYEARYRIS_IT_OKMONTHMNTHMBMCYCW1WEEKDAYD1DMIJXXXE1PRLPTYKXATREZPADDINGM1MONTHDAYNAMESDAYDAITWIDEONWIDEOFF MONTHDAYS MONTHNAMEYRMNTHTEMPCURMONTH CURRMONTHOUTPADDINGSAV TOP_CALENDAR DO_CALENDARDISPLAY_CALENDARCALENDAR_SETUP PRINT_CALCALENDAR_DAY_OF_WEEKCALENDAR_MONTH_OF_YEAR DAYS_IN_MONTHWEEKSGET_DATA WHAT_MONTH GET_COLORSRESTORE_COLORSLThis is a demonstration file of how to use your own style of Dialog boxes using the VDI and Pbox. RThe demo is a heavily modified Public Domain program. For that reason, please aNdo not Upload this demo in the form of source code to any BBS. Thank you. a o*pp@ FM F  6!!!`F%!!FE F x F >)!'Currently runs in | Medium Rez only! | !! Sorry !FrqF! F!!! !GF$!F%!!F$H!! !GFe$H!! !GFU$M! ! !DFeFYp! "/Planning Calendar 1987 Marathon Computer PressF(Y<!  "by John B. HolderF(Y<!0 "Demonstration ForF0Y,!8 "The GFA Basic CompanionF ,Y0!@ "Source Code LibrariesFMFDYFM FqFN# do_calendar procedure # +F#^!H!F#ZF\! Planning Calendar F#MF .FN# display_calendar procedure # +F#EF,F#EF#EFEF#,FF.F* PRINT CALENDAR +F*EGFEFEF,FF E FEF,FFEF  FEYFFp "" "FFFF FEF,FF E F EG@FFEF, L ##  `   FdDEGF :FG F h F ,F F  F FF F F  F  F  F ZF.F*print week +F* EG`F*E##  `@@ Fd$  F##  `` #  F E F  XF E?@@ F FE  F EGF  xFG  F "" "F  F"; """"l"F F F F.F* DAY OF THE WEEK #+F* !(FAE@F EF !,F FL E%# % %HH %HH F E % ` `F E @F E % ` `F.FE(* NUMBER OF DAYS IN THE MONTH +F* "FUEFEF$ "#%  F< "~##%H H  ##%H FEF "F#EF FE FE FE E5?@@ F E F.FE* MONTH OF THE YEAR +F*"E?@# @ F.FE* SET UP CALENDAR +F*:E2 1 2 3 4 5 6 7 8 910111213141516171819F 6E,202122232425262728293031 F:E3 SUN MON TUES WED THUR FE FRI SAT FDE=JANUARY FEBRUARY MARCH APRIL MAY JUNE JULY F:E/ AUGUST SEPTEMBEROCTOBER NOVEMBER DECEMBER F E312831303130313130313031FO.FEL# get_data procedure # +F# o.Here is the start of the custom Dialog Box c e%!!F#$ ! !!*Fp$!!!F$ ! !!*Fp(!!!F&' !p!CLICK ON CHOICESF E=~@ F E5 F E;~@ F E;~@ FM F@ E5 F|F *THIS IS WHERE TO GO BACK TO ON DISPLAY u H H'p! ! MONTHFTE#6 F E#%  F'p!H! F&' !p!NEXT PREVIOUSF $!!!F$ !!p!FU$H!!p!FU' !4!YEARF ' !H!=~@ F&' !\!NEXT PREVIOUSF$ !f!p!zFU$H!f!p!zFU$' ! !UPDATE QUITF$ !!p!FF$H!!p!FFFMF F[F Fj FF F jF { FEPFEQFERF: )HppF%F$H!!p!F { F (FE@@F (F EF FE EA F )"6 F E0 F FEM F0%F$H!!p!F$H!!p!F'p!H!@ FE#6 F E#%  F'p!H! F F: +F ppF%F$ !!p!F { F *`@FEF *nF EF FE EA F *6 F E0 F FEM F0%F$ !!p!F$ !!p!F'p!H!@ FE#6 F E#%  F'p!H! F F: ,( ppF%F$ !!p!F { FF%F$ !!p!&F$ !!p!FMF F[F Fj FF  F : -HppffzzF%F$H!f!p!zF { F EF EA F' !H! F%F$H!f!p!zF$H!f!p!zF F: - ppffzzF%F$ !f!p!zF { F EF EA F' !H! F%F$ !f!p!zF$ !f!p!zF F< .