Doors CSE and Doors CE offer compatibility for all the major TI-84 Plus C Silver Edition and TI-84 Plus CE BASIC libraries, including Celtic 2 CSE/CE and xLIBC/xLIBCE. If you need to detect whether the Doors CSE/CE-provided Hybrid BASIC libraries are present (which you should do in any program or game that uses them), we recommend this format:

:"Icon data...
:If 80>det([[20
:Disp "Get Doors CSE/CE to run:","

det([[20]]) will equal 80 for Doors CSE 8.0, 81 for Doors CSE 8.1, 82 for Doors CSE 8.2, 90 for Doors CE 9.0, 91 for Doors CE 9.1, and so on. You can use the value to make sure the user has a minimum required Doors CSE or Doors CE version on their calculator.

Celtic Libraries #

The Celtic libraries are converted from Celtic 2 CSE/CE, itself a port of Celtic 2 for the TI-83 Plus/TI-84 Plus by Iambian Zenith. Iambian wrote det(0) through det(8), while Kerm Martian wrote det(9) and det(10) and debugged the remaining functions. det(0) through det(12) are available from Doors CSE 8.0 to 8.2. All functions are available from Doors CE 9.0 onwards.

Most of the Celtic 2 CSE/CE functions take arguments in Str9, Str0, and Ans, and output to Str9 and/or Str0. To use an AppVar instead of a program as input, prepend the string with the “rowSwap(” token.

ReadLine - det(0), Str0=program name, Ans=line number
ReplaceLine - det(1), Str0=program name, Ans=line number, Str9=replacement
InsertLine - det(2), Str0=program name, Ans=line number, Str9=contents
SpecialChars - det(3)
CreateVar - det(4), Str0=program/AppVar name
ArcUnarcVar - det(5), Str0=program/AppVar name
DeleteVar - det(6), Str0=program/AppVar name
DeleteLine - det(7), Str0=program name, Ans=line number
VarStatus - det(8), Str0=program name
BufSprite - det(9,width,X,Y), Str9=sprite data
BufSpriteSelect - det(10,width,X,Y,start,length), Str9=sprite data
ExecArcPrgm - det(11,FN,NUMBER)
DispColor - det(12,FG_LO,FG_HI,BG_LO,BG_HI) or det(12,FG_OS,BG_OS)
ToString - det(13) (Doors CE 9.0+ only)
ExecHex - det(14) (Doors CE 9.0+ only)
TextRect - det(15) (Doors CE 9.0+ only)\

xLIBC/xLIBCE Libraries #

xLIBC/xLIBCE is written by Patrick Prendergast, aka tr1p1ea. It is based on the concepts used to create xLIB for the TI-83 Plus/TI-84 Plus, included in Doors CS 7.2 for the monochrome calculators. xLIBC uses the TI-84 Plus C Silver Edition and TI-84 Plus CE in half-resolution (160x120-pixel) mode, allowing one half of the LCD buffer to be modified off-screen while the other half is displayed. tr1p1ea has written an xLIBC_Tutorial with an example program. PT_ and Unicorn are working on XLIBC_For_Beginners to help TI-BASIC programmers learn to use xLIBC.

xLIBCSetup - real(0,FN,Value)
UserVariables - real(1,FN,Uservar_Num[,Value])
GetKey - real(2,FN[,Args])
DrawMap - real(3,FN[,Args])
DrawSprite - real(4,FN[,Args])
ManagePic - real(5,FN[,Args])
DrawString - real(6,FN[,Args])
DrawShape - real(7,FN[,Args])
xLIBCUtility - real(8,FN,Val)
UpdateLCD - real(9)\