PDA

View Full Version : GUI For DOS



Sunny
01-01-2002, 06:53 AM
Hey Guyz,
Hows life?

Anyways, for those of you who might be interested, Im trying to start a project here for quite some time. The goal was to write a Graphical User Interface for DOS and post it as Open Source.

The Idea started when i was thrilled by the wonderfull KDE Enviornment i saw working under Linux. I know i can't do that sort of stuff just on my own. Maybe im not even really intending to. But i've always been looking for alternatives to Windows.

If there's anyone out there with some spare time interested in joining in on the project talk to me plz...:)

Thanks guyz.

Stef

VirtualAce
01-01-2002, 01:59 PM
I'm interested. Have wanted to do the same for some time now. This should probably be a class library that will allow for others to use the windowing system in DOS. Also should probably be in protected mode - DJGPP.

We will have to come up with a very good object hierarchy for it all to work properly. Will also require linked lists for child windows, buttons, controls, etc.

Sunny
01-02-2002, 11:03 PM
Ok. Yeah, i noticed DjGpp is pretty good. Do you think there's any way to use protected mode with the BC 3.1 compiler? I've been having problems configuring the DjGpp compiler, but ill try again. I found another interesting compiler called Pacific, which is pretty good for Assembly. It also has an ide.

So far i've got to 8 bit video mode in non-protected mode.

Sunny
01-03-2002, 11:14 AM
Ok. I got DjGpp and i think it's really great. But what amazed me most of all was RHIDE. It's so awesome!!!

However i need some help here with something before i start. I can't seem to be able to link when i compile because i get an error that says somthing like:

Installation error: Cannot execute 'cc1plus' no such file or directory.

or


Installation error: Cannot execute 'as' no such file or directory.


Need some help here, Bubba



Thanks a lot


Stef

VirtualAce
01-03-2002, 03:01 PM
First, no you cannot use protected mode with Borland C 3.1. All Borland's DOS compilers are real mode compilers - to my knowledge protected mode is not possible with them.

DJGPP does return some very weird errors. You will have to show me some source or perhaps your project config in order to understand those errors. I've gotten several crytpic errors while trying to use assembly and still have not gotten it to work. DJGPP is nice, but it would be nicer if it's errors were in English and a bit more to the point.

I'll ask DA about those errors and see what he comes up with.

Sunny
01-04-2002, 03:35 AM
Ok. I got RHIDE and everything to work finally , except that i can't link to executables somehow. I can make, but when i try a ctrl+F9 i get that im missing djgpp.djl for linking. Could you e-mail that to me or tell me where to get it please?
Thanks a lot.



Stef

Unregistered
01-04-2002, 04:52 AM
There's one "Djgpp.djl" in DJGPP\Lib, here it is :

OUTPUT_FORMAT("coff-go32")
ENTRY(start)
SECTIONS
{
.text 0x1000+SIZEOF_HEADERS : {
*(.text)
*(.gnu.linkonce.t*)
*(.gnu.linkonce.r*)
etext = . ; _etext = .;
. = ALIGN(0x200);
}
.data ALIGN(0x200) : {
djgpp_first_ctor = . ;
*(.ctor)
djgpp_last_ctor = . ;
djgpp_first_dtor = . ;
*(.dtor)
djgpp_last_dtor = . ;
*(.data)
*(.gnu.linkonce.d*)
*(.gcc_exc*)
___EH_FRAME_BEGIN__ = . ;
*(.eh_fram*)
___EH_FRAME_END__ = . ;
LONG(0)
edata = . ; _edata = .;
. = ALIGN(0x200);
}
.bss SIZEOF(.data) + ADDR(.data) :
{
_object.2 = . ;
. += 24 ;
*(.bss)
*(COMMON)
end = . ; _end = .;
. = ALIGN(0x200);
}
}

and one in DJGPP\Lib\GCC-Lib\Djgpp\2.81 :

OUTPUT_FORMAT("coff-go32-exe")
ENTRY(start)
SECTIONS
{
.text 0x1000+SIZEOF_HEADERS : {
*(.text)
etext = . ; _etext = .;
. = ALIGN(0x200);
}
.data ALIGN(0x200) : {
djgpp_first_ctor = . ;
*(.ctor)
djgpp_last_ctor = . ;
djgpp_first_dtor = . ;
*(.dtor)
djgpp_last_dtor = . ;
*(.data)
*(.gcc_exc)
___EH_FRAME_BEGIN__ = . ;
*(.eh_fram)
___EH_FRAME_END__ = . ;
LONG(0)
edata = . ; _edata = .;
. = ALIGN(0x200);
}
.bss SIZEOF(.data) + ADDR(.data) :
{
_object.2 = . ;
. += 24 ;
*(.bss)
*(COMMON)
end = . ; _end = .;
. = ALIGN(0x200);
}
}

Sunny
01-04-2002, 09:32 AM
Thanks a lot for the djgpp.djl.
It really helped a lot.
The only thing now is that ld.exe is giving me an error telling me im missing - lstdcXXX .

Im not sure if this happened to you the first time you tried to run suicide, bu thit is like the 101 error and i still havn't made a single executable. Im considering suicide - ok just kidding about that. :rolleyes:



Thanks anyways.

Take care ppl




Stef

Unregistered
01-04-2002, 05:16 PM
The file libstdcxx.a is in DJGPP\Lib.
Maybe are you missing a package.
Or maybe your autoexec.bat has not :
set DJGPP=C:\DJGPP\DJGPP.ENV
set PATH=C:\DJGPP\BIN;%PATH%

Sunny
01-05-2002, 08:18 AM
Ok. I found the file. The only thing is that it's longer than eight characters. So when i try to run RHIDE and all from DOS i only get this file name: libstd~1.a
Isn't Windows great ? :rolleyes:
Ok, just kidding about that. I need to know what's the dos name of the file or i think ill never be able to compile anything in my life with DjGpp.. :eek:
The paths have been set in autoexecbat long ago.
I have ALL the basic packages i need.

Thanks a lot anyways.

Take care people,


Stef

GertFaller
01-05-2002, 08:39 AM
In Rhide :
menu Options Libraries

have you set Use standart libraries ?

Sunny
01-05-2002, 09:47 AM
Yes, i did. I fixed the problem with the lstd. The packages have a problem with 7.5 dos long file names when they are decompressed. I tricked the compiler with that by renaming them. just that now, every time i try to ake an executable i get that ( and this is true ) im missing stubify.exe . Any suggestions anyone? :confused:

Thanks a lot

Take care People,

Stef

GertFaller
01-05-2002, 01:15 PM
Stubify.exe is in the main package djdev203.zip.
I thing you did install it .....

PURE_POWER
01-08-2002, 05:58 PM
Hi,
Would love to help out, im also using DJGPP, go to the web site for the latest download, use the file picker to help.
Installation shouldnt be that hard.....unzip all files to a single directory and run make from dos (i think thats right), and it should work.
Im using Allegro, its a graphics library for DJGPP so download that too, its amazing!.
anyway ive started making a GUI, visual replica of Win95, im first making a simple GUI, like win95 but without the plug n play....ect
then was thinking bout making a VisualC for DOS , all the ease of visual Basic with the power of C\C++. Sounds good ha :D
Anyways, i sent Stef an email bout all this so get back to me plz.
Thx,
PURE_POWER.

VirtualAce
01-09-2002, 02:57 AM
If you want a good GUI and speed we will probably have to use asm mixed with DJGPP. I do not have an assembler that produces the correct object files for GAS, other than GAS.

Don't want to use GAS because I would much rather write in Intel syntax and use a converter to move to AT&T.

stupid_mutt
01-09-2002, 04:05 PM
Can I help?

Unregistered
01-10-2002, 10:59 PM
HI this is Rahul.
I do want and intend to design a gui. I must say, i have done something, but, not up to the mark.
reply me
my email id is:

rahulsomani26@yahoo.com

stupid_mutt
01-11-2002, 01:43 PM
I guess not.

frenchfry164
01-20-2002, 05:43 PM
I use DJGPP and I got the same errors (I hope this isn't too late :p)

Did you download the package BinUTILS? I went to www.delorie.com, read the FAQ's, and they had the Binutils package under the question "I am getting an error saying Install error, missing cc1plus" or something like that.

Sunny
01-23-2002, 07:30 AM
omg omg omg!!!!!!
I thought this thread was going to e-mail me every time soneone replyed.... hmm...

Yes you can help - of course you can!!! Jeesh.. i just need to get my thoughts cleared up a little.

Ok. This is interesting, but i tyhink i've already downloaded the Bin Utils but i'll searcha gain/ Another thing is that i can't ( Actually, i don't know how ) to install DjGpp to another drive rather than C:\ because of space problems.
I've started work on it but im using a real time conpiler but im sure the source can be improve, I'd want the source to be free and available to all. Maybe we can all contribute somehow to it...


Ok,
Thanks a lot guys,

Take care,

Stef

Sunny
01-23-2002, 07:36 AM
I used to get the cc1plus error too. After some long exetensive research i found out that when i was decompressing the zipped files Windows would try and give them long names , so the file actually ended up with the '~1' in dos at the end ( ex: cc1plus~1 ). So basically you have them but you need to rename them.


By the way, anyone know how to output a pixel but really fast using video memory directly?
Im trying out the following source code with Borland C++ 3.1 to switch to graphics mode:

oid SetSVGA() {
_AX = 0x4f02;
_BX = 0x105;
geninterrupt (0x10);
}

But pixel drawing is really slow..... :P How i wish i could get DjGpp to work..... :*( :(((((



Taek care ppl,
Stef

stupid_mutt
01-23-2002, 04:14 PM
It looks like your doing vesa stuff, thats gonna be slow no matter what you do because of bank switching. If you want I can email you Mutt Dos Library, it has tons of stuff like: mouse stuff, vesa modes, keyboard stuff, interrupt hooking (pretty weak) and a couple very simple gui things and some other stuff too. Unfortunately my library wont work with djgpp because of djgpps damn weird assembly syntax.

VirtualAce
01-23-2002, 07:16 PM
If we use DJGPP we will not have to bank switch. We will have access to the LFB or linear frame buffer. I have code that already handles all of the memory stuff required to correctly use the LFB. It is very fast and gives acceptable frame rates as high as 800x600x16 bit. My card does not seem to support 24 bit modes.

If we were to use MMX and 3DNow (dep. on CPU) the speed would nearly quadruple. My DJGPP asm will not work. Keep getting very weird error about not finding class "DIREG" in reloading of asm. Syntax is correct but still no go.

Sunny
01-25-2002, 03:52 AM
stupid_mutt: yes please. I would be more than happy to take a look at that. It seems to me it's going to be very difficult if we ever think of using DjGpp. I took a look at it and i liked it very much, but the dang thing is so hard to configure and user-unfriendly... So for the moment, i guess ill just stick to what i got.
BUt it's not so bad... i mean, the 0x10 interrupt i use in BC 3.1 seems to be a little faster and more stable than the BGI graphics.... Hmm...Im not so surprised about that though....


WHat my first intention was to write a Shell for DOS using a Graphical User Interface and People could write programs for the Shell using a Script language. I got to some Beta version, but that's when i decided to swtich everything and all the graphics routines. The script language would be sort of like tags, somehoe similat to what html is for a browser, only that these would turn into programs. And everything, or mostly, would be Open SOurce. Well, not all. Anyways, that deosn't matter so much. I didn't think yet about how to make it use multi-threading, but i guess this too will be a delicate matter which must be handled. Hmm... i definitely foresee a lot of work coming on.... Also because i decided to use assembly to switch to graphics mode, so i'm now taking care of writing the fonts... :P


Thanks a lot guys,
Take care,
Stef

stupid_mutt
01-25-2002, 02:08 PM
Bubba has a point, plus we would get all the power of protected mode. Im actualy not sure I can help because Im probly gonna be helping KEN with acos, but I donno.

Hillbillie
01-28-2002, 05:04 PM
Are you guys still going to do this? (I'm not sure if this thread is old or not.)

Because, I'll be looking for a GUI for ShellOS. :D Try to use system-independent code, okay? ;) :D

VirtualAce
01-28-2002, 06:58 PM
Hey Sunny since you are the brains of this operation and you have plenty of good knowledgeable supporters so.......why not start delegating sections of code to us so we can work on them.

Going to need a basic idea of what you want your GUI to do and we will need to get a class hierarchy so we can modularize the whole thing. I know how to do some multi-thread stuff in DOS - not hard when all programs know about each other - several options like shared memory, semaphores, and pre-emptive multi-tasking. I'm not familiar with heavy weight task switching like from app to app, but I'm sure there are some books on it. Light-weight task switching is fairly straighforward.

As far as a video system for the GUI, I think any of us could handle that in DJGPP. My sound code would work fine for basic sounds in the GUI since not much mixing required.

But for it all to work we gotta have some direction and get a class hierarchical diagram so we know how it all fits together. If you want I could flowchart my module so you can see exactly what it is doing.

So now Sunny, let's code this thing. You are the project lead. Lead us.

Sunny
01-29-2002, 02:57 AM
Ok... I think the first step should be to put down a concrete list of vonlunteers.
Another thing i would like to say is that i am not experienced enough to lead such an important project as this. I can however try to harmonize our ideas and try and make us work toghether. So, so far i have been mesmerized by the entuziasm i've seen by those who actually subscribbed to this list. I think this project could turn out nice. But it's up to us. But, don't call me the "Brains" of this work, because all i did was start the thread.:)
Anyways, i think Bubba is more experienced than me here, and i'd like it if he could help coordonate the project ( if he wants of course ). :D It would be a great help ...
Another thing is that I havn't yet succeeded to make DjGpp work with me. I guess he doesnt like met hat much :P. But, i have succeeded to compile some C sources. apparently ld.exe can't find the Libraries and i don't know why because i've set all the variables I know about so far. I've read all the FAQs i could get my hands on... * Sigh *
So, maybe we could consider writing a graphics server we can port our applications to. Dunno, need more thinking...


Take care ppl
Stef

ygfperson
02-01-2002, 10:07 PM
anyone know about the ms-dos shell that came with ms-dos 5.0? it was a weird thing, used ega graphics and i think had a mouse pointer. can't remember ever using it(much), and windows 3.1 overdid everything shell could do(mainly file copying/deletion, etc, and executing files).