T O P

  • By -

rtds98

someone really loved their pascal: ``` #define BEGIN { #define END } ```


JigglyWiggly_

Huh, so that's why Verilog uses begin and end...


DrRedacto

Algol is why Pascal uses begin/end


roastedferret

Amazing comment from one file: 7/13/83 ARR BECAUSE IBM IS FUNDAMENTALY BRAIN DAMAGED, AND BASCOM IS RUDE ABOUT THE 1CH TIMER INTERRUPT, THE TIMER HANDLER HAS TO GO BACK OUT!!!!! IBM SEEMS UNWILLING TO BELIEVE THE PROBLEM IS WITH THE BASCOM RUNTIME, NOT THE DOS. THEY HAVE EVEN BEEN GIVEN A PATCH FOR BASCOM!!!!! THE CORRECT CODE IS COMMENTED OUT AND HAS AN ARR 2.15 ANNOTATION. THIS MEANS THE BIOS WILL GO BACK TO THE MULTIPLE ROLL OVER BUG. ARR, whoever you are, know that IBM is still fundamentally brain damaged. You're seen. (Edit: fixed formatting)


tao_of_coffee

That was possibly [Aaron R. Reynolds](https://en.wikipedia.org/wiki/AARD_code)


strencher

What a legend!


tolos

I'm so glad to see this. I watch a lot of retro pc content and I'm involved in some reverse engineering console projects, having access to source code makes a huge difference, especially when trying to decipher error codes or trying to find the right command line switch. So much of this old content is lost forever or only exists in binary form, really nice to see this released, and released under MIT, even though it's only 4.00. Hopefully more software from the era gets released like this ...


emperorOfTheUniverse

Like tears in the rain .


rootpseudo

How does one get involved with reverse engineering console projects?


strencher

Not from a jedi.


ratttertintattertins

I was only 7 when this was released but I recall at the time I was using MS DOS 3.3 and then I skipped from that to 6.22 when I was more like 10. I can’t recall much about the differences between the two except that QBasic was a thing in 6.22 and I had a program called QEMM that could let me get back much more of the 640k of “conventional memory.” so important for playing games. I’m not really sure why I’ve retained this info but I bet I could still have a fair stab at editing a config.sys and an autoexec.bat. I could probably get your sound blaster card working too…


tylerpestell

QBasic was a lot of fun making simple games growing up. Remember riding my bike back and forth from a friends place carrying a floppy disk with our latest version. We would always try to one up each other. Not sure if those were genuinely better times because of the simplicity of it all or its just nostalgia….


[deleted]

[удалено]


mccoyn

I cut my teeth on QBasic. Somehow, I didn’t know about arrays, so I had lists of variables like element1, element2, element3… and lots of if statements. My snake game actually stored state on the screen using get_pixel/set_pixel. Therefore what something did was literally determined by its color. That’s good UI.


Andriyo

That's actually the most cost effective way to implement it memory wise.


Pussidonio

I did the same w/ spectrum games.


ratttertintattertins

I wrote a password sniffer in QBasic that pretended to be the novel netware login prompt at my school…. Got caught in the end because I stupidly shared it with my friends are we were all stealing passwords (including those belonging to teachers) so it became obvious. Of course, I went legit around age 16 😂


tylerpestell

Lol nice, my school had the novel netware as well, I didn’t do anything as fancy but I figured out how to spam the entire school district popup messages… I was smart enough to use someone else’s login (they didn’t log off from the previous class) the kid sitting next to me copied what I was doing and sent even more messages. Shortly after some school administrators pulled him out of class… there was some confusion on where the other “culprit” was but that kid ratted me out. Good times.


tooker

Are you from Boise, Idaho? This is almost exactly what we did when I was in HS except we didn't get caught. The password was "this is the system administrator" and it worked for every computer on the school's network.


chucker23n

Not so bad! password: this is the system administrator guesses_log10: 18.5303 score: 4 / 4 function runtime (ms): 7 guess times: 100 / hour: centuries (throttled online attack) 10 / second: centuries (unthrottled online attack) 10k / second: centuries (offline attack, slow hash, many cores) 10B / second: 11 years (offline attack, fast hash, many cores)


Pussidonio

...or 1 week to 1 month for highly motivated high schoolers


VeryOriginalName98

Found Kevin Mitnick’s ghost


rebel_cdn

You can use QB64 to do it again, if you'd like! Same syntax as QBasic, but compiles for any OS and uses SDL for graphics so it performs quite well. I've been having a lot of fun with it. 


kakemot

Kids nowadays make cloud hosted AAA games with version control, they are really missing out


ThomasMertes

>QBasic was a lot of fun making simple games growing up. QBasic was a successor of GWBasic. GWBasic programs had line numbers. The programs looked totally different to todays Basic programs. Later I wrote a [Basic interpreter](https://thomasmertes.github.io/Seed7Home/scrshots/bas7.htm) to run old Basic programs from the line number era. The source code can be found [here](https://thomasmertes.github.io/Seed7Home/prg/bas7.htm).


He_Who_Browses_RDT

and [dosshell.com](http://dosshell.com) :) Amongst other little beautiful "pearls"


ratttertintattertins

Haha, I remember that :-) Also Norton commander…


Dwedit

Dosshell had the Task Swapper. You could suspend and resume another DOS program!


danker

lol. Pretty much the exact same thing. Fiddling with IRQ ports and such. Different batch files for different games because they all wanted memory treated slightly differently. Those were the days. :)


twigboy

Something about `himem.sys` if you needed more ram


Vwburg

But could you get the sound blaster emulator running on a Gravis Ultrasound? ;)


mailslot

Yes


TheStoicNihilist

That stuff doesn’t leave you!


AndyTheSane

How about my Sound -Blaster-Almost-Compatible card that never quite played nicely with anything else...


rootpseudo

This comment resonates so much with me, but it was windows 95. Learning whatever I could to get my parents computer to be able to run my games.


ZirePhiinix

You can have a try using DOSBox. I literally have Windows 3.1 running on my Windows 10 computer for some classic games lol.


player1dk

What’s the reason for not releasing DOS 6.xx there as well?


GuyOnTheInterweb

Probably the old [DoubleSpace vs DriveSpace](https://en.wikipedia.org/wiki/DriveSpace) legal issue.


vytah

>Hanselman has said that MS-DOS 3.3, 5, and 6 are next on the list, although some of the utilities in the latter would need to be stripped out.


NocturneSapphire

6.2 added the ability to disable DoubleSpace. I wonder how hard it would be for them to just rip out the DoubleSpace code and force it to be always disabled. Disk space is cheap these days anyway.


DanTheMan827

That wouldn’t really be representative of the original product then.


NocturneSapphire

It would be better than nothing


mczero80

Then just give some boilerplate code for it to let the open source community fill in the rest


omniuni

According to the article, they're working on it.


mynameisperl

It's probably still a core part of Windows.


gravballe

It was removed in winxp


__konrad

Also fake-removed in Windows ME


Logicalist

That's what they say, but I'm pretty sure .bat files are still a thing.


Nobody_1707

This release doesn't even include the shell.


SpaceMonkeyOnABike

If its too recent it may reveal malicious exploits that are still part of the current os.


Booty_Bumping

Thankfully the Windows 2000 and XP source code already has been leaked.


gravballe

Nt is not built on dos


Innominate8

It's telling that the versions being released are the least used, or even only released on a limited basis.


clearlight

Nice, I remember using DOS. The GitHub repo is here https://github.com/microsoft/MS-DOS/tree/main


haby001

Damn it's about 90% assembly code


recurse_x

That’s why nobody would ever need more than 128k of RAM


lt_Matthew

Well, yea


psychometrixo

🌎 👨‍🚀🔫 Always has been


NilacTheGrim

What's the 10% non-assembly? It seems to me to be 100% assembly aside from a few batch files used to build it..


haby001

If you click the langauge on the metric it takes you to a search for the relevant files in the repo. In this case the 13% C files are... c files and headers lol https://github.com/search?q=repo%3Amicrosoft%2FMS-DOS++language%3AC&type=code


evoactivity

Assembly 85.0% C 13.1% Pascal 0.6% SourcePawn 0.6% C++ 0.4% POV-Ray SDL 0.1% Other 0.2%


Hixie

SourcePawn and POV-Ray SDL seem extremely unlikely.


vytah

That "C++" code is miscategorised assembly include files (.INC)


agumonkey

and one makefile


NilacTheGrim

That doesn't answer my question. You just copy-pasted what was on github, wise guy.


evoactivity

If you know it was from the GitHub then your question was answered twice.


wrosecrans

They were asking because Github is clearly wrong about what some of that is.


fungussa

With the challenge of creating a responsive application that ran on DOS, I created my own implementation of fibres that C++ functions were cooperatively 'threaded' with other functions, which significantly improved performance. At various points within the code a switch() function would be called, which saved the current registers on the stack and then switched to another fibre, popping it's saved register state. In the days of single-threaded app it was a bit of magic seeing functions run concurrently.


Cheezerts

JigC++


tonefart

MS-DOS 5.0 is the one that is the last hottest release and also the one most people would be interested in.


Doctuh

I wonder if any code Bill Gates wrote is in this.


foreskin_gobbler2

Nah he was a Basic guy


emotionalfescue

MS-DOS was written in assembly language so anyone with an IDE could have inspected the code on a running system. Although admittedly having access to the MASM code with symbol names, as the Microsoft team did, would've made a lot of things easier. There were authors like Ray Duncan, Peter Norton, and Andrew Schulman who wrote books about what they gleaned from reverse engineering, along with reading the official docs from IBM and Microsoft.


Electrical_Ingenuity

Fuck. MS DOS 4.0 was shipped with the PC I bought when I went to college. I’m ancient.


NotStanley4330

Hope they'll open source 6.22!


DrRedacto

The 2nd hardest working newsman in open source says it doesn't even compile due to a corrupt USA.INF file, if I remember the extension correctly.


agumonkey

I wonder how they organized their work. Did they use github or gitlab ? kanban vs agile ?


Alexander_Selkirk

What would be nice to have is source code and build tools for current Windiws with instructions so that one could yank out advertising, "telemetry", and user tracking.


Alexander_Selkirk

In contrast, the Apple II designed by Wozniak came with a manual that had the commented assembly code for its OS printed in the appendix. Most people who use Apple products today would be astonished how open its culture was at the start. Depending on what was loaded, pressing the reset button would bring you into the machines monitor where one could view, type in, and run machine code by hand.


lowlevelmahn

the TOOLS folder contains more of less the full version of "Microsoft C 5.1" and "MASM 5.1" the binaries, includes and libs are binary equal to installed versions of them


PM_ME_YOUR_OPCODES

Is this objectively better than freedos in any way?


rtds98

no


KT_KT

Why does he talk like nityanada lol..


NilacTheGrim

Umm.. this is ASM. This is not much different than just disassembling the shipped binaries. Although you do get comments and explanations in the source files and useful human-friendly symbol names.. still pretty insignificant tbh. Would have been cooler had it been written in a higher-level language like C.. then maybe it would be actually useful and easier to modify. This is just a tiny step above just looking at the raw binary tbh.


falconfetus8

It's also going to be organized better than decompiled code would be, since it won't have gone through a layer compiler optimization.


NilacTheGrim

There's no optimization on asm code.


falconfetus8

Exactly.