DJGPP
delorie.com
delorie.com
This was a great strategy back in the day, no need to fiddle with the partition table or the boot sector, or resize existing filesystems on the device. (Current Linux versions have no UMSDOS support, but some distributions allow for a similar approach using loopback filesystem images. It can work especially well if used with LVM, to seamlessly extend storage as needed.)
The performance critical parts of quake were written in Pentium micro optimized assembly.
Using DJGPP gave other advantages, the id team developed on Unix/Next boxes. I think they also had some commercial Unix servers for running the expensive level (PVS) compilers. This gave them had a compiler that could target Unixen, DOS and windows. They could ship the compiler if they wanted (though ultimately mods were done through quake C). With source available they were able to and did in fact modify the compiler and DOS extender for their needs as well
https://en.m.wikipedia.org/wiki/CWSDPMI (See CWSDPR0)
Thanks for the reminder of the name. I was trying to think of this a couple of days ago.
Looking back it's amazing how much easier it is to learn stuff nowadays. The internet is truly a blessing.
Anyone interested in compiling for DOS (32-bit or 16-bit) should also check out Free Pascal.
I was trying to find this JVM recently and couldn't find any trace of its existence which makes me wonder if I imagined or got confused about the whole thing.
https://github.com/SuperIlu/DOjS
"DOjS is a JavaScript programming environment for systems running MS-DOS, FreeDOS or any DOS based Windows (like 95, 98, ME). It features an integrated editor, graphics & sound output, mouse/keyboard/joystick input and more"
Never tried it.
https://web.archive.org/web/20000613171121/http://www.sun.co...
Wow I thought it was gone, but it's still available
I'd imagined there might be a port of one of the PalmOS-targeted JVM-alikes (eg SuperWaba) but it doesn't look like any of them made it back to DOS. I could also imagine someone getting an OS/2 or Windows JVM running under a DOS extender.
https://github.com/o8vm/rust_dos
Not sure what the approach would be for them to expand that to support segments.
In DJGPP there are macros to allow your protected mode application access physical real-mode addresses (like when you want to write to video RAM). I don't know if IA-16 also does something like that, or if they added far/near keywords to the language like old 16-bit C compilers did (at least the ones I used).
Free Pascal has helper-functions to work with segment+offset pointer pairs, also without having to modify the language itself. I think that would work well enough in C, but I guess the old method of adding non-standard keywords was seen as slightly more convenient.
Years later I learned SDL/SDL2 and found them much much easier.
Re SDL - exactly! Same path.
It's been years since I wanted to play around making a game. I was thinking of building something in the love 2d framework now. What do you think of that?
But, for those same reasons, if you did something crazy (like I did with my first isomorphic engine), it could quickly get unmanageable with resource leaks.
Nowadays, I just recommend raylib, if you want a more "game"-oriented (vs "graphics"-oriented) library. I just wish someone would expand the docs so it wasn't as difficult for new gamedevs to jump in.
Frankensteined a few together until I had 4 machines, connected their serial ports, and learnt C and how to use a chess library to make them play chess against each other, it took me years but I leant heaps,
Also got my first exposure to a decent graphical desktop, Desqview/X!
Interesting name. I wonder if it's the one that his parents gave him or if he changed it? Very unusual.
(Remember Johnny Cash? Originally named J. R. Cash; he only expanded the "J" to "John" when he joined the Air Force, as they wouldn't allow the single letter; and AFAIK never did expand the "R". See also Harry S Truman: the "S" does not stand for any one name.)
Good times :)
Also the one place I learned to use `info`, as it had a very good reference for many of the libc stuff, though for some reason I never really continued to use it even if its available on linux.
Courier was so readable.
(ps: change for the sake of change is not quite all that I meant, it's not just that "new UI language every five years", but also those great API revolutions that came independent of looks. Those are certainly far more well-founded than just "for the sake of change", but suffer from coexistence with their predecessors nonetheless. win32 as an evolution of win16 and optionally wrapped in MFC, that might have been error-prone and complicated to write for, but it does have a certain clarity that no successor can claim as long as compatibility remains the product)
In terms of ISO-complianceness, perhaps don't expect much. It basically C89 (the C99 support is still incomplete), and for C++... most likely not even C++98 - compliant.
[1] https://en.wikipedia.org/wiki/EMX_(programming_environment)
(Looks like the official Rhide website is down/gone?).
Is there any way to use the synergy between them to make them work better ?
Only 20 years?
Some of us have been around longer than that. I know Visual C++ has
Naturally depending on the country culture that was hardly a problem, with endless list of software catalogs on street bazaars, but that wasn't what I was refering to.
There was an IDE for it, 'RHIDE' I think, that looked similar to the DOS-era Turbo Pascal IDE
The context of this discussion (DJGPP) is from the MS-DOS and Windows 9x era, which was more than 20 years ago.
Plus I think the express editions came with some strings attached. I could be wrong, because I already had the gcc ports (djgpp, mingw) and didn't care much about Microsoft's breadcrumbs.
Also, I don't see what "synergy" you're talking about.
No, it allows some POSIX programs to be compiled on Windows. ISTR using it on DOS with Allegro to write games.
No, at its core it's a port of GCC to MS-DOS (not Windows); it has no compatibility for Linux programs other than by virtue of both using the same compiler (GCC). If the program uses more than the standard C or C++ library, there's a good chance it won't compile unless it's ported to use what's available in MS-DOS. Even basic things such as process management (fork and so on) are non-existent in DJGPP, and unless you're running in a DOS window within Windows 9x (which makes available the LFN API to DOS applications), you're limited to the classic case-insensitive 8.3 filenames (which trip programs designed for Unix-style systems more often than you'd think).
Definitely made getting into C/C++ on Linux easier to have started with this tool chain.
> Note: DJGPP is spelled all upper case when it would normally be capitalized, and all lower case otherwise. It is never correct to spell it ``Djgpp''.
or would you start another jif/gif-kinda war over this with the author? XD
Also I can see that Paul Graham's "my website my rules" is even stronger than mine or DJ Delorie's, so Djgpp is also correct (if not by the Gods, then by fist).
That strongly reminds me of "it's spelt Raymond Luxury-Yacht, but it's pronounced 'Throatwobbler Mangrove'".
Additionally, word-initial single G before short I is always [g] instead of [dʒ] in native English: gift girl give gibbon gimlet gizzard gilded git gimp giddy gig gimbal.
The exceptions are borrowed French words: gin (le gin), ginger (le gingembre), giraffe (la girafe), giblet (OF: gibelet).
Although: "Since C++ is integral to gcc, djgpp no longer stands for "DJ's G++" but probably stands for something like "DJ's GNU Programming Platform"." [2]
"Couldn't we rework that command to not use + separators?"
"No, far better to take that character out of consideration."
Unix: "Filenames can use control characters. I don't care if that makes pipes between commands really complicated! Add an option for NUL-separated filenames if you have to."
copy /b file1+file2 output /sThe definition of the word word.
> when it’s clearly an initialism?
Then why does its creator write it all lowercase?
> Do you also write MS-DOS as "Ms-dos"
Yes.
It's written consistently in all upper case in the copy text at https://www.delorie.com/djgpp/.
When it's written in all lowercase, like in the title, that's a stylistic preference that you can disapprove of if you want, although it's an incredibly petty thing to care about.
> Yes.
Well, that's your prerogative, but it's against standard English orthography. Acronyms and initialisms that refer to proper nouns are spelled all uppercase in English. FBI, NASA, WHO, GCC, HSV, NY, no "Fbi", "Nasa", "Who", "Gcc", "Hsv", or "Ny". You'd never get the latter versions past any remotely competent copy editor or grade school teacher.
As an example of different orthography, in standard Finnish NASA would indeed be spelled "Nasa", but FBI is still FBI and DJGPP is still DJGPP.
And consistently lowercase in the article linked in the post I was answering.
There is 10 years between the 2 links, seems the author changed their mind about introducing words with forced irregular capitalization.
DJ's GNU Programming Platform (DJGPP)
Apart from organizations, I'd capitalize only the first character for most.
So it's HIV but Nasa, and because you can hardly pronounce DJGPP it's all capital letters.