Page 3 of 7

Patlock 0.0.1 RC1 Released

Posted: Sun Jul 06, 2008 9:39 am
by inflater
Well, the Patlock 0.0.1 "release candidate" version is now available for public :)

It's a hybrid monolithic kernel (currently single tasking), running in 32-bit pmode. It's aimed for stability, so please check if everything works alright 'under pressure'. It's programmed in FASM, the "spiral" part is in FreePascal, linked together to the kernel by using PARTCOPY and offsets. :)

For successful run, you need at least 80486 with math coprocessor and 4 MB RAM. I know no one has 386's these days, but it's just a remark. :)

For a whole list of supported commands, type 'help' after booting, here are only some of them:

exit - Displays a menu where you can choose to turn off, halt or restart the machine.
hello - Swithces to real mode, prints a hello message and switches back to pmode and prints another hello world message.
spiral - This is the pascal subprogram inside the kernel. This will display a spinning spiral in 256 colors for a while.
beep - This will play a short 6bit sound through the PC speaker. The same used for booting.
cmosinv - Invalidates the CMOS RAM. In other words, destroys the checksum, leaving the system clock and some settings in BIOS after reboot, zeroed.
cmospwddel - No comment. :)
keyb [lang]- Switches between keyboard layouts. [lang] can be SK, US or UK.

Known bugs:
- PATLOCK DOESN'T WORK PROPERLY ON MS VPC 2007. Use another emulator instead. As far as I know, in VPC there are: floppy reads broken, SPIRAL command sets corrupted palette and CMOSPWDDEL does the same operation as CMOSINV. EXIT command, choosing to halt the system results in a "unrecoverable error". On the other side BEEP seems to work like on a real HW. :)
- QEMU, VMWare: The SPIRAL command works way too fast.
- Bochs, QEMU, VMWare: The BEEP command doesn't work, because the speaker's "PWM" isn't emulated in these emulators.
- The CPU speed detecting routine will return weird results if you are on a emulator (it's normal, because the CPU is emulated of course.)
- If you choose to triple fault the system, the real machine reboots and so does Bochs. But if you are running the Bochs debugger, you must (after the triple fault) switch to the console and press C - it's not a bug, just for explaining.

That should be all. I would like your opinions and even critics!

Anyways, the floppy image can be downloaded here:
http://patlock.xf.cz/release/candidate/english.img
or if you prefer the self-extracting one:
http://patlock.xf.cz/release/candidate/english.exe

NOD32 seems to report "a unknown TSR.BOOT" virus in the "english.img" file :lol:, or on the floppy boot sector. I have informed Eset about this, so for the nod32 users: nothing is infected and just ignore the warning. If NOD32 prevents you from accessing the image file, try downloading the self extracting one and disable boot sector checking in NOD32 control center.

I'll update the site patlock.xf.cz someday when I'll have spare time.

Again, I'm welcome for your opinions. :)

Regards
inflater

Re: Patlock 0.0.1 RC1 Released

Posted: Sun Jul 06, 2008 12:28 pm
by piranha
For successful run, you need at least 80486 with math coprocessor and 4 MB RAM. I know no one has 386's these days, but it's just a remark
Actually my friend up the street has a 386.

Very nice OS. Tell me, does it support FAT12 reading? And is the shell external?

Only one bug...If I type

Code: Select all

helphelphelphelphelpmoooooimacow
It still displays the help message.

-JL

Re: Patlock 0.0.1 RC1 Released

Posted: Sun Jul 06, 2008 12:37 pm
by inflater
Thanks piranha. I've planned to do FAT12 reading but I was totally fed up with the slow FDD driver. Then I realized that I could do a multitrack reading by the FDD controller itself... but it isn't programmed. Primitive FAT12 support (that means a working LD command along with loading user applications) will be planned to Patlock 0.0.2 or 0.0.3.

The shell is internal. Everything is tucked to one file, "patlock.pmx". :)

As for the bug, I'm going to fix that right now! :)

//EDIT: Bug fixed along with some other ones. The links now hold the updated version, it's the same disk image - but with a fixed version of course :)

BTW how's my English in the localized part of my OS? Yeah I know, if you are running VPC 2007 and the driver fails to read the floppy, you'll see some parts untranslated on purpose but that's because I've translated only the shell (built into the kernel file) and the BSOD handler. No need to translate the kernel I think. If somebody needs help understanding something, e.g. if I have written something in bad English, let me know :)

Regards
inflater

Re: Patlock 0.0.1 RC1 Released

Posted: Mon Jul 07, 2008 11:13 am
by inflater
Anyways, what should I add to the version 0.0.2? I've planned simple FAT12 reading and such, but I'm out of ideas right now #-o

Re: Patlock 0.0.1 RC1 Released

Posted: Mon Jul 07, 2008 12:19 pm
by lukem95
i'd sit down for a few hours and think about what you can realistically include in each release, i've done that all the way to 1.0

Re: Patlock 0.0.1 RC1 Released

Posted: Mon Jul 07, 2008 1:11 pm
by 01000101
TCP/IP Stack? (or nic driver)
SMP support?
SMBios parsing?
CDROM driver?
APM?

just a few suggestions. If you don't really care about network stuff, I would really go into SMBios parsing or the SMP support.

Re: Patlock 0.0.1 RC1 Released

Posted: Mon Jul 07, 2008 1:19 pm
by inflater
The APM part is partially done, it's the shut down function, but maybe "suspend" and functions like that should be implemented. Thanks for your quick responses.

CDROM driver, SMBIOS parsing... seems to be easy enough :)

Anyways did you found another bugs in the kernel, or e.g. grammar errors in localization? :lol:

Re: Patlock 0.0.1 RC1 Released

Posted: Tue Jul 08, 2008 8:38 pm
by Dex
Nice work inflater, works great, one thing i found is it's not as slow (floppy) as you have made out, are you sure you do not have a slow fdd controller on you test PC ?, as it seem fine on my test PC.

Re: Patlock 0.0.1 RC1 Released

Posted: Wed Jul 09, 2008 8:14 am
by inflater
Thanks Dex for testing. As for the FDD driver, it relatively is slow, I tried to read both 80 cylinders on both heads and it took more than 5 minutes, so I didn't wait for the result. Maybe because my FDD driver reads one sector at a time. I plan in Patlock 0.0.2 to do a multitrack reading along with fat12, but one-sector-reading will be possible, too.

I've tried Windows 95's disk-copy and it was more faster on that same machine :|

Regards
inflater

Re: Patlock 0.0.1 RC1 Released

Posted: Sun Aug 24, 2008 9:00 am
by inflater
Okay, because the holidays are ending, I'll try to code a primitive DIR command and release the full 0.0.1 version as since this was a 0.0.1 release candidate. Then I'll update the site and put Patlock to grave for one year (next holidays), since I will not have that much free time to do OSdev. I'm a slow coder :(

Regards
inflater

Re: Patlock 0.0.1 RC1 Released

Posted: Sun Aug 24, 2008 1:53 pm
by chezzestix
A quick little OS, better you than me doing this in pascal thats for sure....

Who can tell me how this was done with a single echo?
Image

I have too much "fun" some days :P

Answer:
CTRL+J

Re: Patlock 0.0.1 RC1 Released

Posted: Mon Aug 25, 2008 3:03 am
by inflater
Do you were using the original US keyboard driver? Hmm... must take a look at the scancodes :)

BTW it was done in 20% 16-bit ASM, 70% 32-bit ASM, 10% 32-bit free pascal env :)

Re: Patlock is changing name...

Posted: Fri Aug 29, 2008 7:58 am
by inflater
Okay, I've changed the name from "Patlock" to "Derrick", since Patlock was in it's release candidate version. I don't know when the Derrick 0.0.1 (full) will come.

Planned features for Derrick 0.0.1 (formerly Patlock 0.0.1 full):
-Bugfixes, especially the keyboard driver
-Finish the LD command

BTW how's my english in the kernel? Is it (from at least one half) gramatically correct? :lol:

Re: Derrick 0.0.1 (full) released

Posted: Thu Sep 04, 2008 12:35 pm
by inflater
Derrick 0.0.1 full released ;)

New features:
- Switchable 32-bit and 16-bit floppy driver, since the 32-bit has some problems on some emulators or machines.
- 80x50 text mode support
- Very basic "setup" utility. Has no practical use yet, only for switching the text modes/fonts, setting the keyboard layout, setting the fdd driver and some debug functions.
- One extra 80x25 font... in case you get bored with the original
BTW you can also load the VGA BIOS default font, but this will cause wrong characters in KEYBCS2 codepage programs (especially Slovak diacritics, doesn't apply much to English heh)
- Fully working LD command, displays all files and directories in the root dir along with their attributes. Also checks for the file system, if its not FAT12 it will display a error message, because when a unformatted/nonstandard floppy would be used, values from BPB wouldn't be valid and it would cause divide by zero error BSOD.
- Fixed some English spelling, thanks suthers.
- Fixed the keyboard driver, but I've kept the CTRL+J bug - to let you write nonstandard characters.
- Some weird debug commands (usually I was bored... :D) as setup PIT to 65kHz, switch to some VESA text mode (doesnt work in emulators but i've confirmed it to work on my rHW, causes a good text corruption, because my video driver doesn't support that mode ;))

New features, hidden in code:
- Customisable BSOD colors, for foreground and background :D
- default system interrupt for user applications (INT 30h)
- Kernel can be loaded from a hard disk (in a weird way for now)

Stuff removed:
- KEYB command, use the SETUP utility instead
- Reduced the stack size from 16kB to 12kB

http://patlock.xf.cz/derrick/derrick_english.img (English)

Planned features for 0.0.2:
- Faster FDD driver (32-bit). Yep, you may encounter slowness in Derrick 0.0.1 on some machines or even error messages. If that happens, open the "setup" utility by typing SETUP, then select "Control Panel", "Other" and try the 16-bit driver.
- FAT12, loading custom applications (in pre-alpha stages at 0.0.2)
- "Change dir" command
- LD command: make it work inside subdirectories + display file size and free space on the floppy
- Separate the shell off the kernel, but very unlikely

And some screenshots ;)
Image

Image

//EDIT: Enabled the US keyb driver again plus added "VGA clocking mode options" in Debug functions in case you want to experiment.
//EDIT: Fixed the ECHO command to display in any case, repaired "VGA clocking mode options"
//EDIT: Added "last font loading", that means - after e.g. spiral demo, the previous text mode and fonts are loaded instead of default. That same for the SETUP or EXIT command, since the "SETUP" utility cant operate in 80x50.

Regards
inflater

Re: Derrick 0.0.1 (full) released

Posted: Fri Sep 05, 2008 1:35 am
by AJ
Hi,

Looks good. From your first screenshot, though, the ECHO command only seems to echo upper chase characters. Is this because you wanted case insensitivity so your command shell converts everything to upper case internally? In which cas, I guess a case insensitive version of strcmp/strncmp would be in order :)

Cheers,
Adam