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:
PROGRAM:BASICOS
:"BasicOS
ClrHome
FnOff
PlotsOff
AxesOff
ZStandard
ZInteger
Normal:Float
Degree:Func
Sequential
Real:Full
1→Xmin
100→Xmax
If det([[1:Then
Disp "Library Error.","Install Celtic 3","to continue
Pause
ClrHome
Return
End
real(7,0
If 2000>det(4:Then
Disp "Memory Error.","There is not","enough RAM","memory.
Pause
ClrHome
Return
End
"INPUT→Str2
det(0,7,Str2
If Ans=".P:NT:FN":Then
Disp "Program Missing.","prgmINPUT is","missing from","RAM.
Pause
ClrHome
Return
End
real(13,1
Text(0,0," GRAPHICS TEST
real(13,0
If not(pxl-Test(6,0:Then
ClrDraw
ClrHome
real(7,0
Disp "Graphics Error.
"Re-Enable CLASSIC Mode and Re-Run the Program.
If 2>real(11
"Re-Install the Celtic 3 Application.
Output(2,1,Ans
Pause
ClrHome
Return
End
det(0,7,Str2
sub(Ans,1,1
If Ans="A
det(0,Str2
DelVar Str2
Lbl M
ClrDraw
real(7,0
real(13,1
Text(1,0,0," BasicOS
real(13,0
Text(8,4,"FILE MANAGER
Text(14,4,"ABOUT CALC
Text(20,4,"TURN OFF
Text(26,4,"----- ------
Text(32,4,"REPLACE WITH RETURN
Text(38,4,"FILE TRANSFER
Text(44,4,"QUIT
8→O:real(7,0
Repeat max(K={21,105
Text(O,0,"▶
Repeat K
getKey→K
End
Text(O,0,"
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 "Basic
real(13,0
Output(1,6,"OS
Disp "Bio_Hazard1282","Ver 8.5","TI-83+/84+/SE
DelVar Str1DelVar Str2DelVar Str3DelVar Str4Return
Lbl BC
ClrDraw
real(7,0
Text(1,24,0,"This option is
Text(1,32,0,"available yet.
Pause
Goto M
Lbl FT
For(I,1,2
ClrDraw
Text(1,24,0,"Input name for
"Source
If I=2
"Back-Up
Text(1,32,0,Ans+" 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,"Both files
Text(1,32,0,"cannot have the
Text(1,40,0,"same name.
Pause
End
If Str2=Str3
Goto M
sub(det(0,7,Str2),1,1
If Ans="A
det(0,Str2
sub(det(0,7,Str3),1,1
If Ans="A
det(0,Str3
ClrDraw
real(7,0
real(13,1
Text(1,0,0," File Transfer
real(13,0
Text(8,4,"COPY SOURCE
Text(14,4,"RESTORE BACK-UP
Text(20,4,"SWAP BOTH
Text(26,4,"BACK
Text(50,0,"SOURCE: "+Str2
Text(56,0,"BACK-UP: "+Str3
8→O
Lbl M0
real(7,0
Repeat max(K={21,105
Text(O,0,"▶
Repeat K
getKey→K
End
Text(O,0,"
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,"ARCHIVING SOURCE
det(0,Str2
Text(38,0,"ARCHIVING BACK-UP
det(0,Str3
End
If O=26
Goto M
Lbl SB
Text(44,0,"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," About Calc
real(13,0
Text(8,0,"TI-"+sub("83+ 83+SE84+ 84+SE",5(1+real(11))-4,5
det(4,2
Text(14,0,"SERIAL: ",sub(Ans,1,5)+"-"+sub(Ans,6,5
det(4,3
Text(20,0,"OS "+sub(Ans,1,1)+"."+sub(Ans,3,2
Text(26,0,"RAM: ",det(4
Text(32,0,"ROM: ",det(4,1
1+det(20,"EF6F4C3D280A78FE1E3805EF21521808EFB3503E042001AFEF8C47EFBF4A
sub("DEADPOOROK GOODFULL",4Ans-3,4
Text(38,0,"BATTERY: "+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," Turning Off
real(13,0
rand(100
real(5→C
For(I,C,0,1
real(5,0,I
rand
End
det(20,"3E01D303FB76FDCB09A6
real(13,1
Text(1,28,0," 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="A
det(0,Str1
ClrDraw
real(13,1
Text(1,0,0," Scanning
real(7,0
real(13,0
Text(8,0,"FINDING AND REPLACING ANY
Text(14,0,"Stop COMMANDS WITH Return
Text(28,0,"FILE: "+Str1
Text(34,0,"REPLACED: 0
DelVar Adet(5,Str1→R
Text(40,0,"LINES: ",R
For(I,1,R
det(5,I,Str1
If Ans="Stop
Then
det(8,Str1,"Return",I
A+1→A
Text(34,0,"REPLACED: ",A
End
Line(0,Ymin,int(100I/R),Ymin
End
If Str2="A":Then
Text(55,0,"ARCHIVING
det(0,Str1
End
real(7,0
Line(0,Ymin,Xmax,Ymin,0
Text(55,0,"ACTION COMPLETE
Pause
Goto M
Lbl FM
prgmINPUT
If Str1="BASICOS" or Str1="INPUT":Goto M
8→O
Lbl 0
ClrDraw
real(7,0
Lbl 00
real(7,0
real(13,1
Text(1,0,0," File Manager
real(13,0
sub(det(0,7,Str1),1,3→Str2
"rowSwap("=sub(Str1,1,1→A
If not(Ans
Text(8,4,"EXECUTE
"ARCHIVE
If "A"=sub(Str2,1,1:"UNARCHIVE
Text(14,4,Ans
"HIDE
If "H"=sub(Str2,2,1:"UNHIDE
Text(20,4,Ans
If not(A:Then
"LOCK
If "L"=sub(Str2,3,1:"UNLOCK
Text(26,4,Ans
End
Text(32,4,"DELETE
Text(38,4,"DOWNLOAD
If not(A
Text(44,4,"TO APPVAR
Text(50,4,"BACK
Line(0,31,33,31
Text(8,47,sub(det(0,7,Str1),4,5)+"b
Text(14,47,det(1,det(5,Str1))+" LINES
Text(26,47,"RAM: ",det(4
Line(0,31,66,31
Text(32,47,"ROM: ",det(4,1
Str1
If sub(Str1,1,1)="rowSwap(
"a"+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,"▶
Repeat K
getKey→K
End
Text(O,0,"
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," Program Type
real(13,0
Text(28,4,"BASIC
Text(34,4,"ASSEMBLY
28→O
Repeat max(K={21,105
Text(O,0,"▶
Repeat K
getKey→K
End
Text(O,0,"
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>det(4
Goto 0
B→O
StoreGDB 7
det(0,4,"XTEMP001
Str1
real(10,0,1
If O=28
prgmXTEMP001
If O=34
Asm(prgmXTEMP001
8→O
ClrDraw
real(7,0
det(0,4,"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
"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>det(4:Then
det(0,4,Str2
R→I
real(13,1
Text(54,80," !
real(13,0
End
Line(0,Ymin,int(100I/R),Ymin
End
Line(0,Ymin,100,Ymin,0
Text(1,54,89,"_
Text(1,52,89,"⬇ //Little bold arrow
Goto 00
Lbl 5
det(0,2,Str1
Goto MIt'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):
ClrDraw
real(13,1
Text(1,0,0," File Name
real(7,0
real(13,0
Text(8,0,"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
" →Str1
1→M
Lbl 0
real(13,1
Text(1,91,sub("Aa1",M,1
real(13,0
Repeat max(K={21,105,31,23,45
Text(28,1,Str1+"|
Repeat K
getKey→K
End
If M<3(K>40 and K<95 and K≠44 and 9>length(Str1:Then
"ABC DEFGHIJKLMNOPQRSTUVWXYZθ
If M=2
"abc defghijklmnopqrstuvwxyzθ
Str1+sub(Ans,K-5int(.1K)-20,1→Str1
End
If M=3(9>length(Str1) and max(K={72,73,74,82,83,84,92,93,94,102
Str1+sub("0123456789",27-3int(.1K)+10fPart(.1K)+2(K=102),1→Str1
End
If K=31:Then
M+1
If Ans>3:1
Ans→M
End
If K=23(1<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
" →Str1
End
If 1=length(Str1) or max(K={23,45,31:Goto 0
real(13,1
Text(28,1,Str1+"
real(13,0
sub(Str1,2,length(Str1)-1→Str1
Text(36,0,"SELECT FILE TYPE
Text(42,4,"PROGRAM
Text(48,4,"APP VARIABLE
42→O
Repeat max(K={21,105
Text(O,0,"▶
Repeat K
getKey→K
End
Text(O,0,"
max(42,min(48,O+6(K=34)-6(K=25→O
End
If O=48:"rowSwap("+Str1→Str1
det(0,7,Str1
If Ans=".P:NT:FN":Then
If "rowSwap("=sub(Str1,1,1
sub(Str1,2,length(Str1)-1→Str1
" "+Str1→Str1
Text(28,90,"×
".P:NT:FN
End
If Ans=".P:NT:FN":Goto 0
Text(28,90,"
ClrDraw
ClrHome
real(7,0
ReturnThere are some empty pockets in the main program. You can add some features of your own. There is no Input commands in either program, so I took GatoradeDC's advice and made a text-input instead.
I'll add this to the archives, once we try to sniff out all the remaining bugs, and features.
Here is some other information about the programs:
BasicOS
Size: 4,422
Lines: 417
Input
Size: 942
Lines: 80
Let me know if you have any suggestions.
Hewwo, my name is Achak Claw. I was formerly BioHazard.