This thread will be used to keep track of how far the IDE has progressed in creation.
9/9/2017: IDE foundation is created using CodeMirror
Quick Links
This thread will be used to keep track of how far the IDE has progressed in creation.
9/9/2017: IDE foundation is created using CodeMirror
What is your current projected date that the IDE will be completed?
I'm aiming for a completion date of 9/30/17. By then, I should have learned how to write a parser and have it implemented in the IDE.
EDIT: Ok, for some reason, CodeMirror doesn't like Chrome. Firefox seems to work, so if you have problems, use that.
Yah It works on Chrome for me too.
EDIT: It's up and running on enternet explorer. Nice job squid!
I'm moving up the completion date because I'm still trying to figure out how to nest the command rules. Most of it is done, it just needs to be sorted properly.
Estimated Completion Date: 10/7/17
Any more delay will be due to schoolwork, but that shouldn't be too much of an issue. Stay tuned for more!
If anybody could find some documentation on codemirror modes, I would appreciate it.
I've turned to CodeMirror's simple mode, rather than a full-fledged mode, which allows for easy syntax highlighting. A few more regular expressions have to be added, then the IDE will be pretty much done! The final step will be to write the tokenizer, which will be a bit difficult, since tokenization for the 68k processor is a bit different than TI Basic.
Syntax highlighting has been uploaded to the IDE, but it's taking some time to show up in CodeMirror. If it doesn't work (or does work), tell me what you think!
:)
Wow nice job squid! It works on my computer, I knew you could do it!
In case the IDE doesn't work for you yet, here is the ZIP file containing the IDE.
By the way, what is this "Labs" section I'm seeing on the top bar?
EDIT: Also, how am I supposed to determine that the IDE works? I can type things in there, but that's about it.
Labs will be where I put snippets of code or projects that we're working on, basically development. Feel free to add any computer related project you're working on!
The IDE should be highlighting keywords, operations, etc. Try typing in "While" and tell me if it works (that way I can troubleshoot if necessary).
:)
I typed in "While" and nothing happened.
I typed in While as well, but nothing happened? Yesterday it worked like a charm?
EDIT: So we can add any programs in the labs section, does it have to be site related or for example a homework project?
The IDE is being buggy at the moment…I'm thinking of moving all the files to the IDE rather than creating category pages that correspond to the filetype (the CSS and Javascript pages).
For Labs, you could do a cool project or a really cool feature. Technology related stuff is recommended, but if you have other stuff, share it!
Are you having any luck de-bugging the IDE?
I think it might work; Wikidot is really slow about updating pages, (especially HTML pages, it seems), so I can't see my edits immediately. Or maybe it's just my computer.
Have you downloaded the zip file of the IDE to see if the syntax highlighting works?
My VPN and proxy are down, so I can't get the Zip file due to it being a part of dropbox(*sarcastic voice* thank you China!) Is there another File or link you can send?
I've linked it under the Staff Dashboard :)
Nice job on the code, your the man squid!
10/5/17: Basic Syntax Highlighting is now functional
Syntax Highlighting now works! Go try it out :)
Now to learn how estack.h works. I've heard this will help me figure out how to tokenize a program, but this is a journey rarely traveled on before.
Wish me luck!
Good luck! :P
EDIT: Syntax highlighting now shows up on my computer now, also.
Dude the IDE works! Nice job, you are a true master programmer. Teach me your ways sensei, and I will learn:)
I'm in no way a master programmer, I had to learn all of this :P
Why is there a black left arrow in the sidebar?
I'm testing out an expandable block, that will probably be a starting point for the Labs sections (or something like that).
Turns out that 68k Basic code is quite readable by the computer, which is pretty sweet! Here's some code that I opened in notepad (the game is not mine).
**TI92P* main bo R bomberma ð ¥Z –()
Prgm
setFold(bomberma)
Local a,b,c,c01,c02,c03,d,d01,d02,d03,e,e1,e2,f,f1,f2,m1,m2,m3,n1,o,on1,on2,on3,on4,r,x,ˆ,ˆ2
RplcPic b1
For ˆ,1,225
getKey()ˆ2:If ˆ20:Goto st
EndFor
ClrDraw
PxlText "Presents",30,55
For ˆ,1,225
getKey()ˆ2:If ˆ20:Goto st
EndFor
For ˆ,30,36
getKey()ˆ2:If ˆ20:Goto st
PxlHorz ˆ
EndFor
For ˆ,30,36
getKey()ˆ2:If ˆ20:Goto st
PxlHorz ˆ,1
EndFor
Lbl st
RplcPic b2
Toolbar
Title " Play ",p
Title " Options ",o
Title " About ",about
Title " Exit ",e
EndTBar
Lbl p
RplcPic b3
For ˆ,0,o11-1
Lbl bl
rand(7)a
a-1a:a*8a:a+3a
rand(23)b
b*6b:b+4b
If pxlTest(a+3,b+3)=true or a=3 and b=10 or a=3 and b=16 or a=11 and b=10:Goto bl
RclPic b4,a,b
EndFor
Lbl rup
rand(5)e1
e1-1e1:e1*8e1:e1+3e1
rand(11)f1
f1*6f1:f1+4f1
If pxlTest(e1+3,f1+3)=true:Goto rup
RclPic b6,e1,f1
Lbl rdo
rand(5)e2
e2-1e2:e2*8e2:e2+3e2
rand(11)f2
f2*6f2:f2+4f2
If pxlTest(e2+3,f2+3)=true:Goto rdo
RclPic b7,e2,f2
Lbl m1
rand(7)c01:c01-1c01:c01*8c01:c01+3c01
rand(23)d01:d01*6d01:d01+4d01
If pxlTest(c01+3,d01+3)=true or c01=3 and d01=10 or c01=3 and d01=16 or c01=11 and d01=10:Goto m1
Lbl m2
rand(7)c02:c02-1c02:c02*8c02:c02+3c02
rand(23)d02:d02*6d02:d02+4d02
If pxlTest(c02+3,d02+3)=true or c02=3 and d02=10 or c02=3 and d02=16 or c02=11 and d02=10:Goto m2
Lbl m3
rand(7)c03:c03-1c03:c03*8c03:c03+3c03
rand(23)d03:d03*6d03:d03+4d03
If pxlTest(c03+3,d03+3)=true or c03=3 and d03=10 or c03=3 and d03=16 or c03=11 and d03=10:Goto m3
3a:10b:0c:0d
0e:9f
o12n1:1r
1m1:1m2:1m3:3x
RclPic b3
PxlText "#X: : : # :",68,10
RclPic b5,68,46:RclPic b5,68,76:RclPic b5,68,106
Lbl main
PxlText string(x),68,28
PxlText " ",68,118
PxlText string(n1),68,118
Loop
RclPic b6,e1,f1
RclPic b7,e2,f2
If a=e1 and b=f1:r+1r
If a=e2 and b=f2:r-1r
If r>5:5r:If r<1:1r
PxlText string(r),68,58
getKey()ˆ
If e=1 and ˆ=kbo or fœ0
Goto bo
If e=0 and ˆ=kbo Then
1e:ac:bd:n1-1n1
EndIf
If e=1 Then:f-1f
RclPic b5,c,d:EndIf
PxlText string(f),68,88
If ˆ0:PxlText " ",a,b
If ˆ=kup and pxlTest(a-2,b+3)=false:a-8a
If ˆ=kdo and pxlTest(a+8,b+3)=false:a+8a
If ˆ=kle and pxlTest(a+3,b-1)=false:b-6b
If ˆ=kri and pxlTest(a+3,b+7)=false:b+6b
RclPic b8,a,b
If m1=1 Then
rand(4)ˆ2
PxlText " ",c01,d01
If ˆ2=1 and pxlTest(c01-2,d01+3)=false:c01-8c01
If ˆ2=2 and pxlTest(c01+8,d01+3)=false:c01+8c01
If ˆ2=3 and pxlTest(c01+3,d01-1)=false:d01-6d01
If ˆ2=4 and pxlTest(c01+3,d01+7)=false:d01+6d01
PxlText "X",c01,d01
If a=c01 and b=d01:Goto w2:EndIf
If m2=1 Then
rand(4)ˆ2
PxlText " ",c02,d02
If ˆ2=1 and pxlTest(c02-2,d02+3)=false:c02-8c02
If ˆ2=2 and pxlTest(c02+8,d02+3)=false:c02+8c02
If ˆ2=3 and pxlTest(c02+3,d02-1)=false:d02-6d02
If ˆ2=4 and pxlTest(c02+3,d02+7)=false:d02+6d02
PxlText "X",c02,d02
If a=c02 and b=d02:Goto w2:EndIf
If m3=1 Then
rand(4)ˆ2
PxlText " ",c03,d03
If ˆ2=1 and pxlTest(c03-2,d03+3)=false:c03-8c03
If ˆ2=2 and pxlTest(c03+8,d03+3)=false:c03+8c03
If ˆ2=3 and pxlTest(c03+3,d03-1)=false:d03-6d03
If ˆ2=4 and pxlTest(c03+3,d03+7)=false:d03+6d03
PxlText "X",c03,d03
If a=c03 and b=d03:Goto w2:EndIf
EndLoop
Lbl bo
0on1:0on2:0on3:0on4
PxlText " ",c,d
If pxlTest(c-3,d+3)=false Then:PxlText " ",c-8,d
Else:1on1:EndIf
If pxlTest(c+9,d+3)=false Then:PxlText " ",c+8,d
Else:1on2:EndIf
If pxlTest(c+3,d-2)=false Then:PxlText " ",c,d-6
Else:1on3:EndIf
If pxlTest(c+3,d+8)=false Then:PxlText " ",c,d+6
Else:1on4:EndIf
If rž2 and c-10ž4 and on1=0 Then
If pxlTest(c-11,d+3)=false Then
PxlText " ",c-16,d
Else:1on1:EndIf:EndIf
If rž2 and c+16œ59 and on2=0 Then
If pxlTest(c+17,d+3)=false Then
PxlText " ",c+16,d
Else:1on2:EndIf:EndIf
If rž2 and d-7ž7 and on3=0 Then
If pxlTest(c+3,d-8)=false Then
PxlText " ",c,d-12
Else:1on3:EndIf:EndIf
If rž2 and d+13œ148 and on4=0 Then
If pxlTest(c+3,d+14)=false Then
PxlText " ",c,d+12
Else:1on4:EndIf:EndIf
If rž3 and c-18ž4 and on1=0 Then
If pxlTest(c-19,d+3)=false Then
PxlText " ",c-24,d
Else:1on1:EndIf:EndIf
If rž3 and c+24œ59 and on2=0 Then
If pxlTest(c+25,d+3)=false Then
PxlText " ",c+24,d
Else:1on2:EndIf:EndIf
If rž3 and d-13ž7 and on3=0 Then
If pxlTest(c+3,d-14)=false Then
PxlText " ",c,d-18
Else:1on3:EndIf:EndIf
If rž3 and d+19œ148 and on4=0 Then
If pxlTest(c+3,d+20)=false Then
PxlText " ",c,d+18
Else:1on4:EndIf:EndIf
If rž4 and c-24ž4 and on1=0 Then
If pxlTest(c-25,d+3)=false Then
PxlText " ",c-32,d
Else:1on1:EndIf:EndIf
If rž4 and c+32œ59 and on2=0 Then
If pxlTest(c+33,d+3)=false Then
PxlText " ",c+32,d
Else:1on2:EndIf:EndIf
If rž4 and d-19ž7 and on3=0 Then
If pxlTest(c+3,d-20)=false Then
PxlText " ",c,d-24
Else:1on3:EndIf:EndIf
If rž4 and d+25œ148 and on4=0 Then
If pxlTest(c+3,d+26)=false Then
PxlText " ",c,d+24
Else:1on4:EndIf:EndIf
If r=5 and c-34ž4 and on1=0 Then
If pxlTest(c-35,d+3)=false Then
PxlText " ",c-40,d
Else:1on1:EndIf:EndIf
If r=5 and c+40œ59 and on2=0 Then
If pxlTest(c+41,d+3)=false Then
PxlText " ",c+40,d
Else:1on2:EndIf:EndIf
If r=5 and d-25ž7 and on3=0 Then
If pxlTest(c+3,d-26)=false Then
PxlText " ",c,d-30
Else:1on3:EndIf:EndIf
If r=5 and d+31œ148 and on4=0 Then
If pxlTest(c+3,d+32)=false Then
PxlText " ",c,d+30
Else:1on4:EndIf:EndIf
If pxlTest(a+3,b+3)=false:Goto w2
If pxlTest(c01+3,d01+3)=false and m1=1 Then:0m1:x-1x:EndIf
If pxlTest(c02+3,d02+3)=false and m2=1 Then:0m2:x-1x:EndIf
If pxlTest(c03+3,d03+3)=false and m3=1 Then:0m3:x-1x:EndIf
If m1=0 and m2=0 and m3=0:Goto w1
If n1=0:Goto w2
0e:9f
RclPic b3
Goto main
Lbl w1
Pause
Dialog
Title "BomberMaster!"
Text "You Win!"
EndDlog
Goto st
Lbl w2
Pause
Dialog
Title "BomberMaster!"
Text "You Lose!"
EndDlog
Goto st
Lbl o
0o
PopUp {"General Options","Select Keys"},o
If o=0:Goto st
If o=1:Goto op1
If o=2:Goto op2
Lbl op1
Unarchiv o11,o12
If o11=10:1o11
If o11=20:2o11
If o11=30:3o11
If o11=40:4o11
If o11=50:5o11
If o11=60:6o11
If o11=70:7o11
If o11=80:8o11
If o11=90:9o11
If o12=5:1o12
If o12=10:2o12
If o12=15:3o12
If o12=20:4o12
Dialog
Title "General Options:"
DropDown "# Blocks",{"10","20","30","40","50","60","70","80","90"},o11
DropDown "# Bombs",{"5","10","15","20"},o12
EndDlog
If o11=1:10o11
If o11=2:20o11
If o11=3:30o11
If o11=4:40o11
If o11=5:50o11
If o11=6:60o11
If o11=7:70o11
If o11=8:80o11
If o11=9:90o11
If o12=1:5o12
If o12=2:10o12
If o12=3:15o12
If o12=4:20o12
Archive o11,o12
Goto st
Lbl op2
ClrDraw
Unarchiv kup,kdo,kle,kri,kbo
PxlText "",8,6
Loop
getKey()ˆ:If ˆ0:Exit
EndLoop
ˆkup
PxlText "",8,6
Loop
getKey()ˆ:If ˆ0:Exit
EndLoop
ˆkdo
PxlText "",8,6
Loop
getKey()ˆ:If ˆ0:Exit
EndLoop
ˆkle
PxlText "",8,6
Loop
getKey()ˆ:If ˆ0:Exit
EndLoop
ˆkri
RplcPic b5,8,6
Loop
getKey()ˆ:If ˆ0:Exit
EndLoop
ˆkbo
Archive kup,kdo,kle,kri,kbo
Goto st
Lbl about
Dialog
Title "BomberMaster!"
Text "Joshua Entertainent"
Text "By Joshua Masato Chernin"
EndDlog
Goto st
Lbl e
ClrDraw:DispHome
setFold(main)
EndPrgm äå ÜS§
The few characters that don't make sense need to be (de)tokenized properly, but the rest as you can see, is quite readable, which is super amazing! Creds to this guy
Wow, I never new and even thought that a 68K Basic code can be readable on a computer! I guess we learn something every day. furthermore, I can see the codes that need to be (de)tokenized; but overall this is a great & fun game:)
"Readable by the computer…" Does that mean that a computer can "emulate" a 68k calculator, or does that mean the IDE can read the code? (I already checked, the IDE does highlight most of the code).
By this, I mean that it either understands a portion of 68k Basic, or it literally tokenizes the text so I don't have to ("Text" is taken as the text command). Probably the second scenario.
10/25/17
I've started to add some saving functionality to the IDE. Since I do not have the money to host a web server to allow users so save programs to a cloud, I'm adding the ability to save to Google Drive using the Google Drive API. This will allow users to save to their drive (which provides 15 GB of storage for free). There will also be the option to export the file to the users computer if saving to the cloud is not wanted.
Great job! Personally, I've always downloaded things to my computer, so I can't imagine that anyone would complain that they can't export (directly) to a cloud other than Google Drive API.
Is this just your own personal website? Because it didn't look like there was much there.
Yeah, that's my personal site. Not much there (yet).
Wow, can't wait to see what your site holds in the future.
P.S your "Battlesquid" signature rocks bro, that's what I call a cool sig!
12/11/17
Saving to a local disk will be implemented later today (txt files). I'm looking to implement a version of Tokens89 for tokenization (89p format basically). I will also be adding other features such as fullscreen editing, code folding, multiple editing states, etc.
Sorry for the delays, school is super important :)
EDIT: Implemented. If anybody wants to tokenize the program, you can grab a copy of Tokens89 to do so. Tokenization is now my final task.
What's with this "Stop the FCC" thing in your avatar?
Net Neutrality awareness. Vote takes place on Thursday.
I hope Net Neutrality Wins, can't have some people slow my computer or even allow me to pay for using the net. Freedom!! xD
For those curious, here's what I'm currently trying to detokenize (68k programs are untokenized when opened in the editor, but are then tokenized when run on the calculator).
A funny thing that I noticed was that the program is actually reversed, as in the jumbled code starts from the bottom of the code, all the way to the top. So the first line you see in the jumbled code is actually the last line of code in the calculator. In addition, the readable text and unreadable commands are reversed in order.
This will be quite the interesting task!
I can tell, but I know you can do it!
Moved code to Github, view the repo here.
Sorry for the late reply, having a honor grade is important for university xD
And nice job squid, spectacular work!