<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>BasicOS Beta</title>
		<link>http://tibasicdev.wikidot.com/forum/t-9460584/basicos-beta</link>
		<description>Posts in the discussion thread &quot;BasicOS Beta&quot;</description>
				<copyright></copyright>
		<lastBuildDate>Sat, 08 Aug 2026 13:04:42 +0000</lastBuildDate>
		
					<item>
				<guid>http://tibasicdev.wikidot.com/forum/t-9460584#post-4091151</guid>
				<title>BasicOS Beta</title>
				<link>http://tibasicdev.wikidot.com/forum/t-9460584/basicos-beta#post-4091151</link>
				<description></description>
				<pubDate>Tue, 18 Dec 2018 19:43:51 +0000</pubDate>
								<wikidot:authorUserId>3338172</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>So, I finally decided, to scrap the original version of BasicOS, and create a new version from scratch. Here is what I came up with so far:</p> <div class="code"> <pre><code>PROGRAM:BASICOS :&quot;BasicOS ClrHome FnOff PlotsOff AxesOff ZStandard ZInteger Normal:Float Degree:Func Sequential Real:Full 1→Xmin 100→Xmax If det([[1:Then Disp &quot;Library Error.&quot;,&quot;Install Celtic 3&quot;,&quot;to continue Pause ClrHome Return End real(7,0 If 2000&gt;det(4:Then Disp &quot;Memory Error.&quot;,&quot;There is not&quot;,&quot;enough RAM&quot;,&quot;memory. Pause ClrHome Return End &quot;INPUT→Str2 det(0,7,Str2 If Ans=&quot;.P:NT:FN&quot;:Then Disp &quot;Program Missing.&quot;,&quot;prgmINPUT is&quot;,&quot;missing from&quot;,&quot;RAM. Pause ClrHome Return End real(13,1 Text(0,0,&quot; GRAPHICS TEST real(13,0 If not(pxl-Test(6,0:Then ClrDraw ClrHome real(7,0 Disp &quot;Graphics Error. &quot;Re-Enable CLASSIC Mode and Re-Run the Program. If 2&gt;real(11 &quot;Re-Install the Celtic 3 Application. Output(2,1,Ans Pause ClrHome Return End det(0,7,Str2 sub(Ans,1,1 If Ans=&quot;A det(0,Str2 DelVar Str2 Lbl M ClrDraw real(7,0 real(13,1 Text(­1,0,0,&quot; BasicOS real(13,0 Text(8,4,&quot;FILE MANAGER Text(14,4,&quot;ABOUT CALC Text(20,4,&quot;TURN OFF Text(26,4,&quot;----- ------ Text(32,4,&quot;REPLACE WITH RETURN Text(38,4,&quot;FILE TRANSFER Text(44,4,&quot;QUIT 8→O:real(7,0 Repeat max(K={21,105 Text(O,0,&quot;▶ Repeat K getKey→K End Text(O,0,&quot; max(8,min(44,O+6(K=34)-6(K=25→O End If O=8:Goto FM If O=14 Goto AC If O=20 Goto TO If O=26 Goto BC If O=32 Goto AR If O=38 Goto FT Lbl Q ClrDraw ClrHome real(7,0 real(13,1 Disp &quot;Basic real(13,0 Output(1,6,&quot;OS Disp &quot;Bio_Hazard1282&quot;,&quot;Ver 8.5&quot;,&quot;TI-83+/84+/SE DelVar Str1DelVar Str2DelVar Str3DelVar Str4Return Lbl BC ClrDraw real(7,0 Text(­1,24,0,&quot;This option is Text(­1,32,0,&quot;available yet. Pause Goto M Lbl FT For(I,1,2 ClrDraw Text(­1,24,0,&quot;Input name for &quot;Source If I=2 &quot;Back-Up Text(­1,32,0,Ans+&quot; File real(7,0 Pause prgmINPUT If I=1:Str1→Str2 If I=2:Str1→Str3 End If Str2=Str3:Then Text(­1,24,0,&quot;Both files Text(­1,32,0,&quot;cannot have the Text(­1,40,0,&quot;same name. Pause End If Str2=Str3 Goto M sub(det(0,7,Str2),1,1 If Ans=&quot;A det(0,Str2 sub(det(0,7,Str3),1,1 If Ans=&quot;A det(0,Str3 ClrDraw real(7,0 real(13,1 Text(­1,0,0,&quot; File Transfer real(13,0 Text(8,4,&quot;COPY SOURCE Text(14,4,&quot;RESTORE BACK-UP Text(20,4,&quot;SWAP BOTH Text(26,4,&quot;BACK Text(50,0,&quot;SOURCE: &quot;+Str2 Text(56,0,&quot;BACK-UP: &quot;+Str3 8→O Lbl M0 real(7,0 Repeat max(K={21,105 Text(O,0,&quot;▶ Repeat K getKey→K End Text(O,0,&quot; max(8,min(26,O+6(K=34)-6(K=25→O End If O=8:Goto CS If O=14 Goto RB If O=20 Goto SB If O=26:Then Text(38,0,&quot;ARCHIVING SOURCE det(0,Str2 Text(38,0,&quot;ARCHIVING BACK-UP det(0,Str3 End If O=26 Goto M Lbl SB Text(44,0,&quot;NOT IMPLEMENTED Goto M0 Lbl CS det(5,Str2→R For(I,4,5 det(0,I,Str3 End For(I,1,R det(5,Str2,I det(6,Str3,Ans,I Line(0,Ymin,int(100I/R),Ymin End Line(0,Ymin,Xmax,Ymin,0 Goto M0 Lbl RB det(5,Str3→R For(I,4,5 det(0,I,Str2 End For(I,1,R det(5,Str3,I det(6,Str2,Ans,I Line(0,Ymin,int(100I/R),Ymin End Line(0,Ymin,Xmax,Ymin,0 Goto M0 Lbl AC ClrDraw real(7,0 real(13,1 Text(­1,0,0,&quot; About Calc real(13,0 Text(8,0,&quot;TI-&quot;+sub(&quot;83+ 83+SE84+ 84+SE&quot;,5(1+real(11))-4,5 det(4,2 Text(14,0,&quot;SERIAL: &quot;,sub(Ans,1,5)+&quot;-&quot;+sub(Ans,6,5 det(4,3 Text(20,0,&quot;OS &quot;+sub(Ans,1,1)+&quot;.&quot;+sub(Ans,3,2 Text(26,0,&quot;RAM: &quot;,det(4 Text(32,0,&quot;ROM: &quot;,det(4,1 1+det(20,&quot;EF6F4C3D280A78FE1E3805EF21521808EFB3503E042001AFEF8C47EFBF4A sub(&quot;DEADPOOROK GOODFULL&quot;,4Ans-3,4 Text(38,0,&quot;BATTERY: &quot;+Ans Pause Goto M Lbl TO ClrDraw real(7,0 real(12,6,0,0,94,62,1 real(13,1 Text(­1,28,0,&quot; Turning Off real(13,0 rand(100 real(5→C For(I,C,0,­1 real(5,0,I rand End det(20,&quot;3E01D303FB76FDCB09A6 real(13,1 Text(­1,28,0,&quot; Turning On real(13,0 For(I,0,C real(5,0,I rand End rand(100 Goto M Lbl AR ClrDraw real(7,0 prgmINPUT sub(det(0,7,Str1),1,1→Str2 If Ans=&quot;A det(0,Str1 ClrDraw real(13,1 Text(­1,0,0,&quot; Scanning real(7,0 real(13,0 Text(8,0,&quot;FINDING AND REPLACING ANY Text(14,0,&quot;Stop COMMANDS WITH Return Text(28,0,&quot;FILE: &quot;+Str1 Text(34,0,&quot;REPLACED: 0 DelVar Adet(5,Str1→R Text(40,0,&quot;LINES: &quot;,R For(I,1,R det(5,I,Str1 If Ans=&quot;Stop Then det(8,Str1,&quot;Return&quot;,I A+1→A Text(34,0,&quot;REPLACED: &quot;,A End Line(0,Ymin,int(100I/R),Ymin End If Str2=&quot;A&quot;:Then Text(55,0,&quot;ARCHIVING det(0,Str1 End real(7,0 Line(0,Ymin,Xmax,Ymin,0 Text(55,0,&quot;ACTION COMPLETE Pause Goto M Lbl FM prgmINPUT If Str1=&quot;BASICOS&quot; or Str1=&quot;INPUT&quot;:Goto M 8→O Lbl 0 ClrDraw real(7,0 Lbl 00 real(7,0 real(13,1 Text(­1,0,0,&quot; File Manager real(13,0 sub(det(0,7,Str1),1,3→Str2 &quot;rowSwap(&quot;=sub(Str1,1,1→A If not(Ans Text(8,4,&quot;EXECUTE &quot;ARCHIVE If &quot;A&quot;=sub(Str2,1,1:&quot;UNARCHIVE Text(14,4,Ans &quot;HIDE If &quot;H&quot;=sub(Str2,2,1:&quot;UNHIDE Text(20,4,Ans If not(A:Then &quot;LOCK If &quot;L&quot;=sub(Str2,3,1:&quot;UNLOCK Text(26,4,Ans End Text(32,4,&quot;DELETE Text(38,4,&quot;DOWNLOAD If not(A Text(44,4,&quot;TO APPVAR Text(50,4,&quot;BACK Line(0,­31,33,­31 Text(8,47,sub(det(0,7,Str1),4,5)+&quot;b Text(14,47,det(1,det(5,Str1))+&quot; LINES Text(26,47,&quot;RAM: &quot;,det(4 Line(0,­31,66,­31 Text(32,47,&quot;ROM: &quot;,det(4,1 Str1 If sub(Str1,1,1)=&quot;rowSwap( &quot;a&quot;+sub(Str1,2,length(Str1)-1 Text(44,47,Ans Line(0,­31,100,­31 rand(5 Line(0,­31,100,­31,0 real(7,0 Repeat max(K={21,105 Text(O,0,&quot;▶ Repeat K getKey→K End Text(O,0,&quot; max(8,min(50,O+6(K=34)-6(K=25→O End If A and max(O={8,26,44:Goto 0 If O=8:Goto 1 If max(O={14,20,26:Goto 2 If O=32:Goto 3 If O=38:Goto 4 If O=44:Goto 5 Goto M Lbl 1 For(I,0,13 Line(Xmin,I,Xmax,I,0 Line(Xmin,­I,Xmax,­I,0 End Horizontal 13 Horizontal ­13 real(13,1 Text(­1,20,0,&quot; Program Type real(13,0 Text(28,4,&quot;BASIC Text(34,4,&quot;ASSEMBLY 28→O Repeat max(K={21,105 Text(O,0,&quot;▶ Repeat K getKey→K End Text(O,0,&quot; max(28,min(34,O+6(K=34)-6(K=25→O End O→B 8→O 2(10+expr(sub(det(0,7,Str1),4,5 If Ans&gt;det(4 Goto 0 B→O StoreGDB 7 det(0,4,&quot;XTEMP001 Str1 real(10,0,1 If O=28 prgmXTEMP001 If O=34 Asm(prgmXTEMP001 8→O ClrDraw real(7,0 det(0,4,&quot;XTEMP001 RecallGDB 7 DelVar GDB7DelVar Pic7 8→O Goto 0 Lbl 2 Line(0,Ymin,50,Ymin If O=14 det(0,Str1 If O=20 det(0,3,Str1 If O=26 det(0,1,Str1 Line(0,Ymin,100,Ymin rand(5 Line(0,Ymin,100,Ymin,0 Goto 00 Lbl 3 det(0,4,Str1 Goto M Lbl 4 &quot;DOWNLOAD→Str2 For(I,4,5 det(0,I,Str2 End det(5,Str1→R For(I,1,R det(5,Str1,I det(6,Str2,Ans,I If 2000&gt;det(4:Then det(0,4,Str2 R→I real(13,1 Text(54,80,&quot; ! real(13,0 End Line(0,Ymin,int(100I/R),Ymin End Line(0,Ymin,100,Ymin,0 Text(­1,54,89,&quot;_ Text(­1,52,89,&quot;⬇ //Little bold arrow Goto 00 Lbl 5 det(0,2,Str1 Goto M</code></pre></div> <br /> It's not perfect, but this is a test version. This program size is a lot shorter compared to the other version in the archives. Here is an input program that is critical to have for the main program. This program is compatible from shells, but not from MirageOS. It will not work properly. (This is a sub-program, do not run it by itself): <div class="code"> <pre><code>ClrDraw real(13,1 Text(­1,0,0,&quot; File Name real(7,0 real(13,0 Text(8,0,&quot;TYPE A EXISTING FILE NAME Horizontal 4 Horizontal ­4 Line(Xmin,­4,Xmin,4 Line(Xmax,­4,Xmax,4 Pt-Off(Xmin,­4 Pt-Off(Xmin,4 Pt-Off(Xmax,­4 Pt-Off(Xmax,4 &quot; →Str1 1→M Lbl 0 real(13,1 Text(1,91,sub(&quot;Aa1&quot;,M,1 real(13,0 Repeat max(K={21,105,31,23,45 Text(28,1,Str1+&quot;| Repeat K getKey→K End If M&lt;3(K&gt;40 and K&lt;95 and K≠44 and 9&gt;length(Str1:Then &quot;ABC DEFGHIJKLMNOPQRSTUVWXYZθ If M=2 &quot;abc defghijklmnopqrstuvwxyzθ Str1+sub(Ans,K-5int(.1K)-20,1→Str1 End If M=3(9&gt;length(Str1) and max(K={72,73,74,82,83,84,92,93,94,102 Str1+sub(&quot;0123456789&quot;,27-3int(.1K)+10fPart(.1K)+2(K=102),1→Str1 End If K=31:Then M+1 If Ans&gt;3:1 Ans→M End If K=23(1&lt;length(Str1 sub(Str1,1,length(Str1)-1→Str1 If K=45:Then For(I,2,0,­1 Line(2,I,99,I,0 Line(2,­I,99,­I,0 End &quot; →Str1 End If 1=length(Str1) or max(K={23,45,31:Goto 0 real(13,1 Text(28,1,Str1+&quot; real(13,0 sub(Str1,2,length(Str1)-1→Str1 Text(36,0,&quot;SELECT FILE TYPE Text(42,4,&quot;PROGRAM Text(48,4,&quot;APP VARIABLE 42→O Repeat max(K={21,105 Text(O,0,&quot;▶ Repeat K getKey→K End Text(O,0,&quot; max(42,min(48,O+6(K=34)-6(K=25→O End If O=48:&quot;rowSwap(&quot;+Str1→Str1 det(0,7,Str1 If Ans=&quot;.P:NT:FN&quot;:Then If &quot;rowSwap(&quot;=sub(Str1,1,1 sub(Str1,2,length(Str1)-1→Str1 &quot; &quot;+Str1→Str1 Text(28,90,&quot;× &quot;.P:NT:FN End If Ans=&quot;.P:NT:FN&quot;:Goto 0 Text(28,90,&quot; ClrDraw ClrHome real(7,0 Return</code></pre></div> <p>There are some empty pockets in the main program. You can add some features of your own. There is no <a href="http://tibasicdev.wikidot.com/input">Input</a> commands in either program, so I took <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/gatoradedc" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=3688735&amp;amp;size=small&amp;amp;timestamp=1696960333" alt="GatoradeDC" style="background-image:url(http://www.wikidot.com/userkarma.php?u=3688735)" /></a><a href="http://www.wikidot.com/user:info/gatoradedc" >GatoradeDC</a></span>'s advice and made a text-input instead.</p> <hr /> <p>I'll add this to the archives, once we try to sniff out all the remaining bugs, and features.<br /> Here is some other information about the programs:</p> <h6><span>BasicOS</span></h6> <p>Size: 4,422<br /> Lines: 417</p> <h6><span>Input</span></h6> <p>Size: 942<br /> Lines: 80</p> <hr /> <p>Let me know if you have any suggestions.</p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>