PizziOS - Project Status
[ Return to PizziOS ]
Current Version: 0.03.0002
29 Aug 00
   We have disk access. Well... temporary anyway. PizziOS reads Fat16 partitions and can recognize Fat32 partitions. It's completely read-only, even the disk driver is read-only right now. The user starts in the root directory, can "cd" to a hard drive partition (hd0 to hd31), then browse around in the directory structure using "cd" and "dir". "Root" takes the user back to the root directory. We also have command-line parameters. The whole prompt system will have to be redone when I start on tasking (my next project) to seperate it from the OS. The "dir" command will also have to be redone as a command task, not as a kernel task. A million other changes were made since the last update.
24 Apr 00
   Finally I've managed to merge the PizziOS binaries using the newly updated Elink. The data segment now works like any normal data segment, and is linked with the code segment and osinit to create a self-loading segmented binary. The only other significant changes are a more structured command interpretation procedure which is only possible with a data segment and code segment that are part of the same object file, and new quotes in the build-specific commands (1 = Steely Dan, 2 = Styx, 3 = Shel Silverstein). Visually, there is no difference between this version and the last, but to the programmer (me), this makes a huge difference. Another change is that this version can be assembled entirely with TASM and linked entirely with ELINK.
18 Feb 00
   Boot.com redone. Now has a cool progress bar, just as Osupdate has. Copyright info, etc. displayed upon bootup. I learned to turn disk drive motors off, so now osupdate and osinit can do so. Osupdate changed to give the user the option to override the media descriptor so you can install PizziOS onto disks with bad boot sectors without reformatting the disks first.
16 Feb 00
   Osupdate was changed once again to add a progress bar (view screenshot) that is updated once per sector written to the disk.
12 Feb 00
   The 8k OS limit is no more. New, very professional looking osupdate.com, and boot.com was redone to support loading over track and head boundaries, and over 64k real mode segment boundaries. Osinit is also twice as big now. But now it copies memory and creates an IDT unrealmode style to avoid segment boundary issues. The new boot.asm has 1 byte between the end of the boot sector code and the os signature word when the intro is enabled (the "showy" equ is defined), so another opcode or two in there will cause a crash. It took a lot of optimization to get it to run at all. The download version doesn't have the intro. I'm keeping the intro in in the code, 'cause it's kinda cool, but I disabled it with equ's because it gets annoying quickly.
   A bug in the RLE features of the standard print command (cout / printf equivalent) was found and fixed. A bug in the Bios Disk Parameter table in boot.asm was found that for some reason didn't seem to have any effect on BIOS's ability to read the disk, but caused problems with the new osupdate.com. The new osupdate.com will not install over certain version PizziOS boot disks because the table is misalligned and osupdate won't be able to find the media descriptor.
   Build-specific commands were implemented and are associated with an equ statement in options.inc so that they can be removed for an official build. The builds available here for download have the build-specific commands left in. There are three: "1", "2", and "3". As of now they display a Steely Dan quote, scroll down a line and clear the screen respectively, so they're not very useful yet.
10 Feb 00
   Ok well, I tried to change the whole basic OS binary structure. It failed miserably. Well actually it ran, but it failed to achieve nearly all mission objectives so I reverted to the old version.
   Currently plan to start work on some read/write hard disk commands. For starters, there will be zero disk buffering at all, except the 512 byte buffer necessary to coordinate disk transfers. I'm going to start with read-only FAT16 support. Making it read/write won't be too hard to do afterwards, and will involve many more hard disk crashes so I'm putting that off until I have FAT down real well. Adding FAT32 shouldn't be too hard to do later on. Eventually I'll go back and support a native PizziOS disk format and add disk buffering to the low-level ATA driver.
   The proposed name for the whole file system / hard disk driver component of the OS is the "In There Somewhere" filing system. Other potential names for PizziOS components include the "Wait, wait don't tell me" plug-and-play system, and I know I had another but I can't seem to remember. The official abbreviation for the PizziOS Data Area may be changed from PDA to POSDA, because that sounds kinda like "pasta", which makes a much better acronym.
What's new in this version:
   -   Single-tasking ATA read commands
   -   PizziOS can read Fat16 directories (and files since directories are actually stored as files).
   -   Command-line parameters
   -   Lots of other stuff
Long term To Do list:
   -   Seperate the command prompt from the kernel as a process. in progress...
   -   Allow multiple instinces of the prompt.
   -   Service calls / interrupts.
   -   Timer driver
   -   Multitasking
[ Return to PizziOS ]
Copyright 2000, Ed Pizzi