graphmastur wrote:
What are you planning for the filesystem?
It is actually very similar to the heap memory layout in the RAM. The fs has 2 parts - the actual storage area and an index area. I believe that the VAT would have my form of an index (file name, creation data, flags, page, etc.) as the VAT entry/header. Each page is formatted as a memory heap (modified to not erase) and my stdio routines are able to interface with lower-level functions to write out data (rant::rant)
qazz wrote:
will you have support for .8xp asm/basic files? Or will it have it's own language?
This should answer it...
AHelper wrote:
It is not trying to provide support for anything tios related.
It doesn't have a basic processor. The OS just provides basic stuff. Someone will have to make a scripting program for that to work .
Anyways, if you do run anything in asm, then, well, it will be a little hard trying to figure out how exactly sdcc passes parameters to functions (it isn't that bad, it passes words as a push and a byte as a push af/inc sp, except for floats, longs, etc.).
As a little side note, I am working on serializing the GUI data into a nice fancy array instead of a monster of space-wasting commands, as this is used to create and run the about dialog:
Code: void about_close(GUI_Key k, GUI_Container* c, GUI_Widget *w)
{
c->closed = true;
}
void about()
{
GUI_Container *desktop = GUI_Desktop_Create();
GUI_Return *ret = malloc(sizeof(GUI_Return));
char *llabel1 = malloc(20);
char *llabel2 = malloc(50);
char *lbutton = malloc(5);
GUI_Widget *label1 = GUI_Label_Create(25, 20, llabel1);
GUI_Widget *label2 = GUI_Label_Create(15,30, llabel2);
GUI_Widget *button = GUI_Button_Create(35, 50, 30, lbutton);
strcpy(llabel1, "GlassOS v1");
strcpy(llabel2, "Copyright AHelper");
strcpy(lbutton, "Back");
ret->w = 1;
button->callback = about_close;
GUI_Desktop_Add(desktop, label1);
GUI_Desktop_Add(desktop, label2);
GUI_Desktop_Add(desktop, button);
LCD_clear();
GUI_Desktop_Prep(desktop);
while(ret->w != 0)
{
GUI_Desktop_Do(desktop,ret);
if(ret->w)
ret->w->callback(ret->k, ret->c, ret->w);
}
GUI_Desktop_Destroy(desktop);
free(llabel1);
free(llabel2);
free(lbutton);
free(ret);
}