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. Smile
hehe! Make yourself think that you are using TIGCC for making 68k programs Smile 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? Smile 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? Smile 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
Page 1 of 1
» All times are UTC - 5 Hours
 
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

 

Advertisement