35 Years of Windows: A Look At the First Hello World Program!

  Рет қаралды 26,486

NCommander

NCommander

4 жыл бұрын

Windows has evolved a lot over 35 years of development. Today we're going to look at the first version of Windows, released in 1985, its corresponding Hello World application, and then seeing if it's possible to run these applications on a modern version of Windows
Twitter: / fossfirefighter
Discord: / discord
Annotated HELLO.C Source Code: github.com/NCommander/win1-he...
Music Credits:
Final Fantasy X "Lake in Ontario?: ocremix.org/remix/OCR01560
Final Fantasy VI "A Legacy Forgotten": ocremix.org/remix/OCR03034
Final Fantasy VII "With Heart and Soul": ocremix.org/remix/OCR04057

Пікірлер: 125
@NCommander
@NCommander 4 жыл бұрын
A technical write-up for this video is available here: soylentnews.org/article.pl?sid=20/05/10/1753203 Corrections, comments and any other feedback is welcome!
@MichaelDavydoff
@MichaelDavydoff 3 жыл бұрын
windows 1.0 was written in c or pascal?
@NCommander
@NCommander 3 жыл бұрын
@@MichaelDavydoff From what is known, it was primarily C and pure assembler. The PASCAL ABI however was used, likely to save space and memory.
@MichaelDavydoff
@MichaelDavydoff 3 жыл бұрын
@@NCommander is there any reference sources about windowing system programming in c except "Smalltalk-80: The Language and its Implementation"?
@NCommander
@NCommander 3 жыл бұрын
@@MichaelDavydoff Are we talking about writing GUI apps or writing a graphical UI system?
@MichaelDavydoff
@MichaelDavydoff 3 жыл бұрын
@@NCommanderI would like to trace the history of GUI developments over the last 40 years and try to reimplement similar but simpler graphical UI system (windowing system) just for fun and learning
@Mark.Brindle
@Mark.Brindle 3 жыл бұрын
The memories. I remember buying and lugging home my Windows 1.01 SDK. 5 months later I was at a bank developing with OS/2 1.0 beta. Stayed with OS/2 for several years. Great times!
@NCommander
@NCommander 3 жыл бұрын
You won't by any chance still have the OS/2 beta SDK stuff or the DDK? That's one of the bigger holy grails in undumped software, especially any of the 1.x DDKs.
@teekay_1
@teekay_1 3 жыл бұрын
When windows 3.0 came out, I worked for a consulting company and the boss sent me a Windows Coding Class from Microsoft University (which was very cool). I was blown away by how complicated Windows coding was. Now, I was used to message driven programming having used it on a Mac and Amiga, but Windows seemed to make it way harder than it needed to be to simple text input and display on the screen. Anyway, when I got back to the office, the boss asked me how we could convert all our current mainframe programmers to be windows programmers,and I said probably only 1 in 10 will be able to cut it. He dropped the idea after that. But I did get to go to that cool class at Microsoft at a time when they had a veritable supermarket of snacks to enjoy at the building. The instructors were great, too.
@ifrit05
@ifrit05 3 жыл бұрын
Came for old tech stuff, stayed for the Final Fantasy Music.
@chriswareham
@chriswareham 3 жыл бұрын
The length of the "Hello World" source code reminds me of when I first learnt GUI programming for Unix systems. This used the X Window System, relied on the low level Xlib library and tooke several hundred lines just to put a message on a window and then close the application when clicked on. I was rather relieved when I moved onto using "widget" toolkits like XView and Motif that reduced the line count to about twenty.
@NCommander
@NCommander 3 жыл бұрын
Working with Xlib is like carving your UI out of 1s and 0s. Motif on the other hand is using hex :/ I've looked at the Motif programming interface and it just looks painful. Less painful than say Xlib, but painful none the less.
@chriswareham
@chriswareham 3 жыл бұрын
@@NCommander I found Motif OK, it at least had layout managers that would resize automatically rather than the absolute positioning that Microsoft's MFC forced you to use. It was designed with GUI builders in mind though, as it was expected that pretty soon everyone would design their interfaces using a graphical layout tool and not have to code most of the Motif stuff themselves. Interestingly, Microsoft were involved in the aesthetic design of Motif, and their experience with it would influence the appearance of Windows 95.
@NCommander
@NCommander 3 жыл бұрын
@@chriswareham If you look at the WIndows 95 Chicago builds, or early Windows NT, the Motif resembance is much clearer. toastytech.com/guis/indexwindows.html has a very good collection of photos to look.
@monad_tcp
@monad_tcp 2 жыл бұрын
@@NCommander It would be less painful to carve pixels on the screen with Vulcan. I prefer QT on top of anything that deals with the absolute madness that is desktop graphics on Linux or Windows, perhaps with Cairo and glib with Wayland would be another history. But thanks, I pass this challenge. XServer, no, I don't want it. (nor do I want win32/winforms)
@smilgolan6718
@smilgolan6718 3 жыл бұрын
What a background music as I happen to be getting thru FFVI's story for now.
@NCommander
@NCommander 3 жыл бұрын
I don't use OCRemix music anymore because it has a bad tendency to trip Content-ID even though its OK for commerical use as long as proper credit, but I will say it has a nice effect. I might use it on later/special videos, especially remixes of some of FF7'siconic tunes, or Terra's Theme/World Map FF6.
@HoboVibingToMusic
@HoboVibingToMusic 2 жыл бұрын
I appreciate my friend for showing me your content. This is interesting as all hell
@a4andrei
@a4andrei 3 жыл бұрын
Windows has legendary backwards compatibility and the API Microsoft developed for the first versions of windows is still largely the same today. I always cringe when I hear people say that microsoft should 'remove the legacy stuff'. That would be impossible because everything sits on top of that. Even dotNet and UWP apps are built using those legacy APIs, but they're just abstracted away.
@alb12345672
@alb12345672 3 жыл бұрын
MFC is still used today. That directly dates back to 1991 ish. Which is a layer over the old C APIs/SDKs. In VS 2019...docs.microsoft.com/en-us/cpp/mfc/reference/creating-an-mfc-application?view=msvc-160
@monad_tcp
@monad_tcp 2 жыл бұрын
Windows might be slow to create Window or new Processes, but creating threads is super-fast. Linux on the other way is the inverse. I get see the problem with the API being cumbersome to use. Does it work ? so what matters. Its the same thing as asking Linux to drop the stupidity of its process creation execve/fork. Its all POSIX and it works and is documented, so what would be gained replacing just the API ? not much.
@risq1809
@risq1809 Жыл бұрын
I know this comment is old, but I wanted to just say that, yes while the backwards compatibility is impressive, and those APIs are still in use today, they really shouldn’t be. I feel this stuff sort of holds back tech and innovation in a way, similar to Apple’s M1 silicon kind of highlighting how even x86 could be considered outdated. I still think this stuff is useful, and can 100% see how it is still used today, but I can also see the other side where it does hold back innovation and pushing forward the boundaries of tech. Sincerely, A zoomer linux user :)
@kenlnetherland
@kenlnetherland Жыл бұрын
Not quite as true for WPF. It's a ground up presentation framework.
@kenlnetherland
@kenlnetherland Жыл бұрын
It is, however, built on DirectDraw and DirectWrite, which you could say are legacy API's
@Reziac
@Reziac 4 жыл бұрын
Wow, I'm impressed. And this was totally hilarious. Thanks!
@NCommander
@NCommander 4 жыл бұрын
Thank you kindly :), I'm just lucky I recorded my mistakes.
@Reziac
@Reziac 4 жыл бұрын
You and MichaelMJD should get together and do a super-retro video :)
@NCommander
@NCommander 4 жыл бұрын
@@Reziac I'd be open to some sorta of collobration, my first "real" KZfaq anything was actually guest starring in @RetroManCave talking about NeXTstep. That being said, I might not be big enough, Michael MJD is one of the larger retro tech channels and I only have two videos and 67 subs.
@Reziac
@Reziac 4 жыл бұрын
Once upon a time I recommended a fellow with SIX subs to a largish channel of my acquaintance. They had him on as a guest and his channel took off like a rocket. Anyway, I don't think size matters here; this is a specialty interest and this video certainly brought new stuff to the table! Besides, one need only say the magic words... "Soylent News" :D
@NCommander
@NCommander 4 жыл бұрын
@@Reziac Feel free to drop Michael MJD or any other channel on my behalf; I'd be happy to experiment with doing something like bridging Windows NT 4 Domains over a hodgepodge equipment of the Internet. I'm actually getting a video edited on NetWare and then going into netbooting DOS and OS/2 from it. I'm not sure I'm comfortable doing so, it feels a little to close to self-promotion if I do it directly. The only reason I felt OK even posting this to SN was that I had the technical writeup to go with it.
@bbeda
@bbeda 4 жыл бұрын
This was vert cool! Thank you
@Shiunbird
@Shiunbird 3 жыл бұрын
Fascinating! I am so glad you are doing this. (I do document some old stuff myself sometimes) Windows backwards compatibility is legendary. People tend to blame it for all the bloat and mess but actually, I'd blame it on the bloat of modern software. Seriously, if I compile a simple C prime number calculator I don't know, for Windows CE 2.11 ARM (text only), it is a 4KB binary. If I do the same thing on my Intel Mac, it's at least 10 times the size. =\ Hello world itself much larger, even if I uncheck all architectures and make it only x86, it's still much larger. Meh.
@DevynCairns
@DevynCairns 3 жыл бұрын
OCRemix music, hell yeah
@briankarcher8338
@briankarcher8338 10 ай бұрын
I honestly was not expecting that Hello World program to look so... familiar. Even more surprised that it is fully functional on a version of Windows released in 2019.
@Codestud
@Codestud 2 жыл бұрын
In the mid '90s I remember seeing how much code needed to be written simply to say "Hello World" on Windows and I thought it was absolutely ridiculous. I then decided to embrace Visual Basic.
@wton
@wton 3 жыл бұрын
Windows: 35 years of support of legacy software. Mac: 15 years and 3 totally different architectures making a nightmare for legacy software.
@zoomosis
@zoomosis 3 жыл бұрын
Four if you count i386 and x86-64 as seperate archs, since they dropped i386 support in Catalina. But Apple often don't provide long-term compatibility even on the same arch.
@fabiosarts
@fabiosarts 3 жыл бұрын
even so, Mac Os always had a very good retro-compatibility, even cross-architecture
@NCommander
@NCommander 3 жыл бұрын
They used to. Then iOS happened :/. I did a demo showing a bunch of System 1 apps running in Classic on Mac OS 10.4 right before intel macs got announced.
@fabiosarts
@fabiosarts 3 жыл бұрын
@@NCommander before they removed 32 bit support, certain software like Basilisk and Sheepshaver just ran much better than it's windows and Linux versions
@nickwallette6201
@nickwallette6201 3 жыл бұрын
Interesting perspective. I see the history of Windows and Mac a little differently. Apple has been able to change platforms from 68K to PPC to x86 to x64 to ARM with hardly anyone noticing that anything changed. Meanwhile, the transition from x86 to x64 on Windows was _brutal_ and took all of XP and Vista’s lifetime to go mainstream.
@quilak
@quilak 3 жыл бұрын
Oh wow it's neat to see Windows 1.0 doing some useful stuff there!
@feamatar
@feamatar 4 жыл бұрын
Awesome video. I am using PCem, which emulates period correct hardware so no hacking with Windows 2 drivers is needed.
@NCommander
@NCommander 4 жыл бұрын
I had trouble with PCem when I tried to film this video originally, but I eventually got it properly working and I used it for footage for both IBM OS/2 1.0 on a livestream and an upcoming video for NT OS/2.
@DaVince21
@DaVince21 2 жыл бұрын
I think a video of Cardfile and its history could be very interesting, especially when combined with similar software that tried to one-up it like Apple's HyperCard.
@andrewjefferies8391
@andrewjefferies8391 2 жыл бұрын
I made a comment on cardfile too, without seeing your comments.. It really did do the job very well.. I think that I still had it in Win95, With a bit of Jiggery Pokery & bending ears at MS lol !
@kenlnetherland
@kenlnetherland Жыл бұрын
The amount of code initially needed to do "Hello World" on Windows was not the phrase as much as creating a surface (window) to paint it on.
@andrewjefferies8391
@andrewjefferies8391 2 жыл бұрын
Wow, I can recall DOS 6 ! I was familiar with Generic cadd6, knew most of the shortcuts too, used it daily.. I was presented with a big box of floppy disks, the big ones, it was before the 1.44Mb discs, and asked to "Try This"..(was at ICI so I was a prime target for testing stuff).. It was the first Graphical interface that I had ever seen.. Game changer ! I miss the old mimic of the Contacts "Cards".. It worked brilliantly ! BUT.. although it was easier to navigate it was really slow and crashed all to often.. Bring Back the green text and speed things up . lol !
@colinstu
@colinstu Жыл бұрын
Slap Jr indicates there's gotta be a Slap Sr around?
@AceWing905
@AceWing905 Жыл бұрын
Dang, the timing of this video I believe it was only a couple of weeks before Microsoft announced they were going to stop releasing 32bit Windows to OEMs, which was just the start of their 32bit support drop Still, 35 years is a long time
@darak2
@darak2 2 жыл бұрын
Earlier 'Hello, World' sample programs in Windows were not examples of minimal software for the platform. You could write a few lines long 'Hello, World' program (which would just show a message using MessageBox) even for Windows 1. Those 'hello, worlds' were examples of minimalistic but well-behaved 'complete' programs so they performed all the initialization setup most complex programs would do, such as registering a custom window type and producing a fully interactive window they'd paint with custom drawing code. That's the reason they were unexpectedly long and verbose: they were supposed to have far more educational value than a 'print "Hello World"' program.
@NCommander
@NCommander 2 жыл бұрын
This is technically true, but even by that standard, this program is extremely long. A equivalent Toolbox or Motif program is quite a bit shorter, and it doesn't help that the code demo does quite a few unnecessary things, plus 16-bit WIndows required a lot of boiler plate to deal with segment and resource registeration. If I were to re-implement this on modern WIndows, it would be a fair bit shortly, possibly even half in size while still demostrating the same core event loop and dialog creation aspects.
@thomasandrews9355
@thomasandrews9355 3 жыл бұрын
I learned to write Win32 API code by memorizing the examples. I don't really remember any of it nowadays as its been years since I've created a window from scratch but I definitely remember registering a class, creating a window with said class and setting up a message pump. Ah, good ol GetMessage / PeekMessage. Then you have your handler procedure. I'll stick with .net please.
@lunquewill
@lunquewill 3 жыл бұрын
I thought I heard OCRemix tunes in here and the description shows I'm right!
@NCommander
@NCommander 3 жыл бұрын
I don't use OCRemix music anymore because it has an annoying tendency to cause Content-ID/Copyright strikes even though OCRemix music can be monetized (specifically allowed by ocremix). That's why SLS Part 2 has no music after three attempts of scoring it all got content striked :/
@ogamiitto5642
@ogamiitto5642 3 жыл бұрын
While I haven't done so for some time now, I used to do quite a bit of Win32 GUI programming back in the day (calling Petzold's “Programming Windows” my bible). It's nice to see that the basic structure of a simple GUI-based “Hello World” application was already fully-fletched out even back then, and thus was much the same as it would be for a modern 64-Bit Win32 GUI application - well, except for the fact that the presented source code obviously predates ANSI C and is therefore sprinkled with old-style functions ☺
@NCommander
@NCommander 3 жыл бұрын
I believe that's the book that talks about HELLO.C being a scandal at 115 lines of code. My annoted version is 400+, but that's because I wrote a primer to real mode. Segments dies an inglorious death.
@ogamiitto5642
@ogamiitto5642 3 жыл бұрын
​@@NCommander Thanks for replying! Yeah, that's the one. Well, I guess “Hello World” for the Windows is somewhat of a shock to everybody the first time around … at least until one realizes that things like general setup and window procedures follow quite predictable code patterns. Anyway, since yesterday I've also found time to read through your write-up on Medium. I didn't know about the need for MakeProcInstance() in earlier versions of Windows, for example … really interesting stuff. Seeing all this talk about segments and NEAR and FAR pointers and calls reminded me however, why I've never looked back after leaving DOS/16-bit environments for good at the end of the millennium. In that sense: thank you for fighting the good fight for us-tirelessly wrestling with these old operating system and development environments, just so that we can experience the joy of bringing software marvels like Word 1.1a for Windows to life once more…
@MonochromeWench
@MonochromeWench 3 жыл бұрын
Always surprises me how much things haven't changed with the windows api but Microsoft put in a lot of effort to ease porting code from win16 to win32 so things not changing much shouldn't be surprising
@TornTech1
@TornTech1 4 жыл бұрын
Take a sub! Really nice lenth geeky video, straight into the jucey stuff without stupid "Sponsored by Audiable!" thanks :)
@NCommander
@NCommander 4 жыл бұрын
Thank you kindly. There's also a video up on Windows for Workgroups networking, and sometime this week, I'm going to have a video on Novell NetWare going up. The NetWare video is proven to be difficult to edit but its (slowly) getting there.
@Spookspear
@Spookspear 2 жыл бұрын
Does: Prompt $p$g work on that version of dos? Or any of the built in dos cmds
@NCommander
@NCommander 2 жыл бұрын
It does. DOS 3.3 isn't that different from DOS 5/6 in terms of core functionality.
@alb12345672
@alb12345672 3 жыл бұрын
Holy Hungarian notation, Batman!
@NCommander
@NCommander 3 жыл бұрын
Microsoft was *very* big on Hungarian notion through this era, and hilariously, when they migrated to 32-bit, they had the 16-bit sizes in the variable name with 32-bit bitwith. Probably why hungarian notion fell out of favo.
@ryonagana
@ryonagana 3 жыл бұрын
incredible! the funny thing is some 80% of that code still can be used on winAPI for windows 10 some of them changed the name (by typedef) but still there.. the same init loop haha
@NCommander
@NCommander 3 жыл бұрын
The amount shit hasn't changed is pretty impressive all things considered.
@anidnmeno
@anidnmeno 2 жыл бұрын
IIRC System was a "screen font", not a ttf
@GeoNeilUK
@GeoNeilUK 3 жыл бұрын
Have you thought about testiung these programs on 64 bit Windows using WineVDM?
@NCommander
@NCommander 3 жыл бұрын
Doesn't count, since that's not native backwards compatibility. By that same logic, I could say Linux is compatible with Windows 1.0.
@ViTaLC0D3R
@ViTaLC0D3R 2 жыл бұрын
I have C:\BIN in my path and I have the INCLUDE and LIB variables set to C:\INCLUDE and C:\LIB respectively. Yet when I try to compile HELLO.C I get the error CL can't find stdio.h. Which is in my INCLUDE dir I checked.
@NCommander
@NCommander 2 жыл бұрын
I'm using MSC 4, but confirm you can compile a bog standard printf() Hello World under DOS first, and make sure to carefully follow the install instructions in the MSC 4.0 install manual.
@UltimatePerfection
@UltimatePerfection 2 жыл бұрын
Would Win 1.0 development work with 6.22 as background DOS? I would prefer to use the newest version of DOS available rather some old, potentially buggy one. That and I really like EDIT.
@NCommander
@NCommander 2 жыл бұрын
Short answer: sorta, but not really. Windows 1.0 will start on DOS 4-6, but the DOS shell part will hang if launched. THere's also likely other pain points. Best practice is to use Compaq DOS 3.31 or such which support greater than 32 MiB partitions while still being compatible. In practice, the DOS internal API is mostly unchanged from DOS 3.30 -> DOS 6.22, with the only additions really being the undocumented Windows APIs, and what was bundled in.
@Lofote
@Lofote 3 жыл бұрын
SELECT as a SETUP program is quite a strange name :-D By the way literally the first thing I did when loading old DOS versions back then is enter PROMPT $p$g - and of course adding that into AUTOEXEC.BAT. MS-DOS 2 and IBM-DOS 2.1 were the first one to support that, so it was available nearly from the beginning :). And of course copy the newest Norton Command that could run that would also solve the EDLIN problem.
@NCommander
@NCommander 3 жыл бұрын
PROMPT $p$g is actually the default on all non-IBM versions. you can see that in the DOS 2 source code Microsoft posted, it was specifically customized to C> for IBM.
@Lofote
@Lofote 3 жыл бұрын
@@NCommander Really? Thought it was only the default starting with around 5 or so. Interesting
@joeturner7959
@joeturner7959 Жыл бұрын
@@Lofote The prompt was originally $n$g, in DOS 1.0, and 1.1 but you could not set it. When DOS 2.0 came out The prompt was $n$g ( drive and the greater symbol ), ( yes, I still with a degree in math need to visualize a fish ), but you could change it to $p$g, ( path and greater symbol ). There was a side effect in command.com for DOS 2.0, in that if you only used the default $n$g, it would not allocate the environment variable, ( as shown by the set command ), but if you changed it, it would allocate that memory ( 13b). SELECT was used to install/upgrade refresh DOS without formatting, If you blew up the system files, you could just type the SYS command, but you needed the first two directory entries to be the system files. It was so rare that drive A was hard coded, and I ran most of my installs from my second hard disk.
@tomyyoung2624
@tomyyoung2624 3 жыл бұрын
Yes Absol!
@ilyasnamozov2914
@ilyasnamozov2914 2 жыл бұрын
I still write Win32API GUIs for my tools in Windows 11. I prefer it over any other GUI abstractions built in Windows.
@KertaDrake
@KertaDrake 2 жыл бұрын
The dark origins of the hamburger menu!
@HtS643KyS6555GxQ3edA
@HtS643KyS6555GxQ3edA Жыл бұрын
Wow that hello.c actually ran in win10
@henson2k
@henson2k 3 жыл бұрын
I remember....
@zoltanthehun993
@zoltanthehun993 4 жыл бұрын
Fantastic video. I plan to do some Windows 1 programming someday too. I am not sure if you have such video, but I have one on my channel where I am using edlin if anyone is interested.
@NCommander
@NCommander 4 жыл бұрын
Using edlin? That's exceptionally brave :) If I seriously wanted to program on Windows 1.0, I'd probably try to get the DOS MPW workshop to talk to MSC 4.0. If there's any interest, I might do a follow up where I either do that, or see if I can get this to work through something like a DOSbox emulator for seamless development from a modern host system. I know OWCC uses the former method to handle compiling their help files because the source was missing for the help compiler.
@DrDavesDiversions
@DrDavesDiversions 3 жыл бұрын
Nice job on this video! 3:54 CodeView sighting! When I was introduced to DOS programming in '88, CodeView was the best thing ever. Neat - I didn't know about Shaker and Luke HeapWalker... but did use similar years later under Unix. You might be interested in related fuzz testing b/c of Prof. Bart Miller's work at my alma mater, introduced in '88: pages.cs.wisc.edu/~bart/fuzz/
@NCommander
@NCommander 3 жыл бұрын
I'll def. check it out. This video isn't anywhere as polished as it should be, but it was my first attempt at doing a tech video instead of gaming, but I still consider it watchable even though I've come a long way since then. Maybe 9 years from now (when this channel is 10 years old), I'll redo this :)
@DrDavesDiversions
@DrDavesDiversions 3 жыл бұрын
I liked it just fine. As my advisor said, when I was lamenting some perceived misstep during a past project, "You can always invent new things."
@zoomosis
@zoomosis 3 жыл бұрын
There was also an OS/2 version of CodeView. You could use it to debug 16-bit protected mode OS/2 apps. It still works in ArcaOS 5.0.
@NCommander
@NCommander 3 жыл бұрын
@@zoomosis There is also a Xenix version of CodeView which appears to be able to work on DOS applications through VP/IX.
@DrDavesDiversions
@DrDavesDiversions 3 жыл бұрын
@@zoomosis What a great pre-IDE tool!
@cbuosi
@cbuosi 2 жыл бұрын
Impressive: windows 1 program running in windows 10 32 bits.
@scose
@scose 4 жыл бұрын
I don't understand what "shaker" does...
@NCommander
@NCommander 4 жыл бұрын
The best way to describe it is that it's re-arranging blocks of memory. It's sorta like taking a toy house and shaking it very vigerously. If there are programming bugs relating to memory access, it should cause the program in question to come crashing down. Unlike later Windows, any single application could crash the entire system.
@scose
@scose 4 жыл бұрын
@@NCommander but why would you expect rearranging a program's memory to not cause problems on correct programs? Is it rearranging objects that are meant to be accessed through Windows handles instead of raw pointers?
@NCommander
@NCommander 4 жыл бұрын
@@scose you got it in one; you're not supposed to manipulate segments directly under Windows nor are you supposed to use pointers, you get a handle and use that. In practice, Windows returns a pointer, so that bit of advice meant that real mode Windows programs (1.x/2.x) go *boom* on Windows 3+. Global memory can move unless locked (GMEM_LOCKED, which is a NOP now). In practice, Windows tends to leave things where they lie, so unless you did something that would force memory to move, it wouldn't actually crash. Windows performs segment fixups on the fly, and for Win286/386/3.x it also performs virtual mapping through segmentation fault handling. The New Executable and OMF format specifically encode FIXUPP information to allow segment offsets to be fixed as a O(1) operation. It's also why Dynamic Link Libraries (DLL) are position dependent on Windows and they have a lot of oddities compared to other platforms.
@markusTegelane
@markusTegelane 2 жыл бұрын
International Business Machines Personal Computer Disk Operating System
@NCommander
@NCommander 2 жыл бұрын
My actual boxed copy of PC-DOS 3.3 basically writes that out in full :)
@ruisantos4520
@ruisantos4520 3 жыл бұрын
This is very closed to what GEM from CP/M looks like. GEM have one advantadge because beeing over CP/M which is Unix based, it could be transformed into a MultiUser Multi Tasking easily ..
@NCommander
@NCommander 3 жыл бұрын
CP/M has no relationship to UNIX, and PC versions of GEM can't multitask because Apple sued Digital Research. The Atari TOS/GEM versions can (or well, MultiGEM can), but neither are related to UNIX. You might be thinking of DR-DOS (which was based on CP/M-86) and had some multitasking capabilities, but those weren't based on any AT&T code.
@ruisantos4520
@ruisantos4520 3 жыл бұрын
@@NCommander Good mornign NC ... _I think I am right. At the time Unix was, "the universities OS which in practice very little people on really understook the power of what they had in hands". Unix is the root of Linux and it was the root of CP/M. GAry Kildall picked up a number of students from university and the team developed the CP/M there ( so far I understand ). They "stripped Unix" and created an OS for PC´s because the processor then, the Zilog Z80 our the Intel 4004 where not powerfull enough to handle much dumb terminals, but so far I understand it was "Unix". Tim Peterson made a copy follwoing the same root and later sold the QDDos to MSFT. I need to find the link where this is explained. I used CP/M, GEM and CP/M 86 in the seventies. CP/M 86 was presented. I am not a programer and I am just a businessman that used PC´s for managing my company since late seventies, early eighties. I coordinated the team that developed what is today called ERP/HR/CRM in Cobol and that I start using in my company in something like 1980/81 or so. Brazil for example, contrary to the world trend then, "closed borders and focused in Unix and Universities" developing their OS´s and aplications on Multi-tasking and multi-user enviroment. This gave Brasil a significant power in their software industry. Am I wrong ? Pls re-confirm because this is history now but I need to update my "museum"
@ruisantos4520
@ruisantos4520 3 жыл бұрын
MSFT was obliged to re-write the entire MD-DOS after they got the IBM agreement. Digital Reseach did not sue them for copywrites because they knew they would face IBM lawers and MSFT had the time to re-write MS-Dos. Contrary to what many people opinion, I think that MSFT delayed the computer industry many years. Around early nineties a big chunk of MSFT sales were on the "systems division". Such systems division was "based on Novell" which were able to "re-do MS-DOS" and transform it into a multi.user multitasking OS. All this time was lost because "all the world bought the MSFT single user/single task" concept not realizing their mistake.
@ruisantos4520
@ruisantos4520 3 жыл бұрын
@@NCommander www.ipopisp.com/marksofesteem18
@ruisantos4520
@ruisantos4520 3 жыл бұрын
www.ipopisp.com/marksofesteem18
@willk7184
@willk7184 2 жыл бұрын
This is cool, but it's also stressing me out a little. I need to boot up XP to help me relax.
@TheLaurentDupuis
@TheLaurentDupuis 3 жыл бұрын
The source code can probably still be compiled in 64-bit without any major change. The Windows API didn't change that much in 35 years.
@NCommander
@NCommander 3 жыл бұрын
For Hello, and maybe FontTest, possibly. At a minimal, you'd have to convert to C89 format since it's pre-standard C (aka old school function prototypes), remove the segment format, convert the resource format from Windows 1.0 to 3.1 to 95 (Borland Resource Converter can do this), and probably fix a few prototypes. Cardfile has handwritten assembly so that would have to be manually converted to 32 or 64-bit. Honestly, I might try this and make a video out of it.
@zoomosis
@zoomosis 3 жыл бұрын
From memory there were datatype changes for many function calls with the move to Win32. Windows programming books written at the time (1993-1998ish) had chapters on what to change. Some of them written for Visual Basic and Delphi programmers. Incidentally it's largely forgotten now but Visual Basic 1.0 was a bit of a "killer app" for Windows development, especially shareware.
@SnabbKassa
@SnabbKassa 11 ай бұрын
Coder goes to MS legal department for advice and they tell him a Hello World program must have an About dialog with a copyright notice. Don't want anyone pirating it do we?
@fiverZ
@fiverZ 2 жыл бұрын
9:35 - "Windows 7" >uses Windows XP logo
@jeanrodrigues6249
@jeanrodrigues6249 2 жыл бұрын
Windows
@Bokto1
@Bokto1 2 жыл бұрын
sooo cardfile is broken? you telling me it won't work with WinUI 3? microsoft, i want to submit a bug report...
@MCAlexisYT
@MCAlexisYT 2 жыл бұрын
“screen graffiti”
@ngjerome5490
@ngjerome5490 4 жыл бұрын
kept pausing the video to check spotify.
@NCommander
@NCommander 4 жыл бұрын
I'm not entirely sure if the BGM is something I'll keep on later videos. I've kept it for my videos up to this point.
@ngjerome5490
@ngjerome5490 4 жыл бұрын
@@NCommander haha. it is fine, just that I usually listen to FF songs, so I got confused.
@NCommander
@NCommander 4 жыл бұрын
@@ngjerome5490 Well, you know, It's Difficult to Stand on Two Feet when you're Under the Rotting Pizza while dealing with Still More Fighting, when you're expecting a One Wing Angel to bring in the Staff Roll. (ok, that last one was forced :) )
@ngjerome5490
@ngjerome5490 4 жыл бұрын
@@NCommander subscribed.
@batorerdyniev9805
@batorerdyniev9805 2 жыл бұрын
5:16 amogus
@timothygibney5656
@timothygibney5656 3 жыл бұрын
Lol. A little complex for a simple hello world and doesn't look good for the platform
@NCommander
@NCommander 3 жыл бұрын
It's not the *worst* one I've seen, and there are things that could be simplified about it. Motif is probably the worst I remember if you do anything beyond an about box.
SLS Linux - Bringing a Softlanding from DOS in 1994 (Part 1)
15:31
ONE MORE SUBSCRIBER FOR 6 MILLION!
00:38
Horror Skunx
Рет қаралды 11 МЛН
Маленькая и средняя фанта
00:56
Multi DO Smile Russian
Рет қаралды 5 МЛН
ДЕНЬ РОЖДЕНИЯ БАБУШКИ #shorts
00:19
Паша Осадчий
Рет қаралды 3,7 МЛН
1🥺🎉 #thankyou
00:29
はじめしゃちょー(hajime)
Рет қаралды 68 МЛН
Running DOS and Windows Without a Hard Drive From NetWare
17:40
NCommander
Рет қаралды 41 М.
Best Programming Languages Tier List
33:02
Serif Sundown
Рет қаралды 7 М.
30 Years of Windows 3.1 - Unboxing a BRAND NEW Copy!
20:33
Michael MJD
Рет қаралды 71 М.
The Novell NetWare Experience
13:47
NCommander
Рет қаралды 46 М.
Social media in 1979? Yes!
8:44
FozzTexx
Рет қаралды 374 М.
The Forgotten Secrets of the First Linux LiveCD (Yggdrasil Linux)
31:18
Why DOS Was (and Is) a Thing
32:24
FreeDOS
Рет қаралды 168 М.
Обзор игрового компьютера Макса 2в1
23:34
МОЖНО ЛИ заряжать AirPods в чехле 🧐😱🧐 #airpods #applewatch #dyson
0:22
Apple_calls РЕПЛИКА №1 В РФ
Рет қаралды 19 М.
Цифровые песочные часы с AliExpress
0:45
как спасти усилитель?
0:35
KS Customs
Рет қаралды 454 М.
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 8 МЛН