The Mshell Blog P4

The MShell Blog

(page 4)

The "Ultimate" OS-9/NitrOS-9 System GUI

Prev / Next

If I Recall Correctly... (02/01/2014)

I now have the V-Mem system pretty much under control. I think I can now successfully add as many pages to as many buffers as the Coco has memory. Since the minimum memory requirement for MShell is 512k and deducting system and program use, that's about 256k of buffer space on a 512k system, 758k on a 1 meg system and 1.5 meg on a 2 meg system. The MShell memory manager will detect the memory in the system and use it accordingly. For the past couple of days, I've been working on the directory panel scrolling routines. It's pretty amazing to watch the Coco be able to scroll through my 477 files in my CMDS directory. The only downfall to being able to read and display such large directories is that it takes the Coco quite a bit of time to read all the info from the disk and put it in the buffers. Once the information has been read, it's stored in the arrays and does not have to be read again unless you alter the current directory or change directories in that panel. I may have to break down and do the disk read routines in machine language as I think the overhead in the C i/o libraries are the bottleneck here. The information being read and displayed is the same as entering "dir -e". The "dir" cmd alone does this about 800% faster than my C routine. That's a huge difference! My routine reads the file entries from the directory and then opens each file's descriptor to read it's info. I will be investigating into this eventually to see why the C routine is so slow. Ultimately, I feel this will have to be done in assembly for speed. I think there are a lot of routines I will eventually convert to ML but I will most likely do them in C first just to get things going. One thing I did get going is the "Status Bar" at the bottom of the screen. Here I have an area that shows details and attributes of the currently selected file in the listing. As you scroll the list, the status bar updates to the new selection.

Once all this is stable and works correctly, I can start adding the ability to read RSDOS disks and RSDOS partitions on VHDs as well as read directories on the DW4 server to mount new disks and move files to the Coco from the PC. Again, this has all already been done in other projects and just needs conversion. I just see no need in fighting 2 or 3 different listing styles while the original OS-9 listing isn't complete. One thing at a time...

Overall, the complete interface is coming along nicely. Other than listing the directories and being able to scroll through them, there is still no functionality to the listings. As I get the listing routines completed, I will be adding the ability to open a new directory from the current list by clicking on it's name or to go back to the parent directory. I will also be adding the ability to move effortlessly to another drive. All these routines have been done before in DW4Man and Sound Chaser and just have to be "converted" to MShell's V-Mem format.

As a teaser, here is a view of the current interface and directory listing system also showing the status bar:

The "active" panel has the thick black border as well as showing the selection cursor. Notice the directory names at the top of each panel. I have more info I will be showing in the status bar but I want to get all the scrolling routines finished first. Scrolling a directory is done with the up/down/left/right arrows with shift/up/down moving a full page at a time. To change panel you use the "<" and ">" keys. For mouse control, you just "click" on the desired file to move the cursor there or click the various arrows in the panel corners to scroll. To bring up the directory panel menus, you click the panel's directory name:

Each item in the panel menu can be clicked or selected with a keystroke by using the "upper case key" in the menu selection. There will most likely be more options in this menu soon as I begin to add features. A similar menu will soon be added for file manipulation by just clicking (or hitting enter) on a filename. This will be the "File Context Menu". The options in this menu will be based on the file type and format derived from the file extension, size, and attributes.

As you can see, I've been quite busy lately now that the V-Mem system has started coming together. You should have seen me trying to trace down the bad pointers that was causing the V-Mem system to jump into "Never Never Land". My mother would have washed my mouth out with soap had she heard the language used in the process :-)

I hope to have much more to show in the next installment so hang in there... It's coming :-)

*****************************************************************************************************************

Prev / Next

web counter