This was my intent for many years. Eventually I shelved the project
because it a shell simply can't do all I wanted it to; I needed to go
more low-level for that. At its heart, DOS (MS-, IBM-, Free- or
otherwise) is a single tasking OS. What this means is that you /can/
make a shell program to replace the command interpreter but when you
launch a program, everything else stops until that program exits. This
kinda breaks the functionality which one may think putting a shell atop
DOS would achieve. If you're basically making a file manager, then
that's quite doable and you'd basically end up with a Windows 3.x clone.
Well, I shouldn't say /clone/ per se, because I hope you'd give it a
much better interface than that of that eyesore.
In theory you could develop small apps (and even run them multitasked)
for a shell. Basically you'd include in your shell a rudimentary virtual
machine which would execute bytecode a'la Java. What this bytecode would
be is completely up to you. Do you make a custom bytecode which is
powerful and compact yet not understood by any existing development
tools out there? Do you make the bytecode basically a direct ripoff of
the x86 instruction set, enabling you to run small programs compiled by
anything from NASM to QuickBASIC? Do you say screw it and just make a
whole new kernel which will handle all this fanciness at a hardware
level as it was meant to be? These are all issues you'd have to address
if you took this route. Granted, the virtual machine approach would
require /lots/ of patience and time to implement, but it can be done.
Don't ask me how I know lol
Anyway, my shell project (as of my last firing it up a couple years ago)
basically launches, does some environment probing, sets up some
structures and then sits in a loop where you can access a menu and test
out the various features and such. There's code for handling VESA mode
switching, drawing in and manipulating off-screen memory buffers known
as pixmaps, text string manipulation, mouse polling, direct LBA disk
access and even the tiny beginnings of PCI bus probing. I still have the
Watcom source around if you want to check it out or use it as a starting
base.
So far as your question, a 16-bit shell can load whatever graphics
formats it's been programmed to handle. The biggest hang-up to doing so
is the screen mode situation under DOS. There's a good chance you're
going to want graphics which don't look blocky and colors depth beyond
256. If that's true, then your code needs to use VESA. Doing so gives
you access to smooth animation, millions of colors and high resolutions
(up to 1600 x 1200, I believe), all of which you normally can't have
under plain DOS. I have 16-bit code (some written from scratch, some
retooled from public domain works) to load and save images in jpg, bmp,
pcx, gif (and a few other) formats. Although it's not all been ported to
Watcom as of yet, it may come in handy for you as well. Images can be
quite large and working with them can therefore involve large amounts of
data, so I would definitely recommend using speedy 32-bit Watcom code
(and the access-to-gobs-of-memory associated with it) for this kind of work.
Others have given many nice examples of DOS GUI software but I didn't
see Qube
<http://www.osnews.com/story/75/Enter_the_Qube_a_New_Graphics_Environment_for_CLI_OSes>
mentioned. I'm not sure if it was ever released or whatever, but I think
it certainly is a nice looking addition to the list. Make your shell
sport an interface like that, and you just may have something. :) Also,
our own Chelson works on DOSCore (formerly OZone, I believe), so he may
be a valuable resource to you as well. Small world, eh?
Personally, while I may not use a GUI much for my DOS needs, I still
think it would be nice to see FreeDOS get this addition because... well,
you know why. ;)
On 2/17/2016 3:19 PM, Maarten Vermeulen wrote:
Hi all,
It’s not really about FreeDOS… but it has something to do with it. :)
I thought that maybe if you all like the idea, I could make a GUI
shell. It would be exclusive of course. Though, It will be especially
for FreeDOS. And maybe also MS-DOS and Night DOS. It’s a sort of a
vote. Would you like the idea of a new GUI shell? Something new, newer
then the old original (still nice) Windows shells (Windows 1.0; 1.10;
2.0 etc.). I liked the idea, but if no one likes the idea it’s a bit
of a pointless thing. Also this will be a second project, where I can
work on when my other project (BirdOS) is paused for a bit. Then I can
wipe my mind for a bit.. :)
Some things though:
-Can a 16-bit OS load bitmap images?
-Can, if the idea is voted as a yes, I ‘borrow the FreeDOS logo for [1].
[1] a ‘made for FreeDOS 1.2’ and ‘compatible with FreeDOS ‘1.1’
emblem/image. This will (maybe) be done with several OS’s.. It will be
especially for FreeDOS.
Get the discussion going! :)
-Maarten
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel
--
*This has been a Mercury Thirteen transmission.*
/"Why? Because *FreeDOS*, that's why."/
Things I endorse:
AMD
ATI
eBid.net - A great eBay replacement which doesn't habitually screw over
its sellers! :)
FreeDOS
Samsung
Subaru - The most capable AWD ever!
Trump / Cruz 2016 - Make America great again!
I promote these things because awesomeness and excellence deserve
recognition, not for personal gain of any kind.
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel