Since its beginning, TI-Planet has promoted programming, especially on TI calculators, through many news, program features and reviews, tutorials, contests etc.
We are now proud to launch, in beta, a new online platform (online so as to be more easily accessible), to push even further this programming promotional effort. This online tool is called the "Project Builder" (PB).
(https://i.imgur.com/R6dj0kO.png) (https://i.imgur.com/L6ZSBrV.png)
What's the "Project Builder"?Simply put, it's a "subsite" of TI-Planet, that offers a simplified interface through a set of tools ("modules"), such as an IDE, for creating, by oneself or with other people, content like programs, for calculators.
The modular architecture of the PB allows for multiple types of projects themselves possibly containing several elements. For now, the PB is still very young, and the only "ready" project type / module is the C compiler for the CE calculators (TI-84 Plus CE and TI-83 Premium CE), on which we will give more details in the next section.
In fact, we had already told you a bit about the PB and its C Compiler some time ago (https://tiplanet.org/forum/viewtopic.php?f=10&t=17279) (September 2015!) in another topic, so it might not be much of a surprise ;)
Moreover, in the future, we can imagine other modules like:
- TI-Basic z80/eZ80 (82/83/84 series)
- TI-Nspire Lua
- images/sprites
- ...
Let's go back in a little more detail on the reference above, creating things "with other people". Indeed, the PB has
social / multi-user features:
- Possibility of sharing one's projects with other people
- Such sharing can be in read-only or read/write access
- Possibility of cloning/forking a project
- Real-time multiuser editing/collaboration
- Integrated chat
(https://i.imgur.com/59PwEbAt.png) (https://i.imgur.com/59PwEbA.png) (https://i.imgur.com/kTZxFTkt.png) (https://i.imgur.com/kTZxFTk.png)
We hope that these efforts will help popularize programming among high school and university students, providing a simple yet comprehensive platform :)
We are also glad to announce that the Project Builder is open-source, and even free as in freedom (GPLv3), to enable the contribution in the spirit of the community - it is designed in such a way that its operation is not locked on a specific site infrastructure. We encourage (and thank in advance) anyone interested in contributing and helping in general, adding things, fixing bugs, etc. A link to the code is available at the bottom of this article.
The C Compiler for the CE calculators - a module of the PBThis isn't new - since the release of the CE calculators series in 2015, their new more powerful hardware (eZ80 CPU, faster than the Z80, more RAM, etc.) allows much more interesting things than on prior models, including indeed "native" C programming, much more attractive than assembly, and often used on PC or other platforms.
The Project Builder thus has a "CE C compiler" module, whose back-end is based on the toolchain work by "MateoConLechuga" (who we thank very much).
Features:Relative to the back-end (compiler)- Compiling C for the CE via a transparent usage of the C89/ANSI ZDS-powered toolchain (using official Zilog tools)
- Integrates enhanced standard include files (headers)
- Automatic linking of libraries that you use in your source code (include in lib/ce/)
- Automatic static code analysis via cppcheck (http://cppcheck.sourceforge.net) (with built-in inline editor display)
Relative to the front-end (user interface)- Syntax coloring
- Half-smart auto-completion
- Multi-file project support
- Console showing the Makefile output (build log, link log, etc.)
- Build status indicator with associated timestamp
- Inline display of compilation warning and errors
- Embedded examples/templates so as to start from an existing base
- Various editor "Goodies"
- Auto-indentation, multiple selections/cursors, Code folding...
- Built-in search&replace (with RegExp possibility)
- Ctrl/Cmd + mouse-over on a variable/function to see its definition, and click to jump to it
- Ctrl/Cmd + mouse-over on a base 10 number to see base 16 representation, and click to make it written in base 16
Specific to CE calculators- Export to .8xp (program) file directly
- Integrates include files (headers) specific to the CE (via Toolchain (https://github.com/CE-Programming/toolchain) and Libraries (https://github.com/CE-Programming/libraries))
- Program name choice
(https://i.imgur.com/qwVpqPst.png) (https://i.imgur.com/qwVpqPs.png) (https://i.imgur.com/8S4XvvAt.png) (https://i.imgur.com/8S4XvvA.png) (https://i.imgur.com/VIDS9MZt.png) (https://i.imgur.com/VIDS9MZ.png) (https://i.imgur.com/oXgRjwdt.png) (https://i.imgur.com/oXgRjwd.png) (https://i.imgur.com/tXKHUpqt.png) (https://i.imgur.com/tXKHUpq.png)
Features planned for the future...:In addition to various improvements on the GUI for a better user experience, the following are on the TODO list:
[spoiler]
- Integration of the CEmu (https://github.com/CE-Programming/CEmu) emulator core in order to try and debug programs in real-time :)
- Deeper sharing options (in addition to read/write currently, possibility to choose specific user access)
- Auto-completion and inline help for CE-specific functions
- Dynamic/Interactive function list in the current file
- Improved integration of CodeMirror features for multi-file projects
- Choice of compiling optimization towards speed (current setting) or size
- Choice for the .8xp to be set by default in RAM or in Archive
- Versioning integration (Git etc.)
- Project Import/Export
- Integrating the LLVM eZ80 toolchain (https://tiplanet.org/forum/viewtopic.php?f=10&t=18038) when it is ready :)
- A dark theme
- Your ideas?
[/spoiler]
Links- Project Builder: https://tiplanet.org/pb (https://tiplanet.org/pb) (beta)
- Source code: on GitHub (https://github.com/TI-Planet/Project-Builder). Note that the repo's content is coming along bit by bit...
_________
Via TI-Planet.org: https://tiplanet.org/forum/viewtopic.php?f=41&t=18118
Glad to see this come to fruition. :) The share tools and multi-user edits are a nice touch as well. I personally won't be using C but I know that some people here might find this handy.
By the way, since it's open-source, does it mean that anyone could put the folders on his web server and it would run almost on the fly?
Quote from: DJ Omnimaga on March 19, 2016, 05:53:26 AMBy the way, since it's open-source, does it mean that anyone could put the folders on his web server and it would run almost on the fly?
Almost, yes - there has to be some server-side setup for the modules requiring advanced back-ends (like the C one...) for things like wine setup if the server is linux-based, etc.
There'll probably be some kind of readme explaining the basics
Cool, thanks. :) Would it pose a risk of slowing down the rest of the server stuff if RAM is limited? (as an example, CW hosting only has 1 GB of RAM and a single-core CPU)
Also will CEmu integration in the future require an online version of CEmu to be made or will the project builder simply ask permission to open CEmu on the computer after specifying the directory the emulator is in (and letting the user change the setting)?
Quote from: DJ Omnimaga on March 19, 2016, 06:03:16 AMCool, thanks. :) Would it pose a risk of slowing down the rest of the server stuff if RAM is limited? (as an example, CW hosting only has 1 GB of RAM and a single-core CPU)
Well, in theory yes, but it shouldn't be too bad either. That said... 1 GB of RAM and a single-core CPU isn't much :(
Quote from: DJ Omnimaga on March 19, 2016, 06:03:16 AMAlso will CEmu integration in the future require an online version of CEmu to be made
Yes, I'm currently looking at an online CEmu version for the PB, but it's still very early, and doesn't even actually work right now under normal conditions. It'll require a bit of time :P
Quote from: DJ Omnimaga on March 19, 2016, 06:03:16 AMwill the project builder simply ask permission to open CEmu on the computer after specifying the directory the emulator is in (and letting the user change the setting)?
This is also an idea I had, but isn't developed yet either.
Somewhat related is TI-Planet's desktop client that could act as a "bridge" between the Project Builder and a connected calculator on your computer, so that you may be able to directly send the programs to it.
My main concern about requiring CEmu to be online to work with project Builder is if the host decides to provide the ROM files on emulator launch or kept a copy of the user ROM on the server rather than doing like jsTIfied and requiring the user to supply his own calculator ROM himself. Because TI might not like that, plus it would be hard for us to link directly to the emulator since ROM links are against CW rules. >.<
Quote from: DJ Omnimaga on March 19, 2016, 06:18:27 AMMy main concern about requiring CEmu to be online to work with project Builder is if the host decides to provide the ROM files on emulator launch rather than doing like jsTIfied and requiring the user to supply his own calculator ROM himself. Because if the online CEmu launched with ROMs hosted on the server then not only linking to it would be against the rules of most forums, but also Texas Instruments would not like that (they already shut down TI-Emulation a few years ago).
Yes, obviously the users will have to provide their own ROM :)
The good thing is that it can be saved locally in the browser's localStorage.
That's good to hear then. :)
So, if I have a CE ROM, I can basically use CEmu anywhere?
It obviously won't be a full-blwon CEmu-desktop alternative, but rather some kind of "just the things" to get it working on online IDEs, for instance.
Also, I have some unexpected work this week so I won't be working on that as soon as I've had hoped :P
Does the keyboard-keypad connection work? I kept trying to use WabbitEmu's keyboard controls for the virtual calculator in CEmu(the build that
@alberthrocks gave me), and when I found that I had to click each key individually, I got kinda irked.
Um, of course it works? Click on the screen if you need to, and change the keyboard bindings to WabbitEmu in the settings if you really want to. The CEmu keybindings are a lot easier and make more sense once you get used to them.
Quote from: MateoConLechuga on March 21, 2016, 06:46:39 PM
The CEmu keybindings are a lot easier and make more sense once you get used to them.
That's unless you used PindurTI and/or WabbitEmu for 11 years straight :P
Quote from: Adriweb on March 21, 2016, 05:02:49 PM
It obviously won't be a full-blwon CEmu-desktop alternative, but rather some kind of "just the things" to get it working on online IDEs, for instance.
Also, I have some unexpected work this week so I won't be working on that as soon as I've had hoped :P
What would be cool is if clicking compile launched your game in CEmu, like TIEmu does :D
QuoteWhat would be cool is if clicking compile launched your game in CEmu, like TIEmu does :D
Indeed, from a user's POV, this kind of functionality is cool, and I've obviously leveraged it myself in the past.
From a maintainer's POV, it's less cool, in that it requires multiple completely different code paths for implementing the same functionality across multiple OS, because there's no portable standard: OLE on Windows, D-Bus on Linux, I don't know what on MacOS X, etc. :)
Yeah I understand, plus having to write different code for each browser so that people aren't forced to use 1 specific browser <_<
There was/is one idea that involves CEmu making a web server on localhost, to/from which the web CEmu can talk to (simple ajax requests). That way, it can send commands etc. to it, effectively making an "easy" bridge between online IDEs and native CEmu.
Quote from: MateoConLechuga on March 21, 2016, 06:46:39 PM
Um, of course it works? Click on the screen if you need to, and change the keyboard bindings to WabbitEmu in the settings if you really want to. The CEmu keybindings are a lot easier and make more sense once you get used to them.
It doesn't work in the build
@alberthrocks gave me. :-/
Did you click on the LCD screen.
Quote from: MateoConLechuga on March 21, 2016, 10:31:34 PM
Did you click on the LCD screen.
Yes. Still nothing. I can't even type numbers using the keyboard.
Quote from: Adriweb on March 21, 2016, 09:37:21 PM
There was/is one idea that involves CEmu making a web server on localhost, to/from which the web CEmu can talk to (simple ajax requests). That way, it can send commands etc. to it, effectively making an "easy" bridge between online IDEs and native CEmu.
Would that require the user to install extra stuff such as Apache for that, or would CEmu do that for him?
Quote from: DJ Omnimaga on March 22, 2016, 05:18:36 AM
Quote from: Adriweb on March 21, 2016, 09:37:21 PM
There was/is one idea that involves CEmu making a web server on localhost, to/from which the web CEmu can talk to (simple ajax requests). That way, it can send commands etc. to it, effectively making an "easy" bridge between online IDEs and native CEmu.
Would that require the user to install extra stuff such as Apache for that, or would CEmu do that for him?
No, CEmu would do things by itself - it doesn't have to be any kind of file-serving complicated thing at all. Simple I/O requests would work, I suppose. I bet there are libs to do this simply enough.
I see. That's good, then. :)
I've added a way to see the generated ASM code, it can be useful sometimes :)
(https://i.imgur.com/HKA78tJ.png) (https://i.imgur.com/T7mD1xL.png)
I'll probably improve it though, so as to integrate it better in the actual editor, which will make sense later for debugging purposes.
Nice idea. Although not many people will use ASM on the CE, this could be handy when debugging or for people who wants to grab some ASM routines. What about the ability to show hexadecimal assembly form? THat could be handy if someone wants to grab some routines for use in BASIC (via the Asm() command)
I thought about it, but it may be much harder, the way it's done :P (ZDS doesn't expose it directly)
Ah, I didn't know that. Shame. I would have thought that most assemblers or ASM IDE's showed the hexadecimal equivalent of english mnemonics.
Oh wait, I might be lying.
There is an .lst keeping option. Let me look it up and I'll edit the post
Edit: yeah, it's possible ( https://i.imgur.com/F15HrQ6.png ) but looks like a pain (to parse etc.) for not a big advantage... MAybe when I have time to spare after finishing the todolist :P
People have been bugging me about a dark theme, so here it is :D (commit (https://github.com/TI-Planet/Project-Builder/commit/99176a5)):
https://gfycat.com/AmazingEarnestHyracotherium
(no GUI toggle yet, nor saving its state)
Nice job. I also like it. At least it's not pitch black like some people do so it's still nice to look at in dark mode. :)
(Update:)
I've done that differently now, taking into account the line numbers, and thus making things much easier and reliable (and much more useful for the future debugging features).
(https://i.imgur.com/PaFfjS9t.png) (https://i.imgur.com/PaFfjS9.png)
Hm interesting, I'm curious about which layout people will find easier to use. Looks nice, by the way.
Looks nice :)
I've been using the project builder for a day or so now, since i got fed up with the SDK (that damn makefile), and i've noticed a few bugs:
- my program's name different than output calculator name (the output calcualtor name is one i set earlier, but now the one displaying in the project builder has reset to (CPRGMCE).
- when building in asm view, the editor switches to c view but the view button stays on asm view.
also an idea i had was to make it possible to close files from the edtiro, and cleate some kind of file index in the project (that side view under "My projects")
It's not done yet, but CEmu integration is coming along nicely...
(https://i.imgur.com/i7qMRnZ.png)
Nice :D. I wonder if this require the user to install CEmu or if it all runs online?
And how do ROM storage work?
It doesn't require anything (except a ROM provided by the user of course), as it's already a JS version of CEmu that's running, decently well.
It wouldn't replace using the real CEmu, as it's obviously better in terms of performance and debugging features, but this IDE-embedded CEmu is a huge aid for a fast-paced development process, because you definitely don't lose time each time you have to download, upload in CEmu manually, launch, etc.
Right now, ROM storage isn't implemented (as I was saying, it's not finished :P) but I'll probably go with a localStorage-based solution (client-side HTML5 stuff), it seems rather easy.
Is it possible to disable CEmu emulator in the project builder? That could be handy for those with slow computers who prefer to use the Project builder only to edit code and instead use a standalone copy of CEmu. I know that in SourceCoder 3 jsTIfied is paused while not in use, so it would be nice if CEmu did the same in this.
And yeah local ROM storage (on the user end) would be better for copyright reasons. :P
Yeah, the emulation is basically "opt-in", though right now this is due to having no local storage thing yet :P I'll try to think of something instead of auto-loading the emulation-related files.
Also, when you hide the sidebar, the emulator is paused, so as to decrease CPU usage.
Anyway, I've finished the most important things, so it's starting to work fine:
https://www.youtube.com/watch?v=hTBDJDyjq0I
More minor changes are coming, probably mostly UI related, error handling, etc.
Awesome!
So, how soon till we can access it? I'm really in need of an online emulator right now. :)
Possibly today.
And as I was saying, performance isn't as good as the desktop CEmu, so it doesn't actually "replace" it, but it definitely allows for faster testing :P
Will the emu be compatible with Android and iOS?
No, the whole PB is definitely not made for such targets, at minimum for usable size reasons, let alone performance regarding emulation.
Minor updates:
- Reduced key sending delay a bit
- Fix "build" buttons-related issues and behaviour
- CEmu credits added
Todo:
- manual/auto emu start preference
- auto-pause when focus is lost
- localStorage stuff for client-side ROM saving
- probably display the CEmu console somewhere
- Maybe more debugging things on the CEmu side
I have noted an issue, though: when you leave the emu on for an extended period of time, it becomes very slow. I'm not sure why (memory leak, or something like that?), although it's not that big of a deal, you can basically refresh the page.
Edit: Hmm, I have fixed some more things (included stuff people reported recently), and didn't finish the todo list here :P
Oh well, tomorrow should definitely be good \o/
Hm I see. Also nice update. For the slowdowns I am sure this is a memory leak, but does it happen in all browsers?
Alright, it's publicly available now (https://tiplanet.org/pb/), though I haven't been able to locally save the ROM yet, because it's quite big, and when trying compression, it wasn't working reasonably well, so far :P
Lots of other improvements and fixes, though, on UI and perf.
Have fun :)
Yay! It works! Slow-ish to press keys but it works. Also nice idea to pause emulation when not focusing on the browser tab. Should be less resource-hungry that way.
Only issue, though, is that we can only send 1 file at a time. This could be annoying when sending a large hybrid BASIC game that requires sending 12 programs or so (Sprites v3.3 alone uses 6)
EDIT: Actually I just tried GalagACE and it runs like twice faster until you press keys, then it lags. But it's still very nice to have such emulation feature.
Regarding keypresses, I'm not sure what's causing the lag, but basically, once you know you have to click a tiny bit longer than just a normal click (so, you have to press and hold the button, but just shortly), it's fine :)
In fact, pressing keys that way, I have no lags, it's quite good. Where you can clearly see it's slower than the desktop CEmu is for "high"-FPS games.
But speed probably depends on the browser and computer, too.
Edit: yes, multiple file sending will come shortly, it should be easy.
Edit2: and yup, pausing emulation on visibility loss is quite a CPU-saving feature.
I edited my post above btw (I tried GalagACE). The key lag sometimes also involves keys not responding at all during the game.
Yeah I'm not sure how you're trying but for instance, due to how the key-down/up events are lazily handled right now, I can't it make it work by tapping on my laptop's trackpad (because of the two events being too close, I guess), I have to actually click.
I suppose keys can get stuck, that way, thus making the user think something's frozen or something (and possibly also adding to the slowness in certain cases)
I actually didn't know if keyboard controls were implemented or not, because I tried and they didn't work. I wonder if implementing those would be possible, though? By the way I use Opera 36 (for some reasons I just realized my auto-update stopped working long ago because they're at version 38 now).
I can't wait for the emulator to become a part of PB publicly! I know I've been too lazy to try to set up the CE toolchain, and having everything in one spot that doesn't even need to be installed will be awesome. Who knows, it might even convince me to try making something in C for the CE.
It's there already :)
Today's updates so far:
- Auto-save/load user config regarding the layout (dark/light theme, sidebars visibility)
- Multiple file transfers working
Quote from: Adriweb on June 28, 2016, 04:18:51 PM
It's there already :)
Today's updates so far:
- Auto-save/load user config regarding the layout (dark/light theme, sidebars visibility)
- Multiple file transfers working
I guess looking stupid is what I get for not checking things before posting :) Nice job getting it public so fast. I just saw that you started working on it a few days ago, with your screenshot in #cemu-dev
UI is hard, that's what I spent most of the time on the past few days :(
Quote from: Adriweb on June 28, 2016, 04:21:14 PM
UI is hard, that's what I spent most of the time on the past few days :(
Everything looks great! I especially like how it types out the program name for you
yep, like in CEmu's autotester and program launching feature on right-click (in the var list)
You now have a screenshot button on top of the screen when you mouse over it:
(https://i.imgur.com/35ATOZR.png)
I've also fixed some file sending stuff (well, it worked already, but everything is now "disabled" until it finishes, kind of)
Update today
- Some cleanup
- Support of file renaming (finally) :
(https://i.imgur.com/HOPQT9D.png)
Good addition. In TokenIDE I kinda get annoyed about how the only way to rename a program is to copy the code in a new one like on the real calc <_<
Update:
- UI / CSS improvements
- Chopped off a few pixels here and there, so more things are visible now, on small laptops, for instance.
- Creating (and deleting) a file doesn't change the page anymore (thus killing the emu) ; the new content is loaded in dynamically
- Automatic local Saving/Loading of the emu ROM (and to avoid starting the emulator for nothing, it will pause itself right after loading the saved ROM)
I like the dynamic content loading idea. :D
Some of the updates to TI-Planet's Project Builder (https://tiplanet.org/pb) of the past few days:
- Toolchain updated to the latest upstream version
- Editor: Ctrl/Cmd-D is now dupLine, Ctrl/Cmd-Shift-D is removeLine
- CodeMirror, jQuery, Bootstrap: updated from upstream
- Automatically refresh inline ASM after a rebuild (if shown)
- Fix bad form name to get 8xp as array buffer
- Project's source file .zip export feature
- Allow deletion of files when project is R/W-shared
- Can now follow/spectate other users currently editing the doc (right click on avatar)
- Temporarily disable the file switch ajax quick-load due to some weird bug I'll have to fix
- Improved syntax highlighting with new CE-specific keywords
- Some backend project management fixes and improvements
- The chat can now be disabled on a shared project (although, no GUI for that yet, DB flag only)
- Misc. CSS improvements (dark theme color fixes, better fonts on Linux, etc.)
- Dec<->Hex number conversion on Ctrl/Cmd-click (works both ways now)
- Expression definition popup is hidden if nothing better than the current line is found
In no specific order, thanks to Runer112, Mateo, Jacobly, and others for testing and feedback.
Here's a screenshot showing the latest state of things, running a FileIO demo (https://github.com/CE-Programming/toolchain/blob/master/CEdev/examples/library_examples/fileio/demo_4/src/main.c) that returns a list of a number's prime factors (Ans->prgm->Ans) :)
(https://i.imgur.com/90QM808.png) (https://i.imgur.com/cI45OyK.png)
That is great Adriweb. Sorry I am late to reply x.x
Thanks.
Speaking of which, I should probably take some time to update the libs...
Some of the recent updates:
The real-time collaboration is now much more reliable
Fancy CSS notifications instead of raw JS alerts
Better browser compatibility
Keybindings shown when pressing Ctrl-H or clicking on the [?] button
Bottom pane now collapsible:
(https://zippy.gfycat.com/ElegantEasygoingAphid.gif)
There is now an interactive code outline sidebar:
(https://i.imgur.com/BOEBXC5.png)
As usual, thanks to everyone who gave feedback on all this, especially Mateo and Jacobly :)
Looks very good
@Adriweb . For project collaborations, is it possible to have a small shoutbox (Facebook-style) open at any time while the above screen is open?
Quote from: DJ Omnimaga on March 11, 2017, 07:59:00 AM
Looks very good @Adriweb . For project collaborations, is it possible to have a small shoutbox (Facebook-style) open at any time while the above screen is open?
Yes with shared project it is always enabled ;)
That's good. Can we also add/remove people or do they join on their own like IRC channels when a project is made public?
( Thanks :) )
Quote from: MateoConLechuga on March 11, 2017, 08:36:18 AM
Quote from: DJ Omnimaga on March 11, 2017, 07:59:00 AM
Looks very good @Adriweb . For project collaborations, is it possible to have a small shoutbox (Facebook-style) open at any time while the above screen is open?
Yes with shared project it is always enabled ;)
Technically, there's a toggle but it's in the DB side only, not visible yet. So for now indeed, it's always enabled for shared projects.
Quote from: DJ Omnimaga on March 11, 2017, 08:40:44 AM
That's good. Can we also add/remove people or do they join on their own like IRC channels when a project is made public?
No restrictions, like a public IRC chan. Might change in the future, idk :P
Yeah my concern was more if an undesirable person joins your project or something :P
Technically for now you're responsible for keeping your non-predicatable unique link safe and shared among trusted peers :P
In the future, I'll add a more fine-grained sharing feature where you can choose which tiplanet account(s) can read and/or write. Basically like google drive documents.
Ah ok, by public project I thought the project was publicly listed to everyone by default like the default Youtube upload options.
ASM is now much better :) (thanks,
@Runer112, especially)
(https://i.imgur.com/4ooqtH4.png)
Before the end of the week, I shall look into supporting debug logging from the online emulator, so we can actually have the debug print feature working on the PB as well, making bugfinding/tracing easier :)
Debugging things have landed 8) (printing, for now)
(https://i.imgur.com/YwRVSE4.png)
(Eventually, CEmu messages will go into their own console, but for now, it's using the browser's JS one)
i HAVE ONE PROBLEM HOW DO YOU DOWNLOAD THE ROM IMAGE
AND WHERE DO YOU GET IT THANK YOU AND MAY YOU PLEASE HELP ???
Quote from: Alvajoy123 on March 22, 2017, 11:48:43 PM
i HAVE ONE PROBLEM HOW DO YOU DOWNLOAD THE ROM IMAGE
AND WHERE DO YOU GET IT THANK YOU AND MAY YOU PLEASE HELP ???
Download CEmu and create a rom image:
http://104.238.135.171:8080/CEmu/master/latest/CEmu64.exe
Hi, yeah I think the only way to get a ROM is to dump one from your calculator using MateoC's advice. Also please don't use all-caps letters when posting, as it's much harder to read. Welcome to the forums, though!
I am new to asm programing am a basic programer and i just want to how to use this platform
??? ??? ??? ???
can you please teach me how to asm program
Quote from: Alvajoy123 on March 23, 2017, 12:41:30 AM
I am new to asm programing am a basic programer and i just want to how to use this platform
??? ??? ??? ???
can you please teach me how to asm program
No.
This tool is for C programming for the most part. Also, have ytou done any programming during your lifetime before? Because if you only did TI-BASIC, then jumping straight to ez80 ASM might be next to impossible, as the "Learn ASM in 28 days" tutorial states at the beginning. It's really better to climb the ladder from the bottom and experiment with small TI-BASIC examples such as the ones in the TI manual then work your way up.
Otherwise, if you have a lot of experience in programming, then we can guide you to tutorials you will need and help you if you don't understand something, but it will require you a considerable amount of patience (which, however, is worth it, because making softwares can be fun and good learning experience).
Hey there
@Alvajoy123 :)
I had wo work with ASM for a few months myself and it was really super hard even for me and I do programming in various languages since years.
ASM is really the hardest thing there is to programming.
You might want to do easier stuff first, like DJ mentioned :)
Quote from: MateoConLechuga on March 23, 2017, 01:03:36 AM
Quote from: Alvajoy123 on March 23, 2017, 12:41:30 AMcan you please teach me how to asm program
No.
not very friendly nor helpful there Mateo <_<
Assembly isn't really that hard, but you have to think a bit different than you would with high level programming. If
you find a good tutorial is definitely learnable ;)
Can you make tutorial video on how to use it and can you make it export files :thumbsup:
looking good by the way :thumbsup: :love:
Quote from: Snektron on March 23, 2017, 08:53:55 PM
Assembly isn't really that hard, but you have to think a bit different than you would with high level programming. If
you find a good tutorial is definitely learnable ;)
I never managed to learn ASM successfully even after three attempts <_<
A quick&dirty experimental integration of jacobly's LLVM eZ80 backend has been done yesterday evening:
(https://i.imgur.com/bxqjDN3.png)
It will obviously be better eventually, but for now it's good enough to try/debug stuff :)
This looks nice Adriweb :)
Thanks, but in theory, all the credit goes to jacobly's rather extraordinary work :)
LLVM view updated, now diffing with ZDS (left, and llvm on the right)
Note that clang gets called with -Oz for now.
(Also, yes that means you can write some C++17 for you 84+CE, because why not...)
(https://i.imgur.com/QxeWMbk.png)
Difference checking is definitively a great addition. I know websites already exist for that but when I am trying to figure out why a similar piece of code works and the other copy doesn't, it's annoying to have to try to find the diff checker site URL again and again when you are trying to concentrate on debugging <_<
Well, for now it is only comparing ZDS to LLVM, but some versioning ideas have been in my mind for quite a while, so if I ever implement something related to that (probably through git, if so), then yep, diff between versions would be there.
Ah ok. I wonder if it can detect weird whitespace characters? (like the ones generated by earlier HP Prime connectivity kit or emulator versions)
Over the past few days, I've been able to work on some
Project Builder (https://tiplanet.org/pb/) upgrades (and I want to particularly thank jacobly for the time he spent with me debugging some things :P) :
- "Refactor" (relatively minor, but not trivial either) of the eZ80_native backend architecture to better allow for a more direct usage of the upstream toolchain. The PB now uses the latest toolchain and libs versions, while keeping compatibility for/with the old and existing projects.
- Initial support of .cpp/.hpp files, which may be compiled only right now, and of course only with LLVM (they're not built, there's no ZDS linker involved, at least for now).
Warning, there's no C++ std lib support, but you way write classes, templates etc. (well, anything related to the C++ syntax itself), but without using the STL, for example.
- More generic and reliable dirty check (for launching builds)
- Fix ctags getter when refreshing after saving files
- Fix modal line numbers and refresh
- New feature to display the LLVM unfiltered output alone as well, instead of only having a ZDS+LLVM diff view.
- Better bootstrap tooltips
- Feature to disallow creating implementation files with the same "common name" (i.e. you can't create a test.asm file if a test.c existed, as this would conflict later on during the build)
(https://i.imgur.com/61VY9zNt.png) (https://i.imgur.com/61VY9zN.png) (https://i.imgur.com/GliRzVDt.png) (https://i.imgur.com/GliRzVD.png) (https://i.imgur.com/H7j0oeXt.png) (https://i.imgur.com/H7j0oeX.png) (https://i.imgur.com/kxbTD4Nt.png) (https://i.imgur.com/kxbTD4N.png)
(Will be available soon on the public github repo)
-
Via https://tiplanet.org/forum/viewtopic.php?f=41&t=18118&p=217395#p217395
What's that? C++ you say? LLVM-based building and not just asm-viewing?
(https://i.imgur.com/bI93sme.png)
That's right, C/C++ building support through jacobly's LLVM-ez80 backend is now available on TI-Planet's Project Builder (in alpha) !
Nice
looks quite nice actually
is there any option for offline building?
Perhaps save page to reading list/save for offline viewing.
I haven't tested it, mobile and good websites simply don't mix.
That backend finally works? Sweet...
Quote from: _iPhoenix_ on June 22, 2017, 02:15:13 PM
Perhaps save page to reading list/save for offline viewing.
I haven't tested it, mobile and good websites simply don't mix.
even if that did work, i prefer not to be developing stuff in a browser, i think most ppl would agree
Quote from: kotu on June 22, 2017, 02:28:54 PM
Quote from: _iPhoenix_ on June 22, 2017, 02:15:13 PM
Perhaps save page to reading list/save for offline viewing.
I haven't tested it, mobile and good websites simply don't mix.
even if that did work, i prefer not to be developing stuff in a browser, i think most ppl would agree
Agreed.
I recommend notepad++ and the C toolchain, then, along with the offline CEmu (the emulator not the C IDE/emulator)
There's some wrong info in recent posts here, so let me clear that up:
Quote from: kotu on June 22, 2017, 01:54:13 PMis there any option for offline building?
There's no offline building since the PB's nature is to be online (or at least in a context where it's not directly standalone). It's an "IDE" talking to the (server-hosted/setup) CE toolchain which you can get yourself (https://github.com/CE-Programming/toolchain/) for offline use if that's what you want.
However the PB is the only IDE and toolchain-integrated solution where ez80-llvm is readily available.
For an offline use of LLVM, you'd have to build it yourself (https://github.com/jacobly0/llvm-z80), and that has so far be tested on linux and macOS only. The standard llvm takes ages to bulid on windows, though, and this version might not even build on it yet anyway. When finished, you'll have to mess with the toolchain's files to integrate it.
Quote from: Snektron on June 22, 2017, 02:26:10 PMThat backend finally works? Sweet...
Some things aren't there yet, it's quite alpha/experimental... but it's a nice start indeed.
For instance, floats aren't supported yet, and will the build will error if you use them. See https://github.com/jacobly0/llvm-z80/pull/2
Quote from: _iPhoenix_ on June 22, 2017, 02:15:13 PMPerhaps save page to reading list/save for offline viewing.
No, the PB, like a whole lot of modern dynamic webapps, is relying heavily on client-server interaction, for things like file loading/saving, tags fetching, real-time sharing, building, downloading, projects management etc.
What you see on the page is merely the UI side of things which wouldn't really be filled with anything if there were no internet connection available.
Quote from: _iPhoenix_ on June 22, 2017, 02:15:13 PMI haven't tested it, mobile and good websites simply don't mix.
That depends on the website, but considering I've had enough trouble trying to make everything on the PB fit nicely for desktop/laptop-class displays (responsive stuff, togglable panels etc.), there's no way it'll run on mobile, so I disabled it entirely (well, there's a message telling you so)
Quote from: kotu on June 22, 2017, 02:28:54 PMeven if that did work, i prefer not to be developing stuff in a browser, i think most ppl would agree
Not "most people would agree", no, because it highly depends on the goal, when/where you're working on the project, what computer you have access to, what kind of project it is etc.
For instance, if you want to create a project with someone else (or several), it's better to work at the same time, ie with real-time live collaboration. This boosts productivity insanely and avoids conflicts that could otherwise happen if multiple people edit the same portions of code. The PB offers this specifically around a CE-oriented context. Can't really do any better. Critor and I have both used it like that for some CE games, and more recently jacobly, Mateo and I for other pieces of code (especially testing stuff, for the toolchain etc.)
One other goal of the PB is to provide easy access to a CE dev environment without the hassle of having to install the prerequisites/toolchain/emu etc., especially if you're a beginner in this field, or, if for any other reason, you aren't able to install it on the computer you're using.
For more experienced developers that are working on a project on their own, for instance, then of course, there is no real reason to prefer using the PB over a local toolchain+stuff that also happens to work offline. Plus they'll be able to use/configure their dev. tools as they see fit.
Quote from: _iPhoenix_ on June 22, 2017, 02:37:20 PMI recommend notepad++ and the C toolchain, then, along with the offline CEmu (the emulator not the C IDE/emulator)
Note that Notepad++ is a text editor that has some fancy little additions for code, but that's it, it's not an IDE at all, and frankly, can barely be used for anything non-trivial (I wonder how anyone can work without static analysis, smart autocompletion, and tons of other stuff only (some) real IDEs are able to provide).
In fact, the PB is already making a better job as an "IDE" than Notepad++ in several aspects. But that's not really surprising, considering I created C/CE-related specific features on it. For instance, the inline ASM viewer, the ZDS/LLVM diff view, the in-sidebar ctags for code browsing, the JS CEmu integration etc.
Of course, if you want a real IDE, I personally recommend Clion (https://www.jetbrains.com/clion/), especially since it's free for students and on other specific cases as well.
If it can't be moblie later on can you make an app version or a webapp version :P
Quote from: Alvajoy123 on June 23, 2017, 08:48:21 AM
If it can't be moblie later on can you make an app version or a webapp version :P
Easier said than done :)
Programming just isn't really suited for mobile.
??
Please re-read what I wrote. The PB is already a webapp.
And no, there won't be an offline desktop app for it since you can already have better in terms of IDE and emulator etc: just setup the toolchain as usual, use your favorite IDE, and CEmu right along.
As I was saying, the PB is especially suited for people who can't/won't do that, or want the specific features I made.
is
@Adriweb underselling himself on the value of C++??
lol
Quite a few updates lately on TI-Planet's Project Builder (https://tiplanet.org/pb), mostly following MateoC and Jacobly's feedback :)
New things- The ctags (list of symbols/defines/labels...) are available on .inc files too.
- Autocompletion (for C/C++/ASM) based on words around the cursor (exact match) + ctags (fuzzy search)
(https://i.imgur.com/VCTbfhy.png)
- You're now able to directly download a file individually (under its name or a custom one)
(https://i.imgur.com/UhqaNCN.png)
Bugfixes- Fixed loading+applying custom UI settings on file switching
- Fix crash in some cases when the LLVM output was empty
- Downloading the whole project as a .zip file now correctly includes the ASM and C++ source files.
- The inline-display of the generated ASM from C only has to be there when using C with ZDS...
Many
improvements on ASM code edition:
- Better syntax-highlighting for eZ80
- Indenting is now tab-based (and with a width of 8 spaces), as it's the "norm" for ASM.
(https://i.imgur.com/87TGOQC.png)
- Support of [Ctrl]+MouseOver on variables/labels, pour afficher leur définition. Clic pour y aller.
(https://thumbs.gfycat.com/MintyPoliteCony-size_restricted.gif)
- Support of [Ctrl]+MouseOver on documented/commented functions to display their docs ("soon" with Doxygen support). Click to go to it.
(https://thumbs.gfycat.com/VeneratedFreeAsianconstablebutterfly-size_restricted.gif)
- Support of [Ctrl]+MouseOver on numbers, to display their decimal/hexadecimal conversion. Click to convert.
(https://thumbs.gfycat.com/ComfortableVagueFennecfox-size_restricted.gif)
Enjoy :)
Via https://tiplanet.org/forum/viewtopic.php?f=41&t=18118&p=219477#p219477
And now with Autocompletion (fuzzy search) and definition peek from the SDK includes (standard, libs...):
(https://i.imgur.com/taUonkt.png)
(https://i.imgur.com/313C4JN.png)
Really starting to shape up! nice work ;)
Does the project builder support non-ez80 / non-ti targets too? just wondering.
Also, an idea might be integration to some kind of versioning like overleaf does. (You can edit LaTeX and host the project on github.)
QuoteDoes the project builder support non-ez80 / non-ti targets too? just wondering.
Nope, it does not at the moment. However, modularity was one of the strong design goals, so that support for multiple targets - not just multiple toolchains for a given target, which is already in production for the TI-eZ80 native code module - can be added at some point.
QuoteAlso, an idea might be integration to some kind of versioning like overleaf does. (You can edit LaTeX and host the project on github.)
Indeed. In fact, this particular item is already part of the wish list, alongside project import :)
The ability to export projects out of the PB infrastructure allows users to perform manual commits into whichever (D)SCM they see fit, but it's obviously more cumbersome than a direct integration into e.g. Github.
I hope this project will start supporting prizm soon. It Will be nice to have everything compiled online and fix vram issues for new fx-cg50 as well as allow to use two sets of icons one for old black backgrounds and another for white new one - it will attract more developers too. Thanks for working on this project
Changes since last time: (see my previous post)New:
- Automatic autocompletion popup (debounced)
- Ctrl-Click (or Cmd-Click on mac) on toolchain functions/defines etc. will open up the corresponding documentation line on GitHub
- Trailing whitespaces are now trimmed on save
- clang-provided warnings (as well as errors and diagnostics) are now shown inline, updated on each save and file switching
Other sources of warnings (ZDS, cppcheck) are still displayed, and have their name on the right.
(https://i.imgur.com/Hpys3X6.png)
- Code re-indent feature available at the click of a button at the top-right of the editor
(https://i.imgur.com/wRnWGb0.png)
Improved:
- More optimal sorting of the autocompletion items
- Finer file permissions in the backend
- Better security checks on #include statements
- Stricter clang warning flags when using llvm-eZ80
- The backend toolchain is now just the same as on github with a (very) small patch to apply
- The backend code got improved/refactored for several things, like error handling, permissions checking, action processing, DB usage (now generic)...
Fixed:
- Ctrl-Hover (or Cmd-Hover on mac) improvements on compatibility and performance
- Some eZ80 ASM ctags were not correct
- The clang build output was not complete ; everything is now shown correctly.
- Forking a project was not working if done on a project that didn't have saved files yet (ie: just created), and had incorrect error handling.
- Re-sharing in RW a project that was shared then unshared at some point would result in having an old version of the files.
- The Ctrl/Cmd-Hover popup was not destroyed when its word would get edited
- Random typos got fixed
My thanks to:-
Lionel Debroux who's started code-reviewing and suggested quite a few interesting things, mostly aimed towards a more reusable/portable PB. Everything isn't done yet, but we're getting there!
-
Runer112 too in particular, for feedback, testing, sorting ideas+code
-
Everyone else who's tried/used the PB and provided feedback :)
(post via https://tiplanet.org/forum/viewtopic.php?f=41&t=18118&p=219792#p219792)
Among the numerous improvements from today:
- Improved auto-completion rendering, now with types, signatures...
- Better log output in the build console
- The CEmu sidebar is now toggled properly if need be, when testing a program
- Cache-busting URLs for several CSS and JS resources
- Lots of cleanup/refactor in the backend
- Some work by Lionel to make the PB easily installable locally (not committed yet)
(https://i.imgur.com/MiGevZkl.png)
(https://i.imgur.com/mW9Rcvol.png)
Latest updates:- Improved fuzzy-match search rendering
- Locals are now displayed correctly in the autocompletion list
- Bugfix for conflicting type names / bootstrap label
- CodeMirror updated
- WebCEmu arrows display improved
- WebCEmu is now multithreaded and, as such, runs at full-speed (this requires a very recent stable/beta browser version: Chrome 60 / Opera 47, Firefox 55, Safari 10.1, Edge 16)
(https://i.imgur.com/kQzziSg.png)
(https://i.imgur.com/RBP4sdp.png)
Some of the latest updates:- The hardcoded requirement to have a 'main.c' file is now gone. You just need to have at least one (any) file in a project
- You can now import source code files via drag'n'drop on the editor
- Fix-its, when available, are displayed and applicable by clicking on the flash icon on the right of warnings
- Even more safe file switching (you can't click on stuff when it's loading the content)
- WebCEmu build improved (latest emscripten SDK, behind the scenes improvements)
- AJAX activity indicator (when loading, saving, etc.)
- Some misc. cleanup and bugfixes
(https://fat.gfycat.com/HoarseJealousIsabellineshrike.gif)
(https://zippy.gfycat.com/CreepyLavishHorse.gif)
(https://i.imgur.com/hm4AXXJ.png)
The few updates since last time:- Refactor some code related to linewidgets handling (inline messages)
- Build actions now have an XHR timeout of 60 seconds instead of 10 like other actions
- Code re-indenting is now also supported for ASM (credits and thanks to Runer112 who wrote the code)
That's a lot.of updates
@Adriweb O.O . I didn't know there would be so many during Summer months. Good job so far
There hasn't been many updates since last time (about a month ago, yep...), but :
- Runer112 improved the ASM re-indenter, it's now quite smart about keeping comments aligned etc.). Thanks!
- The blue "Settings" button now opens a modal window with a few parameters you can adjust to your liking:
- Output format (program/appvar)
- Location (RAM/Archive)
- Optimization settings
- Custom clang parameters
(https://i.imgur.com/R5ud3G6.png)
Between yesterday and today, I spent about a dozer hours on making the backend architecture of modules more generic, splitting in several layers what's specific and what's generic for the server-side processing things. I've also completed the DBHelper SQLite backend implementation (untested though!), if people are interested in it someday.
Anyway, it's becoming easier and easier to handle/add several modules in the Project Builder (even though I could still generify some more layers in the front-end, for instance a "front-end for a module using CodeMirror").
An overview of the general architecture according to PHPStorm, not showing fields/methods/etc. (we don't see what uses what, too bad :P):
(https://i.imgur.com/wVOBMnJ.png)
(via https://tiplanet.org/forum/viewtopic.php?f=41&t=18118&p=223628#p223628)
I finally did the rebase (well, I wrote a script to do it...) from the private repo to public repo, since early July.
There are only 2 files left not yet published, basically :)
Here are the 102 commits pushed: https://git.io/vF9hb
(And thanks to those who contributed to some of those commits, directly or indirectly, especially Mateo, Jacobly, Runer112, Lionel.)
Since this has been requested recently, I added a .webm screen-recording feature, so that you can now video-capture in addition to png-image capture :)
(https://i.imgur.com/FNUEPlx.png)
You can post such webm on some forums, or host it on gfycat for instance (which provides gif conversion etc.)...
Big update today!I have added support to the Project Builder (https://tiplanet.org/pb/) for gfx resources (png images for instance), with the
convimg tool from the toolchain!
- To add sprites / images to your project, just drag'n'drop them onto the editor (be careful, if there is one called "icon.png", it will become the icon of the project, though)
- The convimg configuration file, gfx/convimg.yaml, is created automatically with a template content adjusted for your images (you have to edit it if you add more images later)
- The dropdown menu at the top left of the code editor allows you to list the files and images found in your project, and to access the configuration file. From this menu, you can also preview your images, download them, and delete them.
- The files generated by convimg cannot be modified (they are read-only in the editor) in order to avoid bad modifications by mistake.
Here's a video showing a real-world usage of the features:
Let me know if you see something wrong,
Enjoy :)
(crossposted from TI-Planet (https://tiplanet.org/forum/viewtopic.php?f=41&t=18118&p=263647#p263647))-----
Previous update missing here:
[size=15]
Jan 19th, 2020 updates![/size]
- The PB has been improved to support the (LLVM-based) toolchain without any modification (that's good for me, as I just need to git pull and make install to keep up to date!)
- Toolchain and LLVM updated to the latest version. This includes internal tools like fasmg (used as the assembler and linker), which jacobly greatly sped up thanks to a "CALM" instructions rewrite.
- Building (without cleaning) doesn't remove the built 8xp first. As such, you can get the expected "make: Nothing to be done for 'all'." message if you try to build again if nothing changed.
- Project icon + description support has been added. This means that inside Cesium, your programs can have those displayed!
You can add an icon to your project by drag'n'dropping your icon.png file on the editor (just like source files)
(https://tiplanet.org/forum/images/forum_uploads/1381_1579477741_5e24eaed30306.png)[/list]
Time to move this sub-forum from the completed to the currently active status and location. Glad this is getting new updates. :)
Do you know if many people use it in the TI community, including internationally?