Mattise Version 1.0 Alpha Released

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Mattise Version 1.0 Alpha Released

Post by pcmattman »

The alpha for version 1.0 of my operating system has (finally) been released on the 4-month 'anniversary' of project start. It can be downloaded at sourceforge: http://sourceforge.net/projects/mattise/ as a ZIP with a disk image and a quick 'readme' to familiarize users with the OS.

Please do test the operating system and point out problems within it. It would also help if you could point out errors in my code.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Post by Brynet-Inc »

Looks good pcmattman, Keep up the good work 8)

BTW: Any specific reason you're using CVS vs SVN? Just out of curiosity..
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
~
Member
Member
Posts: 1228
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

[BUG]

Post by ~ »

It looks like the floppy disk never stops spinning or at least delays a very long time.
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Post by pcmattman »

Yes, the floppy is set to 100 seconds to spin down. This was mainly for testing purposes. Next release it will be much smaller.

I'm using CVS because I completely understand CVS as a pose to SVN and because I've already got everything I need to connect to CVS repositries.

Edit: the floppy timeout is now down to 2 seconds. Any other bugs are welcome :D
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Post by inflater »

Nice work, pcmattman, but I like independent operating systems from UNIX/MS-DOS more, but - keep up the good work. 8)

One technical thing - the SHIFT key doesn't work (it doesn't make the letter caps.)

inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English :P)
turtling
Posts: 8
Joined: Sun Mar 11, 2007 2:01 pm

Post by turtling »

I like the M in the top right corner. It's a good idea. I like it a lot. 8)
I tried 'ls' and 'dir', without success, but the 'help' command was there. So I typed 'ld', for list dir, I think. The extra line return between each file wasted some precious screen space, I think.
Programming: sewing for men.
User avatar
~
Member
Member
Posts: 1228
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Post by ~ »

turtling wrote:I like the M in the top right corner. It's a good idea. I like it a lot. 8)
I tried 'ls' and 'dir', without success, but the 'help' command was there. So I typed 'ld', for list dir, I think. The extra line return between each file wasted some precious screen space, I think.
And I am impressed that you did all that in 4 months, or how long did it take you to get there?
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Post by pcmattman »

The 'M' in the top right corner is a remnant of testing the multitasker :D

'ls' and 'dir' are not supported, the command you're looking for is 'ld'. At the time of creation there was basically nothing on the floppy so it only took up half the screen. Now I'm going to have to play around with it.

And SHIFT should work, I'm pretty sure it works for me.

4 months it has taken, that is true. I have worked at it almost every day of the past 4 months, though, so it's not like it was easy.
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

Code: Select all


'MULTSECTTXT' (fil) - file size is 523 bytes = 1 kb

'WHEEEEEETXT' (fil) - file size is 562 bytes = 1 kb

END USR

root@localhost> $ help
help: displays this information
echo: prints text
exec: executes a program
lp:   lists the processes running
cls:  clears the screen
ld:   lists all the files on the drive
read: displays a file
exit: exits Mattise and shuts down the computer (NI)
restart: restarts the computer
selftest: performs a self-test
encrypt: encrypts a string
decrypt: decrypts a string

 oot@localhost> $ selftest
 irst memory block allocated: id: 3159, address: 5331968
 econd memory block allocated: id: 3159, address: 5331968
 oot@localhost> $ 
There's some issue with some of the commands, as the first chracter of each line seems to be missing. It's not all the time, but it's often.

Copypasting the above was painful btw, because the screen seems to contain NUL characters after each line??

I was also unable to figure out how to actually read any of the files.
Neither / or \ seemed to work as a directory separator...

Also, I see no text mode cursor. Is this normal? If you know where the cursor should be, here's how to set the position.

Code: Select all


    // set cursor position:
    //
    // screenpos is simply (y*80 + x) for 80x25 textmode
    // out8_p is byte output with io_wait
    
    // cursor LOW port to vga INDEX register
    out8_p(0x3d4, 0x0F);
    out8_p(0x3d5, (unsigned char)(screenpos&0xFF));
    // cursor HIGH port to vga INDEX register
    out8_p(0x3d4, 0x0E);
    out8_p(0x3d5, (unsigned char)((screenpos>>8)&0xFF));
Simple enough to copypaste. ;)
edit: also set the character attributes to non-zero to actually get the cursor to show, otherwise the cursor will be black on black which isn't visible

Finally, it seems like your keyboard driver doesn't handle shift, as I was unable to get any capital letters (or special characters that need shift for that matter).

That was in Bochs. Didn't have time to test on real PC yet. I'll see if I can manage at some point...
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Post by pcmattman »

Null characters at the end of each line are caused by the clear-screen algorithm which clears to NULL.

I'm still trying to figure out why characters at the start of the line are sometimes cut off, it probably has something to do with newline handling.

/ is the only directory seperator, ie

Code: Select all

read /usr/wheeeeee.txt
That should work.

I did try to put in the text-mode cursor but it never worked properly. I'll be fixing that soon as well.

The keyboard driver does handle shift, I don't know what you're all talking about there.

After reading your post, mystran, I did go and test on a real PC. Shift works, reading of files works etc...

Obviously I have some serious quality control to work on. May I ask which version of Bochs/what hardware you are testing on?
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

My Bochs is more or less near latest, as I just updated it like mm.. 8 days ago or something (and shift works the obvious way in my own kernel so I'd say "strange").

As for clearing screen, I suggest you clear it with bytes 0x20,0x07. You can ofcourse optimize and clear the whole screen with 0x0720 (little endian 16-bits = character and attribute at the same time) or even 0x07200720 (32-bit access for less access).

Something like:

Code: Select all

// 16-bits at a time, for clarity
void clearscreen() {
    static const unsigned short *screen = (unsigned short*) 0xB8000;
    for(i = 0; i < 80*25; i++) screen[i] = 0x0720;
}
That'll be space and white-on-black. On that background the cursor should show fine. :)
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Post by pcmattman »

Nope. No cursor. Although, as I type/as characters are displayed the cursor does show up for a short period of time (ie. before the characters get drawn).
anon19287473
Member
Member
Posts: 97
Joined: Thu Mar 15, 2007 2:27 pm

Post by anon19287473 »

The sourceforge site says there are libs? Are they libs I'd be familier w/ (from Unix, curses etc.)?
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Post by pcmattman »

Ahem... it says libs in development. It's basically a stdlib that incorporates standard stuff like putc, etc... that developers can link in to their code to write programs for Mattise.

The functionality would be the same, but you wouldn't be able to use Unix libs, you'd have to use my libs.
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Post by pcmattman »

@mystran - I reinspected my code and fixed the text-mode cursor.
Post Reply