EDP_2.1 h DSK (7r7r7r7r?  :6n2$2$ 2$6J ܄B̃GB`2$2$ 6JL I2(2$ 2$ 6J2$ Г[ HD :$a2$ 6J[6J :4`5`2$ [aπ  >(P(<[ 44  &b :[46 45*@a [ #4`4Z+.-E 45*A$[>@(P 18 I`1" H1$ 1   <[;{#![  1.  DOCUMENTS Pd0 <1 :$`5`2& 6J2$2$` &J8Fr#`H 0   V r`H ( `J   :6 2$ 2&`3\O  <%| `0E`: <>8, 8: > @/   :s`` l:    [<%; pB$pB РРNCC / /BBCOPYRIGHT  J!<@K   [ @<@<3Р B3 $[`)B   0  <*4[ ,, ,1.1N [ 81 `0.1`? &J r> T 2$ :((P 1 1 9 I<@1$ 1&à 18 I`1"F $ B YOUR CHOICE?1119112Y&XٷB$ 1XB$طB$1X1?6ENU u MERGEBASE2 'u0BUFFERA$LINKBUFFERA$'u1CHARAA$LINKCHARAA$+u2GCHARXYZLINKGCHARXYZ1u3GTEXTXYA$ALINKGTEXTXYA$A'u4LOADRXYLINKLOADRXY!u5MODEXLINKMODEXCurtis Provance Paragon Computing 17 Constance Street Merrimack, New Hampshire 03054  Dear Curtis,  I Enclosed is a check payable to Paragon Computing for the following:  5 ___ $10 for registration and serial number  %} TEXTABLINKTEXTAB)} TIMEABCLINKTIMEABC/} VCHARABCDLINKVCHARABCD [,expression])  < CALL LINK("FLASH",character-set,foreground-color, +}ALARMABCLINKALARMABC/}CHRPATAA$BLINKCHRPATAA$B-}CHRSETABCLINKCHRSETABC#}CLEARALINKCLEARA+}CLOCKABCLINKCLOCKABCumber-of-characters u6RESETLINKRESET1u7TXTPATA$B$ALINKTXTPATA$B$A1u8WINDOWABCDLINKWINDOWABCD CALL LINK("ALARM"[,hours[,minutes[,seconds]]])  0 CALL LINK("BUFFER",string-expression)  MERGEBASE1-PRINT-ME ZPP/}FLASHABCDLINKFLASHABCD/}HCHARABCDLINKHCHARABCD)}SCROLLABLINKSCROLLAB%}SHOWABLINKSHOWAB)} STEADYABLINKSTEADYABcter-set,foreground-color, 8 ___ $15 for above plus complete user's manual  9 ___ $30 for above plus fully documented source  JThe serial number of the EDP version I am using is 200. I got the program___ $10 for registration and serial number   ;=H Thank you for making your Enhanced Display Package available to theTI-99/4A community! M Sincerely yours,     ________________________ State: ____________ Zip: _______________ Jthrough the Traver family. Please supply me with my own serial number andKdirections for modifying my program so as to include my own unique number.  " Here is my name and address:  ram___ $10 for registration and serial number  {1.|ɥrɭhŎ^ɰVU$TůM9LƗKJCdžBǶAZ@7I6./ȡ.Ȼ-1,"ɳ NҺ3$ Gӓ,Ԩrx>ndZP3FT·b~*t8j`VέLۣB(8ܟ.$3ݺގD4Lck Zzpf\[RpH>H49* ˴? cZzh:A v1ly7L3"WINTON restores the EDPinterrupts. A user definedinterrupt is still executed.CALL LOAD(-31804,0,0)uHowever, any user definedroutine will still continueto function. To totallyturn off interrupts yoves a screen and allpertinent data to disk.Colors, flashing, windowpointers, ACCEPT and DSLAYworder. This is useful forsorting routines as well asdefining prompts with theTXTPAT routine. The startingvSTRING will assign to your" code may be any ASCII code.uREAD restores a screen fromdisk. When the screen isread, all parameters arerestored - colors, flashing,AL10"-L9"A$@INTOFF *INTON READ SbX N͌D:0&Z5#bQM|rh!^TuJR@P6,"i#y M!ʜxnddYLINKCHAR48A$D5LINKCu mustsINTOFF turns off the EDPinterrupts. These controlthe flashing colors, clock,and ACCEPT key sequences.@P+1GKI*RSWE3KK,6@JTh;GKCIOPTWME3KK~dzA$tC LOADV MODE VCHAR EXITBX2418611LINKDSPLAY21BBA$XL13Y11.05LINKSCROLLѷY1YLINKSCROLL81D3LINKSCROLL81nexampresses was around * seconds.kTIME reads the clock andassigns the values to yourvariables. Please pressBEGIN and wait a fewLOADV lets you load the VDPRAM with any value you want.This is useful for alteringExtended BASIC orWZ Error in lineZL8nkuse WINDOW are ACCEPT;DSPLAY; and SCROLL. Othercommands are not affected bythe WINDOW at all.qWINDOW determines the rowand column boundaries ofthe active portion of thescreeCHRPAT",65,A$,9)CALL LINK("DSPLAY",A$)sCHRPAT looks up definitionsof up to 15 characters atonce. Other than multipledefinitions, there is no/CLEARLINKSCROLL241\hL15LINKTEXT1614ple:FOR Y=1 TO -1 STEP -.05::CALL LINK("SCROLL",SGN(Y),1)::NEXT Y::CALL LINK("SCROLL",8,1)%LINKALARMABC1>CALL LINK("TXTPAT",A$,B$,-1)CALL LINK("CHAR",48,B$)*A$A$0g8L16LINKFLASH disk drive information. L5L8MFOR X=1 TO 5::FOR Y=3 TO 16:: CALL LINK("SCREEN",Y)::NEXT Y::NEXT X6GKCDHLMVE3KK*fA$LCLEAR DSPLAY HCHAR OLORS INPUT OUTPUT PATTERNS TIME WINDOWS MISC. EXITRLINKDSPLAY244PRESS LETTER OF CHOICEBX12171320Xseconds. Now press PROC'D.The time between keyD3LINKTEXT28xCALL LINK("TEXT",16,14)rmode, but it does workin command mode. You may setmany sets at a time. Thefollowing makes color sets0green on black.CALL LINK("COLOR",5,3,2,4)%ERRST31614LINKACCEPT15A$LINKTXTPATA$A$1pLINKSHOWԂL14LINKCHRPAT65A$9LINKDSPLAY91A$D5wdifference between thisroutine and Extended BASIC'sCALL LINK("n. The commands thatL7nKwords, the entire screenwith a margin of two columns on each side.uMODE always changes thewindow - rows 1 to 24 andcolumns 3 to 30 (GRAPH mode)or 38 (TEXT mode). In other܂L5 ַ155ַ156ַ1538ַ157LINKSHOWSHOW24oSHOW2ĂL11X1PLINKCLOCKM1M2M3LINKWINDOW132332Xindicator. Pressing thespacebar resumes execution.Presscharacters fit on the sameline, it may be put anywhereL4cMODE always removes theclock display from thescreen, regardless of howMODE was called.vpress the CTRL and FCTN keystogether. By the way, what tiOW. That is, ifyou ask for 255 charactersL7nkLINKTIMEABCTA60B60CTLINKDSPLAY81۷T seconds.D3f(L8GKַ143KLINKTIMEABCTA60BnSCROLL only works on theactive window - not theentire screen. SCROLL doesnot care what shape or sizethe window is.L6n6or 'wrap-around' dependingon how it was called.wDSPLAY and ACCEPT bo ENTER for an example.ALARM stores a value forhours, minutes, andseconds. If the clock andthe alarm ever match youwill get an audio-visualof your input string (inreverse video) and assignsthe patterns to '0' and thecharactme is it? Hours = 0 Minutes = 0 Seconds = 0CLOCK sets the interruptdriven clock. This clockmay get behind if yourprogram uses a lot ofdisk access. To 'catch-up'LINKDSPLAYַ152ַ1538ַ154ַ155 60CGKַ123K L9on the screen - not just inthe active window. Toremove the clock from thescreen, CALL LINK("SHOW")without a location.ySHOW places the clock on thescreen. As long all eightth havean option which will clearthe active window. DSPLAYwill also scroll the windowYand the WINDOW is only bigenough for 200, that's allyou'll be allowed to input.qACCEPT will not accept aninput that is larger thanthe WINDVCHAR functions the same asin BASIC and Extended BASICand is active in TEXT mode.If characters reach the endyoriginal patterns (they willhave to be reset when you goback to GRAPH mode). That'swhy some of the border'sp>L16.t]L10LINKCHAR65F1516D5LINKCHRSET+CALL LINK("CHAR",65,RPT$("F ",15*16))zcolumns) or 139 in TEXT mode(40 columns). The followingline defines 15 charactersstarr patterns for ASCII32 to 127. When called withYL10LINKCHRSET972665D5LINKCHRSET<(A) in reverse video.CALL LINK("CHRSET",97,-26,65)xcharacters to look like anyother character iers following it.0123456789:;<=>vtimes and concatenating thepatterns together. Reversevideo is available. Thefollowing gets the patternsxTXTPAT looks up the patternof characters in a stringand 'sticks' them together.It is lLINKSHOWLINKMODE2LINKSHOWSHOW24D10LINKMODE1slook strange. As you willsee, switching from one modeto the other doesn't requireclearing the screen.xthe background's transparent(sting at 'A' (ASCII 65):wCHAR now allows defining upto 15 characters at a time.You may also define up toASCII 159 in GRAPH mode (32pL7Pof the screen they will wraparound to the top (just asin the BASIC's).yf you wish.The following sets ASCII 97(a) to look like ASCII 65|CHRSET can reset ACII codes32 to 127 - one at a time orin groups. Reverse video isalso available. You may setKLINKSHOWSHOW24GKC*!MTE3KKike using CHRPAT manyL9a negative value no patternsare reset - tho' characterswith ASCII values greaterthan 139 will be alteredunpredictably.yMODE - when called with apositive value - resets allcharactecreen color). Characterswhose ASCII is greater than139 will not retain theirzMODE changes the screen from32 to 40 columns and back.In TEXT mode (40) foregroundcolors are all the same andUBX54L330WBX35on green.CALL LINK("FLASH",5,16,3,13)cL12LINKFLASH516313D5LINKSTEADY513FLASHing for sets called.You may also COLOR manysets at once. Thefollowing CALL makes sets5 throand GRAPH mode. WINDOW'shave no affect on HCHAR.HCHAR will wrap around touƂL11GKַ133KLINKWINDOW110132LINKSHOWLINKSCROLL101DL5b&L9LINKGth typesare shown with the followingxSCROLL moves the active areaup or down. Lines removedfrom the WINDOW may be putin a buffer or thrown away.PEEKV lets you look at VDPRAM. You can use this tolook at the XBASIC systemarea1LINKSHOWSHOW24L9LINKWINDOW124132LINKSCROLL241CLEARD3LINKCLEAR65D3vCLEAR functions identicallyto Extended BASIC's CLEARexcept 1) it is now ugh 8 (4 sets in all)g܂L15LINKCOLOR5324D5LINKCOLOR5214s:NEXT X::CALL LINK("DSPLAY"6,1,"BHBHBBBH","LOTS OF OPTIONS ARE AVAILABLE, TOO!")(Press ENTER for demo)]CALL LINTEXT31A$20LINKDSPLAY91A$D5L4aJL8X15Y316LINKSCREENYYXLINKSCREEN86L5G5 through 17 FLASH white 4L330X1LA$LINKDSPLAYX1A$XD3L)xLINKSHOWSHOW24ithe top of the screen if itis too long to fit (justlike it does in BASIC andExtended BASIC).sHCHAR now works in both TEXTactivein TEXT mode and 2) you mayclear the screen with anycharacter you want insteadof just the space character.CALL LINK("CLEAR")CALL LINK("CLEAR",65)yThe actual SCROLLing may bedone one line at a time orin block moves. BoK("WINDOW",1,10,1,32)::FOR X=1 TO 20::CALL LINK("DSPLAY","B","IT WORKS! "):pDSPLAY works the same wayit does in Extended BASIC- except it will now stickto a WINDOW you define.cD5LINKDSPLAYWLINKSCROLL10 , disk area, or thevideo functions.Raffected by WINDOWs.CALL LINK("GTEXT",3,1,A$,20)CALL LINK("DSPLAY",A$)GTEXT is similar to GCHARexcept you get a string ofcharacters. It is as ifyou looped through a bunchof GCHAR's. GT  background is alwayschanged to transparent.If the optional second valuexTEXT changes the foregroundand background color ofevery character set at once -in both GRAPH and TEXT mode.MODE when CALLed with apositive value resets al , ENTER, and thearrow keys. CLEAR clears`A$Z0000001F1F181818000000FFFF000000000000F8F818181818181818181818181818181F1F000000181818F8F85LINKMODE1LINKRESETxxX14LINKCHAR1208XA$LINKCOLOR terminated. Try all thekeys; press QUIT when readyto continue....|Now, use the up arrow.When you go above the firstline or below the lastline (in this case,DELETE), ACCEPT isqDELETE, etc. work as usual.Press and hold the dow EXT is notxGCHAR is no different thanbefore, except it now worksin both GRAPH and TEXT mode.WINDOW does not affect it.KLINKSHOWSHOW24GKAG*PSE3KK³:NvPLINKACCEPT11255A$TC5 lcolor sets to black ontransparent with a cyanscreen, regardless of mode.FLASH sets any of the 32color sets to FLASH withwhatever foreground andbackground you wish. Thisis not effective in TEXTrFSTCABCLNXYFKM1Q 12X3X11XLINKCOLOR171112is passed, the screen coloris changed to this color.TEXT is the only way toalter foreground colors in TEXT mode.The first parameter passedis the foreground color.The narrow until the cursor hasreached the word DELETE.~from the cursor to the endof the string and the upand down arrows move thecursor up and down within the string!qACCEPT can be ended withBEGIN, PROC'D, AID, REDO,BACK, QUIT UBX222330RLINKSHOŴBX3222330L222A$L1A$LSCREEN works identically tothe SCREEN function inExtended BASIC - except now,SCREEN also works in command mode, too.L 1BHBHBBBHLOTS OF OPTIONS AVAILABLE, TOO!DXT30X'KEY0KSTT1S1TUBX618813A$@ACCEPT GCHAR *GTEXT PEEKV SCROLL EXITBX2618813LINKD 1 UBX41620251GKADMSWE3KKxҳA$@ACCEPT DSPLAY MODE SCROLL WINDOW EXITBX24162025LINKDSPLAY21BBA$A$JCHAR *CHRPAT X12TPXX12÷X11X0÷X4PsUBXWXYZLINKWINDOWW1X1Y1Z1LINKDSPLAYWLINKSCROLLWX31LINKWINDOWWXYZVCHARWZ1123TXW1LINKDSP 1STWZ1SHOW0A$B$BOX$X$Z$200nERRKEYLINKrin TEXT mode, although youcould see the results ifyou return to GRAPH modewith -1. COLOR cancels anypCOLOR can set all 32 colorsets - plus the colors s SPLAY21BBA$ UBX92110141GKACMSTE3KKF|A$6ALARM CLOCK MODE SHOW TIME EXITBX29211014LINKDSPLAY21BBA$UBX6188  !CHRSET MODE TXTPAT EXITBX210221521LINKDSPLAY21BBA$!UBX10221521UBX418611yX120LINKDSPLAYB IT WORKS! XLINKDSPLAY6 LAYXW31ַ124Tַ121TZY1ַ125Tַ120Tַ121TZY1ַ122TBXNWXYZLINKWINDOWW1X1Y1Z1LINKSCROLLXW31TN8VCHARWY1123TXW1LINKMODE tayeven in command mode.COLOR doesn't do anything.LINKWINDOW717330rLINKTIMEQ1Q2Q3LINKDSPLAY8X10QXLINKACCEPT8X11D2MX`TMX0MX59·X1÷M 13A$@COLOR FLASH MODE SCREEN TEXT EXITBX2618813LINKDSPLAY21BBA$1GKCFMSTE3KKҳ,@^GKX$XY!LINKDSPLAY21BA$5KEYX * PARAGON COMPUTING+ PARAGON COMPUTING 1 17 Constance Street1 17 Constance Street1 17 Constance Street IS *    * ENHANCED DISPLAY PACKAGE* ENHANCED DISPLAY PACKAGE* ENHANCED DISPLAY PACKAGE+ ENHANCED DISPLAY PACKAGE * VERSION 2.1 INTERRUPT ADDRESS INTO HOOK G How you can make money ...............................2 G Acknowledgements .....................................3 G Features .............................................4 T FUNCTION SO KEY IS USABLE 2 Curtis Alan Provance2 Curtis Alan Provance2 Curtis Alan Provance3 Curtis Alan Provance  LOT QUIT FUNCTION SO KEY IS USABLE 2 17 Constance Street 8 Merrimack, New Hampshsire 030548 Merrimack, New Hampshsire 030548 Merrimack, New Hampshsire 03054TION SO KEY IS USABLE * VERSION 2.1* VERSION 2.1+ VERSION 2.1  * PARAGON COMPUTING* PARAGON COMPUTING -YSS0YٷX$ַY1Y0 SCREEN TEXT EXITBX2618813LINKDSPLAY21BBA$1GKCFMSTE3KKҳ,@^GKX$XY!LINKDSPLAY21BA$5KEYX G Page  INTRODUCTION INTRODUCTION INTRODUCTION INTRODUCTION G Loading the Enhanced Display Package (EDP) ...........1 USABLE 9 Merrimack, New Hampshsire 03054  . Developed by:. Developed by:. Developed by:/ Developed by: G Changes from TI Extended BASIC .......................8 G Passing variables ...................................10 G Creating your own subprograms .......................11 T FUNCTION SO KEY IS USABLE G COLOR ...............................................20 G DSPLAY ..............................................21 G FLASH ...............................................22 PLUS APPROPRIATE OFFSET G BUFFER ..............................................18 G CHAR ................................................18 G CHRPAT ..............................................18 STRING (COPY)EY IS USABLE F YOU SHOULD READ THIS SECTION BEFORE RUNNING ANOTHER PROGRAM!G YOU SHOULD READ THIS SECTION BEFORE RUNNING ANOTHER PROGRAM! G Command summary .....................................13  REFERENCE SECTION G Running other programs ***(see warning!)***..........12 0 *** WARNING! ***0 *** WARNING! ***0 *** WARNING! ***UNCTION SO KEY IS USABLE G GCHAR ...............................................22 G GTEXT ...............................................23 G HCHAR ...............................................23 PLUS APPROPRIATE OFFSET G CHRSET ..............................................19 G CLEAR ...............................................19 G CLOCK ...............................................19 PLUS APPROPRIATE OFFSET  REFERENCE SECTION REFERENCE SECTION REFERENCE SECTION G ACCEPT ..............................................14 G ALARM ...............................................17 KEY IS USABLE 1 *** WARNING! *** F YOU SHOULD READ THIS SECTION BEFORE RUNNING ANOTHER PROGRAM!F YOU SHOULD READ THIS SECTION BEFORE RUNNING ANOTHER PROGRAM! AS A STRING SO FAR R13 FUNCTION SO KEY IS USABLE G STRING ..............................................33 G WRITE ...............................................33    A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1    LOADING THE EDP G VCHAR ...............................................29 G WINDOW ..............................................29 G **************** VERSION 2.1 ADDITIONS **************** ANOTHER PASSPROPRIATE OFFSET G SCROLL ..............................................26 G SHOW ................................................27 G STEADY ..............................................27 YLP1 PLUS APPROPRIATE OFFSET G LOADR ...............................................23 G LOADV ...............................................25 G MODE ................................................25 PLUS APPROPRIATE OFFSET  LOADING THE EDP LOADING THE EDP LOADING THE EDP H The entire Enhanced Display Package is contained in the H file called 'LOAD' on the disk. This file is a combination KE IT A WORDT G INTOFF ..............................................32 G INTON ...............................................32 G READ ................................................32 ANOTHER PASSPROPRIATE OFFSET G TEXT ................................................28 G TIME ................................................28 G TXTPAT ..............................................28 ANOTHER PASSPROPRIATE OFFSET G PEEKV ...............................................26 G RESET ...............................................26 G SCREEN ..............................................26 PLUS APPROPRIATE OFFSET H of Extended BASIC and machine code. When the file is run, H the machine code is placed in the appropriate parts of H memory, a message is displayed, and the MENU file is run. To ombination KE IT A WORDT* 5) Type 10 and press enter. 10 10 10 D 6) SAVE to a different disk, with any name you want. OLD DSK1.LOAD INSERTING MAKE IT A WORDTG 3) Select Extended BASIC and immediately press and hold7 immediately7 immediately8 immediately RDTH buffer of 'garbage.' If you do not include the FREESPACE and H TERMCHAR variables, EDP will modify the first two variables H referenced in your program. You could shorten them to IT A WORDAKE IT A WORDTH You may add other lines to the LOAD program. If you do % this, add this line first: - 10 FREESPACE,TERMCHAR=1::CALL  LINK("RESET") ng a turn off anyway. OD MAKE IT A WORDAKE IT A WORDTH You may load the Enhanced Display Package from other H programs with the RUN command. Note however that you should H not load the EDP more than once unless you first return to ERTING MAKE IT A WORDT1 the FCTN and '4' keys. Go to item #5. 5 4) Type OLD DSK1.LOAD and press enter.$ OLD DSK1.LOAD$ OLD DSK1.LOAD% OLD DSK1.LOAD immediately RDTE make a copy of the EDP for another disk, do the following: / 1) Put the EDP disk in drive #1 H 2) If you see the TITLE screen, go to item #3, else go  to item #4. To MAKE IT A WORDTH This does two things: 1) it allows you to use the H variables FREESPACE and TERMCHAR as described in the H remainder of this document, and 2) it clears out your screen IT A WORDAKE IT A WORDTH the TITLE screen with BYE, FCTN = (when active) or turning H off your system. If you do attempt a reload, your system ? will most likely lock up, forcing a turn off anyway. turn to IT A WORDAKE IT A WORDT% something such as FS,TC=1. H Typically, the EDP should simply load itself then RUN H another program on the disk. This is what was done in the . You could shorten them to IT A WORDAKE IT A WORDT' A REQUEST FROM THE AUTHOR: H I have worked on this program for hundreds of hours over H a period of fourteen months. This material was not developed PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1FFSET. in "CREATING YOUR OWN SUBPROGRAMS". H 6) MERGEBASE2: similar to MEREGEBASE1, it simply H contains different routines. Again, a listing can be found . in "CREATING YOUR OWN SUBPROGRAMS".      " the EDP then runs MENU. H 4) MENU: This program prints out the documentation (or ( runs the demo if you prefer). H 5) MERGEBASE1: many of the CALL LINK's have been DP. It loads WORDTH LOAD program. Running other programs will not erase the EDP. 0 Files on the demo' disk include: H 1) DEMO: a demonstration file with examples of the & various routines in action. R A WORDTH for fun, nor to teach me Assembly. My intentions throughout H this ordeal have been: 1) to produce a high quality enhanced A display package and 2) to help Paragon Computing grow. OM THE AUTHOR: RTPROPRIATE OFFSET ) 1  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   & A REQUEST FROM THE AUTHOR:& A REQUEST FROM THE AUTHOR:& A REQUEST FROM THE AUTHOR:.      H converted to subroutines for you. These subroutines are in H MERGE format and are available for you to MERGE with your H programs. A listing of subroutines in this file is contained n ADD APPROPRIATE OFFSETH 2) DOCUMENTS: a file containing the first portion of the H documentation. These are printed for you by the MENU  program. H 3) LOAD: this file contains the entire EDP. It loads WORDTB copies of this material under the following conditions: H 1) The entire disk contents must be copied. The copied H disks you distribute do not have to be 'sector' copies. You HOW YOU CAN MAKE MONEY:IGHTNUEA This material is not released to the public domainA This material is not released to the public domainB This material is not released to the public domain  # HOW YOU CAN MAKE MONEY: THE RIGHTNUE' complete G The above plus fully documented source code $30 C Please make donations payable to Paragon Computing.  $10 OFFSET,R2 APPROPRIATE OFFSETTO CONTINUEH I request that if you use this material in any way, you 5 make a donation to Paragon Computing. G YOU GET: IF YOU DONATE: ntions throughout NLY DELETE TO END OF ACTUAL INPUT2 do, however, have to include all files. H 2) The above mentioned files may not be altered in any + way (except as described below). H We know you may want to improve on our work. You are itions: UE# HOW YOU CAN MAKE MONEY:# HOW YOU CAN MAKE MONEY:$ HOW YOU CAN MAKE MONEY: H Each disk Paragon Computing produces contains serial H numbers to help us track distribution. You may distribute H Note that this document, the Enhanced Display Package, H and all supporting programs and documentation are copyrighted by Paragon Computing. B This material is not released to the public domain.HTNUEG Registration and serial # $10 F The above plus complete user's manual $15& complete& complete NO, SO OK TO CONTINUEH free to make personal copies of this material and do whatever H you want with them. Again, you may not distribute any of H this material after it has been altered except as described ARED OUTOSITION TO THE RIGHTNUEH serial number and simple instructions for altering your copy. H This is the only authorized alteration you may make. From H that point on, any donations we receive from your serial LINK TO GPLK ONE SPACENUE, we will provide a corrected copy. H When you send us your donation (minimum of $10 US), F include the serial number of your copy. To find this:  >OLD DSK1.LOAD MOVE CURSOR BACK ONE SPACENUEH Without any doubt, this project would never have been H completed without Millers Graphics' excellent EXPLORER H program. The TI community should be ever grateful to Craig 2 * NOTE!* NOTE!+ NOTE! C We will not support non-registered owners in any way.      ) 2 < number will be shared with you at the above rate. H Paragon Computing is a registered non-profit corporation H in the state of New Hampshire. Our purpose is to provide r. We will also send you your own PACENUE. >CALL INIT::CALL PEEK(-50,A,B) 1 >PRINT "SERIAL NUMBER IS";256*A+B H We will send 30% of your contribution to the registered H owner of that serial number. We will also send you your own PACENUEH below. You may not distribute programs which contain the H Paragon Computing Enhanced Display Package in part or in H whole. If you find a flaw in our programs, please notify us: MOVE CURSOR BACK ONE SPACENUE A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   ! ACKNOWLEDGEMENTS! ACKNOWLEDGEMENTS! ACKNOWLEDGEMENTS" ACKNOWLEDGEMENTS  OTE!CLR, ERAPUTCR1K ONE SPACENUEH support to owners of 'orphaned' systems such as the TI 99/4A. H If you do not support us with your donations, we can no  longer support you. * NOTE! LINK TO GPLK ONE SPACENUEH Miller and his staff for developing and distributing the most H powerful and versatile debugger I have seen - on a TI or any  system! H The MG Explorer allows TI owners to watch their computer E KEY CHECKING8 module. Thank you once again, Tony and Will!  H A special thanks to the friends and fellow programmers H who evaluated this material and gave me their frank and YARC's RAM  disk!  CTER A SPACE?H Hats off to Tony and Will McGovern for their FUNNELWEB H program. Because the Enhanced Display Package was written H for use with the Extended BASIC module, FUNNELWRITER saved me a MYARC 512K RAM ER A SPACE?H disk. This piece of hardware allowed me to save four disks' H worth of programs in RAM. Editing and assembling were H extremely fast. Switching from EDITOR to ASSEMBLER and back ch their computer UMBER OR STRINGH make every move. This program is not only a developer's H dream, it is wonderful for just learning how our computer H works! If you want to know what makes the TI 99/4A tick, you LOOP BACK FOR MORE KEY CHECKINGH helpful comments. A very special thanks to Barry Traver for D his numerous comments, hints, helps, and what-have-you's.  H Finally, I can never express the gratitude I feel toward WAS THE CHARACTER A SPACE?H from swapping modules hundreds of times. I was able to do H all the program development and assembling with the Extended H BASIC module instead of having to use the EDITOR/ASSEMBLER WAS THE CHARACTER A SPACE?H again (several times each night) was done in one or two H seconds! I firmly believe that development time was H one-tenth of what it would have been without MYARC's RAM  disk!  MBER OR STRINGH should get this piece of software. I can't thank them  enough!  H Along these same lines, a great deal of time and H frustration were saved through the use of a MYARC 512K RAM ER OR STRINGH (40 column) mode. They may also be called in command mode. H Effects of routines relating to colors will be retained after H returning to command mode. For example, at the command prompt, you may type: 4H screen buffer was implemented since there is often a large = amount of unused RAM in the high memory expansion.   GENERAL GENERAL GENERAL GENERAL Adam.             ) 3  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1    FEATURES FEATURES FEATURES FEATURES  SPACE?H my wife and two sons, who will never understand what would H drive me to spend more than half my home life working on a H program which may never make any money (my wife) and of THE OFFSETHE CHARACTER A SPACE?- >CALL LINK("SCREEN",7)(enter) H The screen will turn dark red; then flash cyan for a H moment (it is being reset by the Extended BASIC interpreter); ) mode. Furthermore, a TRINGOP BACK AND TRY AGAINNUMLP4H This enhanced display package contains each of the H non-sprite screen commands (see index). Any and all of these H commands may be called in either GRAPH (32 column) or TEXT LOOP BACK AND TRY AGAINNUMLP4H The original purpose of this package was to rewrite the H various screen commands so that they could be used in either H GRAPH (32 column) or TEXT (40 column) mode. Furthermore, a 0NONUMETHE CHARACTER A SPACE?H itself doesn't look like much of a game (my sons). 4 Regardless, their support was superhuman.  H This program is dedicated to my wife, Katherine, and my # two sons, Alan and Adam.      H then return to dark red. COLOR, FLASH, and TEXT color 9 changes will also be retained in command mode.  G ACCEPT was written to mimic that of Extended BASIC, with ACCEPT ACCEPTLP4H 4) You may complete your input with BEGIN, PROC'D, AID, REDO, H BACK, ENTER, or QUIT. Pressing the QUIT key will complete H your ACCEPT routine without assigning the variable. QUIT ACCEPT ACCEPTLP4H allowed up to that size, or the size of the window - # whichever is smaller. H 2) You may specify the keyboard to be scanned - keyboard 3 5 (TI 99/4), 4 (PASCAL), or 5 (TI 99/4A). you may type: 4G ALARM sets an alarm which will be compared to your clock each ALARM ALARM ALARM H second. If the alarm and clock times ever match, two things RAMETER?,R1 GET THE NUMBER OF PARAMETERS PASSEDH immediately available by evaluating the variable TERMCHAR. H This is useful when the programmer wants control to branch H to a different portion of the program if one of the ***********************PEEKVL/ is also disabled in your program. H 5) The up and down arrows may also be used to edit your H ACCEPT, provided they do not leave the string area. If t will be H 3) The CLEAR key (function 4 in keyboards 3 and 5, control B H in keyboard 4) will clear the string from the cursor to * the end of the string space. ; N1 LWPI >83E0 USE GPL WORKSPACERY AGAINNUMLP4 ACCEPT # some major improvements: H 1) Input is not limited to the end of the line. If you H specify a size (either positive or negative) input will be n) or TEXT LOOP BACK AND TRY AGAINNUMLP4( function keys was pressed. H 7) Validate includes ALPHA (any alphabetic letter) and LALPHA (lower case only). @ 8) The options mentioned under DSPLAY are also valid.  IT T THE NUMBER OF PARAMETERS PASSEDH your cursor leaves the string area because of an up or A down arrow key press, then the ACCEPT is completed. H 6) Whatever key press was used to complete the ACCEPT is CAL), or 5 (TI 99/4A). ******PEEKVLH will occur: 1) the screen will be blanked and 2) tones will H sound. To restore the screen and turn off all sound H generators, press the space bar. Program execution is T THE NUMBER OF PARAMETERS PASSEDG CLOCK sets the interrupt driven clock. The clock need not be CLOCK CLOCK CLOCK H SHOWing on the screen to be set or run. Parameters passed to gram load another of different size. When ALL ARE MOVEDH example, if you wish to load string data into the buffer, but H you don't know how much room is left, you can program  something like this:  100 FOR X=1 TO 3  110 READ A$ *************LOADVLEDH if you have one program load another of different size. When H the BUFFER command reaches the end of the buffer, the MEMORY H FULL error is generated. You may check the available buffer ***********************LOADVLED& suspended during the alarm.    ) 4  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   G BUFFER: A screen buffer is provided in high memory. The size BUFFER:H the CLOCK routine are optional and include hours, minutes, H and seconds, in that order. You may pass all three, the H first two, the first one, or none. Any parameter not passed LOOP BACK UNTIL ALL ARE MOVED' 120 IF LEN(A$)>FREESPACE THE  N 140 % 130 CALL LINK("BUFFER",A$)  140 NEXT X % 150 DATA WHATEVER,YOU,WANT % 160 DATA REST OF DATA,ETC.  y. The size BUFFER: BUFFER:ADVLEDH memory at any time by examining the variable FREESPACE. This H variable is automatically updated each time the buffer is H used; you do not need to do anything except use it. For ***********************LOADVLED BUFFER: BUFFER: H of the buffer depends on the size of your program, i.e. the H buffer will adjust itself to fill all available memory, even nder DSPLAY are also valid.  E VARIABLEUMBER OF PARAMETERS PASSEDH Whether you are using DSPLAY or ACCEPT, pointers are H maintained which indicate the last screen position from which H data was accepted or to which data was written. A CALL to COLORS*UE INTO SCREEN SAVE STORAGEH require a minimum of eight spaces. If the entire number H cannot be displayed, it will be rounded up to fit. Options H available for DSPLAY include BEEP, HONK, skip a line (similar sets the clock at 12:55:23 RLEDH as possible, including scrolling the window or wrapping H around to the top of the window - depending on how it was H called. You may display strings or numbers, with pound signs K ********************LOADRLED. is assumed to be '0'. For example: < CALL LINK("CLOCK",12) sets the clock at 12:00:00. A CALL LINK("CLOCK",12,55,23) sets the clock at 12:55:23 7 CALL LINK("CLOCK") sets the clock at 0:00:00 CK UNTIL ALL ARE MOVEDH DSPLAY or ACCEPT without row and column information will H default to the space immediately after the last DSPLAY or H ACCEPT unless the COLON option was used, or the string is too # long to fit on the line. H to using a colon after a DISPLAY or PRINT command), ERASE ALL H (entire screen) or ERASE WINDOW (which will only erase the H active window area). Any option may be passed more than once  in the same string. AGEH (##) appearing if the size of the display area is smaller H than the size of the number. Normal numbers require a H minimum of three spaces; numbers using scientific notation ***********************LOADRLEDH You may 'fast-forward' the clock by simultaneously pressing . both the CONTROL and FUNCTION keys.  G DSPLAY was written to emulate that of Extended BASIC as much DSPLAY DSPLAY DSPLAY $) D G FLASH: Any of the 32 color sets may flash an alternate FLASH: FLASH: FLASH: H foreground and background color. Effects may be canceled by to fit. Options T NUMBER? INTO SCREEN SAVE STORAGE@ LOADV lets the user load up to 15 values into VDP RAM. LOADV LOADV LOADV  G MODE lets you change between GRAPH (32 column) mode and TEXT MODE MODE MODE **********STORAGEG GTEXT allows you to retrieve a string of characters from the GTEXT GTEXT GTEXT H screen without requiring any action from the user. GTEXT is 1 invoked in a fashion similar to GCHAR: hich RAGE SCROLL SCROLL H either up or down, and either save them in the screen buffer H or discard them. The scroll routine will stop at the buffer H boundaries without generating an error (and without losing H be reset to its default value and the clock will be removed  from the screen.  B PEEKV lets the user PEEK up to 15 values out of VDP RAM. PEEKV PEEKV PEEKV  n similar to GCHAR: **STORAGEH (40 column) mode at any time. You also have the option of H clearing the screen and resetting patterns and colors, or H simply switching screen widths - with patterns, etc. intact. CED DISPLAY PACKAGE VERSION 2.1AGEA CALL LINK("GTEXT",ROW,COLUMN,STRING_NAME$,LENGTH) > This command is not affected by the WINDOW command.  ? LOADR lets the user modify the eight video registers. LOADR LOADR LOADR  TORAGE@ COLOR, MODE (with a positive value), STEADY, or TEXT.  ) 5  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   OW (which will only erase the IS VALID INTO SCREEN SAVE STORAGEG RESET clears the screen buffer and resets the pointers and RESET RESET RESET " the variable FREESPACE.  G SCROLL may move any number of lines of your window at once, SCROLLTORAGEA The screen does not become jumbled with a width change. does not does not does not H Regardless of the MODE CALLed (plus or minus) the window will F ROW & *E****STORAGEH any screen data). SCROLL using the buffer doesn't care if H the screen width has changed, so you will get broken lines if H you scrolled them into the buffer under one window width, NUMBER, JUMP TO THAT ROUTINETORAGE ) 6  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   G TXTPAT is similar to CHRPAT in that it looks up character TXTPAT TXTPAT TXTPAT INETORAGEH CALL LINK("TEXT",16,7) sets all thirty-two character H sets to white on transparent, with a screen color of dark H red. This command works in either mode (32 or 40) and in  command mode.  TORAGEB STEADY cancels flashing of a color set or group of sets. STEADY STEADY STEADY  G TEXT sets the foreground color of each character set to the TEXT TEXT TEXT SCROLLTORAGEH then scroll them back onto the screen with a different window  width.  G SHOW allows you to select the location of your clock display. SHOW SHOW SHOW the window will P TO THAT ROUTINETORAGEH patterns. However, it will 'look-up' up to 15 characters' H worth of patterns based on a string-expression passed to the H routine. A third (optional) parameter allows normal TEXT TEXT ROUTINETORAGEG TIME allows the user to call up the hours, minutes, and TIME TIME TIME H seconds as recorded by the interrupt driven clock and assign 0 these values to the variables passed.      H first value passed, the background color of each character to H 'transparent', and (optionally) the screen color - if a 0 second value is passed. For example: daries without generating an error (and without losing H You may place the clock on any row, and in any column - H provided all eight characters fit without running off the C right edge. SHOW is not affected by the WINDOW command.  V  ER, JUMP TO THAT ROUTINETORAGEH The largest that your window may be is the entire screen, row H 1 to 24, and column 1 to 32 (GRAPH mode) or 40 (TEXT mode). H The smallest your screen may be is one character. You may COUNT DOWN EACH ONERAGEG WINDOW selects what area of the screen you wish to respond to WINDOW WINDOW WINDOW H ACCEPT, DSPLAY, and SCROLL. These commands will use the 3 DEC R0 COUNT DOWN EACH ONERAGE> made the above CALL, you may then do the following: 7 110 CALL LINK("CHAR",96,A$)::PRINT "abcdefg" $ 120 CALL LINK("FLASH",9)  130 GOTO 130 H This will have the effect of changing the "abcdefg" to look H (positive value) or reverse video (negative value) patterns.  For example: / 100 CALL LINK("TXTPAT","WORKING",A$) H causes A$ to contain the character patterns for 'W', 'O', " " JUMP TO THAT ROUTINETORAGEH specify any start point on the screen, as long as your window H fits completely without running over any edges. You may H alter the window size or location any time without corrupting ARACTER ON THE ENDDSPLA1 ONERAGEH upper left-hand corner of your window as their screen H starting position. Please note that GCHAR, GTEXT, HCHAR, H SHOW, and VCHAR are not affected by your window designations. COUNT DOWN EACH ONERAGE7 like the word "WORKING" and set it FLASHing. H 100 CALL LINK("TXTPAT","WORKING",A$,-1) will do the same H thing as before, except the patterns will be in reverse  video.  PACKAGE VERSION 2.1TINETORAGEH 'R', etc. concatenated together. This is useful for H creating flashing or reverse video messages using one of the H normally unused character sets. For example, assuming you command mode.  TORAGEH the screen buffer. However, if you change the size or shape H of your window, buffered data scrolled back onto the screen H will be broken to fit (though none of the data will be lost).  hanging the "abcdefg" to look EH pointers, the clock pointer, and all related sprite bytes. H The interrupt flag (which controls sprites, sound, and the 9 QUIT key scan) is also restored from the file.  . You may LL OR WRAP AROUND?CKZE AS ISRAGE INTOFF  G INTON turns on EDP interrupts. User interrupts continue to INTON INTON INTON B be serviced (user interrupts are moved to address -10).  YES, KEEP THE SIZE AS ISRAGEH One important difference you should know is that only H one set of parameters may be passed to each routine. H For example, in TI Extended BASIC, you may CALL the  following: DSPLP1E WRITE WRITE WRITE H description for the information saved. This file is 9  sectors long.  ) 7  user!) interrupts. INTOFF INTOFFPLP1EG STRING generates a string of characters in ascending order, STRING STRING STRING H as long as you want (up to 255) starting at any ASCII code. e without corrupting EACHED THE END OF THE WINDOW?RAGEG READ restores from disk: screen characters, character READ READ READ H definitions, colors, window pointers, ACCEPT and DSPLAY your window designations. IRST COLUMN, NO CHECKZE AS ISRAGEE **************** VERSION 2.1 ADDITIONS ******************** **************** **************** ****************  : INTOFF turns off EDP (but not user!) interrupts. INTOFF INTOFFERAGEA PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   * CHANGES FROM TI EXTENDED BASIC* CHANGES FROM TI EXTENDED BASIC* CHANGES FROM TI EXTENDED BASIC+ CHANGES FROM TI EXTENDED BASIC  PLP1EH This is useful for generating sort keys, or for use with the H TXTPAT command for defining prompts from the unused  characters.  G WRITE saves the entire screen to disk. See the READDOW?RAGE5 CALL CHARPAT(65,A$,90,B$,35,C$,55,D$) H In that CALL, there are four sets of parameters passed; H each set is independent. With the Paragon Computing e.  HOW MANY COLUMNSNOW = START OF DSPLAYDSPLP1EB This routine is significantly improved as follows: H 1) CALL LINK("CHRSET") resets all characters from ASCII E 32 to 127. Extended BASIC only resets from 32 to 95. ADDRESS OF START W.R.T. SCREEN*AYDSPLP1E CHRPAT CHRPAT H As with the CHAR routine, the ASCII codes available H range from 30 to 159 in GRAPH mode or 139 in TEXT mode. H Unlike Extended BASIC, which only retrieves the pattern H CHAR routine and the routine supplied in TI's Extended  BASIC: H 1) The Paragon Computing routine may define characters H 30 through 159 (in GRAPH mode) or 30 through 139 (in AYDSPLP1EH Enhanced Display Package, only one of the above sets may ) be passed with each CALL. H However, each routine has been improved in other ways I code. INKING MECHANISMY COLUMNSNOW = START OF DSPLAYDSPLP1EH 2) You may reset a single character or group of H characters, instead of all. This is not available in  Extended BASIC. H 3) You may reset a single character or group of 1EH of one code, Paragon Computing's package may retrieve up 9 to 15 characters' patterns in one string.   CHRSET CHRSET CHRSET CHRSET may CALL the  following: DSPLP1EC TEXT mode). Extended BASIC only defines 32 to 143. H 2) You may define 15 consecutive characters at a time. F Extended BASIC limits you to 4 consecutive characters.   CHRPAT CHRPATLP1EH that may more than make up for the exclusion of the + above mentioned capability.   CHAR CHAR CHAR CHAR H There are two differences between the Paragon Computing H CALL LINK("CLEAR",65) fills the screen with A's. If you H do not pass a value (or pass 0), the space character is  assumed. & CALL LINK("CLEAR") and et a single character or group of 1E  ) 8  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1    CLEAR CLEAR CLEAR CLEAR CHRSET IOUS LINEDT2OF START W.R.T. SCREEN*AYDSPLP1EH 4) You may reset a single character or group of H characters to look like any other single character or H group of characters, without having to know the patterns CHRPAT CHRPATLP1EH characters with their foreground and background H reversed. This is particularly useful in TEXT mode, H where you may want a group of characters to appear in es between the Paragon Computing H CALL LINK("CLEAR",0) will both fill the screen with the + SPACE (ASCII 32) character.   COLOR COLOR COLOR COLOR group of characters to appear in WRAP AROUNDWRYT4N*AYDSPLP1EH Clear generally fills the screen with the space (ASCII H 32) character. With this package, you may specify which 9 character fills the screen. For example: 95. NOTHER LINEWRYT3.R.T. SCREEN*AYDSPLP1EH involved! This is useful in defining the lower case H alphabet to look like the upper case alphabet, for H example. Pattern reversion is also available with this  option.     H 'reverse video.' For example, if your text appeared as H white on blue, you could reset a group of characters to ( appear as blue on white. through 159 (in GRAPH mode) or 30 through 139 (in AYDSPLP1EH You may set the foreground and background colors of any H of the 32 character sets, either individually, or as a $ group. For example: e. GPL WORKSPACE******** WRAP AROUNDWRYT4N*AYDSPLP1EH commands for the character sets affected. As with the H other color related commands, this routine is effective in command mode.  H In TEXT mode (mode 2), you are restricted to two colors: H CALL LINK("COLOR",5,15,3,5) will set the 5th, 6th, 7th, H 8th, and 9th character sets (5 sets total) to gray on  medium green.  NOTE! NOTE! NOTE!n.     - NOTICE!NOTICE!NOTICE!- NOTICE!NOTICE!NOTICE!- NOTICE!NOTICE!NOTICE!. NOTICE!NOTICE!NOTICE!  NOTE! NOTE! NOTE!KSTH command instead of Extended BASIC's. The routine built G into the console is overridden sixty times each second.   SCREEN SCREEN SCREEN SCREEN group. For example: 1EH the foreground color of your characters, and the screen H color (background of characters is always transparent). B These colors may be altered with the TEXT command. E CURRENT GROM ADDRESS ON STACKDSPLP1E NOTE! H The COLOR routine has no effect in mode 2 (TEXT mode), H although the colors will show the change if you return H to GRAPH mode using '-1.' COLOR cancels any FLASH 2.1DSPLP1EH CALL LINK("COLOR",5,15,3) will set the 5th character set H to be gray on medium green. However, by adding a fourth H parameter, you may set several sets with one call. For  example: YDSPLP1EH This routine retains its effect even when called in H command mode. You must use this routine; the built in F SCREEN command from TI's Extended BASIC is overridden.  example: G Finally, remember that you must use the EDP COLOR1 must1 must2 must SPACE (ASCII 32) character. H Registered owners will receive newsletters describing H shareware programs which utilize the Enhanced Display H Package. Also, registered owners are encouraged to cancels any FLASH H The empty brackets in F() indicate that you are passing the H entire array, and not just an element of F. Passing any G element is fine; passing an entire array may cause an errorT TO FIRST COLUMNSET TO LAST ROWS3 CALL LINK("COLOR",5,A*B,C(LEN(D$))) D CALL LINK("DSPLAY","THIS IS OK, TOO"&ANYSTRING$(20)) 4 CALL LINK("HCHAR",10,20,ASC("A"),24)  A The following is an example of what should not be used: LAST ROWSH Each routine was written to respond to numeric or string H expressions, be they constants, variables, array elements, or H any combination of the above. The only limit pertaining to st NTER, SHOWS WHERE DEF'S STARTH submit programs for consideration. If accepted, H programs will be distributed by Paragon Computing at no ( charge to the author(s).         ) 9 G passing an entire array may cause an errorG passing an entire array may cause an errorH passing an entire array may cause an error 9 S8 should not8 should not9 should not & CALL LINK("LOADV",F())  GET NEXT BYTETO LAST ROWSH the type of argument passed is that an entire array may cause H an error, or at the very least - unexpected results. For H example, the following CALL's are allowed (this is not an all  inclusive list): ADDRESS A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1    PASSING VARIABLES PASSING VARIABLES PASSING VARIABLES PASSING VARIABLES  EXT command. Y SETUPNITIONS AND LINK ADDRESSESH You may also chose to use a shorter variable in the first H place. For example, your first line could be FS,TC=1 instead H of FREESPACE,TERMCHAR=1. The name really doesn't matter, ORY GET NEXT BYTEAST ROWSG FREESPACE will always tell you how many bytes are left in FREESPACE FREESPACE FREESPACE H your screen buffer. Every time you use the SCROLL, RESET, or example of what should not be used:EAST ROWS/ types H passed. However, no value outside of acceptable limits will H be used by a routine. For that reason, the predominant error nly limit pertaining to EXT 'EDP VERS. 2.1 CAP' EVEN) or at least unexpected results.( or at least unexpected results( or at least unexpected results) or at least unexpected results  H Because of the nature of the linking mechanism built into the EVENH just remember that the first variable listed in your program H will be used as FREESPACE, and the second variable listed $ will be used as TERMCHAR.  tire array may cause an error VING SETUP LINKT NEXT BYTEAST ROWSH BUFFER routine, FREESPACE is adjusted accordingly. If you do H not wish to use FREESPACE, you may define another variable to & equal FREESPACE as follows:  DEF FS=FREESPACE W MEMORY GET NEXT BYTEAST ROWS? code you will get from a bad CALL is "BAD ARGUMENT."  H Two variables are continuously updated for you; you need not F pass them in any routine. They are FREESPACE and TERMCHAR.  all  inclusive list): T ROWSH Paragon Computing Enhanced Display Package, most routines do G not check to ensure that valid types of arguments are being. types. types BYTEAST ROWSG TERMCHAR will always report the value of the last key used to TERMCHAR TERMCHAR TERMCHAR H complete an ACCEPT. The only exception is when the program the linking mechanism built into the ORYST ROWS ) CREATING YOUR OWN SUBPROGRAMS) CREATING YOUR OWN SUBPROGRAMS* CREATING YOUR OWN SUBPROGRAMS H Extended BASIC lets you create your own subprograms , or H user completed an ACCEPT with the ENTER key, or one of the H function keys. With TERMCHAR and the modified ACCEPT H routine, you may write routines which make full use of the H (the same is true for any subprogram you have created). H Subprograms, once defined and your program has run, will not work in command mode.  H You may take this creation of subprograms a step further + LINK("GCHAR",X,Y,Z)::SUBEND H you may now use CALL SCREEN(3) (or whatever) anywhere in  your program. G NOTE! Once you have run your program with this NOTE!0009 H which may then be CALLed in your main program. What TI H didn't tell you is that you may create subprograms which C override the cartridge subprograms. Enter the following: override overrideR4 @ BEGIN, PROC'D, AID, REDO, BACK, QUIT, and arrow keys.       * 10  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   ) CREATING YOUR OWN SUBPROGRAMSRY H first begins, TERMCHAR is reset to 1. Again, you may define H a variable with a shorter name if you wish. TERMCHAR is H useful for branching to subroutines depending on whether the types BYTEAST ROWS  NOTE! NOTE! H subprogram, you may not use it in command mode, i.e. if you H try a CALL SCREEN(3) at the '>' prompt, you will get an error the program 9BD470B0602B15FD7F2EEF 0012  override , 30000 SUB SCREEN(X)::CALL LI & NK("SCREEN",X)::SUBEND , 30010 SUB CHAR(X,X$)::CALL L ( INK("CHAR",X,X$)::SUBEND , 30020 SUB GCHAR(X,Y,Z)::CALL 0006!H and convert most of the EDP routines to CALL's. You might H not want to convert the LOADV and PEEKV routines because they H are so flexible (up to fifteen parameters with each). 7F2EEF 0018!H Every time they are CALL'ed, though, you must pass a fourth H parameter, even if it is a '0'. The following subprograms H have been written for you and are contained in the file 7F2BDF 0039!H Remember that parameters passed may be variables or  expressions, too.  H Other EDP routines may be linked to with subprograms, G but you must remember to pass all parameters required. For!H subprograms have been written for you and are contained in H the file MERGEBASE1 which may be merged with your program. H Line numbers start at 30000. Once merged, you may eliminate 7F2F5F 0027!H Similarly, ACCEPT and DSPLAY may have from none to six H parameters - of mixed types. Creating a subprogram for these * two would make them cumbersome.  0BD660C00A8B045BB04C0B04C17F293F 0021!H MERGEBASE2. You may merge this with your file and then H delete those CALL's you do not want to use: ALARM, CHRPAT, H CHRSET, CLEAR(with a parameter), CLOCK, FLASH, HCHAR, SCROLL, tion of subprograms a step further !- all- all. all H example, you could create new HCHAR and VCHAR subprograms. s NOTE!0036!H the LINK(" etc. portion of your CALL's and invoke the + routines directly. For example: ! 100 CALL MODE(-2) * 110 CALL WINDOW(2,23,2,39)  120 CALL RESET verride override!H Fortunately, there are many EDP routines with a fixed H number and type of parameters. These are: BUFFER, CHAR, H GCHAR, GTEXT, LOADR, MODE, RESET, TXTPAT, and WINDOW. These NG YOUR OWN SUBPROGRAMS"H TERMCHAR with each use. If you would rather use other H variable names, that is fine. Be warned, however, that the H first variable mentioned in your program will be used to show 7F203F 0063"H THIS MUST BE THE FIRST LINE OF ANY PROGRAM USING THE EDP!H THIS MUST BE THE FIRST LINE OF ANY PROGRAM USING THE EDP!H THIS MUST BE THE FIRST LINE OF ANY PROGRAM USING THE EDP!ESET 0057"     * 11  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   ' RUNNING OTHER PROGRAMS' RUNNING OTHER PROGRAMS' RUNNING OTHER PROGRAMS"H SHOW, STEADY, TEXT, TIME, and VCHAR. Line numbers start at G 32000. Note that if you use this COLOR, you will not be ableG Note that if you use this COLOR you will not be able 7F2BEF 0045"H the amount of memory remaining in the screen buffer, and the H second variable mentioned will be used to show which key last  ended the ACCEPT. H The RESET is called because Extended BASIC uses the "I THIS MUST BE THE FIRST LINE OF ANY PROGRAM USING THE EDP! ; (Remember: you may use any names you want!) H This line allows the EDP to update FREESPACE and mber to pass all parameters required. For"( RUNNING OTHER PROGRAMS  H Any program which uses the Enhanced Display Package 2 should contain the following statement: : 1 FREESPACE,TERMCHAR=1::CALL LINK("RESET") 0054"G Note that if you use this COLOR you will not be ableH Note that if you use this COLOR you will not be able  to COLOR sprites. to COLOR sprites to COLOR sprites to COLOR sprites "H lower portion of high memory to first load your program. H After the line pointers have been adjusted, your program is H moved to the upper portion of high memory. If you did not 7F2E3F 0069#H machine code. If machine language is written into the area H used by the EDP interrupt routine (>2500 ~ >2560), your code & may be executed improperly. RUNNING OTHER PROGRAMS007F33CF 0081#H Many fine programs today rely on portions of machine H language to perform functions not available in Extended H BASIC. This machine language may be loaded from a running sprites to COLOR sprites #D well as any other program, may use the interrupt routine: H 1) Disable Paragon Computing's routine as described  above. ) 2) Load the next program. which key last  ended the ACCEPT. #H question, you generally don't know if a problem will occur H when the code is loaded. For most programs, you will have to > simply RUN the program and observe if it "crashes." B0060B04CE7F278F 0090#H To avoid crashing your program, you should disable the H EDP interrupt routine before your program is loaded. To ) disable the interrupt routine: % CALL LOAD(-31804,0,0) 0084#H program in the form of a CALL LOAD, or may be "buried" in the H program itself. An example is the EDP LOAD program which H consists of two lines, yet contains thousands of bytes of 7F312F 0078#H clear the screen buffer, you would only see 'garbage.' You H can try to pass data from one program to another by using the H screen buffer, but you will not be too happy with the  results. #H EDP was written knowing that other programmers may also H wish to use the interrupt routine. You should follow these H simple steps to ensure that the Enhanced Display Package, as 7F2A0F 0093#H This may be CALLed from the command mode, or from inside H a program. This will cancel both the EDP interrupts and any  user interrupt. H Unless you are the author of the machine language in $H 3) CALL LINK("INTON") this will move the user address H into EDP's interrupt hook (address -10) and move the EDP 3 interrupt address into the machine hook. 6 To cancel your user interrupt routine: $= CALL LINK("GTEXT",row,column,string-variable,size)  E CALL LINK("HCHAR",row,column,character-code[,repetitions])   CALL LINK("INTOFF)   CALL LINK("INTON")  will have to 7F277F 0120$. CALL LINK("CLEAR"[,character-code])  < CALL LINK("COLOR",character-set,foreground-color, 2 background-color[,number-of-sets])  ? CALL LINK("DSPLAY"[,row,column][,option-list][,size] 0114$9 CALL LINK("ALARM"[,hours[,minutes[,seconds]]])  0 CALL LINK("BUFFER",string-expression)  = CALL LINK("CHAR",character-code,string-expression)  < CALL LINK("CHRPAT",character-code,string-variable $" CALL LOAD(-10,0,0)      * 12  A PARAGON COMPUTING ENHANCED DISPLAY PACKAGE VERSION 2.1   ? COMMAND SUMMARY (items in brackets [] are optional) 0102$< CALL LINK("LOADR",register-number,register-value)  B CALL LINK("LOADV",VDP-address,numeric-expression(,...))  G CALL LINK("MODE",1-GRAPH or 2-TEXT (negative doesn't reset))  B1501BC38C7F257F 0123$ [,expression])  < CALL LINK("FLASH",character-set,foreground-color, 2 background-color[,number-of-sets])  9 CALL LINK("GCHAR",row,column,numeric-variable)  C40BD0707F24EF 0117$( [,number-of-characters])  D CALL LINK("CHRSET"[,character-code][,number-of-characters F (negative number for reverse-video)][,pattern-number])  9 CALL LINK("CLOCK"[,hours[,minutes[,seconds]]])  $ COMMAND SUMMARY COMMAND SUMMARY COMMAND SUMMARY 0 ? CALL LINK("ACCEPT"[,row,column][,option-list][,size] ; [,validation-string-expression][,variable])  n Extended % row. B sounds a beep. H sounds a honk. + E erases the entire screen. 0 W erases only the active window. 1 Validate options: e 1st column of the next %* 13     6 ADDENDUM TO DOCUMENTATION: H The following options are available for use with the REFERENCE SECTION REFERENCE SECTION  % < CALL LINK("TEXT",foreground-color[,screen-color])  8 CALL LINK("TIME"[,hours[,minutes[,seconds]]])  ? CALL LINK("TXTPAT",string-expression,string-variable 5 [,negative number for reverse video])  %@ CALL LINK("PEEKV",VDP-address,numeric-variable(,...))  , CALL LINK("READ",device.filename)   CALL LINK("RESET")  ) CALL LINK("SCREEN",color-code)  utine as described  above. 0126%2 A allows upper and lower case alphabet. . D allows digits (0 through 9). - L allows lower case alphabet. 5 N allows numerals (digits plus +-.E). - U allows upper case alphabet. next %H ACCEPT and DSPLAy option lists. Deatiled information is 3 available in the complete documentation.  2 3, 4, and 5 set the keyboard mode. H : increments the pointers to the 1st column of the next %E CALL LINK("VCHAR",row,column,character-code[,repetitions])  > CALL LINK("WINDOW",first-row,last-row,first-column,  last-column)2  - CALL LINK("WRITE",device.filename)   9EF 0135%E CALL LINK("SCROLL"[,number-of-lines][,0-lose or 1-buffer])  ) CALL LINK("SHOW"[,row,column])  ? CALL LINK("STEADY"[,character-set][,number-of-sets])  E CALL LINK("STRING",variable-name[,length][,starting code]) %H V notifies the EDP that you passed a validation string  of your own.  H All option list characters are repeatable; lower case is  recognized.  Example: upper case alphabet. next &'tPEEKV 'nMODE 'hLOADV 'bLOADR '\GTEXT 'VGCHAR 'VHCHAR 'PFLASH 'JDSPLAY'@COLOR ':CLOCK '4CLEAR '.CHRSET'(CHRPAT'"CHAR 'BUFFER'ALARM 'ACCEPT'   0 6$`&j&d&f&h &d{ &b&d &fu *4 0&f&``&` !1.  $ &h_&, only the key presses 'Y' and 'N'.                                  H (no lower case); erase only the active window; and accept upper case alphabet. next & ,|H<@ @1(P 18 `1" >`1$1   ,`  $  H  32"<@ 2.[`)B2<2D2H2V2d22 1`(B܃L̓F'C`(B 0  `ÎÌMMc .c  ̣ 0 0.8$l@  )  [=@`)B B<0J=@ `(B 0T.  '1&ppJl`$1( 1* 0`(B .O1 ? `)B <<@@@..T.9 1$ D.z.T `1a1$B 1 `9O8  1"<@FGcO , B [ 18  1"' ,*5Lz! $ 0p $ $ 0&d&f&h[" 4++  PD``l,,+ >mV# : +ӌS SC# | 0`)B`,? `$ '˃Æ 1&`1( 2(  ͓ 2&O2$à1 c2(2" 1$@c@ ̀ 2( 2" 1& 1(? 6a$D3 3 6<'# <?2" 11 '( C#0:# CB[L=@  = 0J 81  &,",   N    ؁1.؁1N[`)B'<@1$ $ B[`1$`8``1 GaO8 !<@r9J 1"DO , |H[ I [`)B. ẓ <@p C@C`B0