<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9031265110129021092</id><updated>2012-01-13T08:08:38.636-07:00</updated><category term='exceptions'/><category term='vt'/><category term='cvs'/><category term='scheduler'/><category term='filesystem'/><category term='drivers'/><category term='bugs'/><category term='signals'/><category term='svn'/><title type='text'>Punix OS</title><subtitle type='html'>The official blog of Punix, a Unix®-like operating system for the TI-92+ graphing calculator</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-7416634868502014587</id><published>2011-07-02T22:29:00.001-07:00</published><updated>2011-07-02T22:32:16.563-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='signals'/><category scheme='http://www.blogger.com/atom/ns#' term='filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='exceptions'/><title type='text'>File system, exceptions, and signals</title><summary type='text'>Ok, so I didn't get my file system completed on my trip a few months ago. In fact, I didn't work on it at all during the trip. (I don't know why I thought I would)

I am now, however, working in earnest on getting the file system to work. This involves removing a lot of old code and rewriting some of the code. I'm basing my file system interfaces on Linux, which stores pointers to functions for </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/7416634868502014587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=7416634868502014587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/7416634868502014587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/7416634868502014587'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/07/file-system-exceptions-and-signals.html' title='File system, exceptions, and signals'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-C7kEZ5lNLlw/Tg_J1rQ4bZI/AAAAAAAAEGQ/IKqa-diyLcY/s72-c/exception.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-7069280637201035806</id><published>2011-03-27T20:05:00.002-07:00</published><updated>2011-03-28T18:48:27.374-07:00</updated><title type='text'>Road trip!</title><summary type='text'>I will be leaving out of state for awhile in a couple of days, so I will probably not be updating this blog much during the trip. I will be bringing my dino-laptop with me, however, so I can continue developing Punix as time permits.

Right now I am trying to compile and install GCC4TI onto it. It's taking a long time because the CPU runs at only 300MHz.... I already have TiEmu installed, which </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/7069280637201035806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=7069280637201035806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/7069280637201035806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/7069280637201035806'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/road-trip.html' title='Road trip!'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-2002368073141603844</id><published>2011-03-17T20:23:00.002-07:00</published><updated>2011-03-24T21:30:47.585-07:00</updated><title type='text'>Real top is coming</title><summary type='text'>Up til now I have been either faking the statistics in top, or pulling statistics directly from the kernel (by reading kernel variables). Since top runs in user space, it can't really get information directly from the kernel, so it needs to get it another way. In Linux (and not in FreeBSD), top uses the /proc filesystem. Punix doesn't have so much as a filesystem working, let alone a /proc </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/2002368073141603844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=2002368073141603844' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/2002368073141603844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/2002368073141603844'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/real-top-is-coming.html' title='Real top is coming'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-TrRPnT8wnvA/TYLKHH-7OiI/AAAAAAAAEF0/BYS2c-vrwlg/s72-c/top-2011-03-17.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-1861327516361353283</id><published>2011-03-11T23:38:00.001-07:00</published><updated>2011-03-11T23:40:26.433-07:00</updated><title type='text'>Beta 4</title><summary type='text'>I just released Beta 4 on Sourceforge. Read the release notes here.

This release includes initial support for the TI-89 (as I posted about previously), remote terminal (using the "uterm" program), and a user login. Check out the screenshot below to see the user login in action:

</summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/1861327516361353283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=1861327516361353283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/1861327516361353283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/1861327516361353283'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/beta-4.html' title='Beta 4'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-rE4qxpXmX0M/TXsVP74b6QI/AAAAAAAAEFs/AJMuv8ZgCIM/s72-c/punix-beta4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-7535104971454254602</id><published>2011-03-10T13:38:00.000-07:00</published><updated>2011-03-10T13:38:29.358-07:00</updated><title type='text'>Port to the TI-89!</title><summary type='text'>I fixed the display and keyboard input to work on the TI-89. There wasn't much to change since I already had key translation tables in place. I basically had to add one more translation table for the Alpha key, and change the existing translation table for the 2nd key so it works for both the 92+ and the 89.

For the display I removed the separator line at the bottom, changed the status line to 4</summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/7535104971454254602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=7535104971454254602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/7535104971454254602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/7535104971454254602'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/port-to-ti-89.html' title='Port to the TI-89!'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Vb9UAvhCgF8/TXk2Q26EmkI/AAAAAAAAEFc/m_uuPLrtvk8/s72-c/punix-89-2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-8128598525685234386</id><published>2011-03-09T16:22:00.001-07:00</published><updated>2011-03-09T16:24:08.137-07:00</updated><title type='text'>First TI-89 compile</title><summary type='text'>Here's my first compile for the TI-89:


I had to fix a few screen alignment issues, but there wasn't too much work to make it look ok. The key scanning needs some work to work with the 89's different layout, though.

I plan to work almost exclusively with the TI-92+ since it has a larger screen. Most of the pieces I need to write from now on will work the same on both calculators. Once I have a </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/8128598525685234386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=8128598525685234386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8128598525685234386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8128598525685234386'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/first-ti-89-compile.html' title='First TI-89 compile'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-4Mzx2AC_7GQ/TXgLKEpNc4I/AAAAAAAAEFU/zBg7SRTsfdY/s72-c/punix-89.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-6120830010006410220</id><published>2011-03-09T13:34:00.000-07:00</published><updated>2011-03-09T13:34:33.648-07:00</updated><title type='text'>vfork()!</title><summary type='text'>I got vfork() working well now, and exit() and execve() play nicely too. There were initially some memory leaks when doing a vfork() and then execve(), but those are all plugged now. I also fixed a few other bugs (one in heap.c, the memory manager) along the way.

I just released beta 3 demonstrating these awesome (in my mind at least) features.

Download it now. Also read the release notes.</summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/6120830010006410220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=6120830010006410220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6120830010006410220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6120830010006410220'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/vfork.html' title='vfork()!'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-6885575874436141162</id><published>2011-03-07T20:43:00.001-07:00</published><updated>2011-03-08T00:08:27.295-07:00</updated><title type='text'>Busy indicator</title><summary type='text'>I just added a busy indicator to the status line at the bottom. This indicator shows when the CPU is running a user program (or running in kernel mode on behalf of a user program).

I shifted the other status indicators (shift, 2nd, diamond, etc) to put it next to the battery indicator:


It's not the best-looking status icon, but can you do better? (Really, if you can draw a better-looking one, </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/6885575874436141162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=6885575874436141162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6885575874436141162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6885575874436141162'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/busy-indicator.html' title='Busy indicator'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-v4FPYHTFDhU/TXWlEQ5ChuI/AAAAAAAAEFM/Rx0LkD2CcZk/s72-c/busy.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-9107388813510341341</id><published>2011-03-07T19:26:00.000-07:00</published><updated>2011-03-07T19:26:42.389-07:00</updated><title type='text'>Here comes vfork()!</title><summary type='text'>I finally got vfork() working. It's about time...

There is no screenshot this time, since it won't show much, but I know it's working because when I first got it working, init (process 1) was taking up about 100% cpu time while the shell (process 2) waited for user input. I could tell init was running in the background because the activity indicators were running full steam. What this means is </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/9107388813510341341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=9107388813510341341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/9107388813510341341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/9107388813510341341'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/here-comes-vfork.html' title='Here comes vfork()!'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-3898887622712846465</id><published>2011-03-07T02:06:00.000-07:00</published><updated>2011-03-07T02:06:32.224-07:00</updated><title type='text'>Animated screenshot!</title><summary type='text'>Here's a new animated screenshot showing what I've completed up to this point.

</summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/3898887622712846465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=3898887622712846465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/3898887622712846465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/3898887622712846465'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/animated-screenshot.html' title='Animated screenshot!'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-wwvjlwKY_gQ/TXR0x3fkY_I/AAAAAAAAEFE/TnJeU-palq4/s72-c/punix-2011-03-06.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-4226098853654541067</id><published>2011-03-05T20:34:00.001-07:00</published><updated>2011-03-06T01:43:08.734-07:00</updated><title type='text'>Serious bug. Seriously.</title><summary type='text'>A couple days ago I discovered a somewhat serious bug in the kernel in which it throws an address error exception. The top of the stack frame at the beginning of the exception handler looked like this:

0015
0000
002f

The stack frames for most of the exception and trap handlers on the M68K contain the saved Status Register and saved Program Counter at the top. If this were the case with the </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/4226098853654541067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=4226098853654541067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4226098853654541067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4226098853654541067'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/serious-bug-seriously.html' title='Serious bug. Seriously.'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-1465086211585623052</id><published>2011-03-03T01:47:00.000-07:00</published><updated>2011-03-03T01:47:03.340-07:00</updated><title type='text'>New developments</title><summary type='text'>I know what it looks like: Punix is dead. I swear it's not! In fact I have just released the first Punix beta! You can download that at SourceForge

Recently I started work on a floating-point unit (FPU) emulator to add support for floating-point instructions, such as fadd, fneg, fsqrt, and more. So far instruction decoding (to get the destination, the source, and the operation) works for the </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/1465086211585623052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=1465086211585623052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/1465086211585623052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/1465086211585623052'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2011/03/new-developments.html' title='New developments'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-903080095213339433</id><published>2010-03-27T11:31:00.004-07:00</published><updated>2010-04-16T19:54:26.533-07:00</updated><title type='text'>gcc4ti and TiEmu</title><summary type='text'>Yay, I got gcc4ti compiled and installed on my PowerMac. It wasn't as painful as I thought it might be (though it required running as root just to compile). It did take quite awhile to finish, since this machine runs at only 400 MHz...Anyway, I also have TiEmu running on this box; I compiled that a few months ago. So what this all means is that I can continue writing Punix!I was also pleasantly </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/903080095213339433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=903080095213339433' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/903080095213339433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/903080095213339433'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2010/03/gcc4ti-and-tiemu.html' title='gcc4ti and TiEmu'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-4858898216905837273</id><published>2010-03-22T13:30:00.003-07:00</published><updated>2010-03-22T13:46:11.440-07:00</updated><title type='text'>Punix is hibernating</title><summary type='text'>I know it's been several months since the last real update. I've been really busy with school, work, and taking care of my pregnant wife. I'm trying to get back into developing Punix, particularly the filesystem, and I've been studying how the VFS works in Linux (it's much more straight-forward than the VFS implementations in BSD systems).My only working computer right now is an old PowerMac </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/4858898216905837273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=4858898216905837273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4858898216905837273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4858898216905837273'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2010/03/punix-is-hibernating.html' title='Punix is hibernating'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-8206949005994722861</id><published>2009-10-24T15:08:00.005-07:00</published><updated>2009-10-27T12:39:01.327-07:00</updated><title type='text'>Back to where I started</title><summary type='text'>I removed or commented out most of the tainted code and re-wrote a lot of them, and the system is working about the same as before the branch. I still need to implement the low-level filesystem functions and vfork()/execv() functions to make a working Punix File System.I also took the liberty of improving the tty driver. Previously this was based on crufty old code from V6 and V7, and it didn't </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/8206949005994722861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=8206949005994722861' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8206949005994722861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8206949005994722861'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2009/10/back-to-where-i-started.html' title='Back to where I started'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-4537098868758596392</id><published>2009-10-20T16:38:00.002-07:00</published><updated>2009-10-20T17:19:28.958-07:00</updated><title type='text'>Some bad news</title><summary type='text'>First of all, I want everyone to know that I'm still working on Punix, just at a near-glacial pace.Secondly, several months ago I decided to clean up the license issue in Punix. The issue is that I'm releasing Punix under the GNU GPLv2—both by my own choice and because I'm using bits of code that are already under the GPLv2 (mostly from PedroM)—but some code is derived from UNIX V6, V7, or </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/4537098868758596392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=4537098868758596392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4537098868758596392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4537098868758596392'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2009/10/some-bad-news.html' title='Some bad news'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-2845548814002888423</id><published>2009-04-09T11:21:00.010-07:00</published><updated>2009-09-28T23:07:06.417-07:00</updated><title type='text'>Screenshot goodness</title><summary type='text'>Because I've made significant changes to the user process for testing, I feel it's appropriate to post a screenshot of the latest revision, currently r132 r141. This screenshot shows tests of the uname(2) system call, the tty (/dev/vt), the random device (/dev/random), the link device (/dev/link), and the audio device (/dev/audio). All of these features are working in this revision. Additionally,</summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/2845548814002888423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=2845548814002888423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/2845548814002888423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/2845548814002888423'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2009/04/screenshot-goodness.html' title='Screenshot goodness'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-5352679859620202190</id><published>2009-04-08T09:38:00.004-07:00</published><updated>2009-04-24T18:29:50.963-07:00</updated><title type='text'>/dev/link works now</title><summary type='text'>Since last post I've been trying to make the /dev/link device driver work properly.To assist me in testing I wrote a simple version of the variable receiver function getcalc(), which implements part of the TI linking protocol and runs entirely in userspace (except for the read() and write() system calls themselves). For the most part the link device worked fine. When a byte comes in and the read </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/5352679859620202190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=5352679859620202190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/5352679859620202190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/5352679859620202190'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2009/04/devlink-almost-works.html' title='/dev/link works now'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-6318417633086464565</id><published>2009-04-06T11:20:00.002-07:00</published><updated>2009-04-06T12:15:36.422-07:00</updated><title type='text'>It works, it works, it works!</title><summary type='text'>No, Punix still doesn't have a filesystem, but it's getting closer. I've added tests of the various system calls in the user program, especially read() and write() on a few different devices (files under /dev/). This was achieved by modifying the open() system call to recognize those device names specifically, allowing read() and write() to operate as normal. The following is an incomplete list </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/6318417633086464565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=6318417633086464565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6318417633086464565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6318417633086464565'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2009/04/it-works-it-works-it-works.html' title='It works, it works, it works!'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-8532375057639440510</id><published>2008-11-12T22:40:00.008-07:00</published><updated>2008-11-12T23:20:56.557-07:00</updated><title type='text'>Memory and the heap</title><summary type='text'>The last time I posted, I had written a basic memory allocator. Since then, I've debugged it and integrated it more into the rest of the system. For example, I converted the proc[] array from an array of struct proc to an array of pointers to struct proc, which means 1) process structures are allocated when they are needed, 2) it takes a lot less static memory.Each proc structure took up 902 </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/8532375057639440510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=8532375057639440510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8532375057639440510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8532375057639440510'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/11/memory-and-heap.html' title='Memory and the heap'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-5868726469975503325</id><published>2008-10-20T02:05:00.005-07:00</published><updated>2008-11-18T23:49:50.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vt'/><title type='text'>More demos of the virtual terminal</title><summary type='text'>Here are a few more animated screenshots demonstrating the virtual terminal in Punix.This one demonstrates some escape codes for clearing parts of the current line or screen:This demonstrates scrolling the screen up and down:This demonstrates the use of the graphics character set, invoked with the Shift In (SI) character, or Ctrl-N:This last screenshot demonstrates the compose key feature, which </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/5868726469975503325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=5868726469975503325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/5868726469975503325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/5868726469975503325'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/10/more-demos-of-virtual-terminal.html' title='More demos of the virtual terminal'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-9046665486052860136</id><published>2008-10-16T17:56:00.004-07:00</published><updated>2008-10-16T18:12:04.171-07:00</updated><title type='text'>Virtual Terminal demo!</title><summary type='text'>Today I got the terminal emulator in a usable state. On the input side of it, the modifier keys—shift, diamond, and 2nd—work, and most of the keys translate correctly with these modifiers (the mechanisms are in place, but the translation table needs to be tweaked). On the output side, the terminal correctly parses nearly all of the common escape codes of the VT-100 (upon which I based my terminal</summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/9046665486052860136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=9046665486052860136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/9046665486052860136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/9046665486052860136'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/10/virtual-terminal-demo.html' title='Virtual Terminal demo!'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-4431760257212212668</id><published>2008-10-12T12:01:00.009-07:00</published><updated>2008-10-13T13:13:23.917-07:00</updated><title type='text'>Status update 2008-10-12</title><summary type='text'>Recently I've phased out the old text rendering code in favor of the newer "vt" virtual terminal emulator. This character device driver supports almost every VT-100 escape code. I tested the snot out of it, even running things like "links" (a text-only web browser) on it, to make sure it handles the codes correctly. The following screenshot shows the new terminal emulator in action. It doesn't </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/4431760257212212668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=4431760257212212668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4431760257212212668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/4431760257212212668'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/10/status-update-2008-10-12.html' title='Status update 2008-10-12'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-8396310053806086614</id><published>2008-09-10T12:46:00.002-07:00</published><updated>2008-09-10T13:01:26.853-07:00</updated><title type='text'>Code Layout Change</title><summary type='text'>I've been meaning to change the layout of the kernel source for a long time now, but I was reluctant to change it for fear of breaking the build process (and also because CVS isn't very good when it comes to renaming or moving files and directories). However, today I finally changed the names of the kernel source directories:sys is now known as hkern is now known as sysThis naming convention is </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/8396310053806086614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=8396310053806086614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8396310053806086614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8396310053806086614'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/09/code-layout-change.html' title='Code Layout Change'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-8592838829342872588</id><published>2008-08-23T20:07:00.002-07:00</published><updated>2008-08-23T21:00:05.343-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='drivers'/><title type='text'>The Punix File System (with some background history)</title><summary type='text'>It's been a while since I first designed a version of the file system for Punix. It first started out with the block translation occurring in the flash device driver; the file system driver would not know where in Flash ROM the blocks would be stored. Recently I considered moving this process into the file system driver and keeping the flash device driver simple; this would mean that the flash </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/8592838829342872588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=8592838829342872588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8592838829342872588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/8592838829342872588'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/08/punix-file-system-with-some-background.html' title='The Punix File System (with some background history)'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-3531457002876741964</id><published>2008-08-23T12:59:00.003-07:00</published><updated>2008-08-23T19:43:46.383-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scheduler'/><category scheme='http://www.blogger.com/atom/ns#' term='cvs'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Subversion and scheduler</title><summary type='text'>A couple days ago I finally put the Punix source code into the Subversion repository on SourceForge. I figured it was about time that I used Subversion instead of the older CVS. This also means that the CVS repository is deprecated and will not be maintained. It will exist only for looking at code history.Also, during the past couple of days I have been working on fixing the scheduler. To do this</summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/3531457002876741964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=3531457002876741964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/3531457002876741964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/3531457002876741964'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/08/subversion-and-scheduler.html' title='Subversion and scheduler'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-6230251479953377202</id><published>2008-01-23T23:33:00.000-07:00</published><updated>2008-01-24T00:40:56.310-07:00</updated><title type='text'>execve() starts to take shape</title><summary type='text'>Despite the lack of a memory allocator and a working file system, I decided to start working on the execve() system call. In its current state, it doesn't load the text and data sections from a file; instead, it uses a hard-coded location for the program code, and it doesn't have a data section. Also, the stack pointer points to a global array variable with a fixed size. However, execve() has </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/6230251479953377202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=6230251479953377202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6230251479953377202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/6230251479953377202'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/01/execve-starts-to-take-shape.html' title='execve() starts to take shape'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9031265110129021092.post-932981006092005545</id><published>2008-01-19T14:12:00.000-07:00</published><updated>2008-01-19T14:54:51.351-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='drivers'/><title type='text'>Status 2008-01-19</title><summary type='text'>The development of Punix is still hobbling along. It still needs a few things implemented before it can boot up completely; the three major components it needs are a memory allocator, a file system, and a Flash ROM block device driver. It already has most of the upper and middle layers of the file system written, but it lacks the low-level code to read and write an actual file system on a block </summary><link rel='replies' type='application/atom+xml' href='http://punix-os.blogspot.com/feeds/932981006092005545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9031265110129021092&amp;postID=932981006092005545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/932981006092005545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9031265110129021092/posts/default/932981006092005545'/><link rel='alternate' type='text/html' href='http://punix-os.blogspot.com/2008/01/status-2008-01-19.html' title='Status 2008-01-19'/><author><name>Christopher</name><uri>http://www.blogger.com/profile/16414323982129709470</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
