CEMETECH
Leading The Way To The Future
Login [Register]
Username:
Password:
Autologin:

Don't have an account? Register now to chat, post, use our tools, and much more.
Latest Headlines
Online Users
There are 119 users online: 7 members, 92 guests and 20 bots.
Members: Ashbad, GISdude, shkaboinka.
Bots: Magpie Crawler (3), Googlebot (17).
RSS & Social Media
SAX
You must log in to view the SAX chat widget
    » Goto page Previous  1, 2, 3 ... 23, 24, 25, 26, 27  Next
» View previous topic :: View next topic  
Author Message
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 27 Feb 2012 05:58:49 pm    Post subject:

GlassOS has both fixed and variable width text, large and small respectively. I will make it editable in large only right now. However, I need to ask you as you already make an editor: Line wrapping and text insertion. I can have a text buffer up to ~14KB-15KB. My problem is figuring out how to draw the text (taking scrolling and finding out which letter in a line to start drawing from, new lines, etc.) and inserting text (better way than move all text forward, then change character). Any ideas for this in C? I could take the lazy nano way out and not have line wrapping at all, but Razz
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 28 Feb 2012 11:25:59 am    Post subject:

The archive is as follows:

Code:
package.tar/
  control
  version
  data.tar.gz

The version is just there to specify the version of the package. The control will have the name, description, etc. of a package. The data tarball has the file/folder structure that will be copied directly to the calc. Certain places can be written to by default, such as /usr/*, but if an archive tries to write to other places, then you will be prompted.

glassLink will manage packages and issue FSA calls to the daemon for installing packages. Files will be generated, such as a file list for removing and other meta data, and sent to the calc. Packages can either be installed from file or from a repo web site. Installing from a browser works similarly to apt:// urls.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 04 Mar 2012 03:11:15 pm    Post subject:

GlassOS is currently branched off and 3 parts are being worked on.
  • Greyscale GUI functions that will run SO much faster than the old one. Event driven, USB mouse (future, ty Linky), greyscale (ofc), less RAM usage.
  • Software installation through packages
  • RAM-based programs. Binaries will be copied from files in the FS to a RAM page and executed there. This not only means that small programs will not waste space, but the power consumption of the calc will be less.

_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
willrandship


Expert


Joined: 06 Jul 2010
Posts: 558
Location: Between Venus and Mars

Posted: 06 Mar 2012 12:57:16 am    Post subject:

So, will programs be able to access more than 8k of RAM? Or, is that reserved for other parts of the system ala TIOS?
_________________
Hmm...what to put here....
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 06 Mar 2012 01:00:19 am    Post subject:

The fs-based program is copied into a 16KB RAM page. It is also given 14-15KB of RAM.

Full page programs stay in the flash and get the same 14-15KB of RAM.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
willrandship


Expert


Joined: 06 Jul 2010
Posts: 558
Location: Between Venus and Mars

Posted: 06 Mar 2012 06:17:38 pm    Post subject:

Sounds cool! I want it.....

So, regarding the line scrolling problem, I can recommend one method. Have it continuously draw to the right until one of two things happens:

a. There is no room for the next character to be drawn (ie 2 px isn't enough for the letter w in variable width)

b. You encounter a newline character.

Either case is treated the way newlines are. it will slice words up, but I doubt anyone will care. It's better than the nano approach (Although for programming I actually prefer Nano's style.)
_________________
Hmm...what to put here....
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 06 Mar 2012 06:26:43 pm    Post subject:

void putchar(char c); already knows when to put in newlines, I meant when you move the cursor down past the end of the screen, the starting character on the screen changes. I don't know a good way to determine that.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 10 Mar 2012 12:05:26 am    Post subject:

So, I remembered about that Islands game I made a while back (June last year) and saw that I forgot to put it into the svn. After changing the includes for the build system and removing temp functions, it works perfectly even after the API changed in places all over. Hopefully I have time this weekend to finish the package installation code on the PC side.

Woo!
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 11 Mar 2012 08:00:28 pm    Post subject:

Well, I have the code ready to go for RAM-based programs. I decided to remove RAM-based library support mainly because libraries aren't intended to contain a tiny amount of code, but rather large chunks of code.

Also, http://glassos.sf.net/ was remade and is being added to still.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
willrandship


Expert


Joined: 06 Jul 2010
Posts: 558
Location: Between Venus and Mars

Posted: 12 Mar 2012 12:46:12 am    Post subject:

Sounds fine to me. I can't think of any cases where RAM libraries would be easier than just including it into the program, if they're that tiny anyhow. If speed is that much of a concern over space it might as well be that way.
_________________
Hmm...what to put here....
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 14 Mar 2012 11:57:41 pm    Post subject:

So, things on my plate for GlassOS
  • I am very busy with other stuff Sad
  • Installation through packages is being worked on. (Making another thread for questions on it)
  • Adding more high-level filesystem functions, like rmdir (Sorry, not recursive), rename, move, etc.
  • Removing debug printing from the USB daemon
  • Thinking about making packages of the OS and PC tools again...
  • KJumpingCube will be my next game to be ported to the OS (because I love that game, too)
  • Apparently Linux isn't telling me the time with DST calculations, so GlassOS is 1 hour behind for me

That's about all that is going on. Getting ready for a week off in 2 weeks, and the above will be my holiday to-do list Razz

<edit>
Done so far:
  • Debug messages for USB removed (mostly)
  • Package functions added, not complete or tested.
  • rmdir being worked on

_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 27 Mar 2012 01:28:59 pm    Post subject:

Hehe, so after being sick, I am finally working on this again Smile I see that there is a bug with the keyboard buffer not being able to be read somewhere, so that must be fixed.

Still working on USB fun.

<edit>

So I ran the package code, here is what output from the daemon looks like as it verifies all directories and skips files:

Code:
c:fsa package_file /home/Joshua/projects/glassos-svn/trunk/testpackage.gp
GP - CD: /
>> FSA_CD_VERIFY
Packet read
Packet read
Packet read
<< FSA_OK
GP - CD: /usr/
>> FSA_CD_VERIFY
Packet read
Packet read
Packet read
<< FSA_OK
GP - CD: /usr/share/
>> FSA_CD_VERIFY
Packet read
Packet read
Packet read
<< FSA_OK
GP - CD: /usr/share/applications/
>> FSA_CD_VERIFY
Packet read
Packet read
Packet read
<< FSA_OK
GP - FILE: /usr/share/test.desktop
GP - CD: /usr/bin/
>> FSA_CD_VERIFY
Packet read
Packet read
Packet read
<< FSA_OK
GP - FILE: /usr/bin/test.bin
GP - DONE

The FSA code has the packet handling for all of the responses and such, and the GP (GlassPak, .gp files) code is simply calling them and rerouting where the response results are sent. Fun fun fun!

<edit>

So, binaries. I made the format very wasteful and am getting them sorted out. I am making a header for them, but I don't want it to be too simple that another program might accidentally create. I am thinking that a header like

Code:
0xBEEF
[1 byte type field]
[pointer to author string]
[pointer to program name]
0x07
...start of code...
I only recommend pointers in case you don't want wasted space.

Any input?

<edit> Changed header in the OS, the above is the final choice. All programs must use DEFINE_AUTHOR and DEFINE_NAME to compile.
<edit> Well, here is a standing todo list:
  • Redo gFiler UI
  • Add package removal support in gFiler
  • Find a spot for uninstall files
  • Do something about RAM execution branch
  • Add more FSA commands working, like calc -> PC transfers, deletions of files and folder, renaming (needs a function on-calc)
  • Get docs for packages written
  • Redo IPC code

_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 30 Mar 2012 01:13:01 pm    Post subject:

So, I redid the IPC code and so far so good. Currently, the daemon creates 2 threads that wait on blocking functions, one for IPC data and events, and the other for USB data and events. I couldn't find a way to block for the calc to connect, so I am just polling every 3 seconds for the calc. After that, everything is blocking.

Before, the daemon would run with a few usleep calls to not run all of the time, but it still was running way too much. Also, I used a FIFO for bidirectional communication, but that was wasteful as I wrote and read back the same data until the other process got around to reading it. Very laggy and hackish. Now I use a named socket and am not doing any hackish things (hopefully) Smile

Result: The FS viewer is very fast to respond and USB communication is faster as there are no forced usleeps anywhere. Success!

<edit>

So, since I am still struggling to get an RPM built, I will allow the GlaßOS SDK to be installed with make sdk-install. I will try to get the other programs installed with the Makefile as well.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 31 Mar 2012 12:41:09 am    Post subject:

This calls for a new posf....



Defragmenting of the filesystem, both data sections and the index section, is STABLE!!!



Why the outburst from me? Defragmenting is the most troublesome part of the filesystem code. It is responsible for making room for your data and for copying it to the flash chip without damaging the FS or your data. The index section, if damaged, will require a reformat (no data loss, just loss of integrity). If your data is lost, then Sad The FS can recover, but many parts of the FS will be missing and might not work right.

These two functions, fs_defragSector and heap2_defrag, work. woo!

<edit> This part of the OS has taken almost 8 months. (Goal was for sustainability through defragmenting and a safe method to store files and manage them, along with folders)

<edit> A bug in the kernel was fixed that caused a segmentation fault to happen when writing one byte to the flash.

Also, the TI84+ works nicely now after some fixing here and there.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
Compynerd255


Power User


Joined: 08 Apr 2011
Posts: 397

Posted: 31 Mar 2012 05:18:25 pm    Post subject:

Wow, defragmenting is really cool! How long does it take to defrag the Archive?

BTW, is there a beta version of GlassOS available for download that I can try on my 84 Plus SE, or are you waiting to release it until it's done?
_________________
Visit Betafreak Games: http://www.betafreak.com
Help Me Pay for College:
- Sign up for Fastweb through my referal link!
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 31 Mar 2012 05:20:22 pm    Post subject:

So, here is a screenie of me showing the effects of defragmenting:



So, what am I doing?
  • Start gFiler and go into the file system tuner.
  • Page 8 is the swap page, page 12 is a data page (file contents), and page 100 is the index page (file/folder names). Note the free space and deleted space.
  • I delete a folder and the index page registers a node deleted.
  • I go back and delete a file. Both the data and index pages show additional deleted space. (Data page has the file contents and the index page has the filename)
  • I defragment the index page and the data pages. The data page is defragmented into the swap page (8) and the index page is defragmented into page 96.


The index pages contain information needed to quickly find files and point to the data nodes. There are two swaps, one for each section. The data section ranges from 0x8 to tp(0x5f) and the index pages are from tp(0x60) to tp(0x67), where tp adjusts pages based on model, subtracting 0x40 on the ti84p.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
KermMartian


Site Admin


Joined: 14 Mar 2005
Posts: 55879
Location: Earth, Sol, Milky Way

Posted: 31 Mar 2012 07:38:35 pm    Post subject:

Very impressive work, AHelper! Keep it up.
_________________


Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 05 May 2012 02:16:59 pm    Post subject:

>1 month since last post. Since I am busy, I can only work on GlassOS stuff when I have time (not a lot). I was surprised to see that I was missing quite a few files in svn when I installed linux on my machine. The only thing that will be worked on right now will be getting (GlassOS scope) gCAS2 to use the new API in libgCAS2 and to possibly detect if you have the right library version.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
AHelper


LONG LIVE COMICTECH


Joined: 30 Jan 2011
Posts: 1685
Location: Aufhelperstan, Utopian Republic

Posted: 06 May 2012 11:06:06 am    Post subject:

Just thought that I should post this info outside of the kernel code. I have a list of all Flash chips, support for unlock bypass, and how to check for bad chips:
Code:
/*
Notes about the flash chips for all hardware supported officially by GlassOS
 - TI84+ (Also TI84+.fr, ns)
  - A29L800A
  - 29LV800
  - S29AL008D
  - MX29LV800
 - TI84+SE (Also TI83+SE, ns)
  - 29LV160 (29LV160TE)
  - S29AL016D
  - MX29LV160 (MX29LV160AT)
  - EN29LV160BT-70TIP

Fast programming mode support:
29LV160       YES
S29AL016D     YES   (<aa><55>[20])
MX29LV160     NO (This calc is asian-pacific only!)
A29L800A      YES
EN29LV160BT   YES
29LV800       *YES
S29AL008D     *YES
MX29LV800     NO

Batch sector erase support:
29LV160       YES
S29AL016D     YES
MX29LV160     YES
A29L800A      YES
EN29LV160BT   YES
29LV800       YES
S29AL008D     YES
MX29LV800     YES

How to check for a Macronix Intl. chip:
write aa at aaa
write 55 at 555
write 90 at aaa
read at 0000
if read data is C2, bad chip

*/
GlassOS does use the above info. If anyone knows of other chips, please let me know. I ran through basically all calcs on datamath one day and compiled the above list Smile

<edit>

An official SDK was released here on the archives and will be also put on sf.net. I will also update the GlassOS snapshot on the archives when I have a stable-enough build.

<edit>


Well, Wabbitemu doesn't save the contrast effect in the gif. Bug? The contrast changing does work, however.

So, I remade the program list UI that shows up when you choose a category. Now it uses a greyscale UI that shows the category in the standard header, the program name and author, 16x16 greyscale icon, and lets you toggle favorite status on programs. It uses double buffering so you don't see the flickering while redrawing. Unfortunately, it is slow at redrawing since it must redraw the list, info, icon, etc on every cursor movement or clock change. This will be changed very soon. Intended result: Move the cursor, the list will update, then the buffers will flip. The info section takes a long time as it needs to directly read the author metadata on the flash page as well as load the image (no cache). Once that is done, it will flip again showing you the info and such. Clock updates will only redraw the header, not everything (as it does right now).

Note that the favorites cat. shows all programs. Just for debugging purposes, you will be able to mark them in the future.

Hope it looks good to everyone. Oh, the menu system from gFiler's fstune was used in Launcher and lets you use a GUI for settings and such instead of keys like APPS for program list, WINDOW for greyscale, etc.. Also note that GlassOS now supports changing of the contrast! Uses the same pref.s system that the greyscale freq. uses.
_________________
°ᴥ° Get Lucky

<BrandonW> "You don't even want to know what TI Connect does when it's just detecting your calculator...It ACTUALLY ERASES THE SWAP SECTOR on every communication attempt...EVERY SINGLE ATTEMPT...Yes, TI Connect will kill your calculator..What do I have to do to get your attention?!....Such a bloated protocol."
Back to top
KermMartian


Site Admin


Joined: 14 Mar 2005
Posts: 55879
Location: Earth, Sol, Milky Way

Posted: 07 May 2012 10:46:48 am    Post subject:

Wow, this is looking great! I can't believe quite how much work you have put into this, and how mature it is as a useable operating system. I think it definitely deserves some Cemetech news one of these days. Smile I have a few minor nits to pick about pieces of the interface, but they are very minor indeed, and I'd say that even without my suggestions it looks very straightforward for end-users. Keep up the awesome work, and great job also on the SDK.
_________________


Back to top
Display posts from previous:   
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
    » Goto page Previous  1, 2, 3 ... 23, 24, 25, 26, 27  Next
» View previous topic :: View next topic  
Page 24 of 27 » All times are GMT - 5 Hours

 
Jump to:  
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

© Copyright 2000-2013 Cemetech & Kerm Martian :: Page Execution Time: 0.049603 seconds.