since December
2006
last updated 10/26/2009
News
PCOS
Backstory
Frequently Asked Questions
Development Plan
How To
Contribute
Downloads
Contacting
Us Version
History
Screenshots
News!
-back to top-
10/26/09
Progress made on x86 disassembler.
Before any major work can be accomplished on the PCOS instruction
execution core, a comprehensive disassembler must be completed which can take
x86 object code and translate it into assembly code, similar to the old DEBUG
tool included with many DOS systems. A working model of this has been developed,
and is being pushed toward completion. Images are available in the
Screenshots
section. As you can see, most of the basic instructions have already been
implemented but some work remains before completion.
10/5/09
Decision on future PCOS instruction set.
A conclusion has been reached on the issue of the PCOS kernel
instruction set. Although, due to the speed hit which is incurred, the authors
of the kernel initially wanted to stay away from instruction sets which involved
manipulating individual bits to execute instructions, they settled on using the
Intel x86 architecture due to several reasons, the foremost being the
reusability of code compiled for other x86 platforms such as DOS. This means
that development of fully functional applications for the PCOS platform will not
be held up by the lack of an adequate compiler as has happened with the kernel
series 1 releases. The move to x86 will, in essence, turn the PCOS kernel into a
DOS multithreader of sorts, allowing developers can reuse code they have already
compiled with their favorite language and IDE and have the programs execute
directly on the PCOS kernel with the added benefits of multitasking, virtual
memory and other trademarks of a modern operating system. Under this premise,
traditional DOS apps will run as originally coded and programs designed to
exploit the GUI and other features of PCOS will be able to do so as well. Since
all interfacing with the PCOS GUI will be done via memory and/or interrupt
calls, an application could also be designed in such a way so as to allow it to
behave one way under plain DOS and behave as a PCOS app while running with PCOS.
9/7/09
Instruction set changes.
Recently the developers of PCOS have agreed that it may be beneficial
to change the PCOS instruction to a clone of that a specific microprocessor or
processor line. This would not only streamline developing, but would eliminate
the need for a specific compiler since anything compiled for that chip would run
natively in PCOS. The instruction set that will be adopted will be from a
platform which uses whole bytes to describe registers, memory locations, and the
like. Among the platforms being considered are the DragonBall processor, the ARM
series, and Motorola's 68K family. We are initially not researching the Intel
8088 and others which would involve splitting the instructions into individual
bits in order for the kernel to determine what to do. So in short, we want your
vote. Which instruction set should become the standard for PCOS development? Let
us know what you think.
5/22/09 The PCOS Development HQ moves again!
Well, not only has the Development HQ moved its physical location,
but now its web location is changing as well. Due to Yahoo's decision to shut
down Geocities, the project's site has been moved here to Tripod.
3/14/09 Rewrite of Memory Module scheduled.
The Memory Module, in its past design, had little more to do than
keep track of which memory blocks were allocated to which applications, and
depended on the underlying memory driver to perform the actual allocating,
releasing, and compacting. In the scheduled rewrite of the Memory Module, it
will take over all these jobs, allowing a multitude of extra handles to be
allocated. Even under pure DOS with the standard XMS driver, handles eventually
reach a short supply. The first release may have an upper memory limit of 64MB,
but this will quickly be changed to the full 3.5GB that PCOS kernels past could
work with.
2/14/09 New instruction set
released.
Today marks another significant step in the development of the series
2 kernel. The new instruction set list has been completed and added to the
Kernel 2 Series Specifications Document. The 61 instructions currently
listed are definite at the time of this writing, but more may be added as
development continues.
2/08/09 Work on the kernel
resumes.
Even though the PCOS Development HQ is not yet settled into its new
location, this hasn't stopped everything. Work began again recently on the
Memory Module for the new series 2 kernel, and is scheduled to be completed by
the end of the month.
1/09/09 The move begins...
The PCOS Development HQ has begun the moving process. Oh, for a
simple MOV instruction to work in this case! After taking the majority of the
month of December off for holiday activities, the staff will begin to assemble a
collection of new hardware which will form the backbone of the new testing and
development environment. Granted having to move the entirety of the PCOS HQ will
take some time, especially since it's being done in the middle of Winter, (good
timing on our part, eh?) but the end result should be well worth it. On
completion, some time in the next few months, development will get up to speed,
and return to the regular schedule.
11/01/08 PCOS Development HQ
upgrades.
Some changes are in the wintry air! Over the next month the HQ will
be relocating, so if updates to this site become a little sparse, don't worry,
we're not disappearing! After the move, the HQ will be getting some new hardware
for the explicit purpose of creating a more diverse environment for software
testing. New test machines will be added to the existing ones already in use,
allowing developers to test the upcoming series 2 kernel on desktops and laptops
both new and old. So stay tuned!
10/21/08 We have a winner!
Just over two weeks after its release, the message has been cracked!
We congratulate an obviously capable programmer known as Artelius, for being the
first to obtain the solution to the ESEA encrypted text posted earlier this
month. Of course, the challenge was not to see if the algorithm can be cracked,
but to see how long it takes to start from scratch and hack the encryption, and
the initial run of the Encryption Module fell horribly short. In an email,
Artelius states that it took him a mere week to research the code, come up with
several algorithms to do the job, refine them, write the final
C language implementation,
and come up with the winning text, running 12,884,901,888 combinations on three
different computers simultaneously before achieving his solution. His findings,
as well as those of the other testers will be rolled into the final
implementation of the Encryption Module, which will support a more random means
of generating keys, using a pass phrase to generate a key, and a key length four
times that of the preliminary version, as well as more variance on the
encryption algorithm. This should make it a tad more difficult to hack, so the
challenge isn't over yet!
10/18/08 Yet another module added to the series 2 lineup.
That's right, another feature is added to the mix. This new module,
currently known as "ascmath" is a system by which the computer will be able to
work with extremely huge numbers. The API accomplishes this by treating numbers
as ASCII strings, and mathematically manipulating them one digit at a time, much
as one would do if performing the calculation by hand with the good
old-fashioned pen-and-paper method. To date, the module supports addition,
subtraction, multiplication, finding powers of numbers, all with negative, and
floating point numbers as well as the obligatory positive ones. Bugs are being
worked out which crop up if mathematics are performed on a negative floating
point number, and of course division will be included as well. Upon completion,
the current code will be speed optimized before being incorporated into the
kernel. The code was found to be spot on under a variety of numerical conditions
in recent tests. So much so, in fact, that the preliminary code was used to
accurately calculate the total number of possible combinations required to crack
the ESEA encryption method's key strength of 512 bits, as mentioned in the news
article below.
10/12/08 ESEA remains uncracked.
Here we are, one week after the release of the info on the series 2
kernel's debut encryption technique, and there has yet to be a successful
attempt in cracking the
message! During this time, however, we have not been resting idly by. The
creators of the ESEA technique state that the security of its keys is such that
a brute force (trying every possible key in sequence) attempt at a crack would
require 256 ^ 64 combinations. How secure is that, you ask? Well, 256 ^ 64 is
equivalent to 65,536 ^ 8, or 4,294,967,296 ^ 4. The final implementation of ESEA
for PCOS will support these 512 bit keys, which raises the bar from it's current
form to the ESEA standard, which comes out to a very huge number. What?
You want to know how huge? What is this, math class? Ok, here goes. The
expression 4,294,967,296 ^ 16 equates to 13, 407, 807, 929, 942, 597, 099, 574,
024, 998, 205, 846, 127, 479, 365, 820, 592, 393, 377, 723, 561, 443, 721, 764,
030, 073, 546, 976, 801, 874, 298, 166, 903, 427, 690, 031, 858, 186, 486, 050,
853, 753, 882, 811, 946, 569, 946, 433, 649, 006, 084, 096. Seriously. We
literally did the math on this one. Which, needless to say, is far beyond the
sphere of computational feasibility.
10/05/08 Series 2 kernel to support data
encryption- your help is requested!
A new module has been added to the list for the series 2 kernel. The
new Encryption Module will enable basic encryption support for any block of data
in an XMS handle using the ESEA (Enhanced Security Encryption
Algorithm) method. The details were laid out in an introductory
cryptography text written by Mercury0x000D:
"Normally when you use a password, the computer just stores it and sees if
what you enter next time matches what you told it the password should be. But
things would be much more secure if the computer actually encrypted the
plaintext data based on the password you enter, morphing it into a different
piece of data entirely. So if I have a special message, like THE WORLD IS FLAT,
and I have a password, like BOB, the computer could do a mathematical formula on
the letters to make a numeric password from it. In this case we'll use the
number of letter, so BOB would be 2-15-2. Then we do a formula on the numeric
password, so 2-15-2 would maybe become 2 - 15 + 2, which would give us -11, so
we strip the sign, and get plain old 11, and 11 in binary is 1011. Next we could
rotate the bits left once just to confuse prying eyes further, getting 0111. Now
we take the rotated binary sum of the numeric password and get 7, then finally
we go through every letter of the message and perform a math function with that
letter's number and the password. So THE WORLD IS FLAT might become something
like BRW MDPOE VP MUOE. Then, since we have everything down to numbers, we could
checksum the final message and give this checksum back to the user. So if you
typed in the password BOB, the software would work its magic and give you back a
number, like a confirmation password, and you'd need the original password and
the number generated by the software to unlock the message. Just to make things
harder still, the checksum given back could include other information, like the
length of the original message, things only its intended recipient would know.
So then I was thinking... what if this still wasn't enough somehow? The software
could be set to run the message through encryption several times, making it
further from what it originally was each pass through, maybe even using a
different password and checksum set each time. We could even perform math on the
encrypted message too, and include that information in the checksum also. This
method would have no stored password to be discovered by anyone. The message
becomes its own password, of sorts. You may think nobody has things on their
computer that need that much protection, but what if it's the other way around?
Maybe nobody has things on their computer that need that much protection because
they know that much protection isn't available. Until now, that is. This could
be used down to the file system level, also, so it could not be bypassed.
Another thing to consider is the fact that most systems will give you an error
if you enter the wrong password and this software will not. So if someone tries
to enter a bunch of passwords to guess their way through your security, they'll
all simply work just fine, producing garbage if wrong. So yes, the hacker would
get a plaintext message, but would be unable to tell if they got the correct
one."
Okay, so it's not 1024 bit private key encryption, but it's complex enough
to be useful. And to test it out, we are asking for your help. Interested?
Here is a message
that's been encrypted using a preliminary version of ESEA which does not yet
implement password based encryption. The hexadecimal values in the message file
represent the bytes of the encrypted data. If you're into cryptography, or know
someone who is, and you think this cipher can be cracked without the key being
provided, give it a try! We will be listing the results of any successes on the
site in the near future, and using this information to further refine the
algorithms used. If you need help,
here is the source
code for this preproduction version of the Cryptographic Module.
10/01/08 New function calling method in series 2.
All of you who have researched the original kernels are probably
familiar with the KINT functions. Short for kernel interrupt,
these functions comprised the PCOS API, and will still be included in the series
2 kernel so that previous apps won't break. However, the new kernel will support
having its internal functions called directly by a program executing a direct
jump to it's code. The functionality for direct address jumping will be
accomplished through a new opcode, DJMP. And how will application programmers
know where the kernel's routines lie? After all, their internal location will
vary widely from version to version. The PCOS Function Header, a small .asm
file that can be included in any program that calls kernel functions, will be
created to address this issue. When the compiled app is run, the header's code
will execute before the program containing it, at which time it will determine
which version of the kernel it's running atop of and set the proper addresses to
a set of standard pointers, thereby enabling programmers to only concern
themselves with the function labels (actually variables that point to the
function's address in base RAM) and bypass the old procedure of calling software
interrupts that slow down program execution. If the program is being run on a
version of the kernel that does not support direct address jumps (e.g. the
entire series 1), it will trigger an error message.
09/18/08 Text Module finished
today.
Today one more feature module is added to the downloads, marking one
step closer to the series 2 kernel's completion. After performing a (somewhat
lengthy) debug on the source (remember, kids, always check for nil handles! :])
the module is available for your review in the Downloads section. The Text
Module provides routines for searching strings, returning certain words from
text blocks, replacing entire ranges of characters and more. Next up: completion
of the Memory Module.
09/15/08 Low memory sluggishness
be gone!
The Text Module nears completion, and the Memory Module has seen
several improvements, which bears mention of a major new feature announcement
for the next release of the Memory Module: VRAM allocation. With this feature in
place, the PCOS kernel will automatically use excess memory on the system's
graphics card to function as usable application-accessible RAM. For users with
higher-end video cards, that could mean a quite sizeable chunk of extra memory
to have available. Also, if anyone finds themselves needing to run programs on a
machine with no XMS at all, the kernel will be able to adapt to that, too, by
using this feature which is slated to debut in the second release of the series
2 kernel.
09/02/08 Hardware Module
finished.
The Hardware Module was completed this week, bringing the overall
project development to roughly 40%. It includes mouse support, and some other
handy routines for querying the disk drives and such. The source for this module
has been made available in the downloads section, along with that of the File
Module, which has been done for some time.
08/31/08 First look at a piece of
the Kernel 2.00 source code!
There have been several requests for a sneak peek at the innards of
the new PCOS kernel, so beginning today a new section is available in the
Downloads area. Right now only the new Display Module code is available, which
provides complete VESA support, shape drawing, and pixmap manipulation for the
series 2 kernel. As more modules are completed they will be posted in this
section, so check it out and get your hands on the latest in PCOS development!
08/26/08 Kernel series 2 specifications
document released.
The past months have seen a host of changes to roll into kernel 2.00, as well as
vast progress on the kernel's inner workings. So how do you keep up with all the
latest developments without having to sift through the News section all the
time? You simply check out the newly released Kernel 2 Series Specifications
Document, which is available
here.
08/22/08 Text Editing Module announced.
As if there weren't already enough features in the new series 2 kernel to render
it superior over its predecessor, now it has been announced that a collection of
text editing routines will be included as well. The previous kernel series had
nothing of the sort, so this is a welcome addition to the kernel 2.xx plans by
developers and users alike.
07/30/08 File Module completed.
The File Module was completed today, and awaits its addition into the series 2
kernel's source. The demo is able to open multiple files, associating each with
the thread ID of the process that opened it. When the thread closed, the File
Module simply closes all its associated files with a single function call. No
error messages, no lost file pointers, nothing of the sort. On a more impressive
note, the module created and manipulated assigned drives (e.g. as you would with
DOS's subst command) and its most special feature yet- the ability to
rename open files. This may sound pointless at first, but its value becomes
apparent when you're wanting to rename a file or folder while the system's using
it without bringing everything to a grinding halt.
07/17/08 Progress update on the Display
Module.
After approximately three months of coding, the PCOS Display Module is finished!
The result? A full-featured, double buffered, fast blitting image machine. Every
promised feature in the video category is now a reality, making the visual
capabilities of PCOS rival those "other" operating systems. The testing demo was
more than impressive, showing off images loaded from files in three formats
(BMP, GIF, and PCX) being scrolled, blitted and color cycled. The time for the
image to get from a pile of data on the hard drive to a coherent picture on the
screen was decent for PCX files, much better for GIFs, and absolutely phenomenal
for BMPs. The demo effortlessly loaded a 45 megabyte uncompressed BMP at
8000x6000 resolution in about seven tenths of a second. It then proceeded to
allow the user to scroll about the image, with frame rates topping out at 54 fps
at 640x480, 35 fps at 800x600, and 21 fps at 1024x768. The heart of all this is
a highly efficient blitter routine which allows PCOS to manipulate pixmaps
entirely in XMS, breezing through millions of pixels per second. Although it
currently only supports 8 bit color, future releases of the series 2 kernel will
support 16 and 24 bit color as well.
07/03/08 PCOS background file copying
utility announced.
You've seen it mentioned in the Black Ice screenshot. You've wondered what new
code powered the multiple operations shown in the Red Delicious pic. And now,
brought directly to your computer monitor, is the straight info on the new piece
of work known as the Asynchronous Operations Manager. The AOM works by
hooking the kernel functions used to copy files and folders, and activating
itself only when there's some file operation that needs performed. It is
important to note that it does not stay resident in memory, consuming precious
CPU cycles while it waits for you to need it. Instead, it uses a new mode of
program loading introduced in the kernel 2 series in which a program is loaded,
does a job, then terminates but leaves its code still accessible. This is nearly
identical to the old DOS method of loading a TSR program, but thanks to the PCOS
kernel's totally protected memory architecture, there aren't any of the hang ups
commonly associated with the methods of yore. Ok, now for the real world break
down: You're happily using your AOM equipped PCOS workstation one day, when
suddenly you realize that you forgot to do a backup lately. No problem,
you think, I'll just do it right now. You drag your documents folder to
your backup drive, and a small window pops up indicating that the AOM has sprung
into action. No pointless little animations, no perpetually incorrect estimates
of exactly how many years it'll be before this procedure's done, just a simple
window with a progress bar that begins ticking away as your files are copied to
their destination. Suddenly you remember that you need to backup another folder
too. Will you have to wait until the current copy operation is completed? What
is this, 1983? Of course not! You drag the other folder to its new home, and
notice that no new window appears to tell you that the second folder is copying
also. Instead, the existing copy progress window is lengthened, and the new copy
process is added to it. Clean and simple. Two massive folder copies, two
progress bars, one little window. Then you reason, I guess I can delete my
old backup folder, so you go to your backups folder, select your old folder,
and click delete. Once again, no new window appears, only another line in the
existing AOM window. Pleased with the capabilities of your computer, you decide
to proceed writing the new BASIC compiler that you intend to contribute to the
PCOS project (hey, give me credit for trying, okay? :D) then you smack yourself
on the forehead for forgetting to add the date on the folder you're copying your
backup to. Here's one other small detail that would give other operating systems
a headache. You navigate to the target folder, and click rename, then add the
date. As you hit the enter button, you realize that, since the OS is copying to
this folder while you're attempting to rename, you'll probably be greeted by an
error message. To your surprise, though, no error window appears, and the system
pleasantly accepts your name change. Why? The trusty AOM not only hooks the
functions for file copying, but also the renaming functions, so that it can use
the new name you specify seamlessly without losing step. Awesome, huh? Yeah, we
thought so too.
06/30/08 New windowing environment unveiled.
At last, the Screenshots section has some new pics! Of what, you ask? A new
windowing environment whose details were released today. It's called "Black
Ice," and not only will it help you get the most out of your computer, just like
its namesake implies it'll look pretty slick while it does the job. Most
impressive is the new 'open desktop' approach, which leaves your entire monitor
virtually free and uncluttered of any menus, task bars, and any other desktop
ornaments, save one solitary tab in the upper left corner of the screen. Park
your mouse over it for a moment, and it expands outward to show you all
currently running tasks, all open windows, the date, time, and other vital stats
about your system, such as background tasks and the like, all grouped by
classification. Our overall impression... awesome. Even more awesome, it's been
scheduled to be included in PCOS Package 1 upon its release.
06/20/08 Release date of new kernel pushed
back.
The long awaited PCOS kernel version 2.00 is nearing completion, however the
brains at PCOS HQ are pushing back the deadline for release to further test and
optimize its internal workings. Changes have also been announced concerning one
of the basic capabilities of the new kernel. The first version of kernel 2.00 to
be released (now scheduled for an unspecified date in 2009) will be a complete
implementation of the kernel, sans multitasking. The reason for doing this is to
aid developers who wish to test the basic structure of their applications in a
single task environment. Shortly thereafter, version 2.01 will be released in
its final form.
04/19/08 Code modules in place in kernel
2.00.
So far, the Hardware Module is completed, which takes care of interacting with
the computer's devices. The Display Module is almost complete, only needing some
minor tweaks, as are the Memory Module and the Resource Module.
04/12/08 Code execution core opcodes won't
change.
It is being announced that the series 2 kernel will support the same opcodes as
its predecessors. What this means for developers is that the existing code they
have running under the kernel betas will work without modification under the new
kernel specification. However, the instruction set will be modified to include
new opcodes to support more versatile memory handling and some other features
which will result in more efficient and compact code.
04/5/08 Display Module specifications
released.
Specs were released today for the kernel 2.00 Display Module. It will support
some pretty cool stuff, such as long-promised VESA support, multiple display
pages which can be used as a double buffer for smoother scrolling, creating and
manipulating pixmaps in XMS or even VM, saving and loading individual palettes,
and the ability to save and load BMP, GIF, or PCX images. The ability to load
JPG images will be added in a future release of the kernel 2 series, as well as
the ability to quickly rotate and zoom pixmaps.
03/28/08 Memory Module near completion.
Work on the Memory Module for kernel 2.00 is almost done. It will now
support virtual memory and auto release for all allocated handles. The Memory
Module accomplishes this by keeping notes on which threads allocate which
handles, and when a thread terminates it only takes the system one simple call
to have the Memory Module release all the handles in use by that thread
automatically. This approach will help reduce the occurrence of memory leaks and
the like.
03/16/08 Details of new kernel released.
Work on the next PCOS kernel is well underway, and approximately half of the
development plan is completed. The Resource Module specs have been determined,
as well as those of the new Memory Module and Display Module, complete with a
set of functions for drawing lines, circles, loading images from files, pixmap
manipulation, and more.
01/15/08 No more betas... the official first
release of the kernel announced for next year release!
It's official! The next kernel released for download will be the finished
product... the official first release of the PCOS microkernel. Yes, to answer
your question ahead of time, that means that development has proceeded to the
point of near completion at PCOS HQ. Within the next year, the current (and
final!) kernel beta is expected to become obsolete, and be replaced with the
long anticipated kernel version 2.00, bringing an end to the "Step One" phase of
development. An updated version of the kernel technical manual is scheduled to
follow the new kernel's release shortly thereafter. This kernel release will
incorporate all the features long promised by past betas, will have the
beginning of an application development API, and will most likely achieve its
target speed of over 200,000 loops per second, as measured by the Speed applet.
Currently, the kernel is undergoing further optimization and debugging of the
thread execution core, which will be followed by a brief bug testing period. So,
in short, the wait is almost over ... the countdown begins today!)
01/3/08 New kernel model announced... the
kernel 2 series!
Development of the PCOS kernel has seen sweeping changes in recent weeks,
pressing it far beyond its humble beginnings. The current kernel version is the
closest it has come to being a solid work, but at the same time the successive
developments rolled into each new beta release have proved its inadequacies. Now
is a time for change. With pleasure, we present to you a new design for the
official release of the PCOS kernel, which will allow developers more room for
making awesome software for PCOS. The next release of the PCOS kernel will
utilize this new model, which calls for the addition of floating point and
integer registers, expansion of the universal registers already existing in the
kernel, improved memory handling, as well as the implementation of several
features not yet offered by the current kernel betas, namely fully protected
memory, a drastically increased thread limit (breaking the current beta's 32
thread barrier) and virtual memory. Also available will be a fully redesigned
code instruction core which will implement a set of new instructions for more
efficient code, and optimize thread execution by using a large object code
buffer in base RAM to execute hundreds of instructions per cycle, as opposed to
the method used by today's betas, which run each instruction out of XMS directly
as the thread does its work. This alone should provide even more speed out of
the kernel due to the simple elimination of all the overhead incurred by
constantly reading instructions out of XMS. One sorely missed feature, however,
will be the built-in command prompt, which will be added once again to the
project in the future as a stand-alone PCOS application.
12/20/07 Instabilities found in kernel 1.40.
After a short round of testing, kernel version 1.40 has been found to have
problems associated with the call and mov instructions. This is a
result of the major modifications to the kernel's inner workings, which allowed
it to achieve the phenomenal speeds that it was created to run at. The problems
are scheduled to be fixed in the next release, which is expected to be completed
soon.
12/16/07 Benchmark results: New kernel
version hits record speeds.
The PCOS kernel may be pretty stable, but speed has historically not been its
strongest point... until now. The newest kernel beta, version 1.40, has far
surpassed its predecessors, as shown in the following benchmark table. Kernel
1.40 boasts a speed gain of slightly over 75% compared to the previous release.
It also weighs in as the largest kernel to date, with over 6,700 lines of source
code... that's approximately 91 pages! Moreover, future releases are expected to
push the envelope even further, resulting in a kernel that can execute well over
150,000 loops per second. The following results were achieved by running Speed
under each kernel version to determine how many loops per second it can process
on a mid range PC:
beta version highest average speed
1.33 64,559
1.34 65,462
1.35 80,389
1.40 142,077
01/20/07 PCOS goes totally open source with
the GNU GPL License!
If you've been following this website for any length of time, you probably
already know that the PCOS project has always been open source when it comes to
all applications written for it, but the kernel itself and the PAC compiler have
always been closed source. Well, to mass approval, the kernel .zip packages now
include the PowerBASIC source code for the kernel itself. Now you too can
contribute on a deeper level to the PCOS project... just download the source and
have some fun! The move to license the PCOS Kernel with the GPLv3 provides the
general public with a means to get involved with the project and (hopefully!)
further its development. The full text of the GPL is now included in every
package downloaded from this site, but if you're curious the text of the GNU GPL
is also available here at the
Free Software Foundation's website.
01/01/07 New look for the PCOS website.
The web wizards in the PCOS design group got together one day over lunch and,
having exhausted all other valid points for conversation, decided to contemplate
revamping this, the project's humble homepage. Yes, they were really, really,
really bored. With that said, they hope you like the new, streamlined look which
now includes a "Screenshots" section, the best-selling (okay, maybe not quite)
PCOS backstory, and this wonderful new "News!" area, among others.
12/15/06 PBASIC compiler under development.
Due to slow progress of someone completing a BASIC compiler, I have decided to
finally resume development of mine. While not much has been done yet on it,
progress is being made, so feel free to download it and see what you think
and/or contribute your ideas and efforts to it.
PCOS
Backstory
-back to top-
Some people may look at this project and
wonder ... Why did you start doing all this, dude? Well, the answer to that is a
long and boring story which involves me, my computer, and my sickness over
repeated attempts by certain software companies to take over my system- which I
bought with my own hard-earned money, mind you- and turning it into their own
personal slave. The story doesn't end there, so you may wish to roll yourself
across that battered old hand-me-down mat you have in front of your desk, get up
off your fancy little computer chair right now, and proceed to your kitchen,
bathroom, or your local high class coffee joint for some consumables to keep
yourself awake for this...
The PCOS project started in 1996 after the release of that first infantile
step on behalf of a certain mammoth software company, commonly known as Windows
95. I actually tried Win 95 (OSR2 B for those of you who actually care what
version of this hideous piece of code I ran) for about a month before I became
totally, thoroughly frustrated by it and its idiosyncrasies, and promptly
removed every trace of it from my computer's hard drive. Back to DOS 6.22 I
went. Huh? Windows 3.11? Don't even go there, buddy. I never even bothered
trying the next version, Windows 98, since their big tag line for the product
was "We fixed over 2,000 bugs that were in the original version!" Many people
were jumping at the chance to get their hands on it, but my logic ran
contrariwise, as usual. I reasoned, "Why would I want to buy from a company who
just admitted that their past product had over 2,000 bugs?" If that were the
case, it should never have been released. Just before I got a PC, I had been
given an Apple Macintosh Performa 631cd, which blew my mind with its phenomenal
ease of use and user-friendliness. I was also amazed at the huge inadequacy of
the Performa's paltry Motorola 68040 processor and that huge 8 MB of RAM which
some genius at Apple decided to bless the system with. Disk thrashing took on a
whole different meaning after experiencing this machine in operation for any
length of time. So, with these two vastly different computers in mind, I set out
to simply write a little operating system which would be able to provide most of
the features offered by the Mac, on the cheap, more prevalent, and usually more
memory endowed PC. My first efforts were pathetic at best, resulting in many
iterations of an operating system which only got halfway completed before I
decided I wasn't happy with the way the project was going, so I'd scrap the
entire piece of work and start anew to make a newer, bigger, better version. The
first version which actually was semi-usable had no mouse support, very basic
graphics support, no audio, no nothing. Picture Windows 3.1 1 locked in one of
those de-evolution chambers from the Mario Brothers movie. Never heard of that
film? Trust me, you're better off. Also trust me that this PCOS version
(something like pre- pre- pre-beta) sucked. Eventually, I learned enough about
low level programming to evolve the design of PCOS to what it is now, with many
of the features of a modern operating system already in place, and many more on
the way. After years of on and off development, I pretty much retired the
project due to continuous lack of time. But, thankfully, I stumbled upon a
reason to continue my efforts...
Not that many years ago, that same good old mammoth software company
released their latest vision of what sheer torture each and every computer user
should experience every day, usually called Windows XP. If they were so
concerned with providing an enhanced user "eXPerience," perhaps they should have
considered creating an operating system which actually outperformed its
predecessor. Adding processor intensive background tasks like automatic updates,
senseless security monitors, pointless document indexing, and a file system
which restricts the user in oh, so many new and different ways is not the way to
achieve this. Even more recently, that same company decided that we as a
collective whole were not quite getting as frustrated as they'd like with our
computers. So they gave us Windows Vista. Funny choice of wording there. The
word "Vista" means "view" which implies that there's something new, something
exciting, something you simply must see to believe in this latest iteration of
Redmond's can't-write-code-to-save-our-lives loop. They got that part right. You
absolutely do have to see this operating system personally in action to
fully appreciate how utterly disdainful it really is. Supposedly, Vista is able
to be responsive, keep you productive, and maintain your PC's security all at
once. Come on, people. This from the company which couldn't even make its
operating system do the two most basic things requisite of any OS- starting up
and working. So of course it's not true, but then again, we're not really
surprised, are we? Nope, not at all, Bill, not at all.
Not one to place blame of complete and utter failure without fact to back it
up, I visited the local electronics retailer with my buddy Maggot238 upon
Vista's release to test drive this beast of a system, the "do all, end all" of
system software, as touted by the top Redmond brass. For starters, I decided to
try to run the system wide open, launching as many programs as I could, moving
windows around, playing movies, running games. Within seconds the poor little
laptop which served as my Guinea pig - high end as it may have been - sputtered
and choked while waiting on a hard drive access. What about the programs which
were already loaded into RAM? There's no reason they couldn't have kept running,
right? Wrong. Everything came to a grinding halt. And quickly at that. Wow, this
is really great. I gotta get me a copy of this thing! I think I'll install it at
the local snail club. Maybe they can manage to strain the operating system a
little less than I did. Next, to further the smile which I found creeping across
my mouth, I took a different approach to system overload: file copying. I would
simply attempt to copy a huge multi gigabyte mass of files and folders from one
location to another while doing something as easy as playing solitaire. Where
would I find a collection of files that insanely large? Why, in the Windows
system folder, of course! There is, after all, nothing bigger in computing than
the nearest Windows system folder. I proceeded to attempt my big fat Greek copy
operation, but ran into an issue which prompted me to add another procedure to
this little test: Windows Vista Security Management. The laptop quickly notified
me that I was attempting an illegal operation, due to the fact that I was trying
to interact with Windows system files. Since this computer was experiencing a
serious case of Gates Lockdown, and since I'm the big DOS guy that I am, I began
snooping for the closest command prompt. Also locked down. Ummm... and whose
computer was this again? Okay, granted it wasn't my computer, but it definitely
didn't belong to Gates himself. Without putting forth a great amount of effort,
however, I was not only able to find the command prompt, I was able to open
those "protected" system folders, and began copying away. For obvious reasons, I
won't go into much unnecessary detail as to how I did it, but it only took me an
open file dialog, provided in this case by trusty old Notepad, a keyboard
command or two, and a click. Wow. This truly is the most secure Windows yet. It
took about four minutes to do this instead of the usual one and a half. So far
it was Mercury and Maggot 2, Vista 0... So I waited for the copying to finish
while I tried in vain to play a mediocre game of solitaire. It just wasn't
happening, folks. So as for that whole Vista "view" analogy? Nice try (maybe
that's how they named Windows NT?) but you missed it by a long shot, guys.
Sometimes speed isn't quite as important as user responsiveness, a concept which
Apple apparently understands. How else could I go to a new Mac display and pull
off multiple file copies, folder browsing, playing two copies of a movie,
searching for Bluetooth devices, and randomly playing with the interface all at
once? Take notes, Microsoft. The future is here, and it doesn't have the Windows
logo on it.
With each successive release of an OS so undeniably foul, Microsoft pushes
more people like myself to further their home brewed operating system efforts.
In my estimation, any program which tries to connect to the internet behind my
back and download updates which I didn't ask for (not to provide us with a
better user experience, but so that the company's interests are more protected)
is nothing short of criminal. Or at least really, really freakin' annoying.
Frankly, I don't know how the average user puts up with the sorry, slipshod
excuse for computer programming put forth by these modern software
conglomerates, which results not in productivity as the company touts, but in
lost data, unmet deadlines, massive downtime, headaches, frustration, rashes,
nosebleeds, and sometimes death. But seriously, folks, let's wake up and face
the reality of computing today. You have things to do. The last thing you need
is to have to deal with the gross shortcomings of an egomaniac multibillionaire
and his little cracked team of programmer extraordinaire wannabes. There's many
other options available to the average computer user, yet many don't take
advantage of them. Among the various professional, polished, stamped out
solutions to the operating system problem shine gems of the hobbyist community,
such as the ever-more-popular Linux and the FreeDOS project. I don't know about
you, but I remember being able to play a game featuring full screen, real time
3D wireframe rendering of several dozen objects at once on an ancient 8-bit
computer system. Wanna do that today? Better hop on out to your local retailer
and pick yourself up the latest 64 bit dual core computer with a kickin' video
card and at least a couple gigs of RAM. This is ridiculous. I've seen demos
coded by the home-based hobbyist community featuring full 30 fps video with
multilayer transparencies, 3D texture mapped rendering, light source shading,
and other awesome features, written entirely in Microsoft's own QBASIC. Why does
this matter? Well, think about it: If we, the power users of the world, can pull
off this level of advancement, why is it so hard for a multibillion dollar
corporation to achieve? There is absolutely no excuse for the gross laziness of
the modern programming industry, which states, "Oh, it's okay to write sloppy,
inefficient, unoptimized code, since everyone has the latest computers now
anyway." That is no excuse to relax your standards as a coder. That is no excuse
to sell sorry, bug-ridden attempts at software which run much, much slower than
necessary. And it is definitely no excuse for the release of a paucity of
service packs and bug fixes for operating systems which shouldn't have been
shipped in the first place with bugs as serious as some which we've all seen. I
guess in short, I'm doing this to provide my own little contribution to a trend
which will put software on computers that will one day threaten the big guys
more than we, the authors of the software, ever thought possible. If the vision
of a community of people all working together to the end of ridding ourselves of
the corporate tyranny of being dominated by one operating system - stiff,
unchanging, unmoldable - isn't enough to get you off your butt and get your
fingers launched in a lithe flight across your keyboard creating streams of
code, I don't know what will. It sure worked for me.
Frequently Asked Questions
-back to top-
What is PCOS?
PCOS (Personal Computer Operating System) aims to be a stable, efficient,
compact OS which will run on any IBM compatible computer. Although it is
technically a 'shell' program, don't let that fool you. PCOS is unlike any shell
you've probably ever used. It will, in its completed form, combine the stability
of Linux, the speed of DOS, and the user-friendliness of the MacOS.
Since it's a shell, PCOS probably isn't that useful,
right?
Not necessarily. PCOS is in fact a shell, but if you didn't already know that
you probably wouldn't have noticed just by using it. PCOS works with your
computer's hardware on a fundamental level to provide many features found only
in 'high-end' operating systems.
What kind of features does PCOS offer?
Here's a short list:
preemptive multitasking
protected memory
virtual memory support- limited only by the size of your hard drive!
XMS support up to just under 3 GB with the standard HIMEM.SYS XMS driver-
meaning programs can run while loaded into XMS, unlike MS-DOS
SVGA and XGA support through use of VESA routines
access to the kernel's internal routines, providing an API for developers
inter-application communications
file system security (files associated to a specific user can be locked to only
be opened and/or modified by that user being logged in with their password
Windows-compatible long filename support
built in APM power management
How user friendly is PCOS?
A variety of user interfaces will be available for the PCOS kernel. Among those
are a command prompt interface which can be easily used by anyone familiar with
traditional DOS commands, but it will also support a handful of new commands
which make use of the PCOS kernel's enhanced features which were unavailable in
DOS. A graphical interface will be released too, which will offer many different
'skins' (a'la Linux's variety of window mangers) the first of which will be
modeled after the "Apple Grayscale" look used in the classic MacOS 8 series.
Where do I buy software for PCOS?
Initially, the only place to get programs for PCOS will be to download them from
this site. The project is always needy of cool new applications, games, and
utilities, however, so if you have a knack for programming and think you may
want to contribute a program to the project, you will be more than welcome to
visit the How to Contribute section.
Do I get any software with the OS?
Not at this time. All software available for PCOS will be able to be downloaded
separately from the Downloads section. PCOS Package 1, when released, will be
bundled with a collection of applications and accessories.
Do I need to dedicate my entire computer to PCOS?
No, you will be able to use whatever operating system you currently use, as long
as it can run DOS-based programs in their full capacity, and run PCOS only when
needed, although some features may not work, or may not work as well. Or, if
you're so inclined, you may make it the only OS on your system to allow it to
run at its full potential.
When will it be done?
As of yet, that's very uncertain. Development continues to push on, in the
author's free time, of course, which seems to become more and more of a limited
resource. The kernel is as near as it's ever been to completion, with more
features being added and bugs being squashed every week. Every version available
for download now on this website is a beta version, up until version 2.00, which
will be the official first release of PCOS.
How are the different version numbers of PCOS
significant?
The average version number is made up of two main parts, the major version and
the minor version. As with most other software packages, the major version only
changes when there's a major overhaul to the underlying system structure. The
minor version changes whenever bugs are fixed, or sometimes when small features
are added. There is another part to the version numbering scheme, though, and
that is the revision number. The revision number changes similarly to the minor
version number, but when the bug fixes or features are extremely minor, and do
not warrant changing the existing version status of the release.
What are the system requirements for PCOS?
PCOS is a lightweight platform when it comes to system resources.
The current requirements for the PC running the series 1 kernel are as follows:
-an Intel 80386 or better / equivalent
-a math coprocessor (e.g. an Intel 8087 or better / equivalent)
-some available XMS, and an associated driver (e.g. himem.sys)
-enough disk space to store the programs you'll be running
These are the minimums only, of course, so if you have a better system PCOS will
just run that much smoother.
Development Plan
-back to top-
This is the development plan for the PCOS
kernel and its accompanying applications, fixes, and features. As of version
1.40, Step One has been completed, and Step Two will be close behind, hinging on
the impending release of kernel 2.00. The next phase of development, Step Three,
is scheduled to begin in the
beginning
of next year. PCOS will be completed in Step Four, when the first package is
ready, which will contain not only the PCOS kernel, but also a choice of
interfaces- a command prompt and a GUI which will feature a selection of Window
Modules, enabling the operating system to take on a variety of appearances.
Bundled with the OS itself will be a various application programs to accomplish
everyday tasks, such as text editing, image manipulation, records management, a
day planner, backup tools, and a system health utility, a variety of games,
among others. Unlike the popular operating systems, PCOS will include
development tools with the package, including an assembly level debugger, a
compiler, and example code so that anyone who is so inclined can use the
existing source code to build on the PCOS foundation.
How To Contribute
-back to top-
Right now, there's not really a whole bunch anyone can do to further development
of the kernel itself, other than wait for it to be finished, or help it get that
way, by emailing me your suggestions based on your review of the kernel source
code.
So far as applications development, the project is in desperate need of a BASIC
compiler, as well as compilers in other languages too as users see fit. So if
you can write a compiler, by all means let me know...
Downloads
-back to top-
The versions that are available are only betas, and as of yet there's not really
a big variety of things that that can be downloaded, due to the fact that the
kernel is incomplete. This will definitely change though by the time PCOS
reaches its first official release, 2.00. All the kernel modules and archives
are GPL licensed software, so feel free to share and modify them however you see
fit.
Kernel Series 2
Display Module 2.0.zip version 2.0 25.4 KB
This is the complete PowerBASIC source for the module that powers any and all
things graphics related. It currently only supports 8 bit color, but future
modifications will add 16 and 24 bit support as well.
File
Module 2.0.zip version 2.0 15.2 KB
This module controls all manner of file access for the new kernel. Includes
Windows-style LFN support.
Hardware Module 2.0.zip version 2.0 14.7 KB
The Hardware Module provides low level detailed interaction with the devices in
the computer. Includes mouse support and drive probing.
Text
Module 2.0.zip version 2.0 16.4 KB
A collection of routines for manipulating text, entirely in XMS. Supports text
objects up to 64MB in size.
Kernel Betas
kernel
1.40.zip version 1.40 140 KB
This is the current version of the main component of PCOS. Note that this is
only a beta version, and it is still under development.
techref.rtf
n/a 29.3 KB
The PCOS kernel technical manual, which details everything from the kernel's
internal assembly opcode set to the complete error code list and more... full of
intricate goodies!
kernel archives:
kernel
1.35.zip version 1.35 125 KB
kernel
1.34.zip version 1.34 122 KB
kernel
1.33.zip version 1.33 132 KB
kernel
1.00.zip version 1.00 98.1 KB
PCOS applications:
kclock.zip
version 1.0 606 bytes
A simple clock which stays resident in the upper right corner of the screen.
Originally made only to test the kernel's multitasking and priority level
processing. Includes assembly source code.
kdate.zip
version 1.0 597 bytes
A plain date display app for the PCOS kernel. Uses the priority functions of
kernel 1.40 and up. Includes assembly source code.
speed.zip
version 1.0 692 bytes
A utility which constantly prints the number of instruction loops being executed
per second on your computer. Also includes assembly source code.
development tools:
pac.zip
version 1.0 46.9 KB
The PCOS Assembly Compiler. A program which compiles assembly code into an
executable program. Includes 'pachelp.txt', a guide for use, incomplete as it
might be.
pbasic.zip
version 1.0 41.2 KB
Still under development, but available for your evaluation and contribution.
This compiler will take a BASIC source code file and translate it into PCOS
assembly. It will be compatible with the BASIC programming language, and will
support many of PowerBASIC's additional statements. Any programs you have which
are written in QBASIC or PowerBASIC should be easy to compile and run under PCOS,
usually without modification. It will also support accessing the API functions
of other applications and the kernel itself through interrupts.
Contacting Us
-back to top-
The creator of this project and maintainer of this site is Mercury0x000D
(Mercury Thirteen). He can be contacted via e-mail at
mercury0x000D@gmail.com. Mercury makes only a couple minor requests for any
e-mails you choose to send. If you follow them, it'll really help him sort
through all that mail! First, please avail yourself of the subject line. If
you're reporting a bug, making a suggestion, asking a question, or whatever,
please, please, please mention that in the subject line. Second, don't expect a
response. Not that Mercury is so stuck up that he'll refuse to respond to your
e-mail, he just usually doesn't have the time to respond to it all, and so is
forced to only respond to e-mails which require further discussion of the
subject matter. And, finally, third. Please do not feel it necessary in any way
shape or form to refer to Mercury in the third person, as he is doing right here
in this section. So, on behalf of Mercury and I... thank you!
Version History
-back to top-
version history of the PCOS kernel
(the different version releases are archived, not revisions, though)
version 2.00
-removed kernel infinite loop; no longer needed
-temporarily removed priority processing
-all threads are automatically terminated upon causing an error
-added errorHandlerPointer to threadData ttttype, and changed errorHandler to
errorHandlerHandle to accommodate new error trapping abilities
-removed startAddr and endAddr from threaddddData type since threads don't share
handles
-removed cursorH and cursorV from threadDaaaata type since they were never
really used anyway
-removed nextThread from threadData type ssssince it will no longer be needed
with the redesigned code core of this kernel
-modified system error handlers to excludeeee references to GetNaturalErrorText
and GetKernelErrorText
-removed GetNaturalErrorText
-removed GetKernelErrorText
-removed InitKeyTable and related data strrrructures
-removed fileData type
version 1.42 (merged into kernel 2.00)
-added the dir command to the help screen in the command prompt
-added kint 0x34 (open / close cd drive dooooor)
-handle probing status (on or off) is now displayed by the mem command
-stripped down kernel error handler
-fixed screen mode change bug in CommandPrrrrompt()
-fixed bug that occurred when a thread useeeed the terminate thread kint on
itself
-fixed bugs in mov and call instructions
>>>
version 1.40
-merged ExecInstruction() with Main() for further speed increases
-trimmed code for unsupported instructionssss from ExecInstruction() to clean up
the source
-overhauled code execution core algorithm for speed, yielding major performance
gains; individual instructions still need optimized
-added kint 0x33 (set thread priority)
>>> -added kint 0x32 (set thread pause state)<<<
-added 'priority' to the threadData type tttto allow different threads to have
more cpu time than others (e.g., the kernel infinite loop is set to lowest, and
all other launched threads are set to the highest, but a thread can set its own
priority if it doesn't require the highest speed setting)
-the kernel now informs the user of the sttttatus change of a thread when
'thread x pause' is used
version 1.35
-optimized some portions of code for speedddd
-added simple debugger which displays the register contents as the program
executes
-fixed bugs in kint 0x09 involving cursor positioning
-fixed cursor relocation bug in kint 0x03<<<
-eliminated need for the CLIST and DAREA rrrresources, apps may now only have
one 32K block for code and data, the DS register does not get set upon app load,
and the mov family of instructions all access exactly the address they're told,
instead of adding the value of ds to the address first
-fixed bugs in kint function 0x18
-added kint 0x31(draw line)
version 1.34
-to reduce source code size and segmentatiiiion problems the built-in debugger
has been removed
-the command prompt now checks to see if ddddrive c is available before assuming
it is, and makes the first drive available as the default drive if c: isn't
there
-fixed a bug where the drives command woulllld display incorrect drive
information for CD-ROM drives under plain DOS, not when being run from within
Windows
-eliminated run command, just typing the pppprogram's name will run it as in
DOS; if you type only the program name (e.g. 'program' not 'program.exe') the
kernel will first look for a program of that title in the following extension
order: .pco, .bat, .com, and .exe
-improved consistency of output of the memmmm command so far as handles
allocated and block sizes; output used to differ widely depending on which
underlying xms driver is being used
-certain essential system threads are now able to be designated as 'locked,'
meaning they cannot be terminated; currently only thread 0 uses this, and that's
probably how it should stay
-fixed annoying cursor relocation bug afteeeer dismissing an error box by
pressing ESC
-fixed memory leak when using the restart command, due to the kernel not
terminating all running threads before resetting itself... trying to restart the
kernel now will generate an error if any threads are running
-got rid of the annoying prompt "Presssss any key to begin the program." when
launching DOS apps
-fixed minor annoyances in the appearance of the text as a PCOS app loads
-improved error handling and thread stabillllity issues
-replaced the "Press DEL to access thhhhe system menu." line with "Press DEL to
terminate this thread." in error boxes to eliminate having to do more error
checking from having the command prompt running over top itself
-modified kernel startup error handling toooo include XMS setup also before
switching over to the main error handler
-fixed text appearance of thread command ooooutput, no more wrapping lines
-eliminated two separate thread name fieldddds (public and private) so threads
can now only have one universal name
-fixed startup procedure so that if a fileeee is specified it gets run, or if no
file is specified on the command line the kernel goes straight to the command
prompt
-fixed a bug concerning remnants of the olllld PCOS-style lfn support; the
kernel no longer tries to see if a folder or file contains a PCOS filename
-fixed a bug in the PCOS app loading routiiiine which would leave a thread
incompletely set up if an error occurred while attempting to load the app's CODE
resources
-fixed a bug in how the kernel detects theeee amount of XMS installed and XMS
free; the kernel has always used all installed memory, but would just report the
wrong numbers for how much was there, now the correct numbers are shown
-made minor changes to the XMS section of the output of the mem command
-added /nhp switch to disable handle probiiiing which causes problems under
windows
-fixed a bug in the xms release command thhhhat would let handles which are in
use by an app be terminated
-the dir command now recognizes invalid swwwwitches
-added /s switch to the dir command
-added separate file and folder counters tttto the dir command's output, in
addition to the usual item count
-fixed output of date command (used to be an error with 1st, 2nd, 3rd, etc...)
-fixed output of drives command, line wrappppping / spacing bug with mapped
drives
version 1.33 revision 0x0010
-fixed bug in copy command that puts the ssssystem in an infinite loop if an
error occurs while copying
-fixed bug where every directory created wwwwith a long filename is made
lowercase
-fixed bug in mem command that caused overrrrflow errors
version 1.33 revision 0x000F
-added 'restart' command
version 1.33 revision 0x000E
-fixed drive label bug where the label forrrr drive C would appear as the label
for every drive
-enabled asterisk wildcard in 'dir' for fiiiile filtering
-added /w switch to the dir command
-added support to 'dir' for listing directtttories other than the one you're
currently in
-modified drives command to include displaaaaying drive labels
version 1.33 revision 0x0007:
-added /a switch to the dir command
-increased stability of copy command when used on non-lfn drives
version 1.33 revision 0x0005:
added commands: copy, credits, date, drives, eject, info, label, login, logout,
make, pause, ren, time, type
-enhanced ver command
-fixed a bug where commands typed with leaaaading spaces are not recognized
-fixed the program launch bug where when ttttyping the name of a program to run
it, the kernel displays "The command or filename is not recognized." regardless
of whether or not the program actually existed. also, if the program did not
exist, an error dialog used to appear in addition to the message
-md/mkdir now work properly
-dir command works
-rd/rmdir gives no errors
-fixed a bug with the cd command where it would change to a directory that
doesn't exist if you type an 8 character or longer dir name with extra letters,
just so the first 8 match
-the thread command now works properly wheeeen used with 'stop'
-commands typed in mixed case now will exeeeecute
-run command added
version 1.33
-added built-in command prompt interface tttto replace limited console menu
system
-eliminated PCOS-style lfn support in favoooor of the Windows style... why
complicate things by having three standards for filenames when we could have
only two? :)
-temporarily removed KINT 0x27, 0x26, 0x25555, 0x24 and 0x23; they need
rewritten to use Windows lfn
-modified KINTs 0x0C and 0x17 to not use PPPPCOS-style lfn's; need to add
Windows lfn support though
version 1.00
official beta release
known bugs:
-the handle probing routine which the kernnnnel uses to obtain size and
allocation data about XMS handles causes problems with Windows ME; use the /nhp
switch when starting the kernel to shut handle probing off
-several inconsistencies have arisen when the PCOS kernel is used atop Caldera's
DR-DOS, a few of which are listed here:
-your XMS available will be 64MB, even if you have more installed in your system
-the drives command will show every drive to be a floppy disk
kernel to do list:
-increase max number of threads
-move stack space for each app into one XMMMMS block, away from thread memory
space, and make them all a fixed size, 32K each
-make max code resource size 64MB, insteadddd of the current 32K
-add enhanced instruction set, including nnnnew opcodes which will do the
following:
-'push' and 'pop' will work on multiple reeeegisters at once, and work with
numbers and memory locations, as follows:
push 8192
pop ua, ub, uc
pop [0xB4]
push es, di
push ax, bx, ua
push [0x34]
-'mov' will use autoincrementing registerssss, so instead of writing:
mov [ua], ax
inc [ua]
mov [ua], ax
inc [ua]
mov [ua], ax
inc [ua]
code can be written like this:
mov [ua]+, ax
mov [ua]+, ax
mov [ua]+, ax
-make wildcards be able to be used for driiiive letters also
-make command prompt multithreaded (so othhhher PCOS apps no longer freeze while
you use the command prompt)
Here's a brief look at what PCOS will be in
pictures. After all, there's only so much one can learn from reading a long,
boring website. So, for all you visual learners out there, here's the photos!
Click on a picture and enjoy!

A sample of the new PCOS x86 disassembler compared to the traditional debug.exe
tool.
Here's a shot of what the Quasar GUI shell will look like upon completion, shown
here with the "Red Delicious" theme, designed to mimic the traditional MacOS.

This is a shot of the new Black Ice windowing
environment.
The output of the PCOS command prompt's "help"
command.
The "dir" command- enhanced PCOS style, here showing off its Windows long
filename compatibility and convenient layout with separate counters for files,
folders, and total items, as well as an item size report which won't choke on
huge numbers, and will actually tailor its output to whichever is appropriate-
kilobytes, megabytes, gigabytes, terabytes, or even petabytes.
Here, we see the output of the "mem" command, which will display all XMS
available, virtual memory used and free, and other in-depth data about your
computer.
Ever find yourself booting into a DOS environment with no idea of what drives
have been assigned what letters? Well, this issue will officially be a thing of
the past with the "drives" command in the PCOS command prompt. Its output is
shown here, which will list hard drives, CD-ROM drives, drives mapped with the "subst"
command, and even removable USB flash drives.
The PCOS kernel is completely multithreaded, as shown in this example. Here's
what it will look like with three programs loaded, with info on all of them
available through the "thread" command.

Support Free Software!
Check out the Free Software Foundation's website: