I finally made a nice SDK for making your own GlassOS programs. I will be putting out a signed 8xu for GlassOS as well as pre-compiled tools for connectivity. The doxygen page will be updated with new functions and such, too.
Feedback on making stuff is welcome!
Warning! The documentation for functions is up-to-date AFAIK, but the tutorials are out of date and probably don't work without tweeking. They will be fixed eventually.
Documenation of calls here:
http://glassos.sf.net/man/
Don't always have internet? Get the PDF version here:
http://glassos.sf.net/man/refman.pdf
Download it here!
Oooh, neat! If I get some time this summer, I'll see what I can do as far as trying to compile some programs for GlassOS. Nice job.
Thanks! Let me know about any questions. I will try to get an updated example in the doxygen pages.
AHelper wrote:
Thanks! Let me know about any questions. I will try to get an updated example in the doxygen pages.
I shall certainly do so. I think it's going to be weird and unsettling to be able to compile C for the TIs without obsessing about bytes and clock cycles, though.
hehe! Make yourself think that you are using TIGCC for making 68k programs

It won't seem that bad. Nothing stops you from using asm, however. You make programs about 0x3ff0 bytes large and use about 15KB of ram (plus you can extend and use libraries for 0x3ff0*n).
Ah, but there's currently no way to make good multi-page programs at the moment?

What do you mean about libraries, that the libraries can be placed on other pages? That would mean that a program's core code must still be within 16368 bytes, right?
This looks very interesting. I look forward to seeing more progress, and downloading an .8xu.
KermMartian wrote:
Ah, but there's currently no way to make good multi-page programs at the moment?

What do you mean about libraries, that the libraries can be placed on other pages? That would mean that a program's core code must still be within 16368 bytes, right?
I chose not to have multi page apps. You can put code that doesn't fit, or is shared, like gcas, into a library. That library has a jump table to all of the functions in it. You can then use a bcall to directly jump to the library.
gCAS2 has the math core in a library (libgcas2.so) and makes calls to it. Works perfectly and is easy to use.
<edit>
A nifty tool will be added, mapstat. When you compile things with SDCC, the assembler dumps a bunch of extra files. One of them, .map, is very useful as it shows all labels (globals) and their locations. Now, when you look at it, there is a lot of extra data there that you don't need, like the start and end varients of labels. You are mostly concerned about how large functions are. Well, mapstat will generate a document showing the size of all functions (without _end and _start duplicates), the percent of space used in the binary by the global, and show it sorted by address and by size. Sample when calling mapstat launcher.map:Code: Created by mapstat of the file 'launcher.map'
Sort by Order
Size Addr Label Name
---- ---- ---------------
9 4051 _binary_author
10 405a _binary_name
32 4064 _print
27 4084 _about_close
48 409f _GUI_Menu_Free
133 40cf _GUI_Menu_Create
98 4154 _GUI_Menu_Add
656 41b6 _GUI_Menu_Do_Draw
4 4446 _arrow_up
4 444a _arrow_down
5 444e _arrow_right
623 4453 _GUI_Menu_Do
72 46c2 __fopen
85 470a __fputs
89 475f _fgets
66 47b8 __opendir
29 47fa _ASSERT
105 4817 _awesome
12 4880 _greypixL
12 488c _greypixD
5 4898 _sprintf
5 489d __uitoa
77 48a2 _puts_grey_fixed
<snip>
Sort by Size
% Size Addr Label Name
---- ---- ---------------
13 1982 680f _firstrun
11 1653 5279 _doList
5 828 58ee _swapTasks
5 814 4d22 _readApplication
5 768 5e29 _pix_home_background
5 748 48ef _prefs_adjustGreyscale
4 656 41b6 _GUI_Menu_Do_Draw
4 632 6fcd _main
4 623 4453 _GUI_Menu_Do
3 566 6182 _doMain
3 511 5c2a _drawHeader
3 467 6456 _USB_Callback
2 414 6671 _firstrun_mkdesktop
2 327 4bdb _prefs_adjustContrast
1 265 50c3 _drawSelection
1 248 7649 _gfx_putchar
1 206 72e3 _grey_on
1 173 51cc _binary_getAuthor
0 137 63cd _mAbout
<snip>
(The above is spaced properly, the tabs didn't convert well in the code tag)
<edit>
doxygen page was regenerated and a PDF was also uploaded. See OP for links.
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
»
Go to Registration page
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum