STREAM: Porting 16-bit Windows 1.0 Applications to 64-Bit Windows 11

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

I really want to watch this but 8.5 hours is a hefty commitment. Would love a overview video or something

👍︎︎ 9 👤︎︎ u/oscooter 📅︎︎ Nov 15 2021 🗫︎ replies

I put windows in your windows so you can compile to compile

👍︎︎ 3 👤︎︎ u/mullberry_sundae 📅︎︎ Nov 15 2021 🗫︎ replies
Captions
ladies and gentlemen this is your host end commander and once again we are diving back into the breach with yet another live stream and uh it's been a while i don't think we've we have not streamed since august so it's been about three months now if you are just catching this live we are definitely going for a painful project today um let's hopefully all my obs scenes are going to work and of course that goes to the wrong monitor there we go so anyway we um we have a lot of vms here and this was wait a minute no i have it i have uh five vms here that we're going to be using earlier today so this might be small on stream uh we have windows 1.0 3.0 nt4 uh server 2003 and i have a rant saved up for this and windows 11 professional which i also have a rant saved up for this so we are going to try and take software from this and port it like actually port it with a compiler to this which means um let's embrace the pain and let me just get a mic check from the chat before we dive into it make sure the background music is yeah background music is wow sorry i think i just blew everyone's speakers right there i just didn't realize that was muted there there are days so we are going to let's start up this vm and we are using virtualbox here because reasons that is not the right vm that is definitely not the right vm there we go that is the correct vm okay hold on let me fix the audio [Music] there we go yep so for those who aren't familiar the very first video i did on this channel was um hello world on windows 1.0 as it so happens i still have that virtual machine this is actually the vm for my very first video because i don't delete things so this still has the full sdk on it it still has the um uh full setup like if we go here we can see that we still have microsoft um c i believe it's version four i have installed i might be wrong let's actually pop to a dos prompt um i did yeah version microsoft c compiler version for 1986. installing the windows 1.0 sdk is a teeth pulling experience it's kind of fun but also no um in fact i spent pretty much a good chunk of yesterday installing visual studio in all these versions of windows and all i gotta say it's kind of i have choice words about modern visual studio it's like how can something how do you go that far backwards so the original windows 1.0 had a bunch of test applications and example code and like it had this version of card file it had the original i'm remembering the intricacies of using windows 1.0 it had the original hello world program um and it also had a font test there were a few other programs on the desk and i just realized i forgot to download one of the sorts the uh source code to one of those projects um there is a copy of minesweeper from uh wine that was supported to run on windows 1.0 i kind of want to grab that just because i think it's kind of funny to port wine software from windows 1. to windows 1.0 and then port it forward so um let's let's first switch to a full screen view and then i am going to actually see if we can grab the source code to that project because i want to show [Music] let's hear um let's pull take a look at the sdk uh folder so uh i really gotta organize this so if i remember correctly the sdk is on disk five yeah so we have the card file source code which porting this one may not be possible is there's handwritten assembly in card file and that can easily go wrong really easily let's get visual studio code over here um because this is assuming a six well you know that's not actually that much this is still assuming a 16-bit um thing instead of 32-bit and then if we want port it to say arm or titanium yeah i i don't know if we're gonna card file um but if we backtrack we have shapes track type uh and a few other ones i only played with these two i actually don't know what the other ones are i think templates probably just well a template so yeah there there's um there's some interesting stuff here so let me grab what i was going to show so wine minesweeper windows 1.0 i believe this is on toasty tack yeah all right let me grab the browser so uh if you don't know toasty tech it's a website that showcases old guise and often makes fun of them uh and his entire section on windows 1.0 applications and um they ported win mime to windows 1.0 uh i believe the source code is in here and if the source code is in here we will add it to the pile the source code is in there so excellent we can uh we can actually come pull this out um the problem with registers assembly isn't hard um uh an or an ordinary programmer the problem is that 16 bits bit x86 is unique for all the wrong reasons um and then on top of that we've got port to 32-bit we've got port to 64-bit and if i end up doing an end commander in real time video for the stream i will probably end up porting it to at least mips titanium arm and arm 64. so yeah there are things to be here so yes there is actually a version of win mime and i just noticed i know the resource format changed from windows 1.0 to 3.0 and i am curious on how much pain i'm going to suffer and i just realized i probably should have grabbed borland resource compiler because it's one of the few things that knows how to deal with this sort of unholy abomination so the first thing we're going to do is i'm actually going to i need to get all these files into the vm uh and how am i actually going to do that that's all right let's make a folder for all the things we need to copy in um let's call this win 1.0 source i mean i can do it with a floppy disk but you know then i have to make a floppy disk and then let me just grab let's add a folder for win mime or wine mine my gas it's not win mime uh and we'll copy this over how big like is would this all fit on a floppy like how big is this this is 391 kilobytes yeah i think that's gonna fit on a floppy disk so let's let's go to the lazy route here let me make a floppy desk because um so desktop wind source one six install floppy so win source img i'm fairly confident sort of that this will actually work i need to format this desk v fat wind source one okay [Music] uh that was not the thing i ended up want to do oh it's make if s not okay try that again cool and then we grab all that put that why is the discrete only it's like uh yeah no just why is the discrete only okay hopefully it's just uh this is root i've had a weird no it's a read it's an actual read-only file system um [Music] yeah i could see [Music] cannot remount read write is right protected okay so apparently i have tempted the gods you know apparently this is my penance that i can't mount a floppy disk images read write um foon please forgive me i had this problem the other night i thought it was like oh i just need to reboot and no no ugh does m copy have a recursive option it's been a while yes it does have a recursive option so let's do we'll do that um wind source image card file it's here then it needs to be dash s card file colon colon yeah okay that works card file font test hello um template shape track type and wine mine and we'll have to test that we can actually compile these because um i have found broken examples plenty of times in the past so let me get the disc in here uh and one thing i learned when doing this in the past is um windows 1.0 kind of is garbage for copying files like if i try and copy directory let me see here let me see this let me see if this will actually work i i have my doubts but if i want copy to see source did it actually work or did it do something stupid because i'm pretty sure it did something stupid yeah no see that's what it does it it doesn't actually save the directory because you know technology it's hard so let's send that to the leap bin um like i only have a command to make a uh new directory here so let's just pop them in command line and we'll do it we'll do it that way because you know that's that's less pain and suffering than anything else i could do command.com and yes i do have this installed with uh pcdos 3.3 which is why this actually works let me just catch up with chat um the floppy disk file should not be read only because i just format it and um no we are not going to do the rmrf command no preserve root um although i always am amazing how many people actually fall for that i mean i shouldn't but i i always end up surprised so let's copy these over even though i'm going to do this one by one which is fine this is fine so that's card file um let me get the mouse out of the way so font test copy you know and if you think this is bad to install visual uh microsoft c 4.0 you have to read the manual and you have to the disks that you use depend entirely on the platform you're on it's exciting for all the wrong reasons all right so that's font test um might as well grab hello because what we'll do is we'll use this floppy disk and we'll copy this into windows 3.1 um because we're just here to explore this not to actually do any development on 1.0 did i just shoot myself in the foot uh yeah i did just shoot myself in the foot uh okay hold on copy a hello you know what let me change the prompt so i actually know what i'm doing oh wow that is a quality of life improvement right there so template template copy a template startup star here yep okay so catching up with the chat i'm not sure what shapes is um oh i did miss shapes you are correct let me let's fix that let us actually fix that and let me grab shapes so i got i have to eject the disk from the vm or um let's just say bad things happen when multiple things tried to write a fat file system at once um i did not see i'm assuming ltt is linus tech tips i do not watch ltt in general so um i haven't seen that i don't even know what it is um so now we've got those floppy files there do i have shapes i do have shapes oh that's interesting uh dir in this version of daws does not automatically sort the folders because that's at the bottom of the list i know there's no guarantee on fat file systems on ordering but that's still a little surprising so okay um [Music] yeah yeah um so yeah file handling is still handled as part of pc daws i mean if we really if we were running on top of three daws uh which i don't actually think you can run windows 1.0 on top of i could be entirely wrong about that um it would actually work with fat32 you could probably there are drivers for ntfs and ext2 and more uh what else am i missing i need type copy a type type and then i need wi-mine copy you know what's going to be amazing is in windows 3.1 i'm going to file manager i'm going to be able to do this in all about three seconds god i am one i i i'm here and i'm saying man file manager is going to be great it's like oh this is the standard we've fallen to so okay so we've got all the files copied over uh let's iconify command and let's go back here so we have all the folders here now copied over um and we need to we might as well compile each and all these just to see what they are like i said i don't know if we're going to try and port card file i might just do it and see how far we get um but my only my real objective is just get hello anything else is gonna be bonus points on top of that so um you know good bad as as it so happens so um i'm missing the bitmap for wine yes you are correct actually that that at home that is a good catch we would have caught that one we compiled but um yeah okay so rc copy a wine mime rc yeah no there's no x oh there is there an x copy i may have installed it manually because i mean it's not giving file not found although that could just be windows being windows you can't use a newer the problem is that with 1.0 you can't use a newer version of windows or ms-dos without paying because things do not actually work correctly if you do so you can't compile under windows itself it will blow up if we try so to do this we actually have to drop to a command line system um and we have to get the tools out so if we want to compile card file i have masm installed i have um microsoft see visuals uh microsoft c 4.0 and i have the segment executable linker which was the special one for windows 1.0 um so if i remember correctly it's just make card file yep and there it goes um and then oh it did not like that include file c macros include not found is there something wrong with my did it actually build it did not build see here why is it not seeing that i should have that file oh i i remember this problem you have to copy it um you have to copy it from the the sdk i don't know why this is a thing this was the only example source code that has handwritten assembly so yeah okay so that actually worked we ended up with card file.exe uh yeah here it is car file.exe so um so rej11 we are porting from windows 1.0 to 11 so reporting porting 16-bit applications to 32 and then 64-bit um i might try doing the compile for itanium arm and uh maybe one of the risk nts although risk nt i'd actually have to install because there's no cross compiler so that probably won't be for this stream uh so okay let's grab font test so make font test yeah okay that one worked on the first try um let's grab hello make hello all right that compiles just fine i mean a lot of ways this isn't all that different from [Music] modern windows except at least as far as the command line tools go obviously some things have changed over the literal decades but it's not as much as you'd think um make type and then let's grab winemine this is the this is the one i haven't tested oh wow it did not like that at all uh why is that erroring let me can i i don't even remember if i can dump that to a file mine mine file i don't even have edit on this system uh let's see here it apparently doesn't it does not apparently like that source code hold on let's let's let's actually pop the hood and see what's going on there it is possible i have the uh hold on full screen please i have the wrong version of um there are two ways you can there were two compilers for windows 1.0 you can use v c uh microsoft c4 or microsoft c5 i am using c4 because it was the original one and i got turned off the space heater and it is possible that this needs c5 let me take let's take a look at this in visual uh studio code um yeah see this is actually using ncc declarations which will not work with this compiler so this is using a newer compiler than what i mix uh what it what i would expect we will try to get this to build under windows 3.1 because this otherwise looks correct um like i see board i don't see any segment registrations where's where's um win main this this will tell me if this has been done correctly uh yeah so it does actually look like it does most no hold on whoever did this this port does not do uh is not done correctly so for those who aren't familiar with 16-bit windows programming oh with windows programming in general programs in 16-bit windows have our windows in general have get what's called instance h previous instance command line and um i forgot the last one what command show does previous instance is a no op on with 32-bit versions of windows and later but you have to handle it on 16-bit versions or you will cause bad juju to happen and it is not being handled correctly here because it's not even being referenced in the source code so whoever did this port did not did not know the specifics of this is what you have to do to make a proper win16 program because this will work if you only launch it once if you launch it more than once you will leak resources and quite possibly corrupt something on windows because you have to let me pull up what hello world does in um in this because this this is easier to explain with example code uh and i will catch up with chat here in a moment so if we scroll all the way down um you see here in win main it does initialization procedures if it detects if it detects this is the first instance otherwise it gets a bunch of dangling pointers from the resource manager and reinitializes itself i haven't noted version of this hello world file that actually explains in-depth but to put it bluntly windows 16 runs on magical uh magical unicorn dust and popsicle sticks i mean that's part of the reason why it's so colorful so we will try wine mime on windows 3.1 because then i will have a compiler new enough to actually deal with ncc um and then we will come back around here so uh this code is not from the 4chan leak this is um wine's version of wine of minesweeper i mean if we go right to the top i made that very clear none of this code is leaked this is this is wine mine this is the version of wine minesweeper that ships with um wine it's not uh any sort of leaked source code so i want to make that exceptionally clear i will not cover leaked source code on this channel for multiple reasons everything i cover is either in the public domain or was published in some shape or form so uh i want to be very clear about that uh to my knowledge minesweeper was never in the sdk as example code i could be wrong it might be in one version of it i know one of the games i don't think it was reversey i it might be free cell is in the sdk of one of the later ones but minesweeper itself i don't believe it is all right so let me just let me just catch up with chat here um yeah so um no windows 1.0 primarily used c as its programming environment to catch up with chat um assembly program was supported and there was also support for pascal um and fortran now that i think about it the um [Music] i have a video on the subject uh that talks about this okay let's grab me a webcam uh so let's grab back into um windows um i wouldn't mind covering some vaporware operating systems if they actually exist like i would love to cover copeland and that entire disaster but to cover copeland i would need one of the very few macintoshes that can run the development releases um and there's gonna be a lot of pain and suffering if we ever get into it so all right let's take a look and see if we've actually managed to compile all this example code so this is card file um see this is something that drives me a little bit crazy so here's card file.exe and it compiled correctly yeah you can see card file 1.0 uh 1.0x it's actually interesting that this is an x because when i was looking at windows on the z100 um which was in my vcf video all the applications had a dot axe which makes me wonder if microsoft actually changed it in the source code like if we look at the native version of card file that shipped with windows like we go here it will actually say that this is version 1.02 um because it's been it was part of the install so i wonder i kind of wonder how windows was distributed to oem vendors in this time period so we'll probably never know the answer to that but you know it'd be nice to know so then we have font test which is pretty much what it sounds like like you can test fonts so um this was kind of a big deal back in the day because what you see is what you get fonts was a massive selling point of windows um like even at the time the biggest editor on the platform which i would say would probably be either for 90 for 84 it was probably still word star although um um word perfect was definitely on the rise at this time so yeah see here okay um blah so let me let me just get back catch up with chad um temple os there are re at some point i might cover it there is certain things about temple os that i i need to think real long and hard on how i want to present that because there's a lot of things there that is difficult to unpack and because of the religious industry in temple os it let's just say whenever you bring it up on the internet it people tend to have strong opinions so let's look at the other demo uh demo code and this is shape dots something so this shows a star an ellipse uh rectangle triangle i'm guessing this is just gdi sample code will we could look at the source code to some of these but i'm guessing this is just showing how you draw lines in gdi i mean that's pretty simple i mean when windows 1.0 shipped the concept of a graphical user interface was still incredibly novel so i'm guessing template is actually got something in it i was not expecting that okay oh i see this is like a graphical template thing like uh if you've ever seen like the ui templates in for that's neat um like any operating system it's probably the same thing so dialog box and i don't know what stardust sync does i'm guessing that's just many stuff we'll have to look at the source code for some of these if we actually want to know what they do and then next up would be i think there was only one application left uh well yeah type so let's see i don't even know what type does select this window and type oh oh so you mean this is notepad 0.1 uh so the give chat uh reverse engineering is a very complicated subject as far as u.s law is concerned um the long shore of it is its legal but there are a lot of legal landmines to be um to deal with it's a jurisdiction thing but reverse engineering is legal in the united states um so anyway anyway anyway anyway anyway so this covers the windows 1.0 applications i think at this next up we want to dive into the world of windows 3.1 because to take to get all the way from let's go back to full screen if we want to go all the way to compiling the modern version of visual studio and which one is it so um if we want to get to compiling on windows 11 we need the source code in visual studio i mean obviously we could use a different compiler we could use wacom but let's stick with the official tools here we need to first convert these projects to work as a visual c plus project and the last version of visual c plus plus was uh for 16-bit operating systems was visual c plus plus um 1.5.2 and then we have to take it to a 32-bit version which we're going to use visual studio 6 because it's the version that sucked the least and then we uh we'll probably we're going to use visual studio 2005 which will clear up the 64-bit stuff and then you know so forth and so on so yeah so here's program manager and it's it is what it is so let me let's get on to vm view there we go uh i'm hoping that's not too small resolution is easier said than done with older operating systems so let me get the disk with our windows 1.0 source code on it uh and let's get that let's get into file manager let's hear uh i just want to make sure that the background audio still sounds good so let's go to main file man and then yeah so here's all our sample code um we can test the binaries they they actually will cause compatibility warnings as of right now oh yeah you can't actually copy and paste in this version of [Music] oh it's been a while since i've used this you can't actually i can do new window and then what we can do is we can create a new directory let's see here called source and then we can copy this across uh yes copy files and directories all right so that's going to copy across uh the vod will be available once the stream shuts down uh youtube can be a little slow on posting it uh although that's probably only because i've been known to stream for 12 hours at a time um solaris vibes did this just hang like did this really just nope there it goes it's just being exceptionally slow windows 3.0 is running at 3.7 gigahertz it's running at native speed because this is virtualbox and it's taking this long to copy files yes um yeah so so on the gta reverse engineering they were not doing clean room reverse engineering as far as i understand it they were basically working from the output of griedra but there is still the fact of the matter is it's never been legally determined that you have to do clean room reverse engineering that's what compact did to reverse engineer the ibm pc bios but that has never actually been established as something that you legally have to do as far as i understand it so yeah um you cannot reduce the clock speed for virtualbox uh virtualbox is a virtualization it's not emulation i just don't really want to deal with putting dealing with pcm because i have to do you have to do a lot of configuration and if i have to roll back a machine state um it sucks i mean that's really all there is to it so those are all copied across and if we actually go and launch the application i don't know why i have this in this mode like if we go to source hello oh i haven't actually compiled these um i probably should have cut you know i know i i probably should not have copied the binders because then i have to deal with a lot of other stuff so if so hello is the make file for whatever reason under windows 1.0 2.0 it's standard to have the make file just be the name of the project so um yeah yeah um the problem with vmware is that vmware is a it's very expensive and what you get is not worth what you pay for i mean the current workstation license is 150 and has the only advantage right now is it will run windows 11 without contortions but the the only thing for vmware that actually seems to get any love these days is esx because player and work and developer have had absolutely no love i do not like vmware and it's not worth paying for at this point like i've used it before in the past to greatest success but virtualbox is currently the quote unquote best thing you can do if you want to run older operating systems so anyway um welcome to windows 3.0 and visual c plus plus 1.52 so what we need to do right now is we need to convert there's no automatic conversion for this we need to create a project for the stuff that we want to import from windows 1.0 and work from it forward so um in some ways this is both very different and very much the same from what we've been dealing with before so uh let's start with the hello world program because this is going to give me an idea of how much pain i'm about to suffer through um so we want we don't want to use microsoft foundation classes we are going to make it it could technically be considered no quick win is not what i think so it's going to be a windows application and we're going to make hello dot make and then it's i just need to add hello.c yeah i i need to actually i need to go to star.star we want to add all of you so add add uh and i'll explain all this in a moment let me see here add okay so it won't let me add the dot h file and then i need to add the rc file so close and then i want to bring up the browse window let's see here it's it's been a while since i've used this i don't normally when i play with 16-bit windows i use wacom which is a little bit better and worse depending on how you want to look at it uh let me just see if i can actually do a build okay cannot include file style.h well you know what i just realized is i never actually tested the setup works i have all right hello let's let's actually let's close this um i want to actually do a test application because i never actually test that i can compile something i might be missing something build test dot nope that built fine yeah and then that built that just built the sample hello world program all right so we need to jump back to this oh and i'm just remembering how quirky this version of visual studio is um this is we have the project open if i want actually open a file we open hello c and wow that is bright so the thing is that the windows api was not 100 stable in the very early versions um and let's take a look and open the rc file and see what it's actually doing i don't even think there was a resource editor in this version i mean there there might have been but i don't think there was let me see here can i just get rid of style.h and see if it'll build like is that really is that all it's going to take resource file hello dot icon is not in win in 3.0 format and i should have seen this problem coming do i have an icon editor did did this come with an icon editor i don't think it does i really should have seen that problem coming so the physical resource format between windows 1.0 2.0 was changed for nt and free and i don't think there's a resource adder in this version of windows in this version of visual studio uh editor font workplaces i will have let me see let me see if it'll build if i disable the icon i don't think it will but we can try let's see if it'll build i know borland will yes it's like undefined the resource script has changed quite a bit over the intervening years so let me pull up hello world for windows 1.0 uh 3.1 because this will give me some idea of what i'm actually trying to do uh because i did install the sample code uh let's see here so msvc samples i should have a hello sample i actually don't have a hello world sample i'm surprised um all right well fine we're just gonna we're just gonna spitball this ws pop-up cws pop-up should be defined that that's actually part of the core windows library which tells me that you actually need something to replace style.h like if i go with all right hold on let's let's actually do a little bit of investigation here so if we jump um how do i want to do this i want to get the files from the windows sdk so let's actually go full screen here and then what folder has it see here and i just did i lose my background music at some point i think i did yeah i did there we go that's fixed um let's see here so if we go back to here so this is all the example source files don't remember which file disk has all the let's see your software microsoft windows 1.0 sdk uh windows 1.0 sdk it's on disk free when do yeah so back in these days windows had all of two source files it had two header files they had style.h and windows.h and style.h basically defines a lot of defines and these are all used by rc so um msdn used to be okay for legacy software it wasn't great for the 16-bit stuff it's pretty garbage i've heard it's become pretty garbage these days because microsoft has this real big thing of deleting their old stuff but yeah so yeah so there's probably an equivalent file to this in the later um windows 3.0 um i should say 3.1 um stuff so if we grab here do these have a search function if i go to language reference no that's that's just a c plus plus programming guide if i go to uh macros yes that's actually what i want okay if i just search for ws pop-up will it tell me what file it's in yes but no so it exists i know it exists but it doesn't actually tell me the file it's in that's not actually helpful this is not helpful uh come on get back there i've got the camera in a little bit of an awkward position today because i was if for those who saw me on crypto barons last night which is a show hosted by dcg201 we were going until one in the morning i didn't start prepping for the stream until about four in the morning and um sleep what is it so if we take a look so it's almost certainly defined in one of these i'm trying to remember i don't even have a fine string you know i'm gonna have to mount i'm going to have to mount this vm and then grip it to find the blasted thing because i don't have i don't have a book on hand that has all the things in it unless oh yo it might just be in windows.h let me let me just try that before i do anything else like if i include include windows.h you know i'm hitting enter and it's not even going down like i can copy and paste let me see here this does that actually work that actually compiled the resource file so okay so now can i build the whole thing and i do i did actually build the um the whole thing do i get a working binary out of it so um which means i have to drop back to win file uh we go to hello uh wrong folder that would be that would be over here in hello and we do actually get a working binary that behavior is expected because um there are certain aspects in a 1.0 application that are not defined but that's properly compiled because that's showing true type fonts if this was still the windows 1.0 binary that would not be working and that works just fine as well so this is actually compiled successfully with visual with this version of visual studio now i need to remember how to fix the resource file and i forgot that there wasn't an editor in this version of visual c plus plus i mean there isn't even an icon here which is kind of like uh crud i really don't want to go hunting i don't think i have it the borland resource compiler was the tool to fix this and i i i knew that before i'd even started doing this stream and i don't think i have it on hand i have sidekick i have brief i have borland c yeah i don't think i have the resource workshop on hand and i don't want to go hunting for it so uh i guess we're doing we're going without the icon although i i can't imagine that microsoft does not have a tool to do fix this there this this is not like let's let's take a look here they've got i've they have to have a tool to do this there's no reason why they wouldn't see her okay um all right so let's let's switch to command line uh you know let's just pop this back to here msvc uh let's see our star.exe and it's not like i can just google this because it's not going to actually have anything useful uh because like i know mark exists in this version that lets you convert stuff it's possible that the next version of visual studio might have slightly less horrendous support i mean that's that's me being optimistic um but visual studio six does have an integrated resource compiler so i can fix some of this and i don't have to write the file by hand that i've all right let me let's so let's let's fix this though so it actually behaves the way it's supposed to so uh to get a windows 1.0 program working because like i said that's that's not ideal uh we have to make some changes to the resource file and i need to let's find the sample code from let's find basically ending these is gonna have an rc script um yeah you know that works so if we open visual c because half of it is the resource script half of it is um see here uh not source i want examples okay yeah here we go rc like you can see what a much more complete resource file looks like but what i'm looking for are the tags for the main application um that's a menu resource that's an accelerator that's a dialog box actually now that i look at this this only defines the dialog box but not anything else um although i should probably add discardable to it why is this in that mode hold on if i okay i just had it okay discardable although i don't actually think you need discardable in this day and age and then we're just going to change the style like this is what you would actually do if you'd convert it between versions and i just need to keep this commented out we'll we'll deal the icon later as as we need it file not found dialogue uh what did i oh i got the format it's the other way around it's the other way around this is fine build it okay and then go like now if we go to about we actually get uh we don't get the just broken thing see sierra yeah no we actually there's no way the fact of the matter is we are going through this pip a bit and you know what that's actually not a bad idea and i should have saw that let me see if um if paintbrush will open i don't think paintbrush in this version knows what to do with icon files i i really don't think it does i mean it might i got nothing to lose by trying yet so let me see here so star.star yeah it doesn't recognize ico um although now that i think about the icon editor was a separate program on windows 1.0 let me see if we have an icon editor in this version because that that's something i i know what to look for that would be yeah i don't think i want to say that the icon editor which the resource met toolkit was an entirely separate frame like if we jump back to windows 1.0 um i should still have this vm up that's not the right window where is the right window i did not hold on okay so that's the window i'm looking for y is there it is like we go back to windows 1.0 there was a dedicated icon uh well that's not what i wanted to do there was a dedicated icon editor in this version and it makes me fee i i'm wacom might have an icon editor but i don't think wacom can open the 1.0 format i can replace this with different icons though so this is not really a big deal it's just more annoying than not so all right okay so app studio is the resource editor yes you know what you're right you are definitely right which really you this what i'm really showing here is i i don't really know how much i am actually doing like i've used this version of visual studio before but i never did that much development on it let me see if let's see if we can actually open the rc script and let me before we do that let's un let's fix this like that and then let's open the rc script so for those who don't know anything about windows programming rc scripts are resource scripts and they define things like icons and such so it is trying to compile uh it does not like it does definitely does not like that see here can i wow it they won't even take that will let me open an i it will actually let me open an icon let me see if it'll let me convert not not a valid icon i resource import all right let's try that uh no it it just does not like it i've i am wondering if microsoft legitimately did not publish a way to upgrade the icons i mean that sort of makes sense actually now that i think about because under windows 3.0 you have these nice colorful icons under windows 1.0 they're essentially a 16 by 16 bitmap so um yeah i would probably need to use borland's you know hold on actually now that i think about it hold on i have one copy i have one copy of borland c plus plus handy uh it's a physical copy that i believe i made a dump of i really hope i did let me take a look here let me look let me just look in my archive folder and see if i have it um because i have physical a physical copy of borland on the desk behind me but i'd have to get the floppy drive out and there are certain headaches involved with that that i really just don't want to deal with but i might have to because all right we're just going to replace the icon we don't technically need it so we're going to go without unless we run into a resource problem that is harder to fix so um while we do this so we're just going to comment this out we still have to fix some more aspects of the code so it works correctly um if i remember so here's the create window call and i need to remember what this is supposed to look like for something that let me find let's find some more example codes so basically what we have to do here is the reason we're ending up with a window here in the little corner is primarily because windows 1.0 did not have overlapping windows and thus bugs are real uh let me see here all files i mean just doesn't help that my a lot of my yeah it's cwu's default that's what it's called cw use default and it's overlapped window this should then that would let me all right so now we can pilot hey look that looks like an actual windows 1.0 program or a 3.0 program um yay that actually we are we're actually going the right way with this so if we i think we got to make one or two more changes and then we actually have this so if we go back to the resource script and [Music] we i want to add a caption here so this would be uh caption about hello world from windows 1.0 and if we were doing this properly we would or i shouldn't say not that we're doing this properly but if i was trying to be you know best practice we'd actually have this in a message file so it could be um internationalized and hey look now we have an actual thing here okay yes so to backtrack slightly with chat let me catch up icon files are not um bitmaps in windows 1.0.2.0 they actually they more or less are in later versions they are not because they contain additional metadata and they can be embedded in other uh containers like um elx files so there's quite a bit of other magic that gets done here so um i think that covers it for hello world i kind of want to try and get the other applications going um [Music] like chat so if we go back to the pile of applications uh let me let's do a straw paul here let's see what folks are feeling do you want me to guys try and port the other ones uh port other applications yes no um or do we wanna just grab this and grab this and run and take it to windows nt so um there is a converter it i know borland workshop can do it um i know that for a fact because that's a trick for getting windows 1.0 applications to run on 9x i just did not think of installing borland beforehand i mean i have the hold on hold on like i have the physical discs right here you know you know what let's i wasn't planning on doing this let's go full droid cam here like i have the discs for borland right here and you know what if i reach over here i've got the floppy drive so let's take a um let's take a few minutes and let me actually archive these disks i just have to do a dd um i i should have these archive but i don't know what i did with the files and let's install borland c because this has the resource workshop on it or it really should have it and we might be able to fix that so we are now going oh wow this desk is not what i call an air uh a good setup so let's let's go to a full screen setup um clear d message tail and uh oh look yes it actually sees the desk so let's go here so borland c borland c d i f d symbols here install the img so we are uh i wasn't expecting undoing this but we are doing disk dumping today because of course we are um mostly because if i have a physical copy on hand i rather use what i physically do i mean it is what it is um i don't like having to use abandonware sites i mean there's certain things that you're just not going to find like the windows 1.0 sdk but given the option i will use a physical copy i have every single time it's not going to take that long these these are low density disks so you know proof that i haven't done this in advance so uh okay so disc two all right i have used these i just i i'm not actually that big of a fan of borland um if i do retro development it's almost always with wacom whatcom so i probably am going to get people are going to have to guide my hands so you know okay um it's not this isn't windows forms application it's definitely more and yep i i for the next disc i will do status progress i always forget that that's an option so um okay there's that one done wait for it to stop ticking i did discover that my nas does interesting things when you plug a floppy drive into it so disc three all right status progress and the streamer is just going to step away from the keyboard for a few moments while this dumps i will be back in a few seconds okay i'm back oh so yeah so this morning i was i well i will tell the story after i put the next disc in all right so just four this morning i just overwrote wait a minute wait a minute yeah frigg i overwrote the same file i we i will we'll we we will fix this yeah no i saw the disc two i saw this two got overran um i just i already have this disk in so we will go back and we will fix this [Laughter] so here's what happened so i was up until one in the morning on crypto barons and then my friend seipak and circel decide to walk me home they're not that far in in real life for me like it is walking distance so we get here and then we just start kind of conversing and it's like you know having a good time and then suddenly look at the clock it's like oh god the sun's coming up i have a live stream in six hours ah so so i sent them home and my sleep deprived brain uh yeah disc two uh is like okay i have to install windows i have to install windows i have to install windows i have to install visual c plus plus it's like i'm really gonna be doing sleep i'm really gonna try and do software deprivation on uh i'm really going to try to do so uh sleep deprivation and programming no i'm trying i'm going really going to try and do programming on sleep deprivation and um it's like yeah so probably about seven in the morning i finally got all my vms set mostly um i i have a rant saved up that's going to show up in a little bit about windows 7. um because if you saw the list of vms at the beginning of the video you'll notice that there was a rather notable missing on that the rare noble thing missing uh and it's like fine so then i got four hours of sleep uh i got up at 11 30. i've had so much coffee that the uh let's just say the caffeine is real so disc five and it's like okay you know this is actually the accurate programming experience it's you're less than an hour from shipping it you have to fix you have to do all the bugs that have been ignored up to this point um and um you know yay magic so we are now going to see what happens when end commander goes without sleep and knowing my luck we're going to still be here at midnight because this is an end commander stream this these projects never go as planned i i end up spending far more time and it all goes completely crazy okay so all right that's disc five disk 6 yes and dd is definitely disk destroyer it's just the thing is that there really isn't a better tool under linux um yeah uh sleep is dd for the brain that is probably the most accurate sentence i have ever seen on a live stream uh i i kid you not that's like yeah i actually don't think sleep does sleep even exist on wind16 like i'd have to actually mount the blasted disc image to get the sdk for those who um saw my old video about it the video about pinball on itanium i had to do so many file copies to have a cross reference because msdn documentation is not a thing anymore all right so disc seven all right and then we're going to actually install it um you know what's interesting is that in this time period microsoft's own development tools are not very popular it was mostly borland was the real popular one and with wacom being in the middle of the pack so yeah see here i uh well so i used to keep my hair very short um for those who don't know i actually used to be a line firefighter um you know there are people that when faced with a burning building will in fact run into said burning building and that was me and i kind of used to keep my hair short because of that even though oh god i okay you know i need a longer extension cord so i can have the floppy disk drive in my on my desk um i kept it long because uh short because long hair is flammable and being set on fire is an experience you only ever want to have zero times in your life and sadly i can't say that i haven't been set on fire in a very literal sense dude i i realize that this is probably relevant to no one in my chat but if you are in a burning building do not add oxygen to the fire especially do not add auction to the fire when you are on top of the fire um so you know no i am amateur wow that is freaking dark no um i was 12 no i was 13 when the towers came down um i wasn't a firefighter until many years after that fact i was a firefighter up in henrietta new york so um and for the other question you asked i'm not going to answer that because youtube's tos would have a conniption if i answered that particular question um yes so yeah so the thing is that the thing about being a programmer and being a firefighter is that most people who are firefighters like high stress environments and being a programmer is so much more stressful than being set on fire because so you know just saying although legally speaking in the state of new york which is where i lived at the time you cannot be fired or reprimanded at your job if you are a um a firefighter or other public servant uh operating as a volunteer in the service of your job and there was one business meeting where i literally showed up in full bunker gear smoldering because uh and i had to explain why i was late for meeting like i just sat at my desk i was so tired i wasn't even doing it and you could tell that i had just derailed the entire thread of conversation i think we were talking about something on arm and i'm literally sitting there in bunker gear my helmet is off to the side and it's like yeah no i i was on fire this morning and i know it's true at other companies but firefighting was a term we used rather extensively at an old job and um it's um um it had a very different connotation for me and to to put on the thing uh harrow uh 50 the reason that being a programmer is less stressful than being set on fire is that at least when you're set on fire it's going to end one way or another programming never ends it just gets it just gets stranger as time goes on you know a fire will given enough time burn itself out bugs are bugs are eternal and this is the last desk and this is end commander's philosophical tips on why being a programmer is more stressful than being a firefighter i i there things life yes all right so that's the last desk all right and um blu bub leg thank you for the 100 hr uh k i don't actually even know what currency is um so yes yeah it's been a while since i've been streaming um there was some real life stuff that happened while as the pinball video wrapped up and then my follow-up project has been in total limbo um for those who follow my community posts why is this being okay there we go uh we'll know that i was working with ancient unix and um hold on let me let me get let me get this install started then i'll actually finish the train of thought i can only manage so many threads of the single go before things go pear-shaped um see here okay so let's do install okay and then we get the tiny window uh make sure obs resized correctly so borland c 2.0 15 megabytes source drive is a uh windows capability yes this is technically windows 3.0 it's not 3.1 but this should have the resource compiler and if it doesn't then we're just going to deal without so so be it ah so oh great i actually been to croatia that was one so many years ago um we when i was at a large linux company that people in the chat should know what i'm referencing um we had a conference in copenhagen in december and this is one of the coldest decembers in memory it's like wow this sucked and i had also had to go deal with the us embassy while i was in copenhagen because there were no pages left in my passport at the time so i had a week of vacay uh stored up as like you know screw this i'm in europe i'm not going i don't care where i go i don't want to be in copenhagen in winter i like copenhagen in general but i'm sorry i i have problems when the temperatures go negative numbers um and i didn't have any plan i literally i went to the u.s embassy to pick up my passport because they lost it um and then found it and then i got to copenhagen airport i didn't have an outbound ticket i looked at the departure board at the airport and the next flight to anywhere was to lun jalamba which i didn't even know where that was and so i just got on the phone real quick made sure it was in the the uh european union i walked up to the counter i bought a ticket and this is how i ended up watching skyfall a full month before it ended and entered in the united states uh and then there i took a lot of trains through eastern europe and um i went from lujar lomba to uh zero did i i don't think did i go to croatia right off the bat i might have uh it there was a few it was many years ago at this point uh i went from from croatia i went to bosnia and um from bosnia i went to serbia from serbia i was going to continue on to ukraine but it didn't happen and then i flew home and i ended up with a lot of passport stamps because at the time none of those countries were in the schengen zone and the train system in that part of the world was built when it was still yugoslavia so it was it goes over a lot of things that were borders so it would the train would go for about 20 minutes you would reach the croatian border you'd have to get stamped out you get stamped into serbia and then you get stamped back into croatia and this sequence of events repeated itself like five times i have like five entry stamps from croatia all in the same day so yeah it was a really great trip but you know it was also really strange like i i it was two in the morning and i was sitting with a guy that so that got on at one of the three second stops in croatia who was selling stuff he basically got gets on a station stays on until the border gets off and then goes back and he actually spoke very good english and we were just basically talking about how trains in the united states and trains in croatia are were different or not it was it was like a real one the more meaningless conversations i've had but it was also very memorable in a way because i'm recounting this event nearly a decade later so okay we've got borland installed and you know what i don't think we have i don't think we have the resource oh resource toolkit resource toolkit that is exactly what we want uh icon will it actually be able wow this is that is the windows 1.0 2.0 style look at that i don't think i've ever actually used this all right let's see if this can actually convert the resource format um like if i just point it at the rc file like if i go back here and i tell it um we go back to hello.rc we uncomment this we save it and i tell it to open the resource file uh resource toolkit i have my doubts that this is going to work but we shall see uh borland c let's see your source hello hello.res yeah okay let's just open it in the icon like the later versions of this can successfully open a binary file and upgrade them but uh i don't think this version is as sophisticated but if it can just do the icon upgrade now can it import yeah okay uh i mean we could try bitmap i have my doubt i doubt this is going to work yeah i probably won't okay well we tried we tried oh frame buffer content oh okay no i was like oh good man did my stream break and no it's not my stream brag uh we'll grab my own icon there might be icon files in some of the other example files and if it comes to that it comes to that so screw it let's let's get the other projects put together and so we can uh then start porting this all to 32-bit so let's do font next we now have an idea of what this is going to take and let's get some s in chat for the old icon files so let's grab font test let's add the c file let's add uh let's see here we need to add the resource file and we need to add the definitions file because this this being 16 bit windows you do need to have a definitions file let's uh build it see here so yeah all right thank that is a nice collection of f's that's here awesome bunch nice collection of f's and some and a g you know that's fine this this is all fine so first we got to do the same fixes that we did with the previous one so first we need to fix um [Music] the resource file we're going to disable the icon for font test like at some point i will fix this properly let's see here and wow that actually blew a fuse it does not like these defines uh let's see here so we've now reached our first code compatibility issues is it going to complain if i do that unreferenced local parameter non-discardable set in set to preload well it actually run it will actually run though i mean we need to fix this because this is broken like this this is going to need a little bit of work to actually work but that that is not bad it's not good but it's not bad so okay so first we gotta make the same some of the same changes that we did in the other one so first we need to fix the dialog dialog windows so that's here under create window um let's see here let me grab the other rc file so that that's two applications working god i i i let's here so we want this as an overlapped window and we want to just let it use the system default i can't remember this is what actually is like the best practice but yeah close enough all right so we now do that and we want to run it hey look it actually makes the window at the right size now so now we need to make some fiddles filling with the resource script all right so all right so we now go to font test.rc so while we're here so the things we need to fix is the these accelerators have definitely been um windows changed quite a bit from its early days so let's grab an rc file because i'm not used to writing these by hand and i don't want to be fussing with the syntax for the next i don't know three months because you know i mean that so apparently if you do open a bitmap file you get a cat so okay that was not what i was intending to do i wanted to open the rc file um so unexpected cat has entered the chat so first we want let's fix the menu um and the fix the menu um pop-up commands we need to put in amperstamp because that tells it to put a um tells it to put it in underscore we need to move the slash t like that and then if we build it and now we actually have a proper menu for this version of windows yay progress okay so there we go uh so 16-bit applications don't work on 64-bit because microsoft removed um lt um ltvm or more specifically they didn't port it for 64-bit windows um it's long confusing and annoying for reasons that really shouldn't be but it really boils down to is microsoft didn't want bother uh because they supported 16-bit applications on alpha and other the nt risk versions so okay so to fix the rest of this uh [Music] let's deal with this one one dialogue box at the time you know what i'm thinking is that this isn't even the hard part yet the hard part the hard part has yet to be coming but i knew i was going to have to make code changes so yay and i actually i need to go back to the other one and clean it so first we want to actually fix the menu like this caption is uh windows windows 1.0 font test about dialogue uh i feel like i should probably add i could add myself to this but i don't actually want to make unnecessary changes to this and we i we want to just change the style okay or actually i already changed the style didn't i there we go yep and now that's the correct dialogue for windows for this version of windows and now we need to fix we need to fix this dialog uh and again this is mostly just changing style and captions i there are other things i would change under other circumstances and maybe we will um we might do that i'm not sure it's here i would want to wait until a later version of visual studio which is a little less bare bones and there we go now we have the font settings all fixed uh what i would want to add here let's see here this this tab correctly this does tab correctly um although you can tell that the layout is not correct like if we pull this up side by side if we go full screen you can you can see what the problem is uh the problem is basically true type fonts like if we pull up the original version from here like so here's the original font cast and actually i guess i mean i guess comparing them side by side aside from the fact that that's clipped that's actually not that bad so okay all right um um yeah let me let me catch up with chat so um resource scripts basically define things like dialogues um they handle all sorts of resources if you ever used mac it's basically the same stuff as res edit except it's uh entirely compiled in um then on top of it um if we actually ran the hello world 1.0 application it would actually show up as mono spaced here i really should have copied it over i just don't really want to do it right now we need to fix the spacing let's see if app studio will actually let me open it like that would be nice i i have my doubts that this will work but we will see um it's like dude do you trust the programming tools and the honest answer is probably not but you know uh card file font test rc all right let's go and compile i actually did do that so let's open options box and okay yeah we can actually edit this so all we gotta do is we need to make this a bit bigger yeah we need to make this a bit bigger and we just need to move oh undo uh this doesn't snap to a grid like this is not snapping to a grid is there a way grid settings ah there we go snap to grid although now it's ah freak i'm gonna have to screw this aren't i yeah we're go we're actually gonna have to relay out this dialog box because you can see the spacing is completely off compared to where it should be so if we do that and that like what is this white what are these white dogs here can i just delete these i can just delete these um hold on before we override this file let me make a copy of it because it is actually working right now um yes and i have no version control here so if i screw up i have to the the it would be bad um so let me make a copy uh font test back because this is how we used to do it back in the day okay yeah yeah um normally there are better ways to do this than dealing with the resource editor microsoft's tools were notoriously bad about this stuff uh compared to most they got better with visual c plus plus six and mfc but this is the time period where they were just hot garbage all right because i need to get these all the snap to the grid i mean if i really want to fix this for this time period yeah see like i it's part of this is the mouse is a little bit twitchy to put it bluntly um so yeah we we've gotta fix this for so we get that we get that this one needs to come down is that which one no this actually needs to come up we need to have these equal to each other like that okay these need to go up so so far so good i mean it's a little surprising on how much this tool both is and isn't different from what came later and then this these need to be grid aligned um normally you wouldn't do it like an okay box like this uh let's see our menu class font position i think we can just leave this all as is uh we can make it discardable it probably should be a modal menu but let's hear so let's save this let's see how that comes out yep reload it and then let's rebuild it let's see here project stop debugging build it how's that look uh almost we just have to move everything down that that actually looks aligned correctly except here and i think i just crashed no i actually just i actually just crashed yeah so this is the problem with dealing with 16-bit windows oh and down she goes why did we just crash there okay so it wasn't a full system crash but it that was a crash so we gotta grab all these these need to come down and these need to actually be aligned all right because these get rid on dynamically like this and like this like that and then all this all right so how do i how do i select everything um like this and we actually want to make this so this is not a system modal uh that must do something different than i'm thinking uh oh and i don't want disabled discardable is okay that's probably why it all broke uh let's see here all right so let's try that and see how that looks that's fine build it um almost yeah that's literally just that little bit i have to fax and that time it didn't crash but you gotta love the 16-bit windows i literally just deadlocked them which shows you how finicky this version of windows can be because it's cooperative multitasking so we just need to make the grid a little bit larger we need to select how am i going to do this all right we need to select all these elements like this and i guess we just need to move them down say two ticks like that okay there we go uh and then rebuild sort of i mean that that's almost correct i i'm just missed a single element all right i mean like i said there would be more things that i normally do like if we were trying to meet the windows interface guideline standards um and i'll i'll show this in a moment next time we do a recompile like i'd add a file menu instead of just having stuff up here in the corner so uh that's not bad this needs this needs to get nudged over but other than that i actually think we can say that that's a correct port of what this is supposed to look like like if i do see here did we lose we did lose these elements here they're supposed to be a number right next to them like you see over here there's this number i'm not sure what they actually do oh that ain't right that ain't right at all hold on let's let's close that and reopen it did i just make it like a okay i just made it like a way too tiny way way way too tiny okay yeah so let's let's fix these last little few issues um let's see here so this black bar just needs to move over like two spots and then these elements probably uh you know those are probably fine as is so if we compiled that how's that look um yeah you know i'm gonna say that's actually probably okay i'm missing i'm still missing an element which i have to figure out what happened to like if we compare this side by side uh let's go back to full screen here's the windows 1.0 version there's supposed to be a number right here which i'm not sure what it does let's check if we do control o yeah okay so that's the number that's there so we just gotta figure out what happened to those numbers probably they probably are just being overlapped or i may have accidentally deleted them let's see here if i move this yeah oh you know i probably accidentally i accidentally deleted them crowd that's a slight problem all right we can react we can re-add them we have the technology so let's put this here because i don't want to really redo all this work and i just need to figure out what the uh element was yeah so the way we do this is we take a look back in font test i'm a little surprised it's not following throwing a fit because of a missing define we need to look at the code uh and that would probably be uh it's here probably be id tm seer either be id tm height or [Music] lf with i might have to open the original one and take a look and see which one's which yeah let's let's do that well let's let's not shoot be shooting blind here um if we look at the original one it's tm height is the one that went directly past it so that's how how we know so this would be idtm height and then we copy it we put one here idtm weight and i will fix the v uh actually that should be with with and then idtm weight save it build it uh stop debugging and that hey that actually fixed it it's not aligned but that did actually fix it cool all right let me fix the vm so it looks good on camera that is progress the this this is what software development is like um abandon all hope ye who enter here okay uh i mean it's not completely centered correctly because you're really not supposed to do that i mean microsoft really didn't have gui guidelines in their early years if i move this down like if i move this down one notch it would be it's probably good enough like i don't really want to excessively fiddle with this because i'd have to take it off grid uh let me see grid settings if i switch you to one snap it doesn't even let me go that low yo i think we're just going to leave this as is because this is functionally this is fine um i mean all the major functionalities there it doesn't meet the windows 3.1 guidelines for what an application should look like but it it's functional like if we do control s it works just fine i actually need to fix one other thing in the dialog file i uh there is a note in uh resource files i have to remember what it's called to say that something has a control accelerator and i don't remember offhand what it is so um let's here take a look at the chat um yeah this is a problem that exists even in modern versions of visual studio like this this is not something that is unique to the old versions i've had this particular indigestion and uh vs 2005 was probably the last time i did it from scratch uh let's see here so let me see if i can remember what you have to do to add a key shortcut here i have that distinct feeling it's not as easy as i am thinking okay so here's how the accelerators work um edit menu accelerators i probably should just do this in app studio like why am i doing this with the third party tool because no one in the right mind will write a resource file by hand if they don't have to uh even i won't and i know definitely am not on the right right um mine so if we go to accelerators font test yeah so all this is cracked and if we go to menus commands uh you should have an option to put the accelerator attac and attach it to the menu trying to remember how you actually do this i might have to look at a completed version of this because you can see that the accelerator is there it's just not attached in the way it's supposed to be so if we go back to source if we look at the actual sample source code and i will catch up with chat here in a minute i'm not ignoring you guys it's just if i start looking at chat i'm gonna lose my train of thought and then bad things will happen so if we look at edit menu let's see how it handles accelerators so here's its accelerator that's fine imd and then we do this does it imd open oh does the accelerator have to match the name that might be what the case says like if we look imd clear i'm not cern i also don't know how much i actually care see a pro if i do properties on one of these so tell me what it connects to [Music] oh hold on if we okay that's that's the problem i i understand what the problem is home we go to font test you need to be next t typed is c control c you need to be next key typed is s control s and you need to be next key type is o and control o okay let's let me just see if that fixed the accelerators uh no it did not or did i not have it running nope i don't have it running um yeah there's usually a way to do it why am i not thinking of how you actually i would have to go through the documents and figure out what's missing so okay i think i'm going to call this one good um so accelerators are if we go into projects here in visual c plus you see these things on the right hand side these are what are known as accelerators i don't think microsoft actually uses the term anymore uh it's still in the rc files but i i can't remember what they call in the modern versions so i apologize for ignoring chat for a bit you have my undivided attention again um anyway so i think we can call font test ported uh if chat disagrees let me know now um let's take a look here so what else do we still have here uh we've done hello we've done font test i really don't want to do card file but we might try doing card file um let's add shapes um because now that we have an idea of what we're doing this should go somewhat faster and those are probably famous last words in the making but you know i'm i'm gonna be optimistic and say and say that no these are these are all going everything is gonna be fine it's gonna be ponies and happiness and yeah i probably just doomed myself don't i okay so first so first we gotta make the usual minimum changes that we have to so first we gotta go to rc we have to change style to windows uh we need to comment out the shapes uh and then we need to build it and it actually built and it actually works more or less wait see the accelerators are here though see like these are actually showing up now which makes me wonder why they're not showing up in the other one like that's doing exactly what it's supposed to be doing okay hold on net see now now the fact that that works and this doesn't in font test it that's gonna bug me let me just take a quick look here if we look at the menu item and just take a quick quick look at why these differ oh that's what they're doing that is not really what you should be doing i mean sort of kind of not really this is fine this is all fine so what they basically did is they hard coded in the accelerator key into the menu file which actually may be what you're supposed to do on these versions i i don't remember offhand before we do that let's let's go back to fixing shapes um so first thing we got to do is we got to fix the windows positioning parameter so it loads up correctly which is just overlapped window use default use default default we've already done this twice before see our shapes okay i'm hoping that the port to 32-bit is gonna be nice and easy but who might who am i kidding it's probably not like why why why would i think this is nice and easy i know i know what my life is like so we do that and we just do a compile uh it's not did i copy and paste too many arguments one two three four [Music] oh yeah no too many arguments okay build that hey look that actually creates a window on the first try and i honestly don't think we have to do anything else besides fix the about box i mean we could technically leave it like this and i think i will just because it's nice to have a little variety because windows applications in this um is basically the way these things work back in the day uh windows 1.0 uh windows 3.1 had basically no visual consistency it really wasn't until nine x and explore the microsoft really start going you know thou app shall look like this if thou wants thy design for a windows 95 sticker uh and we've seen the evolution of this the point that metro applications and so forth and so on are basically there is now one style for visual applications on current versions of windows rin in basic 98 um yeah sounds like fun um okay all right so that's that's the that's uh shapes down so let's close all let's uh let's just clean up our workplace a little bit um and then we now need to make a new project it's here and then [Music] let's do template because at this point yeah i think i think we've got enough time that we can do all these i don't need to really worry about it so this one has multiple files so let's add all um we are definitely going to have to start making code changes in later ones because uh things will definitely become more broken but i'm not going to do that until i absolutely have to so all right so now that we've got template loaded as an rc file now look at that this one actually does include windows it doesn't include style directly so i think the only thing we need to comment out is the icon and did that just literally build on the first try that did just build on the first try yeah so i think all we got to do here is we just have to fix the windowing code i don't think we have to do that flashes although it flashes very fast uh dialog box i really don't want to fix this because this this is the template app for windows 1.0 so i think i'm going to actually leave that as is we could disable true type fonts i'm sort of thinking we should but yeah i like breakage i i like seeing things break upon the source of time so we need to find the main.c i'm guessing it's in temp end yes this handles all the windows registration so all we got to do is grab this bit of code to fix the initialization uh to fix the initialization r5 um yeah that i'm going to call that good yeah see that gets checked and cool all right uh we can throw another one off the pile excellent that works great one thing one thing at one thing at a time all right um so backtracking a little bit is microsoft basically tried to unify all the styles in windows 8 and because metro was such a disaster as a platform like i don't know how you screw up that badly but they did um for the for the long uh and short of it is um they made a bad situation worse but one of the big points of metro and windows foundation um stuff was to try and make windows a more unified experience like mac um and anyone who's used mac has know that sometimes a one-size-fits-all solution is not a good thing so all right so i should probably note what these definition files are it's because in 16-bit windows you have to put additional metadata for segments um that you don't have to do in basically any other platform so it's it's very similar to when you build a dll you just have to do it with the executable uh we probably will have to change those when we port to 32-bit but again let's not put the carp for the horse oh and we're gonna have to fix the header here and once you get once you know what you're doing you can do this pretty quickly uh pick a shape and drag an outline did we not look at this one before i mean that's working just fine and this is at a resolution much bigger than windows 1.0 supported so i'm going to say that that that's good all right so that leaves all of them except for win mine and when mine are wine mine not win mine i i should say that correctly uh so wine mime um is was that the last one oh no there's still type which was the last example application so uh let's we'll do that one as well just so we have a full set here so add this file uh add the definition and add the rc script close it take a look at the chat yeah uh metro and modern basically let's just say that inconsistency was the theme of the day at that point uh and that's the easy way to put it because metro was basically what they called it for windows 8 and it's like oh no it's actually modern but everything refers to it as metro uh and then then it became you know it was all part of the windows universal um applications but because mo you know modern or metro or whatever you want to use as a term was such a mess you know i mean forced full screen applications that no one wants to develop for them and i mean it's basically it's like how do you ship something like this and think it's a good idea i mean i don't know i th there are some people like i i i can completely see how it happened but you know microsoft didn't really suffer i mean windows 8 while not well received sold more or less just fine so i don't know select this window and type okay yep that works fine so okay that's all the windows 1.0 example applications let's get wine mime ported and see if we can get this to work i have my doubts that this is going to work and then we could also try card file um i'm going to let chat make a decision if we're going to actually do card file uh after we do this one so wine mine dot back and then we need to add all this we need to add the definition file we need to add the rc file close build all right and then we just need to go into the settings i just need to fix the uh we just gotta fix the icon yeah we just have to remove you okay why bitmap file is not in the right format did bitmap files change i guess they had to if it's complaining about that um hold on accessories paintbrush maybe paintbrush can open a bitmap file i have i have my doubts like i really have my doubts paintbrush cannot load this application because it was created using a version of windows earlier than 3.0 i mean talk about error messages that you don't see every day like i i like i feel like this should be i mean yeah okay then uh let's just see if the resource toolkit can deal with that i i very much have my doubts but we will see uh see here yeah if if i do a end commander in real time video about this yeah it doesn't it's not even gonna load that so i can't convert the resources to a format that it can handle which means that while i could compile wine mime it wouldn't actually be playable i mean i could make really really ugly images as placeholders and use those i don't know if i really want to do this because this is just the path to madness oh no oh no okay why did why did i open my mouth why did i open my mouth because i gave chat an idea i gave chat an idea and it ended badly all right let me figure out what the resolution these things have to be as screw it if we're going to do this we're going to do this um and let's see what the original image looked like so let's switch back to windows 1.0 because i need to see what these files looked like 1.0 sdk see here so if we open this in why why did i do this to myself i mean just okay so here's paintbrush under windows 1.0 um let's hear rc actually it doesn't recognize it you notice that this says msp this is not the correct version of paintbrush it wants windows 2.0 that's what it wants so i don't even know what version i am vague you know now that i think about i'm curious if anything if can open those files let me just see if it can i i very much doubt it but maybe no bogus header data hold on um full screen you know what let's just ask google um like windows 1.0 resource conversion you know i can't be the only one who is this likes this much pain uh and you know it's a bad result when you are the first search result i am literally the first well second search result um and the first search result was the guy who did the port i that's that's not a good sign when you are the google search result okay uh seer does he say uh shorts coming compatibility mode will not run resource converted version let's see here hold on uh because i don't even know what resolution these are supposed to be let me see here like i could just go into the wine source code and grab the originals this i'm curious let's file even know what to do with these data data data and pdp 11 unix rt ldp wow file just basically basically just tapped out on that one paint shop pro yeah paint job pro probably could open it but again i'd have to go hunting for software i don't really want to do that while i'm on stream um although i i don't even think image magic would know what to do with this format i i let me just look for the programs my programs directly let me see if i have anything let me see her you know i'm just like was borland i don't think borland resource workshop was made let me just look for the borland tools because i i can't imagine maybe i overlooked something maybe borland does actually have a converter because uh i need the other vm i need the other vm because i i just i'm having trouble imagining that this was such an uncommon use case that the official solution was redraw all your files although i don't know maybe that actually was the official solution uh t-link so i think that is actually the only windows application here but maybe i'm wrong [Music] yeah now now that i'm looking at the actual windows applications uh you know what we could just take some bits from the borland's workshop stuff and drop it in because there's no actual problem with that that's turbo debugger turbo debugger for windows wow that is just broken that oh oh it did it just go down okay i had to all control to escape that but use existing windows for windows 3.0 and call today you know you know we can do that the problem is i just don't know the right the resolution is but it's probably 16x16 so you know let's let's just try it and see if we can make that work um where's program manager so can i set the image attributes is i want 16 by 16. oh we get a nice tiny square so let's just throw all right all right fine it's a valid bitmap file that that that's where i'm going with this one is a valid bitmap file and um yeah so we're just going to call that see but again i don't know what the original files look like this is why i don't think this is gonna work let me just see like if i knew the resolution i could at least work with it and yeah you know what th this image is a little bit too tragic there it just got one white pixel can you zoom in this version like oh yeah you actually can zoom you can zoom in fury that's not that's not that's not what i got [Laughter] i um this is not the zoom button you were looking for that is not the zoom button you are looking for all right let me zoom out let me just see what happens does it actually get did it actually get smaller yeah no it zooms out it it so so amazing so much wow uh cursor position yeah i i think i think we're going to let this one go i i let me just does weinmind say what the resolution is no it does not fixing this is going to be a lot more effort than i'm willing to put in um it's obviously completely doable but i think we're going to pass on this one if i do a real time video i will get the right tools because i know the resource workshop can do this but i don't know which version of the resource workshop has it because we just saw the one in borland c plus plus does not actually work correctly um so yeah so we're we're just going to throw this one back in the pile and close um we could look at card file i'm i i had this distinct feeling we're not going to successfully port this one but i am willing to try it just because uh oh i just saw a bitmap i i i suddenly have a lot more concerns that this is not going to work but let's let's just try it and see wow um microsoft visual c plus does not support assembly files oh i know why it doesn't support some of these files microsoft assembler was still a retail product in this era it you literally had to pay extra for it and it had its own user interface which means that this you cannot build card file with visual c plus plus in fact i don't think you can do that until the 2000 version i don't even think you can do it in six i completely forgot that that was a thing i can't imp like i can't import the file and i have even seen box copies of microsoft assembler for windows that was an actual product part of it is that visual like most c compilers can be have a freestanding assembler but visual c plus plus does not so i literally can't compile card file on with the newer tools so chat let's get some f's for card file because i i literally can't do it um and if i go straight to visual c plus plus six i mean we can try it on six um yeah uh c sharp was not a thing this is about two decades before c about a decade before c sharp would be even invented okay so that was a thing that happened so let's uh let's sum up what we've actually done here because we've actually done more than what it seems um so we go to file manager and we go to source we've got these applications fixed to work with multi-window environments because windows 1.0 did not have overlapping environments so we fixed that we converted them to project file format although i have my doubts that this is going to open in visual c plus plus 6 correctly um so you know i knew that windows was not as good as backwards compatibility in these days but it's actually kind of impressive of how much of an fu that kind of is because imagine if you had support an application in windows 2.0 and 3.0 simultaneously and that was in fact something you can do you wouldn't you could not use the resource format or any of the 3.0 tools and then you'd have a giant upgrade headache if you also want to support nt it's like wow you know it's like microsoft buried versions two and three so fast that it probably just went that is just that is a mess like i know i commented on the original windows 1.0 hello world that backwards compatibility in these days was a little bit more hit and miss but i didn't actually think it was so bad that visual c plus plus couldn't like let me just see let's take a look at the help like let me just make sure there's nothing in here that i am not seeing here like like i mean right here it talks about if you want to use masm with visual c plus plus and you need a specific version for this to work i mean you know i can't make this up let me see here i just want to see um visual but visual workbench for visual c plus plus and fortran let's see here i am no i'm just going to thumb through this real quick it probably would be in the online help if it was anywhere but i have my real doubts they have any documentation on doing this so your new api resource statements uh i mean if anything it would be in the windows 3.0 sdk and on the free one so your contents that doesn't help uh errata errors lib mfc mfc blah blah blah nt host yeah that's if you want to develop on top of windows nt yeah i think this is basically you are completely and totally screwed it's probably in the 3.0 sdk but i'm not even sure that the 3.0 sdk has been archived i mean if it was archived it would be in the borland would have it because borland has things like um rc licensed from microsoft so wait a minute there is this project convert i doubt that's what i need but let's i am just slightly curious because borland was slightly less content did not hate their users as much as microsoft did apparently so let me see here that was uh tsmd message td dev what was the name of that tool uh prj convert uh no that just converts turbo c project files uh do we have any other thing here that looks like a converter series make sure chat hasn't said something that i'm missing like because it wouldn't be because youtube blindness is in fact a thing but i think we'd be boned yeah because i'm not seeing anything here that's actually going to help wait i might have one thing that might help hold on before before we completely throw in the towel here before we throw in the towel entirely there was a freestanding windows 3.0 sdk and i have that on hand let's just take a look in that sdk uh i don't think i have it in dev tools where did i put it it's probably in here somewhere uh freak i was actually looking at it the other day and i don't remember where i put it uh windows 3.11 sdk i don't want to burn it to a disc i just want to mount it do we have anything useful in here um because like we have win32s stuff which is fun but not actually useful because what i'd be looking for is a specific tool that can help with this and i'm not this is not looking promising uh res kit hold on uh abstract open text editor windows resource kit 3.0 um contains tools and documents to help supplement seer wow includes 3270 connectivity under windows well that's different hold on this this might actually be promising hold on let's look at the utilities i think i want to install this i just want i want to take a look at it and holy cow it's written in visual basic 1.0 vbrun 1.0 i'm scared i am legitimately scared i don't know what to expect here because i've never used the freestanding sdk before um the only reason i have it is because you needed to install the uh the symbol debugger um [Music] wow i this this yeah i'm okay this is fine this is fine okay resource kit uh install man that installer is interesting yeah 3270 like ibm terminals okay let us see what is in this because if this has a converter we will use it and if not we're just going to nt4 because i just can't imagine that microsoft would screw it be that like i could understand them putting the tools somewhere weird but i don't know maybe maybe i'm having too much faith in the developers we'll see that's here i'm just gonna i'm gonna thumb through this while this installs to see what else we have on here like we have stuff for ipx drivers and more so uh okay so now we have a whole bunch of new like does this graphics viewer can it actually oh no no it's still doing things it's not done yet okay now it's done although now i want to look at this no it's not done yet is it done now [Music] no there we go [Music] so yes this document actually talks about running mainframe applications on top of windows oh man this this is cursed this is legitimately cursed i don't have an ibm pc main aim but i really wish i did oh wow that is just plain old cursed that is properly properly cursed uh okay let's see if the graphics viewer can actually look at these files like i i have my doubts that this is going to help but you never know uh it's here let's hear i want to open win mime rc uh frigg nope it it ain't happening yet i don't even know what top desk is okay that looks like something i don't want to try even using you know what this might be this may not be like a resource kit like a resource compiler this almost feels like power tools like this would be a windows 3.0 version of power tools and actually now that i'm looking at it i'm thinking that's exactly what this is because of course it is uh i'm just seeing if there's anything else here on the cd that might be able to save my soul but i think we'd be screwed yeah no i'm pretty sure we're completely screwed okay that's fine this is fine this is completely and totally fine okay the problem is that interfacing on uh a pc um to and from a mainframe is hard because a lot of us have wanted to play with sna gateway and while you can emulate an ibm mainframe with hercules or sound the other ones it's not even wouldn't successfully open it the file format only existed in windows 1.0 and 2.0 there probably is a conversion tool but it's probably in the 2.0 sdk or the 3.0 sdk and i don't have it borland resource kit apparently can open these files but the version i have doesn't work so we're going to take a 30 second break here and then we're going to dive into nt4 so folks talk amongst yourselves i will be right back so okay and i'm back so all right anyway we are definitely going to jump into nt4 um let's figure out how we're going to do this let's go full screen full screen um let's actually shut down this vm uh yeah we just wanna exit everything uh back in these days you couldn't just quit windows it had to be an event the easiest way to probably do this you know before before we actually close out i want to make clean on all those no i don't actually want to make clean well i kind of it's complicated i think that's i think that's the story i'm going to go with um the reason i kind of want to save the old binaries so can i make a duplicate of this folder like can i call it source2 uh uh apparently i can it's just hold on c source 2. uh you know what close enough all right and then what i want to do is i just want to do a make clean on these so uh because we need to import it into the next version so i want is there really no clean option i have build rebuild and stop build there is no clean option that explains so much that really does okay so uh those are the files that need to go to the that need to get deleted we need to delete the object file the pdb and the that explains so much if that there's no way to actually clean the build environment okay well today i learned and god knows my brain is suffering for it let's just delete these all by hand and then track and then i will catch up with chat here in a moment let's see our type and what i'm think i'm going to do is i'm just going to mount the disk image uh how big is this folder i don't think i can even find that out on this version if i go to properties yeah it just says that we're zero bytes and we're less than one on the create day my brain is leaking that that's i think where we are right now more objects delete and template yes oh you're right there is more objects to delete and template i mean we will find the problem pretty quick when we go to build this so i think the easiest way to copy these files over because i really don't want to deal with networking so we're going to shut down the vm uh power off and i actually have to shut down the nt4 one because i had this up and running earlier and we need to shut this down we're just going to mount the disk images under linux and i'm just going to punt the files over because uh i don't really want to fiddle with this excessively all right so this is going to shut down yep hey seriously um we're just moving to nt4 we discovered that we we managed to get cursed error messages like we had legitimately cursed error messages and um how have i been streaming for two hours doing this okay um i know there's legal ways to do it it's the problem the thing is that for me to do anything with mainframe related it's a very long and complicated licensing story that is going to be difficult to deal with uh it's sort of the reason why i haven't done a video on vmware despite the fact that i really want to do a video on vmware um not vmware sorry uh openvms uh wow you can tell any commander has not had enough sleep um let's hear some q qdb dev ndb0 uh stream vdi and then disk image disk image shows up yay this this is called uh this is why virtual machines rock and then i need devstream windows 1.0 sd nope wrong one that would be devstream windows 3.1 hume ndbc ndb1 okay and then i should now have an extra partition perfect cool so let's grab that folder uh and then copy it here and then eject eject and then cool we're in business we are in business let's go to vm view all right so so we we've skipped ahead so we're going to actually skip a couple versions of quite we're skipping five versions of visual studio technically if i was doing this correct i'd want to use visual studio 2 3 or 4 with 4.2 being the version for windows nt4 but um those versions are also notoriously buggy so i'm gonna go with six because at least with six i know what the bugs are in advance and it's also the version i pre-installed so there we go so let's see if we can i don't know if you can just flat out convert like i've never converted from an old version or i've never converted from 16 to 32-bit before so let me see if it even recognizes um dsm files like even this version doesn't seem to let me do um you know i just realized what the conversion path is for those resource files i wonder i wonder before we do anything else can i actually open those files on this version of windows because there's a there is a possibility that i will actually be able to and if i can i'll explain why uh let's see here so let me go to my computer source card file and then not card file uh let me just go to hello and i i have my doubts this is gonna work but i just need to try it because i i have to try it uh where's the icon did i not bring the icon over maybe i didn't bring the icon over let's okay that that didn't quite work so the thing is that this version of windows does have support so because windows free nt31 was actually contemporary to windows 2 and 3 it has support for the old resource files which sort of makes me wonder if we can open them in this version of windows okay i can't open it because it's an invalid paintball okay it was worth trying so let me see if we can figure out how we actually open this so i think we need to open this as a make file uh so we open this as font test there we go this project was created with visual c plus plus version 1.5 or earlier and then we'll uh be converted to win32 equivalence i wish to convert it's been converted and new projects been added to the workspace okay uh we should probably start with hello world though because i like hello world so let's go there first yes we do want to convert and this is where we're probably going to start getting pointer problems so let's just try and build it yep and it fell over right then there so why did you fall over you fell over because your source file didn't we okay yeah it can't deal with that resource file edit code yeah it just can't deal with it so that's fine it's built so i definitely saw some so we now we're definitely starting to have problems you notice that we are getting warnings and errors because we've lost we've now gone to a flat device memory um so okay i'm just sorry i'm just catching up with chat uh just as a note i use nano for most of my coding and such so just as a reminder all right so what we need to do right now is we need to go through and we have to reduce the number of 16-bit stuff like right now we can actually delete what is known as we can have the windows definition file but honestly the correct thing to do here is we cast you out into the into the pits of hell and compile and now we get an unresolved global so and it's it's get instance data yes okay this is actually quite amusing so get instance data so here's the thing is get instance data was something that shouldn't um exist i'm actually curious on why that is an unresolved symbol i would think that this would be defined in the header files like i would legitimately think that this would be defined but this was part of that initialization thing that i was saying with h priv instance and it's not having it so i think the correct thing to do here is i actually want to recompile this file and i just want to get the warnings so it's complaining about let's see here 66. uh yeah see types have changed in the intervening centuries uh the intervening decades between this compiler or not so yeah all right so what we need to do is we need to clear all these warnings uh we have to remove get instance data and we need to probably fix the c pointer declaration so where do we start with that um so i think the correct thing to do is we first need to find p window class and we need to find the uh you should exist in the windows header files of course you don't because because that would be too easy all right let me find this the the thing is that none of the advanced types exist in this version of windows so i have to find out i have to find out i don't remember what the types are so i have to find the class and i have to fix it p win class because uh you really don't want to have these types of warnings in your project um [Music] oh you know it's not a good sign when you google for a honestly this entire thing actually can go away because p win class does not need to exist like literally this entire function can be deleted because the concept doesn't exist on 32-bit windows and then we could take this and delete it and then build it and then build it i might have deleted too much yeah okay so that that was a little bit too much i deleted um yeah so here's yeah okay so i i deleted a little too much that this is fine so first this needs to go away because each instance will never be false and that actually built that's broken that's that's really broken you are seeing this right like i think i let me see here can i still open the about menu i can't open the about menu okay then i mean it didn't crash but how do you how do you do that how how how do you do that okay what's missing like like how do you do that okay so here's the hello win procedure which probably tells me that this case is broken i'm just out curiosity if i delete if i just delete this case what happens uh nothing happens so why aren't we not redrawing the screen correctly so with sys command that's correct falling back to the default case we're painting the screen correctly um we have a paint strut like how do you end up with this unless there's something missing in the resource file because i mean the program is obviously not crashed but that ain't right so normally that type of error is that the painting has gone completely nuts but uh here so here's the procedure class that makes up the window yada yada yada uh no it drew the text that time let's see here so begin paint hello paint see here and then this does a text out so it's running this function i forgot that this is how this program works it doesn't it doesn't actually it literally dynamically draws it and then it doesn't end paint okay hold on i think i've got a look at what a default what a normal windows winfrey 2 program looks like i i need something i need to compare this here does does microsoft still have any documentation left on their programming environment like i have my doubts but we're going to find out so this is what a hello world program normally looks like and you can see here it begins paint it begins straw um they're just filling it painting an entire rectangle uh fill rectangle window color h brush i mean that doesn't feel like the right way to do this although it is let me see here so this create window ex use default procedures that's correct runs the message loop that's all the same um i might just have to do a fill rectangle that might actually be what i need to do i don't that doesn't feel right but let's see here so begin paint fill racks ps htc uh see here because i need the htc where is it getting our paint from or where is it getting ps from because unfortunately windows example code is freaking useless yeah i gotta grab their example file or they have it on github that helps that actually helps because i can actually see what they're doing wow that you'd think they would put it in a useful name so windows 7 samples win let's see here win7 samples let me get that window out of the way uh begin learn win32 world cpp and then here we go so what is ps ps is probably a paintbrush but where is it defined that's the global i'm not remembering all right my win32 programming oh paint strut somehow i did not see that okay uh let's see here let me just catch let me catch up with chat create a white solid brush with see here yeah i probably just need to do a fill rectangle uh and i actually so i do actually have a paint brush already available let's see here i have ps in this project is what like i can't imag like i have to wonder if see here load string like don't i have a paint strut somewhere yeah i do so that's right there ah i'm i'm getting remember how miserable this can be at times so uh all right so i need that right okay so hold on i actually need the handle from here like this so i need because you need the direct context here grab that there fill rect htc [Music] uh i can type i can type if i look at my keyboard apparently rc paint h brush color window plus one yeah okay i probably didn't get that right but it's here uh well you know it helps if you don't make an exclamation point okay three errors okay why is it having a fit uh into different levels of indication here i guess i can just do what this does and it's probably not what you're supposed to do hey that actually fixed it that actually fixed it uh technically you don't need to return zero i actually feel like that's a bug in the windows one but that fixed it i just had to i had to check on what you're actually supposed to do in the modern versions that's surprising change i am a little i i uh i i would think that creating a window would automatically paint it like if we i didn't grab the source files from the previous versions i probably should go back and do that but i'm surprised that it works so i am falling through to the next k well i i got a break so you know that's fine because i break and then i return zero so uh default color white is because it was yeah no breaking break is even being syntax colored it's probably having in like indigestion due to knrc i'm actually surprised we're not getting compiler warnings about it because at this point this was a dated syntax um but let's fix the one the warnings we do have so with 66 um this is almost just fixing definitions i mean that's like 90 of this because right now it says the formal one changes i just have to go fix the typing and uh to do this i'm just going to have to go i'm just going to pull up the header files in a separate window on the other screen because i need to see what i'm doing uh i know i have a copy of the windows sdk somewhere the question is where i i thought i had mini g installed include because see the problem is that microsoft used hungarian notation for a lot of these and then they kind um the pointer types changed over time but the names did it's kind of the argument of why thou shall not use hungarian notation uh like this is like the poster child of why you shouldn't do it so okay uh let me look here so eight three let's do the ones that i can easily figure out uh which is probably here in win main formal parameter one differs from yeah because it's no it's not handle anymore it's h instance like if i do that it goes away yeah it goes away yeah because h instance and those compile warnings went away uh clean build 155 is 155 is here uh which parameter is it complaining about int differs in parameter list from wait what i don't get why it's complaining about this one differs in parameters list from long inside the yeah um yeah so system the thing is so yes systems hungarian is not actually all that bad but microsoft used apple what is now known as application hungarian quite heavily and you're seeing some of the damage of this like you see these things are defined as word when they're not um they're um or they're not processor words anymore and actually the modern version of the api just looking at what it is this should be l results callback if i am correct yeah l result callback you should be a uint you're a w pram you're an l param okay that actually causes a couple of warnings but that's fine because i have to fix the forward callback which is up here um because when we go to 64-bit if we don't actually fix this now it's going to have a lot of indigestion and we have to also remove all the segment mess so you know one step at a time all right let's see here yeah see that actually got rid of more warnings so yay um i gotta fix the dialog parameter let me see if i can remember what the prototype is uh i fixed that one there should also be one for the dialog this is just needs to be win api okay yeah it's here yeah pascal is alias to win api so that really shouldn't matter but i like to be neat and tidy as much as i can be so yeah so for this one it's wpram l pram uint uh we get rid of the far and you are win api let's see that it's here that actually i mean it's linking it's still not happy about it let me get the let me get what the correct prototype is i'm guessing that's actually why it's not happy about it is that at least one of these resources is just completely kaputski see here but which one is it instant call oh hold on hold on is dialog box defined in this no that's in the header files so why are you having such a connection about this that's why you're having a connection about it because you yeah okay yeah okay i see what's happening so in early versions of windows 1.0 2.0 you had to do this really complicated thing called make proc instance this is a if this is a defined in this version of windows this this doesn't exist and it's getting upset about the casing because of it uh let me see if i can remember how you fixed this because it's been a while uh let's see here dialog box class win32 callback because even i have to look up the documentation at times uh is it dialog proc is that what it's actually called you know let's just see if there's an example code for it because it's easier to look at the example code and see what's going on than not and i know what i'm looking for open dialog box let's see here uh win main it's probably in main two uh wow this is different that's not how you do it in the old way oh is because it why is there dialog box example is com based api there are easier ways to do that microsoft there are easier ways to do that why would you do it like that why i why why this is fine this is fine everything is okay the world is not on fire let me find example code because the problem is i don't have a copy of msdn for this generation i don't think i have example code do i really not have example code i don't grrrrr that that's right because it was actually in the platform sdk visual c plus plus assumed that you knew what you were doing or you bought the really expensive books from microsoft i don't like this era of programming i really don't all right so here's what the problem is the dialog box functions have to exist as um a callback and the callback here is this about function but it has the wrong prototype because what they are doing is this they do a make proc instance to get the um lp proc about and that's i think all i actually need to do is i just this goes away entirely and i think i can just pass a pointer like does that actually that works and the build error went away yeah that's that's the way you're supposed to do it or well that's not the way you're supposed to do it but it does actually work so your instant call differs in parameters list trying to remember how to do it um what size is actually let's hear how the chat looks correctly yeah so a prototype is this thing it defines on what the function is here at the top and this can go away i don't actually need that anymore problem is i am struggling to remember the correct way to do this because i haven't done raw 132 programming like i i didn't even think about this it's been literally a few it's probably been about a decade since the last time i did this uh so it's time to pull up some code example so win32 dialog box callback let me see if i can find and i can find example code because fortunately this is new enough that i could actually find stack overflow code to do it um and we're back in the seer okay so that's microsoft docs that isn't actually that doesn't help me at all because it doesn't actually tell you how to do it uh callback function dialog box a here we go uh dialog proc that's that's what you need to do so you declare something as dialogue proc please tell me they have an example on how you actually use this that now it's starting to come back to me uh yeah so you need to define it as i think i just have no let me pull this up i think could be wrong but if i just define you as dialogue proc like that do you stop complaining no you actually start complaining more because i'm concerned that if we migrate to the next version of windows to 64-bit this is going to break and i also don't like leaving linker errors and of course there's no useful information on how you actually do any of this so uh dialog parameter okay so let me see if i can find example code on how this works uh let me just go on stack overflow because that's a thing dialog box parameter callback um okay okay i this is vaguely familiar i feel like you have to put a level of industry uh and direction in if we do dialog box right let's hear what's the name of that function dialog box parameter just i just want to test for my own sake pram h instance zero zero about zero do you take it unexpected end of macro expression oh i forgot i feel like this is closer to what it wants than not but it doesn't feel right and i'm very hesitant to leave a compiler warning where it's complaining about function prototype mismatch i mean i went to 175 i mean that's what i did i went to line 175 and that's what it is this is line what our 152 and it's this last option it doesn't like like if i just just to confirm if i replace this with a zero yeah i place that with zero it the warning goes away that's the op that's the one it's complaining about and it's complaining because the parameter list is not correct so if we go to msdn mstn dialog box box dialog box macro and then this talks about doing dialog procedure dialogue proc see here define callback dialogue proc is a placeholder seer like there used to be useful example code on this and this really is frustrating that they've made this so much harder than it used to be because i this is how i learned to do it originally which is why i understand the problem but i don't remember the syntax and of course because i don't have example code i can't easily go fishing for it just okay let me let me see here if i give this if i make this in pointer is that act is that possibly what it's complaining about that might be why it's complaining no because it's perfectly happy with that as is although it really shouldn't be bool or actually maybe it should be so ui i mean that's the correct parameters for the function call no it has to be defined win api i know that for a fact because it has to be yeah see it it gets it has a connection if i do it like that this is when it's bull let me try if it's in pointer winf api it just says it's long i did not expect to get stuck on this i mean technically speaking it is working win32 dialog box example procedure there's got to be an example code for this like there's literally got to be example code for this uh end dialogue callback okay it doesn't like call back but let me see her ah that's what you have to do you have to leg you have to do a cast so what i was doing was technically right so dial proc there we go there we go that's correct okay we have got it we've got it and greg gets the answer gets the answer uh right as i look at chat i should have looked at that a little sooner but we got it okay we know we now understand what what has gone wrong and how we get it so i think we can call that ported um that was a lot more annoying than i was expecting but so here here's let me explain what happened because i'm sorry if i got a little silent there win 32 apis are callback based so like when you create a window so the program starts here in win main and then it creates a window and windows have procedures attached to them which handle things like here's the hello window procedures down here dialog boxes are a special case of a window um that has their own procedure attached it's i'm probably doing a really lousy job of explaining this but the win 42 api was written in an era where where api design was different and very conscientious to space memory space stuff and more so um it's fine oh god that was annoying but i mean the the largest problem with that was that the compiler was giving a fairly useless error message because and the state of microsoft's development documentation is just pitiful these days like there used to be a time where you could go on msdn you could find stuff but we can fix the other um projects pretty easily at this point so now that we have more or less figured out the hard part like now we know that all we have to do is we have to make this we just need to make this a callback you need to be a uint you pram l pram to make and then when we go to the procedure before we do that let's just build it see what else is complaining yeah we get we need to get rid of that definition file apparently i have visual source safe installed because i'm seeing all the uh stuff for it so this get instance data just gets commented out because that doesn't exist on 132 okay so now we just need to fix all this so you are uh because you are a window procedure you actually need different changes see here you are that is that's not that is not it that's supposed to be a uint and that's actually a bug in the original program uh l parameter and then you are boole what did i do wrong oh well first you're not far you know we just did this why am i doing this the hard way i can just look at the source code that i have already just done and we can make things magically just work because you know why l result l result call back now result call back and nope still doesn't oh because now it's just complaining with its own prototype isn't it or no it's actually down here it's not happy about uh you need to be h instance you need to be win-mane again it doesn't really matter but uh some of these went away with later versions let's see here blah wow that suddenly just blew up horribly all right let's let's clear as many of these errors as we can so let's go to 2 202 let's just take it from the top 202 yeah here you need to be uh dialogue proc proc uh my brain is okay it's sort of kind of not really but it is okay so that one's taken care of uh i is undefined oh it's on reference so that can just go away and then because by clearing all these warnings it's going to make porting this to the next version much much easier okay and then 275 is what uh zero i probably just have to fix the prototype declaration don't die you know i figure i scroll away and i forgot to check what the variable was uh font test when proc go up go up is that really only the two places i use it or well it's used i should say so here's what it should be here's what it is that's correct there's probably a cast missing the cast or a prototype of some sort and thank uh i just noticed that there are super chats i'm sorry i got a little bit too focused into it so to ben uh ben and adultery thank you for the thumbs up and the two dollars usd and to have el palescenski i probably butchered that i apologize i really do for the five i believe that's polish i don't know what the currency is offhand so catching up a little bit of chat is because right now i need to i need to take a moment to breathe because if i if i don't start talking you guys are gonna get bored and yeah anyway um the biggest problem we're running into is i just need to fix the typing the conversion from 16-bit to 32-bit changed a bunch of the internal windows variables from larger pointer sizes the entire concept of segmenting went away a lot of craft in the api became irrelevant but you have to clean up all this typing because what will happen is that visual c plus plus six is a very loose compiler it really doesn't complain about things that it should complain about trust me i'm speaking from experience on this one and it'll let you do casts in ways that you shouldn't and what you'll get is a program that works but is silently corrupting memory and trust me i know this hell and it's why we're making the stop here on nt4 first just to make sure that i'm not completely wrong with the code because when we jump again to server 2003 and um visual studio 2005 we are going to get a lot of memory and other pain points is going to happen all at once so um to brace myself for that as much as you can brace for anything like that um we are dealing with it now and actually before we even dig into this uh you know what i just noticed is that this is working as is i didn't need to make other fixes and look all the work we did in fixing this dialog box actually paid off so you know that's actually not bad um i've actually been to poland i had a pretty good time in warsaw um but i would like to go back i haven't been back in about six years i think that was the last time i went to europe it's been quite a long time so fontester actually has this correct what are they doing in their paint because we had this problem i mean they do a begin paint they do an end paint so why was this dialog box painted and the other one was not we mod we actually had the resource files uh edit code if we look here at the dialog box um especially the original dialog box or not the dialog box the window because that would be what i'm curious why we didn't have to do the paint thing here because i mean that's just working and it sort of shouldn't be if we understand these things correctly what gives because this does a begin paint this doesn't end paint we didn't have to fill in the background the the magic feels kind of strong on this one i'm not going to lie unless they do something in the way the dialog box is created and or generated but you know consistency why why is that a thing that we ever need to worry about like this is overlap window use defaults all this is basically the same there's probably something that's redrawing the window and i'm just not seeing it looking at it i could be wrong i'm not sure why but i guess i'm wrong i don't know the magic the magic is really really deep um anyway this is the one thing we have to fix is this window procedure and then i'm willing to call this one good so if we go back to here if i just add a forward declaration does this make it go away like because right now it's it's having complaints because there's no for declaration so if i do font test window proc like that and the compiler error goes away and that's correct and that's correct this is fine this is fine where do i have an extra in before the l result let me let's see we see that no i don't think i have an extra input for the l result this is k nr notation i don't really feel like changing it unless the compiler stops working with it so thank you all for the super chats thank you uh donald duck's revenge you keep being let me see if i can do i can't do a good um donald duck voice it's like i i can't even think of what donald duck sounds like in my head and also i don't want to take down from disney so you know i really don't do a good donald duck i can do an okay goofy and i do an amazing cave johnson cave johnson here today at aperture laboratories you are going to help test the new 32-bit programming initiative so god i i just imagined steve bombers developers developers developers but it's cave johnson like and it's like test subjects test subjects test subjects test subjects and you tell me that i am wrong um polish is possible in nt4 but only in the polish versions of nt4 um or no sorry more specifically nt supports unicode throughout but um the fact of the matter is until vista and i actually want to say realistically seven you only could really use the languages that were installed there were ways to get polish text to render correctly on this version but you know oh and we have more super chats thank you uh marlin for the five uh polishes audi uh i hope i said that correctly the count 25 for the seven dollars canadian or you know well at the rate things are going that's gonna be worth more than us dollars at this rate for and thank you for the super um for uh enjoying the stream uh i don't know my brain my brain is starting to turn into putty i i didn't have enough sleep when i started the stream and it's been going down real fast and suddenly i had this question is i now i feel like i need to go dig up visual source safe for unix i actually have been considering doing a stream of trying to reverse engineer that copy protection it's just so something something something things that you really shouldn't do to yourself something something something uh okay so trying to build shapes which is the next application on our list fails catastrophically it actually gets that's quite a few failures so first the definitions file as we've seen before gets thrown to hell um oh wow that's actually a lot of missing symbols uh let's try that again thou should exist hold on what is this linking to let's take a look at what this might be something's missing in the linker uh i need to go is it set yeah it's in settings what are you linking to because you should have a move to symbol it's like some of these i actually am starting to wonder if set window org i wonder if before i'm actually just missing a definition let me see here so set window org what library you're in gdi are we not linking to gdi or did they just get rid of the original one no we are linking the gdi so why are you did they get rid of the 32-bit one i mean they might have microsoft deleted some parts of the win328 the win16 api not a lot but enough to be annoying and i have the distinct feeling that's what just happened like if i just compiled this file in and of itself let me just do it let me do a clean and then just do a build file does it complain yeah see symbol is undefined which tells me i'm going to have to make quite a few more code changes to this one okay this is fine this is fine let me so we're going to need the programming api because i need to see what the new functions are i have to find the new functions and then i have to compare them so let's pin you to the top so most of the time it's let me see if it might just be moved to ex yeah that's what it is i just need to figure out what the new parameter is so um yeah so i just need to add so the difference is that this needs to be moved to ex and we have to add an extra null like that i'm guessing line two is the same story here like this is one of those things that they could fix with a preprocessor definition and they probably did now they think about hold on before i do this if i add windows x which is the bloated includes does that go away no it does not yeah i'm just gonna have to fix this aren't i i mean this is why a lot of the older projects i have done have these weird this like explains something like i've dealt with code bases that were starred on 16-bit windows and i've seen these type of shim functions and now i know why they exist because developers suck no windows a uh windows x h oh we are start we are having we are getting a super chat stream going here so to michael um you're welcome i would love uh i definitely um i've been to germany plenty of times i really enjoy berlin although the worst part of the experience is tegel airport may it please sink into the lake um and if you were a fan of mixer i had the first working version of ftl was developed in a apartment it was an airbnb in germany so that's my berlin story and h uh michael crot uh yes definitely going to need more coffee i i just need to get the iv in the arm you know direct caffeine injection skip the stomach skip the throat just straight you know this is fine [Laughter] okay let me see here see what's interesting here is that line two exists here in the programming documentation but it doesn't seem to actually well i guess move to exists see here does line two actually an undefined no it's just move two that's complaining so okay we can work with that move two uh move to ex and then this needs to be a null so the next one is we need to do set viewport uh so the difference these is yeah these are just literally i have to set viewport ex i literally just have to add another parameter that is null because we don't care about the return value like this is something that they could have literally fixed with a pre-processor macro and they didn't like why why why wouldn't you just like even if it was in an optional file why wouldn't you just do that to make the transition to 32-bit easier because you know there's a lot of people that ship 16-bit stuff well past its best by date because it was a pain in the butt to compile and these are simple programs for something that's actually much more complicated um i can imagine that it was a lot bigger pain in the butt all right so this we can just null comment down entirely like that uh let's hear this even ron it runs but wow that's that's just kind of broken i'm not gonna lie that is just kind of broken okay so we we've got some bug we've got some debug work to do but we have it compiled as a 32-bit application it it compiles ship it compiles ship it all right let's fix the compiler warnings before we get into it because because yes all right so some of these we've dealt with before some of these we haven't uh this is just going to need a forward declaration and i need to fix the typing uh let's see our win api um see your pram i don't love this knr syntax but i really don't want to change it if i don't have to so all right uh bull win api i actually think it's actually you know this is supposed to be l result and i should do that properly like i should i should not be teaching young impressionable minds bad programming practice just because it compiles and doesn't make a warning doesn't mean it's correct oh trust me i i know far too much about that so if i do yeah that that compiler warning went away so let's see here 186. uh where's okay you just need to be changed to an h instance and you need to be win api and uh okay we're down to one last warning and uh we've seen this one before uh doc okay wait what the only thing i fixed was the types you are seeing this right you are seeing this that i just fixed the typing and the program now starts working i mean which makes me think we didn't fix hello properly well remember i told you that part about memory corruption bugs yeah i think magic just occurred magic magic the magic the magic was gathered i need to boost the background music a bit i just realized it's been so low i don't think you guys are even hearing the bmj i that means we need to go back to hello see i i thought i was right about that that you did not need to fill the rectangle if we go back here and rebuild it and because we fixed the typing errors look the dialog box is in fact working correctly so i uh it's magic this is why there was a lot of money to be made in porting software to 32-bit versions the last stop on the porting journey is windows 10 11. we this is the migration to 32-bit the next stop on this train um well the the train stops at the server 2000 free station but as they say in final fantasy 7 there's no getting off this train i don't really want to try and figure out what fixed it like th this is going into ugga booga debug territory i i i i kid you not this has literally gone into a good book of debug i will make the source files of all the versions available with the binaries for people that want to subject themselves to this madness fury shadow nobody asks for anything i do it just exists and the world becomes a stranger place for it [Music] [Music] i mean if we really the chat i mean i have titanium hardware we could take a 16-bit application and make it run on titanium so the live will be available for a restream uh will be available there the vod will be available after the um stream ends although youtube can take some time to publish it the problem is here's the problem is if we plug in my titanium server it might end the stream because it's got a 50 50 chance of blowing out the breaker box i'm not even being facetious that thing has a 450 watt power supply so here's what we will do is i will i'm likely going to do an end commander in real time on for this project which is for those who are new to the channel means that i just take one of my live streams and i turn it into a regular video and when i do that i will likely boot up fail server and yes that is what i call my titanium box fail server and we will actually make it compile um the thing is that if i really really wanted to go where where no hello world application has gone before we could actually install windows nt for mips in queue um pierce paper the fact of the matter is i live in new jersey and consolidated edison has a real grudge against my state and the wiring in it i also live near to newark which means that the toxic waste dump interferes with the electrons so we could take this the fact of the matter is when i we're we're going to have to backtrack because i'm actually going to have to go install windows nt for mips see here um i'm not i'm i'm just running windows nt in the vm i uh this is just virtualbox um so i know p you know what where's anonymous freak when i need him because there are people in this world that have power pc and alpha hardware and they're in my discord um i had a suggestion last night to rename this encore to end commander's ascent asylum and to put it bluntly it's not the worst suggestion i've ever had this is fine this is me i'm recovering my calm i'm finding my center uh and or my indigestion um yeah well the thing is the fact of the matter is what i've discovered is that the more i suffer the more super chat revenue comes in that that that's really what it boils down to and while we're on that note if you like this content please like and subscribe if you really like this content consider your fault be supporting me on patreon and as soon as i actually find my patreon i'll post a link to it um so the answer to that is i do want to get alpha hardware um i actually have a friend who just got an alpha server the problem is that i live on a third floor walk up and the an alpha server is not a very light piece of equipment so it has become a logistical problem of how do you bring up 150 pounds of awesomeness up a stairwell that wants to kill you so yes um [Music] no there is a direct correlation of how much i've suffered onto a project and how much it goes viral there there says something that i have i i found the venn diagram between intel titanium platform and um space cadet pinball and that video is sitting at 600 000 views that venn diagram should not exist that should be two separate circles honestly i actually have an rs6000 um that i want to get going for the stream i had it working if you saw it on the vfc and then it died it uh b fighter it's completely doable with two people the thing is i need to get two people here we have to move it from the storage unit it's it's just a matter of logistics it's not just um it's it's not just a matter of um like go get it i just have to get you know i have to get my friends here i have to get the car here we have to move it so it's entirely doable and the fact that someone actually went through the trouble of getting mips uh rust going on mips and t4 does that mean that clang now has or sorry llvm now knows what to do with nt4 no i don't want to do with going backwards because that's that's just bad okay yeah i i have an amiga there's a reason it hasn't shown up on the channel and you're very close to why it hasn't shown up on the channel although mine hasn't blown up yet so let's go back to pouring you know what hold on before we continue i actually think i need to take two tylenol because i just had a migraine aura set in so if i don't take this now i will have to shut down the stream so give me a moment okay all right headache pills have been taken literally took headache pills i don't think it's because of what i'm doing i i just get migraines from time to time and as of late it's been pretty bad uh for those who follow along my community post know that i have chronic health issues and while that's not one of the real bad ones it's just another thing for the pile this is going to suck isn't it i'm looking at this template application and i'm just thinking wow this is just going to suck this is really gonna suck no not the migraine the porting uh migraines suck too but okay how many not as many build failures as i thought wow that's a lot of warnings that's a lot of warnings um what is wrong with this switch statement chat switch statement expression is not integral i i don't i'm afraid i'm actually i don't i i if i look if i look too deeply into this it might actually start looking back okay switch function is not uh sp page down sbph up those sound like well would you hold on which one is it actually complaining about uh this get oh for love god please something that doesn't we're going to come back to that one because that one i think i'm going to just going to that is not how you do a menu that isn't even how you do a menu on windows 1.0 all right we're going to come back to this because i only can take so much before my soul starts leaking out of my body okay so this needs a set timer so we need to figure out what the set timer callback looks like uh set timer msdn callback it's probably just missing a pointer function but uh let's let's figure out what this looks like yeah so this needs to be a timer proc timer proc and then we need to fix that function to match the correct prototype um timer proc so it's basically what we've been doing up to this point i just need to we just got to do more of the same uh because yeah this this is not how you do a time procedure time proc uh wow that this is a lot of really complicated code see here i i still have to find the function i have to fix it with and somehow i've got more some when i started uh right because that's timerprock okay so that one this one needs to be dialogue proc god it it this this is like this is miserable this is kind of what i was expecting this whole thing to be um tom i i have taught tried to reach out to dave plummer on multiple occasions and i have gotten no response i'd reached out to him on youtube i've reached out to him on twitter he as far as i can tell he just does not want to talk to me uh so you know it is what it is what it is um no we're going to suffer through this it's going to be some serious suffering but we're going to do this uh okay so we're down to eight hours make point is not defined where is make point like that doesn't even look right so l parameter okay let me figure let's let's one before we do anything else let's fix these parameters l parameter uh l result callback so [Music] template move is part of this function um l parameter x how does that work i feel like that you can just see it let me just google what this is in the current version see here okay so the function name is now get x l param get y l pram and did that actually not complain no that did complain what file is that in do i i probably just need a header file for it [Music] windows x is the file i need to include include windows x dot h okay [Music] yep okay so that actually stopped complaining it looks like so now we just gotta do the same thing well here well almost bit by bit guys this literally takes me back to my days of working uh doing the arm port for canonical it was literally fixing a whole bunch of stuff like this bit by bit um what is this template mouse function actually trying to do let me see if i can find it because i don't actually see what it's doing it's gotta be in one of these files uh message wow this is just plain messy it's a it's an overloaded function like why would you why would you do this uh i don't even think it there's a version that takes a point like what's the point of this let's see here [Music] i will catch up with chat here in a brief moment so this version deals with mouse move which it sends as an l parameter [Music] so that has to be oh man there's a lot of code here okay so this has got to be the version it's using and then this gets passed in as a point so i think this just needs to become make points is that all it has to be let me just check the i got msdn in another uh see i guess it's a make i guess make points works that feels like an arbitrary change let me catch up with the chat here in a moment no apparently that does not work but you know i think we can just pass zero for this one because that argument's not actually used all right catch it catching up with the chat um all versions of amiga as long as they have an mmu should be able to run linux um let's see here um i mean as far as i know i believe even the 500 could run linux you just had to throw more fast ram in it but i am not an amiga expert by any stretch of the imagination i i know what an amiga is and that's about it um i mean i i know more than that but yeah it's let's just say i i did not drink the commodore kool-aid to put it fairly bluntly um we gotta figure out how we fix this function uh can i just return it in here and cheat this is not the way you're supposed to fix this apparently you can do that you you shouldn't but you can okay um let me just here can i just put point zero zero see here hold on point see i'm not even sure what version of the function it's trying to use which is really irritating all right let me let me fix let me while i'm here let me fix this to h instance like and i'm pretty sure i'm gonna have a lot of debug fun with this one like show async message i'm gonna have a lot a sync message ex i have this distinct feeling that this has a lot of functions that no longer exist in modern versions of windows all right so make point is undeclared yeah see i can't even figure out what version it's trying to use see here uh anyway so i uh the fact is i found working 64-bit pinball for both titanium and x86 the i have a video on this i'm not going to sum it up on this stream aside from the fact that the post saying that was removed due to 64-bit incompatibilities is flat out wrong and that that's all i'm going to say on the subject because otherwise it's going to get a very long and complicated message i am i am starting to think i'm going to put this file aside and this project aside but i want at least see if i can get to compile and the thing is it doesn't even tell me what the incompatible types are because you know this is far more yeah okay fine cannot open file because of course you can't open file that that would be far too easy like i'm tempted to comment this out so yeah so you know you need to be uh you need to be you parameter and you don't even use that function like because this is a no op you don't actually do anything with this so if i just delete this function like if that just goes away um and then you start running into a problem with the res file so i mean a lot of these just look like broken functions i'm trying to do the one the drawing app that was included um it looks like i have a cache file that got copied along which i need to delete so let's go to template and yeah these this res file needs to go away okay let's try that duplicate control and then it dies because it can't find i i'm having some brain trouble with this one because now i can't find the c library the the c library is right there this is fine there's nothing wrong you're not broken this is fine this is all everything is fine everything is good why is your definitions that broken i i how do you break it that badly i i it probably just can't find win main but why can't you find one main uh let's see here win main win meme where are you here we go so win meme win meme that's fine see here can't find symbol win crt startup that tells me it can't find the c library oh is it it's excluding default libs did i overlook that no it's including default libraries but you never want to directly link to msc vrt you're not supposed to do it the msc msvcrt is the system c link library it's not what applications are supposed to use i know m system and uh min and gcc do it they're not supposed to it causes problems it's one of the biggest reasons why i don't recommend that people use um because if it was ignore default libraries let me see here what's the 132 release it's let's see let me just do a make clean rebuild and then it [Music] deleting intermittent files so we get compiling resources it's almost like like is it not compiling the c files hold on clean build i don't think it's building the c files like if i tell to build this that's fine that's fine that's fine okay so maybe it's just not during warnings but i should get more than just that rebuild all yeah like i feel like something something here is broken let me reload and reload the project because it's nice see this is not even showing up with the right icon which makes me think that something has gone wrong uh yeah i know in far it's fine it's it's deft out um uh local dlls do not load first on nt4 that was an xp feature that was not a thing in this era uh i'm running in boontu seer um all right i got hold on we're going to google for this because i think my brain has officially quit uh startup link error i mean this feels like something has gone wrong with a project file but i don't know what okay um go to properties i mean properties linker what is it what is it using for the settings i i feel like i feel like something is wrong here i'm just not seeing that because this project file had some weirdness that we inherited that the other ones don't which is kind of why i sort of want to make a new project file with correct insane defaults i mean maybe that's a bit too much to ask but let me let me see what the library load is on hello let me just see what this did see but you know you look here and these get the icons which makes me feel like something has gone wrong like if we go to link here and we look at the list of libraries it doesn't explicitly include the c runtime library it's definitely not there it might be filling because the rc file i let me see if i can fix that error and then we'll we'll deal with that so build template.yeah all right you know you're just we're just going to delete all those files by hand build yeah i think this project i think the project did not import correctly so let's let's fix this let's make a new project let's make a win32 application template okay template two um and then we're going to do a typical hello world actually that'll bring in nfc so we just want to do that that's fine that's fine so we do that and then we want to re-add uh let's hear we want to re-add these like that and then we want to compile and we just get something completely broken what is going on here i don't understand it because now it's not even trying to build the project files because i get zero warning zero errors set as active seer build clean yeah let me just restart you know that's a good point let me just restart visual studio maybe it just went completely nuts it wouldn't be the first time ah no that doesn't help all right fine let's do let's export a make file let's see what it's trying to do when in doubt let's let's take a look and see why visual studio has gone completely and totally bananas on us so [Music] open with wordpad okay it doesn't even look like it's trying to build which i don't understand let me oh hold on it's possible that the clean target is broken let me just trash those yeah it's not it doesn't even seem like you're trying to build let me let's jump let's jump to a command line and sorry i just jostled the camera uh program files vc86 bin vc vcvars32 okay i've got a compiler see um i mean even end make isn't seeing it what has gone wrong here i mean we restarted the we restarted the api what has something has gone very wrong here all right let me let's let's close the workplace let's open the previous one just just because i want to test yeah okay so that that's working fine that actually builds that yeah like it stops seeing the source files as source files which makes me wonder if i move let me first move you to being an actual resource file and if i open you as a resource file like if i if i right click and hit compile it does things and then suddenly suddenly it just started working what [Music] i i feel like my brain is having problems with this okay let's let's do what we can let's figure out where these are so h1n templates these are defined as external defines but they're not i don't think [Music] all right let's let's see what's going on here because i it sounds like it feels like we still have problems you see it didn't even build that object file yeah okay so apparently right clicking on it and compiling it um by hand is the way you make this work that the magic is freaking real the uh the magic is entirely freaking real okay function incompatible types i'm just going to comment that out and now trying to rebuild it just causes things to stop working because it is did the clock just go completely [Music] nuts i think the clock just broke like if i do a clean and then i do an f7 it actually does try to build sort of uh okay so hold on let let's fix this duplicate id uh i think that's what you have to do 260. where are you getting 260 from i something deep in deeply magical has happened and i don't understand it let me let's go into the project directory and get rid of everything we don't need because obviously something has gone wrong and i'm not sure what all this just goes away and then we reopen the workspace okay so now we get this and then it tells me i have a duplicate id but the duplicate id does not act oh hold on let me add template.h here we go so probably something here is duplicated [Music] i don't know why it's not work i like how it says these seven string ids must be consecutive like i feel like the magic is getting freaking recursive here all right let me see if i can find a duplicate id somewhere because right now i'm not seeing any but it doesn't mean that there aren't any like this is a non-trivial application it actually does quite a lot so it's not entirely surprising that it is gone completely and totally and then it just broke it's not entirely surprising that this is having issues so your white frame black frame hey okay okay hold on this is actually starting to make sense here no it's not i thought it was and then it wasn't the id control in the rc file finally let's let's just do this and then it still complains that it's a duplicate i d what okay so now we do a clean build and then it just goes completely i i just had an idea what might be happening i just i i just had a brain wave of what may be happening it might be pre-compiled headers being stupid because they were notoriously broken in this version disable minimum rebuild not using pre-compiled headers does the problem go away problem does not go away here clean rebuild the entire project and but if i bet if i right click it starts working [Music] the magic is driving me a little bit bonkers on this one okay 260 in hex is 104 so i am keeping an eye on chat even if i'm not really commenting on it at the moment uh that's the only case that i'm seeing is this idd null let me just i have my doubts about this but let's try it let's see if that at least makes that error go away well it changed the error that that wasn't can i open you as a regular yeah see it won't even let me open that let's see here uh idd null is used twice oh okay yeah i see it let me that's fine this is fine i'm okay okay we still have a duplicate id but [Music] at least there's only one duplicate id okay so if i i'm assuming i can't do that yeah okay so we'll make that null free and this is why you should never generate these files by hand oh okay okay so the resource file successfully compiled and that seems to have fixed the rest of the project can i actually open you now like as an actual resource file like if i clean the project now will it actually try and build the whole thing yes it will sort of try to build the whole thing it's failing miserably but it is trying like now if i compile this and i compiled this i'm like can i please have template i i okay this is fine so get instance data i i the sorcery is really deep on this one and i'm like i'm just gonna roll with it okay unresolved symbol move to we've we've encountered this one before ex like that uh oh i got i'm gonna have to fix a bunch of these technically there should be null and i should do this correctly okay we're making headway again we we got sidetracked i'm not i'm not gonna lie we got sidetracked but we're we're getting there uh okay move to uh okay q undefined local variable okay so that did that actually successfully link like did that actually link or is it oh no we actually got binary out of it and it works that should not work given the amount of trouble we had yeah that that's sort of working the timer is not firing correctly [Music] yeah okay so that act okay hold on and is it it's not acing timer has gone off i don't know what i did why is that working what what what what did we just witness did did it just collapse did the fail rate get so high it just collapsed into a black hole and succeeded i i mean chat what did i just witness i have it on film we saw that i'm just i'm going to use the restroom and then we're going back to this because i i'm having problems with this okay chat what happened what happened i mean obviously fixing the rc file fixed the build but the fact that the rc file the sorcery is real i i i feel like you know i feel like we did in fact just see a miracle we saw the miracle of code compilation it's like the miracle of birth but reproducible oh god that's i don't know i i just i i'm having problems with that we have two left we we have two left we have two left all right let's go to track that's fine this is fine there's nothing wrong with this particular picture actually well yeah i know that okay we've all seen these hours before these are there's nothing new here so let's just fix these and move on with our lives i i still don't know what we saw i don't know what we witnessed i i just i feel highly confused and highly confused okay all right so uh let's this needs to be changed to a null uh this function doesn't exist and we don't need it so this gets commented out uh make point so your track track mouse function uh you actually want a point i think you just need to make become make points i need to change the header include windows xh and that actually successfully linked it shouldn't have but it did okay uh definitely broken really broken but it does link but we we we've seen that before this is fine [Music] this this is fine all right we just have to fix we just gotta fix these stuff this is i i mean this is literally watching what years of windows development passed down the ages i mean there's probably been applications that started life on windows 1.0 i mean in design not indesign uh was it quarkxpress had a windows 1.0 version now that has been passed down the uh armstrong line for generations okay benign read that's a new warning i don't think i've ever seen that one benign redefinition of type this is fine this is fine okay uh l results win api uh uint you pram l pram hey look uh it's not quite working the way it's supposed to because it's not working the way it's supposed to i can't do anything but that but it's drawing the shapes there's probably a pointer problem somewhere let's see here uh yeah and it's probably right here where the problem is let's see here track mouse you want to point uh let's see here make point l pram let me figure out what the easiest way to do this is um just looking at this a different callback this is almost certainly where the problem is here in track mouse um let's see here let's just see what track mouse is doing like we know where the problem is at least uh track mouse set capture old probably is literally just a problem with the make point i mean that's that's like if we run it we can move freely like this but we can't move up and down so the y coordinate is just not happy so track mouse we go back here what we just do is we'll just define a point point the point and then what we'll do just just to test this if we do this the point i just want to see if this is actually the problem yeah okay that that's definitely the problem so the point equals uh make get x l param l param that's the x and then we grab the y hey look that actually fixed it i i'm a real software developer my god i i just rough wigging myself i just rap wigging myself i'm in danger microsoft's official version control is was visual source safe at this time and um the answer to visual source safe the way you use it is you don't the what amazes me is that valve successfully used visual source safe for height for half-life and in fact the source engine is named after the after visual source safe uh i'm learning our computer lab has a real computer in it with a coleco atom oh do you know what the worst part is is that this is freaking paradise compared to what you had to do in apple land like if you thought this was bad i should at some point do macintosh toolbox programming but i don't know if i actually hate myself enough to do it and the thing is i actually have a copy of visual source safe for unix like i dug up that particular gremlin no the classic macintosh doesn't have memories it has memory corruption issues that is my story i'm sticking with that okay we we just have what template track we have one left and it's a simple application so obviously this means this will be the hardest one i i just i don't know what we experienced but it was bad inconsistent dell oh boy this is fine this is okay l result callback let's let's fix this uh hey look we have actual pointer issues um conversion from long to short so this tells me we need to we have a structure we have a structure in need of changing um let's hear i guess it's char whiff scotty ah here we go so you need to be a long okay so far so good the warnings are going down we have an undeclared function get text exact text exempt so as usual if you enjoyed this content do please like and subscribe if you like watching end commander lose his sanity you are in the right place so this function doesn't even exist anymore hold on i i need to point this out let me pull let me go full screen so i'm looking at microsoft's development documentation this function is only provided for compatibility with the 16-bit versions of windows so this function does not exist but it doesn't tell me what it's used for one two three see it's even a different number of arguments so this this function no we are not going down mdi and mfc no there are there are there are uh there is a there are the that's a hell that i don't even want to think about uh tom roomberg we are talking about legacy classic macintosh you know back in those days you had an adb mouse and usb was a freaking luxury right so this function doesn't even exist what is it actually used for did they literally implement a oh i just realized what they did and i hate it they literally implemented a text widget uh basically the text dialog box type as code probably is an example i mean there's probably a reason for it is l old actually used anywhere l old is in fact used somewhere but this function doesn't exist which means it's part of the original i'm going to have to pull up okay hold on you know it's bad because i'm going to have to pull out the 16-bit version of windows because we need to look i i need to know what this function does so i know what to replace it with all right uh and this is why you keep sorry i keep kicking the camera i apologize uh all right fortunately i have msdn documentation for the old versions of windows so let let's get uh let's hear we need i am really really hoping this function exists in the documentation because if it doesn't i might like go mad get text oh it does exist so what does it do computes the height uh height and width of a line of text using the current font to compute the dimensions why do i feel like this function doesn't exist in the current version well it's it's here it says 2.0 which makes me think that this function's depreciated even in windows 3.0 like i think you're supposed to use this one get tab text yeah okay so it looks like i'm supposed to use get tab text inset um accents so let's let's see if this function actually exists so if i do get tabbed text ex ants and then i need to add zero and null to the parameters list does it actually it does actually accept that that function actually does exist so then or get text yeah that function actually exists so we're going to try it because hey i got nothing better to do and then we're now down to one missing get instance data and that goes away and that actually compiled it works sort of it actually is having some problems that i noticed in the earlier version but it is working the it's having problems with true type fonts i think i forgot to fix that beforehand but um it works yeah i'm actually i'm going to call that working let me see here's the about dialogue work the dialogue works um can i change the font i probably would just need to change the font to a i would probably just have to change the font to a monospaced font because i'm looking at the code and it does it assumes that every character has a fixed width and just calculates one i don't know if i care enough to fix this because this would require actual effort but we did successfully port four of the five hello world programs the only one we didn't successfully port is card file because card file has handwritten assembly and i could fix this i mean i i know i could do it if push came to shove but i'd have to install an assembler to do it realistically what i'd actually have to do is i'd have to rewrite it not to use c i mean that that's really what it would boil down to how much assembly is realistically how much assembly is this how much is like what are you actually doing with this you're actually only implementing five functions to manipulate ms-dos stuff well that one isn't uh why do they implement their own stir cat that's disturbing meister comp what's it doing in this one i could conceivably replace this with c functions chad do you want hold on let's hear chat i want you to know do you want me to try and see if i can get carb file to uh work i'd have to replace the file load save options and i don't know the assembly sub functions are actually used so it's not as bad as i thought it would be at first glance but i do want to go back to windows 3.1 um yeah okay i guess we're going to do this why i don't why am i surprised people like watching me suffer uh you all right let's do let's let's get this let's see if we can get rid of that c code and then we will we will keep going like the freaking energizer bunny all right so let's do it let's do it you got you guys have made your point the uh i i'm hoping i have a bunch of new patreons when all said and done because the suffering the the it makes the suffering worthwhile so all right let's add all i'm just being tongue-in-cheek about that um let's see here add add so let's just try and build the project as is let's just see what happens build card file and it dies because it's in the wrong format we we knew that was going to be a problem um okay so we need to open the rc file uh and then you get lost wow that has a lot of warnings like that that did you that's a lot of warnings like now i'm wondering how broken this actually might be in practice uh all right let me define we need to add a new file we need a new file we're gonna save this as asm replace dot c and then what we need to do is we need to edit that and add it to the project okay cool close that and now i need to i'm going to have i'm going to open this up in an hour window so i can just see what i'm doing we need to figure out the functions we need to define to make it work so we have here yeah there's probably defines for this somewhere let me see if there's a header file that we can look at uh card file here we go that looks like it's just the resource file but okay check the other one declare let's see here so okay so here's the functions i need to declare and honestly i could probably leave 90 of these as a no op uh let's see here so void f so hold on include windows dot h void f rename uh this should support okay this syntax it actually should work let me see if this builds like i should no longer have a warning about that and it doesn't look like i do so okay all right so int uh far f delete p string uh return zero like i said we're do we're just creating the prototypes for this i'm not even i may not even implement these properly my lreed int ltpsts all right um my read okay hello i actually i have to give these some names so a b and c like why would you define these as separate functions though i mean windows provides all of these as coral functions unless this was coded very early in windows life like you know during the very early developer betas but if that's the case why would you include it as sample code like this this doesn't make a lot of sense to me well it's getting there i'm not i'm not gonna lie it is actually getting there so hold on we actually just need to include card file.h i bet okay redefinition different basic types every name is is it not like that this is a void function no okay it's just warning about that redefinition basic types oh unless unless you want i don't see why you would need to be a pointer but you maybe need to be a pointer no what am i missing oh hold on is it doing this yeah it's doing that isn't it some no okay why is it doing that [Music] why are my basic types wrong what redefinition basic types redefinition basic types um [Music] returns it you're right it returns in it returns it not void that's here no i i no return value okay yeah you're i guess you're right it is i thought was void without a return type but i mean i think it's less complaining less yeah no warnings okay i get all right ah if that's if that's what's going to take that's what it's going to take all right let's my read uh int a l ptsr and see no wait i already defined that one uh where am i in this list my right ant a uh pointer string in c return zero uh in far might open and be i mean the number of linker errors is going down i mean progress so okay let's keep going i mean for the most part i'm pretty sure i'm just gonna be able to define this with the c functions and it's going to work maybe wait for my clothes inch okay long far my lc a long b and c return zero and you have to be actually int a at least i don't have to use k r syntax for this because that would really just make me kind of not a happy camper return zero okay sorry if i'm not talking it's it's a lot easier for me just to quickly type this out um lp string far my lcat so what i'm doing right now is i'm implementing stubs for all the functions so i can clear the linker error so we can see what else doesn't work in far miles we can't okay that's actually surprising we actually got a whole lot more there than i was expecting um so there are those functions are actually used that's annoying okay that's fine this is fine i still don't know why they would go for the trouble defining like why would you do it like this like in what sane and loving world is this like i can understand for performance reasons why you would write code in assembly but why would you do the file access and assembly unless it's some sort of constrained reason okay that actually match to build symbol multiply defined and what what what warning stack size and link return to um i use pcm well h michael cro uh the thing with pcm is it's accurate at cpu accurate speeds and i would normally be using it but i actually want to be able to roll back my virtual machine if it breaks because that's been a thing that i've had to deal with multiple times um [Music] all right options project compile compiler okay let me go into the linker miscellaneous map file yeah it's like this this specific project might have been built for a very early version of windows and not fixed [Music] okay so that that just broke it because i don't think there's a win name on this one hold on i think we're looking at the source code to apple an application that was essentially a prototype i think this was made for like one of the developer releases i looked at this one briefly let me see our card main do we even have a win main function in this one m i don't want to run app studio like something has gone horribly horribly wrong and i don't know what so i removed lib m ce i believe was the one i removed and go no that wasn't damn it i forgot i removed the option and now i need to put it back in but i don't remember what the option was uh frag okay we'll have to go to a different project because i just realized we didn't do an in-place upgrade so that was actually the correct setting for this version of windows um linker and then we need to go back to card file wrong thing card file uh and then linker like that okay i don't understand why i'm getting that but maybe it's hold on actually before we do that let me check the define file because maybe that's why it's having a heart attack because that's a thing you actually have to do in these versions it's a mystery all right i'm just going to define the option it tells me to define and be done with it uh switches where do i tell it use a note build options specific libraries to ignore output i can't type in i actually just can't type in a new option can i cancel wow they're making they're making this way harder than needs to be like you tell me to use this specific ah here it is noa okay does it actually link no it doesn't actually link symbol define more than once which i understand that i understand the error i understand the error far past so far means that it's a far segment uh which is a 16 bit x86 thing pascal means it's using the pascal calling convention which is faster on real mode than what's known as c declaration but it doesn't support voratic functions which is the trade-off uh it's really it's something that microsoft should not have done but in those days the performance penalty the performance increase was actually worth it because of how common function calls are so yeah i'm thinking those i think these two functions are now being redefined in card file i have to find it i i'm gonna have to go let me i gotta grab the source code you know as soon as i realized what i'm seeing i understand it so um yeah now that i'm back alive you know i just realized isn't there i want i feel like there's supposed to be more demo applications than this but i also why would i do that why would i do this more excessively uh i'm going to check that in a moment see here is temp file actually used so f error no it's not actually used anywhere else symbol defined more than once link returns error code 2. all right before before i do anything i just want to see was there more sdk applications that i forgot about while doing this sdk disk 7 oh man there was actually more applications there's one two three four five there's six other applications on disc two i i for completely forgot there was a second set of applications uh yeah let me go full screen just so i can show you guys i'm sorry i'm i'm a little spacey at the moment um yeah so the demo applications i'm looking at are from disk six of the s the windows sdk i forgot there was a disc seven and i didn't look at it we have clock which has handwritten assembly uh map modes which doesn't but that probably has graphics motion i mean it's it's not really all that different i don't think i really want to port all of these terminals just a single file like that doesn't seem right yeah but i mean that's an 85 copyright date those are really really old i'm not sure how much farther i'm going to i'm not going to do the extra applications if i do the real-time video for this i will do them off camera or i will do them as a follow-up stream um but i'm not going to do them right now fact i unless i figure out what is causing this linker error right now i might because that's not a useful linker error uh let me see here is it pulling in the same library more than once like if i take out if i tell it to ignore default like that i think that's how it was originally yeah and then i get symbol defined more than once i don't know i don't get it i don't get it and that confuses and upsets me uh let's see our stack size uh used assuming 400 attempt file the symbol find more than once oh wait wait wait wait wait wait wait maybe there's probably something here i have to do see here this is compiling for 286 custom options listing files memory models uh let me let me look at the browser information if i can i don't think i can i can't let me do a rebuild and then why don't we do a rebuild because it's not defined i looked i mean there's a lot of guard that's a lot of warnings this is the only project we've built with a lot of warnings and some of these are really concerning segment lost and conversion that's that's a seg fault waiting to happen i'm just going to read i think i'm going to throw this one back into the pile um but let me check some things beforehand oh i know what the problem is or at least i know what part of the problem is and that's a really annoying problem actually um windows the windows headers file does not have include guards it just doesn't exist in this version which means it is possible to include the header more than once and re cause symbols well it did on the early ones no okay that wasn't the problem on this one that is a problem with windows 1.0 so there's no header guards on windows.h which can really screw you over if you don't know what your if what happens why is see that looks like symbol defined more than once if but it doesn't say anything okay if i just let me just do use project defaults and then i rebuild yeah i don't know i think we're going to pass in this one there there's something more seriously wrong here that i will probably spend like uh two hours trying to debug so we're gonna put this one aside i think we may have a follow-up stream where we port the other ones and i might write these c stubs off camera i haven't decided yet but that may be a thing that we do um so we're going to come back we may come back to this we may not so this is fine failure is an option i mean it's an end commander stream of course it's an option so going back to where it all began we have one two three four five six we've got six test applications successfully ported uh wine mine we would have been able to do if we could have solved that resource problem and if i do a follow-up stream it would um it would um definitely be something we would have to yeah wow holy crap brain brain come on come back back to me card file i'd have to rewrite c stuff if we solved the resource problem we could come back and fix the icons and other stuff which wouldn't be all that bad but so far it's good so we successfully poured these six applications to 32-bit now we need to take it further we need to go to 64 bit oh why do i do this to myself why do i do this to myself so to do that let's let's go full screen well actually we're not going to go full screen just yet because we need to copy the files to the next vm um so i think we can put this one away we can save the machine state um actually dealing with ibm 31 bit stuff isn't all that hard because the top bit's always zero uh as far as user land applications care um okay so we need to mount this hard drive so we need to clean shut this down um oh holy crap it just decided to go a little bit bonkers and server 2003 knock on wood should be able to just mount the binaries directly so you just shut down um we could do an os2 stuff at one point um to do os2 would require pain and suffering in a direction i'm not quite ready to experience just yet um there are things in life that you have to work up to so i mean all things considered it it's been it hasn't been good but it hasn't been that bad so here we go wait for this to shut down shutting down shutting down shutting down because i got the vm has to be in a cold state so i can mount the drive and then what i will do is we will put it in server 2003 and actually i gotta go and shut this vm down uh actually this one should support vbox extension so you i don't actually think i need to do that um at some point this will shut down what is it stuck on does anyone else okay i actually did install the windows on arm cross compilers i have no way of testing the binaries but i did in fact uh i did in fact install them so we can compile the executable if nothing else i might even put it up as a patreon perk to see if someone is willing to go test to see if it works because i i'm not willing to set up a pie for this or more specifically i didn't have enough time to set up a pie for this because the i can't say that i'm not willing to do something because um i like pain i i don't know if i any other sentence would be you know true so what what am i going to call this win32 porting uh and then this is going to be the nt nt4 works nt4 branch see here here we go i mean i can test it on titanium it's just i like having electricity in my apartment and i have to call my super if the power goes out so you know it's this love electr of electricity is why we haven't plugged in fail server so let me mount the um disk image so we want to just mount this folder that's fine that's fine this is all fine uh oh cool that actually yay file sharing it actually works so now we just copy that over i i'm really happy i set up visual studio beforehand let me see your vm view uh there we go why is that there we go and now i'm back on top uh no we are not gonna import ftl to the commodore 64. no no no so okay so here we go again so now we need to convert all these project files to um visual studio 2005 uh yes so now we just get to convert it um to ensure optimal source control integration with microsoft visual studio check your source control provider for compatibility and update informations but i don't want to use visual source safe i don't think anyone ever wants to use visual source safe there's no such thing there their visual source safe isn't real it can't hurt you okay well that compiled on the first try it even worked on the first try and look it actually is getting the when um the uh the newer not no icon icon so let me see here can i add a new i can i can add a new architecture guys we can go 64-bit we can go 64-bit we could also try and com pilot for windows ce but no no the there there are some things that i am not willing to do that there just are some things we are not doing here um uh we will also do it for titanium um okay we have just built it for 64 bit that was so anticlimactic what what what was that that was completely did it actually no wait i don't think it actually built 64-bit uh browser information no it looks like the build died halfway through um uh i'm not installing visual source safe i don't it it there are things i value my sanity slightly more than zero i don't value it very high but i do value it okay uh what is so what is going on with you you are fine this is fine platform name is this not is this like using the wrong compiler you are probably using the wrong compiler aren't you uh debug file okay hold now you need to be x64 yeah okay this i'm remembering this i am is that it's going to get this completely wrong yeah okay i have to i have to fix these by hand because this is a bug i remember happening back in the day like th this has taken me back because this is the version of visual studio that i was using when i first became a professional programmer like i learned on uh oh right this is this is a 32-bit install of windows whoops this is fine let me let's do a full build of everything see here uh how do you do there it's the batch build uh batch build select all build okay one build failed which one failed oh something something was really unhappy uh i'm guessing i broke the 32-bit debug build yeah no i broke the 32-bit debug build i i broke it but that was the one that was working okay this is fine you know i'm actually see here this is fine everything is okay there's probably more things here that i'm forgetting about i i've honestly forgot how you badly used to break project files i i i did forget this i did i did forget this said sam i am all right let's let's try that uh build still broken what are you missing did you like lose your entire c library because that's like what's looking like what happened okay all right um yeah i think you lost your entire c library no no you did not actually lose your entire c library bueller bueller okay hold on let's backtrack release okay so that that actually built that runs that one runs and that one fails but it's not clear why it fails what are are we in oga booga build territory again like are we doing this again yes we are in fact doing this again i hate being in oga booga build territory and obviously i have to add a titanium target but why is itainium not showing up in the list i have itanium installed ah here's the problem uh yes let me shut down visual studio uh please register yourself the platform sdk and now it should know what on titanium is which you know it's probably better than what most of us suffered through in life all right let's see here if we go into configuration manager do we have an itanium we do not have a titanium we should have a titanium did i install the titanium did i actually install the titanium tools or did i imagine installing the titanium tools i think i imagined installing the itanium tools yeah no i think i i think i actually imagined doing it and i didn't actually do it but i know i know why it's not there that's that's an easy enough fix um unless that's the wrong cd because getting the itinium compiler to work is like you have to sacrifice a couple goats uh add remove what did i forget or was it i mean that's all the sdks let's see a core no we have intel 64-bit which is itanium did it not integrate with visual studio on this version that may have been the problem i vaguely remember that you had to do something really stupid to get titanium to actually show up and i don't know why i'm surprised by this because titanium was the unloved step child of the win32 environment let's hear what program do you run to do this registration uh vc integrate i mean if we're going to do a titanium compile i mean we're going to do it or maybe see here 2000 build environment server 2000 free build environment retail and we get a titanium tool chain maybe i should just read the documentation like why am i doing this the hard way and then 64-bit like i i feel like i'm spending too much time on trying to make titanium be a thing but i also want to go full meme here so okay yeah you know why am i not just google searching this i i should just google search it and it's here visual studio 2005 titanium oh okay so apparently it's been removed [Music] i have the wrong version of visual c plus plus you can do it with the platform stk in and of itself but wow that this is kind of just like a screw you that is like just a giant screw you from microsoft but fine you know what we we're going to do it the way i used to do it i must have i must have had a better version of it back in the day do i have ms build i don't have ms build can i export a make file that's what i'm gonna have to do trying to remember how you actually there is a way to do this let's see here not tool build order uh macros external tools command prompt the office gator like that that's just like uh you know to put it on you know it's already hard enough to develop for titanium and they do that it's like wow how to be a total dick i'm guessing there's no export to make five in this version because i'm not seeing it yeah shaving the bits of a broken bottle that that's probably the single most accurate way you can describe this known to man like because i don't have an ms build command i remember what i have n make but that doesn't actually help me because i need to be able to export the solution like back can i do project only export no i can't that's a giant screw you from microsoft developers developers developers developers okay well we're not gonna like this is professional right yeah this is professional fine i will i will take my business elsewhere i will run linux in my titanium box i still can't believe that's that that is what happened there all right um let's go through the other ones because at this point we should be able to rapid fire these uh that's fine that's fine let's add the 64-bit target we're going to have to check this on a different machine because you know um i don't actually if i do that what happens like does that actually work or is that just break horribly i'm guessing that just breaks horribly but we'll try it uh it didn't actually break horribly which is surprising i'm skeptical does it actually work it it does actually work and all the ui changes we made are here okay so we've successfully migrated from we we've we've literally migrated from 16-bit all the way to 32-bit or 16-bit to 64-bit holy cow my brain if my brain was a noise it would be a busy signal i i think that's the way we we described this okay we successfully built all those targets and we'll save that project file let's see if any we can't unfortunately test the 64-bit binaries but we have to convert the project files on this because i don't believe on modern visual studio can open the old legacy file format so let's add x64 uh empty create new platform that's fine that's fine and then let's batch build it let's just let's just rapid fire this all builds successful does it actually work it does actually work okay so far so good uh on to the next so we've done font test hello let's do template this is the one that was like oh my god please murder us with a um i'm actually surprised we have not had more trouble because this is knrc like it's not even popping a warning and it really should like if your code base is old enough to vote and you're not getting war or sorry old enough to drink and then some i mean it's old enough to have served in the military and get an honorable discharge hey look this one actually failed look lookie we we actually found a pointer error uh no this is a 32-bit install of server 2003 i i did not install a 64-bit version i probably meant to and totally forgot so okay um let me so i i just so we finally we finally got the build error that we were looking for um which i'm okay with it it does prove the compiler is doing something uh let's see here so it's fine so build is still failed oh is it did the build did the build file break again like are we are we doing this again like i don't want to do this again build solution yeah no it's doing this again this was the one that was broken beforehand and it's apparently the brokenness has transcended yeah it's doing this it's doing this again like if i build it by scratch like this and then i'd build the solution like what when something went wrong clean solution build or is it just not building in a file i mean that's a lot of that's a lot of breakage all right clean solution let me see here will the 32-bit versions build successfully build template builds rebuild solution that one's fine rebuild solution that one breaks horribly i don't why is this still possessed why is this still possessed didn't we d possessed this didn't we get the holy water out and you know this is fine this is the sort of thing i live for i enjoy these sorts of problems and otherwise i tell i tell the people of my life okay all right so let's make this a bit bigger um i mean that symbol exists but it exists in the resource file i think oh you know i just realized i have a search and files function in this version of visual studio uh lp proc template about dialogue so that exists and that exists but i don't think these are supposed to be external defines i think i think they actually have to be defined somewhere and for some reason it's like did the definition of extern change because that like that that can't possibly work that totally is actually working that is totally actually working and it shouldn't but it is and i hate it and i hate it because hold on rebuild solution 27 errors unresolved symbol in do i have to define you as an ex i mean it's here it exists why is it what is going on here i do not please do not bring up leaked source code in my chat i will start um the the facts of the matter is i'm there are major legal problems with that and if you start talking about it i will start swinging the ban hammer this is the warning for the chat so um i've already made my position on that clear i i do not like to repeat myself so okay i have this instinct feeling that it's completely um and totally broken we're going to come back to this one let's let's deal with the soul breaking issues different way let's let's do track because i'm actually expecting this one to have problems um let's add the new configuration we're going to come back to that one in a little bit new empty x86 create platform projects and then let's just do a batch build are we going to get lucky and it's going to build on everything two succeeded two failed so that probably means that there's a 64-bit incompatibility and uh yeah there is actually this is fine uh okay so i just need to find this and fix it see this is why i went for all the trouble of fixing these sorts of things earlier in the project because this is where it would burn us if i hadn't done that in advance so uint el param uh wpram let's see her did that improve things or no and then uh it main redefined how did i screwed that no that's correct h instance h instance int callback oh it's an in on l result that that's the problem okay that's fine this is fine batch build rebuild all okay that's another one for the working pile yep that actually works okay so that's four down two to go and then we deal with this one that has lots of problems because we know it has lots of problems uh empty add i am definitely running on fumes right now i'm feeling it so i'm sorry if i'm getting a little bit a little bit crazy wow all four builds failed all four builds felt like that daddy that even get past the word go entry point must be defined how do you make it where's my source code um there's supposed to be some source code in my source code like yeah no there's supposed to be source code in that file i'd like to know where it is please where's my source code i think something might be wrong i i i think i think i saw a putty cat uh i'm just checking it yeah what what happened to my source code my source code went away my source code went uh that is not what i wanted to do that is still not what i wanted to do there we go [Music] okay so there's my source code if i take this source code where where did it get corrupted yeah no that just got completely broken didn't it that yeah that it did [Music] i okay um i'm just gonna blame that one on cosmic rays because i don't know how else to explain that particular failure [Music] hold on refresh close and open i it doesn't make sense okay fine remove file remove add existing item source code but now the header file is missing but what what did like a cosmic ray just come and no the header file is there what i i no the header file is there how can you not find the header fi this is fine oh you're right you know that's entirely correct it's track not type did i copy no that's the correct file i i'm but see that should not matter because the header files in visual yeah i i'm definitely something has gone horribly wrong okay so the file is here the file exists the file also exists add file existing item oh i see what i did i don't know how i i i think i got my project files mixed up i i you know which one was i working on this one i got building okay i got this one building and then i got confused when i was dealing with this one because i obviously have had nowhere near enough sleep uh trap that's here no but i have a track dot this is fine this is all fine this this explains what when well it doesn't really explain went wrong but let's go back to the original source code and see where where thy corruption exists like is is this completely yeah okay no so that that's completely broken that's just completely broken isn't it i think we're gonna have to run uh check disk on that file aren't we uh it's simon yeah but no it's actually corrupted on the nt4 vm i think i think we just had a corruption event i just don't know what caused it oh i know what may have caused it um visual studio hung when we were closing out and it used to have a problem where it would corrupt the currently open file and i didn't install service packs for visual studio i actually remember this bug i remember this bug [Music] please please do not have undone all that hard work do not do this to me okay so type that c is here it exists it exists okay you know i just want to check something is it application is that application actually working the way it's supposed to because like if we you know just to save my curiosity i kind of want to just check what it actually does back here because i feel like we haven't done that one correctly so this is what it does here if i push enter no okay i guess that does do the right thing and if i just hold down the key and let it repeat okay so that that basically works the way it's supposed to um so how do i get this file from this vm to somewhere useful and uh you know i just realized what the answer probably is does this work no more connections can be made to this remote computer at this time because there's many connections as this computer can accept and that tells me i screwed up the nt4 licensing i screwed up the nt for licensing technology was a mistake okay we're just going to put it on a floppy disk screw it we're going we're going about as low tech here as you can get because if we keep going like this i my brain is going to turn itself into a pretzel and it's arguably that we've already reached that point but i i hold that i'll hope that recovery is possible i i probably could just add more client licenses you know i i could do that um i don't have a floppy drive on this one do i no this is fine i can work with us because i can m copy the file off if you think ed commander has gone crazy um please raise your hand in chat type.c 132 boarding okay do we have the source file where we need it because data exchange is hard see here so we go here we go up we go up we go in hey look source code i'm okay with this grab that copy and paste it where it belongs open the project file build yes can't open build what can't open input file that's fine all right uh clean the whole solution you're broken aren't you compile can't open source file track.c remove remove re-add you to the prod or type dot c okay hold on there we go there we go okay now it's trying to compile now it's trying to compile so all we gotta do is fix this l result win uh callback i must have missed this one when we were doing this earlier uint pram pram um and then you need to be dialog proc okay uh let's see here formal declaration with three four oh yeah hold on let me fix the v the vm oh we're getting there it's and then i just need to correct this up here i'm getting a huge remembrance on why this was a bad this stream is i it's like all my windows programming experience is coming back in a flashback and it's not a good one okay so now we're down to one error target machine conflicts that's fine okay so this this application is working now we just have to fix the 64 our 64-bit build let me make sure the release build actually works and it does we checked the x 64 one that actually does and we check the debug one and that one doesn't but i think we can fix that i think all we got to do is go to linker it's probably just an option got corrupted somewhere i just need to find the machine type option optimized for windows 98 terminal server manifest i'm i'm definitely fading i might have to we're almost to the end so i think we can get to the end but i definitely am definitely i'm going a little bit nuts uh let's see here import library show progress command line target machine here we go that's a lot of target machines uh we target machine ebc that is if you know what that is you you like pain almost as much as i do okay cool that one's done that one actually built all the ones right there okay all right um i'm i'm wondering how many of my viewers i've completely lost i apologize if i'm being a little uh all over the place because when end commander has no sleep and commander has no sleep and end commander with no sleep gets very strange uh let's go back to the possess project file uh man that's a good name for rock band um and just figure out why you don't build well why you no build it's like all right so let's go back to properties what is it using as the link or command line the linger command line is basically not building of anything at all is that really what we're doing here no we appear to be doing more than that let me see here can i get a verbose option uh show progress yes that's what i want what are you actually trying to do no and you still don't show me the actual command you're running because of course not that would actually require something useful oh because i set it on the wrong target i'm a genius yes do verbose please okay and now i remember why you don't normally do verbose because wow that is i just want the freaking command line you know it's this is fine this is okay there is no problems here there are no problems is that did these files get corrupted or did this file get corrupted that file got corrupted so temp and rez also got screwy i don't know what happened like what did i i'm just checking it because that would explain half of what's gone wrong yeah no it is actually corrupted on the um it is actually corrupted so apparently we're having data corruption issues on top of everything else so yay okay that's fine um yeah ia 64 is um intel architecture 64 which actually means titanium so yeah uh track which one was i working on i was working on template we need the non-resident file that's you uh and then we're just gonna pump punch you into a floppy disk and we're just gonna do the same thing i saw what you did there i i had my iron chat just long enough to see end commander's worst enemy and then you delete the the thing like i actually caught that and i'm like oh that is that is mean yet accurate all right so let us try this again with less corrupted files okay like do you have actual data in you now no you actually okay so you're good we take this file we paste it here and now we have now we have data in this file excellent uh and it compiled yay it okay so when your source code is all there it actually works and all targets comply out okay ladies and gentlemen are you ready for the finale because we're going to the finale we we're going to the finale and the finale is it's we're going to try and build this okay so works server 03 we're going to windows 11 we are go we are going to the end game we are going to the end game the end game is here oh boy and i have to wait for the boot up before i uh well actually i should be able to focus on it right now let's see here uh view of webcam and once it actually boots i can resize it yep i was going to do windows 7 but there really is you either have to do xp or 7 because that was the version that had x64 so i don't know i don't know what the end game is um hopefully windows 11 works because i had some issues with this no wasn't that the engage was the nokia game phone which wasn't very good but existed um yeah you're not going to boot up are you you're you're doing that thing aren't you um [Music] it it would be nice if windows 11 would please start like you know i i i prefer my operating systems to be in a working state it's still accessing the hard drive so i i haven't given oh oh maybe it's coming out now i'm going to close out the other vms while it's i just find windows 11 is very very laggy like immensely immensely laggy it's still going oh there we go i mean i know virtualbox's support for it is not what i call great but okay so the next thing i got to do is i need to scale you're not going to do that are you if i resize you and i do that you're you're just going yeah you're not going to actually do the guest additions thing are you because that would require my operating system to work wow the uh i know parts of this is because virtual boxes windows 11 support is shall we say interesting so okay we got this we got this sorted sort of um while we're here i had to go i had to put it in full screen or it was just glitching out so let me get that folder shared with virtualbox um 132 porting cool all right so yeah like you start typing and it just it just lags yeah they're using chromium engine um the thing is that windows 11 is windows 10 with a new theme and a lot more bloat that and windows 11 works windows 10 works just fine i yeah i i have i haven't given i haven't gave it two cores i only have 12 cores on this processor it's a little anemic so we're just gonna have to live with that because most of what i've seen is it's i o bound it's not cpu bound so i don't know what to think of that it's just like yeah so we're now going to open up with visual studio 2022 which is now how many years let's hear i was compiling with visual studio 2005. so we've now jumped 16 years in compiler history um i have my doubts i have two ssds in here yep i have two ssds in this system it has no reason to lag and it does and you know you can't get any useful information from windows on why it's running slowly if you run resource manager it just says it's using a lot of disk access but it doesn't give you good answers about it like i should have done this windows 10 this is running off an ssd okay one way upgrade yes oh no actually this vm is not on you know i just you made me think about this the machine itself has two via a two um two ssds my vms are normally on spinning ross and you know that that's probably part of why this is running this badly you are completely right i i had to think about that because i moved my vm storage to spinning rust because for everything except windows 11 that is fine yeah okay yeah that that is actually a problem so we are going to fix that problem uh i'm gonna first i'm gonna shoot this vm in the head we are gonna move the vm because that that is not going to work that is just that is too slow so uh so vms so to do this is irritating but so be it i just need to move the vdi file really so um devstream windows 11 pro windows 11 vdi and i'll just move it yeah i'll just move it to this home folder i will say that windows 10 and server 2019 on spinning rust is completely usable so this is really just throwing hardware at a problem that should not exist so we just gotta wait for this to move it's a it's a raid one array so write speed is kind of meh um but again it's a problem that should not exist i should have done this with a status flag but whatever whatever this is fine i mean you know the fact of the matter is that microsoft is requiring you to have a tpm module for running in a virtual machine which has no actual use or bearing it's like this is security theater and i i'm just i was considering going back to windows because of the pain it takes to do video editing on linux and it's like you are making a incredibly good argument of not of how not to use your products so as soon as it's done i'm not sure actually how big is that vm i don't even know how much is how much does it actually copy i think 16 gig is it actually still copying yeah no it's still copying it's just taking its time so once again this live stream has become um this live stream has become progress bar simulator but this time without the actual progress bar just like microsoft i'm i'm cutting features away and telling you to enjoy it i personally like i said i i run linux day in day out for all my major stuff but there are some things that i just need you do need to use windows for and i hate life every time i have to deal with it [Music] okay you know that's going my backups are going to be exciting because i'm going to have two copies of this file i i actually have full system backups again i'm so happy about that it was misery and sadness to make that work but it does in fact work uh let's hear so how big is the source file just so i know source file is 27 gigs and it just finished moving so now let's get the uh version that's on the ssd failed to open because oh you're you are freaking useful because as the saint okay choose file virtualbox annoys me at times and this is one of them uh hard drive already exists okay i got damn it i'm gonna have to shoot in the head i've had this problem before and the only way to do this is to i mean at least virtualbox uses a clear text config file which makes things easier it's technically it's an xml file but uh see here windows 11 and i just want to tell it i can do i can actually just tell it it's at ox vms actually that isn't where that is uh frigg did i did i screw this up i probably screwed this up i mean i i know how to de-screw it but okay let's see here so if i edit this you're really going to do this to me today aren't you because of course trying to move a you know i commit the sin of wow i just want to move a freaking file around here we go uh here where's the vdi in here uh hard disk windows pro vdi okay so all i got to do is just m uh virtual box bms slash all right and then you should in theory be able to see your own hard drive that's probably me being optimistic but you know i think i think i broke it actually i'm pretty sure i broke it all right we are just going to go away and then i just need to kill the virtual box daemon because at this point how many vms do i actually have running two nine yeah those i don't care about we can force shut those down this is fine everything is okay it's like you know we we get close to the finish line and then it all kind of just falls apart all right please yes there we go start switch go work yeah i i didn't do that the way you're supposed to do it it's yeah it's fine it sees it it's booting up and look it's actually running slightly faster like fine i made a mistake because i installed it to a spinning rust hard drive but it should literally not be that order of magnitude of a difference i mean there is something fundamentally wrong if you're hitting the hard drive that often that quickly so hello we're getting close to the end point of the stream and trust me when i say end commander is running on fumes let us see if we can actually do this okay so do the conversion migrating projects one of one okay so here's the thing is boxes doesn't work well with legacy os's virtual box does and until that changes i will keep using virtualbox because you know it it actually works i mean everything we've been running is virtualbox if you try and run most of the os's i tried in most other virtualization solutions it just blows over blows up i mean there are exceptions to that rule but that is what it tends to be so let us actually build the whole thing we are now building the 64 hello world from windows 1.0 wow that is a lot of that was a lot of warnings i'm assuming other people saw that there was a lot of warnings in that all right let's do a build solution i think it's having some problems i i i i can't be sure but i feel like there might be some problems here [Music] it's thinking about it oh it actually built it it actually managed to build hello.exe hey it actually worked that is hello world from windows 1.0 running ported as a 64-bit application on top of windows 11 crossing 40 years of software well for 34 years we have gone from 16-bit to 64-bit it has been done and now we can actually add more platforms uh do we let's i can't test these but we can build them we can actually take this hello world program someplace that it has never gone before batch build select all build [Laughter] the mat the mad lab the mad lab actually did it so there are so i i i just noticed that there are some build problems uh cancel cancel cancel uh let me see here i i added those incorrectly and now i need to fix the build stuff properties uh configuration manager edit remove remove because you have to inherit from nothing and that's not what i did empty then arm 64 copy settings from nothing okay that's fine all right let's batch build this rebuild all nice yup uh the stream will i'm doing a local recording of the stream and the vod will be posted when i end the stream soon it's not going to go for that much longer so okay so now now we're really going where no hello world binary has gone before we've taken the windows well it tried to build what went wrong debug arm failed see here modular machine conflicts uh do i need to let me just do a clean solution go try the arm 64 build it's having some problems why are you having a problem with that like what are you doing that is causing that problem i'm thinking the 32-bit support is a little bit half-baked i mean that that's probably entirely true it built arm 64. no problem and this is a preview build of visual studio so i'm you know i'm going to call that good and i'm just going to assume that's a bug in visual studio because we did get uh we didn't get arm binaries but we did get all the other ones including arm 64. so we have actually gone this to build and work let's try the other ones because at this point i'm just immensely curious if this will actually all work [Music] uh let me delete these folders while i'm here fingers crossed okay um here i i don't really want to go for every version of window i the only reason we went to visual studio 2005 is because i had to migrate the vc 6 project files and i want to test compile them on 64-bit but i fixed most of the 64-bit issues when we passed through originally so configuration manager let's add the arm platforms and then arm 64 is empty okay and then we're going to just do a batch build and see if it works select all rebuild fingers crossed so let's see if font test works because this is the one we had to fiddle with the second one we had to fill with the most so far so good two failed six succeeded i'm guessing the two that failed were the arm 32-bits which i'm not surprised yeah the scene type module that's fine it's quite possible i installed the compiler wrong um i didn't have a lot of time to extensively test this uh for those who were at the beginning of the stream got that story so let's see a fun test fontest works it even has the fixed ui okay that's two down four to go and i'm feeling pretty optimistic at this point which probably means i just doomed myself but i'm willing to i'm willing to hope that i am wrong or right or something uh actually i have to open the sln file yeah oh does not contain a valid solution do we have more corruption issues like did something else break you know what i just realized is that all this has been updated to use at uh user access controls it you realize there's something you don't see it's literally talking about vista on windows 11 because of the migration project upgrade failed yeah okay fine um i i suspect do we have a broken did something break yeah i literally said i have a good feeling about this and it stopped having good feelings like what happened uh choose a different app did this get corrupted okay yeah that got corrupted apparently we're going to come back to that one we'll come back to shapes i don't know why i'm having corruption issues it's probably something's wrong with virtualbox or i'm doing something wrong see here okay well that one's migrated on the first try let's see if this one actually works uh while that loads let's take a look here uh let me get back on virtualbox and let's on the v box share oh you know that was probably a transitory one yeah it was um devices shared folders here we go just need to re let's see what actually broke like i don't know why i'm having so much i'm gonna run a memory check on this desk on my desktop once the stream is over because i'm getting uncomfortable i'm not used to having data corruption issues and we're having data corruption issues like if i open the shapes file on this the shapes file here is fine so that means it didn't copy into windows 11 correctly yeah like all right continue we'll come back we'll do that one next so now that we've done that we um can do let's see here uh we need to do configuration manager add new target and like i said i don't expect the arm under work but i do expect arm 64. i'm not even sure didn't i didn't does microsoft actually support the 32-bit arm port in any manner i didn't think they did but i mean it's here okay so oh oh we got are those warnings or those failures i think those are just warnings yep so six succeeded two failed which is exactly what we've come to expect at this point hey that actually works i really do like see oh that crashed that's a memory access error oh okay that that one is not can i actually yeah unhandled exception that is actually a memory access hour i'm surprised that we didn't ha maybe i didn't check that one thoroughly this one will need a little bit more work to probably work we go to release yeah like see it opens and then it stops responding okay so we'll uh we'll debug that one we'll come back to that and debug that so let's do shapes.sll um windows rt was a uh full port of windows to our 32-bit arm and it's still not having that even though i copied those files why is this why have you forsaken me like that's a valid projects file all right let me let's recycle bin that uh let's close visual studio then recycle bin that and again it doesn't tell you what the stupid again what is holding it open it's not i have nothing else running on this system like literally i have nothing else running on the system what is holding okay so visual studio is staying open despite the fact i told the clothes okay can i throw you out now no okay this is fine you can tell that i am enamored with the current version of windows uh let me grab shapes again and we'll just grab a new copy of it um replace files and destination i just don't know how people put up with this i mean mac os doesn't have this problem lynx is emma's problem android doesn't have this problem um but apparently just copying the files over from the vbox share again solved it you know it's 20 21. these have been fundamental issues with windows and i should say fundamental these are artificial limitations because you can actually do non-exclusive access to files and windows it's supported by the api it has been since early windows uh nt but no the everything must live on the alter backwards compatibility user experience be damned i'm sorry i'm just bitching about this because you know it just reminds me of things getting worse for the sake of change okay so next one's up all right so let's see if shapes actually works oh i forgot to delete the debug files that's fine this is fine you know it'd be nice it would be nice if it did it for you but this is fine um in certain cases 144p is all you can match because your itching has that garbage uh i have lived in places where that was true so i understand why youtube will transcode that low even though it seems utterly bizarre but there was a time where real player hey look that one actually works the shape program actually actually works so that's three and a half of six let's uh let's do track we're gonna have to debug template and i have to steal myself to do that one well here's the thing is microsoft has broken backwards compatibility plenty with the last with windows 10 and windows 11. i mean i have had more incompatibility issues than not um primarily just due to microsoft wow did visual studio really just crash no okay it was just being laggy i wouldn't be surprised if the code for project migration has basically been handed down the lines of the amps of the armstrong family for generations okay obviously i need to re-watch fullmetal alchemist because i've obviously got it on the brain and then we do that we do that uh make sure i have deleted the project files that one i already did see your track okay and then we go to batch build select all rebuild awesome so the thing is that i actually enjoy both the original 2000 free full metal alchemist anime and i like brotherhood and i actually would recommend people watch both although i would say brotherhood is probably a bit stronger but i actually find that the original 2000 has a much more satisfying conclusion of uh both conclusion in general and a conclusion of understanding the mythos of the gate of truth so i i personally think both are good but i actually think that i think the world of 2003 fullmetal alchemist is more interesting than brotherhood um and i won't spoil the twist for those who haven't seen it so okay so does this one work hey this one works this was another one we had to do a lot of patching with to get it working on 32-bit that's nice that is nice okay so which ones are left so that's type and then we need to debug template which was probably broken beforehand and i just missed it um i might do a follow-up to this because there was another whole set of windows programs that need to be ported uh and i mean we got over 200 concurrent viewers uh and if you've enjoyed this content please like and subscribe if you really enjoyed this content come support me on patreon and if you want to uh come hang out on discord i probably forgot to put the link in the description hopefully someone could post it okay so this is the second to last one i believe um well that would require me to live to 20.99 i don't think i will i'm i mean i'm i'm i'll be lucky to see 2050 just due to my age so well no actually 2050 maybe not uh i might i might last longer than that um but i don't know someone might end up backing me up and you know thank you thank you for uh the subs the subscription i really need to set up um i really need to set up um what's it called streamlabs i keep meaning to do it and then i forget to do it i would be in my i would be in my mid set early to mid 70s in 2050 so who knows okay so type has been compiled so is this another working hey that's another working application i'm actually curious how much yeah and it goes right to that point and then stops we probably should have limited how far it goes but okay this is fine so that means we just need to debug template and then i think we can wrap it up so i probably just made a mistake when i did this earlier i i'm sorry i've used matrix is a pile of garbage i don't care if it's free in open source matrix is not suitable for production use i've had to use it on multiple i've had to use it with multiple people that refuse to understand that a pro thing needs to be usable and i'd rather use slack than matrix you know before they try and do fancy federation stuff they might try having a usable product i i do not consider matrix a usable product it loses messages even in a regular thing it's got a lousy mobile solution i don't get me started on matrix because i will start ranting and i don't have the this the energy to do so so this one compiled we just need to figure out why it crashed so this one started we go here the dialog box and then it's going to take a crash so i think we probably just let's see here so this through an exception here it was trying to send a message to template dialogue probably because i got yeah there's the problem i see the problem and then this needs to be i'm actually surprised that um i'm actually surprised that far is still in the windows headers i i like i'm legitimately surprised that's a fang all right let's see if that fixed it okay there were build errors that's fine oh yeah redefinition that's that's expected uh where were you defined wow is weird having nice things like i can do go to declaration and it goes to the declaration although this is this is still surprisingly lousy performance like okay so if we why are you lp proc temple temple dialog redefinition of basic types fine i mean there's definitely quite a few things here that have gone wrong i just don't know why and some of these look like they're 64-bit specific so this is looking like this is a pointer error i think we just can just can we just do that and like call it good because usually removing casts is better than adding them like this is saying this is a redefinition but i'm not seeing the redefinition uh let's see here do we have a ah here we go here's the redefinition why couldn't it show that to me like is it really that hard oh i mean why why am i what am i saying of course it's that hard uh so apparently i got i i completely got this wrong when i did this earlier or i didn't test it well and i see that there's a lot of chat happening as soon as i'm done copying pasting i will turn my attention in your in your general direction okay let's see if that actually builds it probably won't but uh yep okay that that was exactly what i expected l result callback and then we just need to fix these types so yeah so apparently i had these types completely wrong okay well that compiled does it crash no it doesn't crash check that out check out that old school ui this feels like this should have something now like isn't there supposed to be something here oh that might be a bitmap hold on we will actually let's let's pull up the uh windows 1.0 vm let us compare our ancestors side by side but that is the last application we have successfully successfully um aaron you're not wrong but you're also not right and that's all i'm going to say about that solution um just just saying that okay daw source uh what was the application we were playing off we were playing with template like isn't there supposed to be a bitmap graphic there oh no i guess not i guess so here's the thing is i feel like this is never speak to me or my child ever again like isn't that this the meme you know hold on i just realized that's my face is going to cover that up but isn't this the meme never you know and actually let me take this out full screen so i can put these side by side oh wiggly wobbly i mean the the there there is something to be said that this 16-bit application now is running on windows 11 and has been compiled with visual c plus plus 2022 so i i think we're going to wrap it up here in a little bit so this is just some questions and answers um so um ben gruppe windows 11 provides nothing i really want and adds a lot of bloat to something that doesn't need to be bloated that that is my thing um to do this and you know let me get the other two versions of this let me hold on let's let's let's complete the family picture here let's let's go full voyager and have the full family photo um why are you unable to lock your hard drive uh oh i know why you can't lock your hard drive hold on i i actually understand i understand that problem but yes let us complete the family photo okay you still um media is attached to a running vm i see you want to share the floppy okay so then we get this one up and i want to see you guys should make make sure to put this on twitter or something so here's the family photo let me see if i can resize this so you can get them all all at once so let's see if we can shrink down windows 10 is about 11 is about to get a whole lot smaller okay and then that one we're just gonna have to deal with the fact that the bars are like that because i don't have i don't have that many pixels on my computer and then we just need to get the last one which would be server 2003 uh i will be sharing the source and executables i need to do a little cleanup work um i might release it to patreon exclusively at first and then i'll post it publicly i will post the source publicly to github i just have to do it um so yeah but yeah so let us get the family picture complete because this this is just this is just pretty i mean i don't know how else to describe it as ooh i mean check that out the win the the windows 1.0 application is dynamically resizing at you know like modern applications do as i move the vms around and i will probably have to take myself out of this photo but we'll try see here i mean i could actually you know i could resize this hold on i can actually resize that like that because i fix that hard coding and i can reduce the resolution here so that's fine so that works so the family photo gets a bit smaller uh minimize all windows and then bring this one back there we go now we're getting somewhere i don't normally do tiling i'm just doing this for this literal i'm literally doing this to mean i mean that that's literally what i'm doing here so yeah okay uh let's see here so template uh do i not have a d a build with this to this okay so apparently this didn't quite build the way i was expecting ah frag of course i go for the nice fancy photo and it fails because i have to properly fix the 32-bit version of template yeah hold on win32 go build it build solution please yes you're really going to do this clean solution can't find specified files you know it's like working this thing that we don't actually care the deal [Music] okay fine close solution and then reopen it apparently works was a much was me being optimistic when i called it that yeah apparently i was being really optimistic when i called that like didn't we didn't we just go through a lot of pain and suffering in this like i i feel like we went through a lot of pain and suffering with this okay so build like why are these red i'm this is fine everything is fine there we go maybe we had it working and then it stopped working i mean that's really the only explanation i have oh there we go there we go it's working again meet thy family photo uh let me see if i can let's see if we can make this a bit smaller i mean there you go ah that is a photo that i really hope ends up on social media that is a photo in fact i think i'm going to take a photo of this and put it on my twitter and that's where we end it oh open the menus on all the versions uh yeah we can do that i can actually let me pull up the about [Music] how's that look how's that look [Laughter] all right let me let's let's let's take a screenshot and uh let me i need to grab the whole window let's grab a screenshot here all right we we're memeing we we we are officially going full meme right now so let's get let's get twitter out okay so i don't know about you but i feel like i can see the family resemblance across the generations also the software compatibility issues are real i i feel like this is the high note of where to put it okay uh what else should i tag this ass um i almost feel like i should put don't talk to me or my son or my son uh my twitter is uh at foss firefighter i'll put it in the chat let's hear i um you know i have a better idea you know at some point i should have realized i was pulling an athoon but i think i should just hide my child my child my son my son i should just hide hide the generations nah i need to think of something witty i really need to write something witty uh at least crop the photos i guess i could crop the photos we can we can crop it uh how the heck do you even use the crop tool wow this is this is just plain garbage yep nope forget that see here so i don't know but i think i made a foonsa i feel like i feel like this is something at foon would do do except he would have accepted they they would have had it working on all the risk nt's arm windows news on arm ce and probably uh and probably i don't know yeah i'm just gonna go this is probably something foon would do still it's literally 48 better it's 48 bits better [Laughter] you know i like that better i actually i'm sorry i like that i was so preoccupied in seeing if i could i didn't stop to see if i should the end result is you the end result is i tacked on 48 bits uh to a windows 1.0 application and honestly and made the power at and i'm pretty sure i'm pretty sure the end result and and somewhere a far segment a far pointer gave its life for this abomination [Laughter] and then i'll actually let me and then i will actually i should have tagged at microsoft at that uh we let we can fix this we can actually we can fix this it's only been up for a few seconds i can delete it and repost it and then uh let me grab the screenshot which i probably just deleted didn't i yeah i did that's fine we we retake the screenshot at him at microsoft there we go [Laughter] and then we probably should put it on programming q uh programming humor oh god i could put it on wine i could why didn't i think of that before hold on hold on hold on hold on wait wait let let's i need to copy the 32 i need to copy the 64-bit binaries out so we can do that because we have we we if we're going to go full meme we're going to go full meme there we go there we go so that goes away you come back uh you come back and then let's open a terminal let's see our win win 32 porting wine template [Laughter] yes oh you can move them separately online [Laughter] ah um where's the uh where's the that vm yes yes well no it doesn't work out the box because i had to port it to 64 bit before we were going before it was going to get this far uh [Laughter] okay i this needs to follow up this needs a follow-up hold on this needs a follow-up quick to the quick to the twitter oh man it's already gone to plush holy cow ow internet the internet um the stream recommended that i add some at wine uh which one's the official wine is it um maybe even some react os maybe i'll even add a side of react os we're still live by the way we're still live [Laughter] wow [Laughter] yes [Laughter] uh should we install react os and at should we add the photo should we should we take this should we take this a bit further okay i will go add react os the uh the the uh i have to go get i have to download it because i uh i wasn't expecting to go here um grab the boot cd uh no let's just grab it oh man we could run it on os2 we could run it on os2 because the version we compiled for windows 3.1 would work the uh because the windows 1.0 version wouldn't work on os2 but the 3.0 version would work okay we we can do this we can do this this hold on i i want to just run h-top because i have this descent this feeling uh no we're good actually uh we are only using 30 gigabytes of ram so um yeah we're i think we're going to add to this collection so let's add a react to svm i don't think i've actually installed react os um the uh the the family tree has is suddenly getting a lot bigger a whole lot faster and i'm not even sure how i'm going to get uh get the file in there for react os okay um add image downloads hold on is it done downloading or is it still downloading i think it's still downloading no they zipped their iso file why would they why did they do that fine uh desktop okay all right yes we're going we're going to install react os then we're going to get os 2 out we're we're going we're we we're going to get a very complete family photo here of okay all right so react to s is initializing itself hopefully this is just uh format i guess it should format as butter fs this is probably a bad idea react os okay reactos is installing i yes it's it's well i'll say this it's fast okay i don't want boot from the reactos cd let that start up let's start oh yeah i just realized my face is in the way uh let me get reactos over here might as well go vm view i don't think i've ever run this many vms at once i i feel like uh the answer to um my system is ah i'm in danger okay react to us uh i'm running in boontu uh i feel like i need a bot response what version what distro you're running and it's in ubuntu 2004. with cinnamon okay so react os has been installed there's no way this works does does this have a yeah okay i didn't think that was gonna work um install driver automatically can't find device drivers now how am i going to get the file on here like does the web browser work is there a web browser uh reactos doesn't come with a web browser does it like does it like if i just go to uh i don't know twitter.com yeah no it doesn't come with a web browser oh put in that go to the app store okay that works um app store let me grab firefox that's a old version of firefox that's like what two three years old okay this is fine this is fine this this works this works just fine i just need to uh i gotta get the app in there which i can now do uh simple python server is the the gif that keeps on giving python m simple http server yeah okay that works so now i should just be able to download it and go and then 192 1680 147 800 [Music] uh template.exe cool save file um damn how is that is this a 32-bit install did ice is that a 32-bit install or is there's no way reactos does not support 6 64 bits like reactos is only 32 bits okay no that's fine we have a we have a 32-bit version of the app it's not a problem we we have all the versions of the apps we we have all of them the this is this is a completely solvable problem like there are problems that can be solved and there's problems that can't be solved and this this is a problem that can be solved so okay let me terminate all i need to compile a release version of this 32-bit grab release grab this uh sorry i just realized that the vm view is in the wrong screen i'll fix that in a moment and then i'm just recompiling a 32-bit version as a release build so i can just punt it over um just this is taking me slightly more my brain power than i was expecting okay there we go 32-bit so i'm just going to rename this to 64. because i'm going to get the 16-bit version if we are really going to go you know because you guys are going to make me install os 2 or find one of my old os 2 vms i know you got i i know i know the chat the chat is going to demand it and i will comply with the chat because deploying com there are things that you just don't fight the chat about okay so there's that uh you know let me just go full screen so you can actually see what i'm doing so i just installed uh so let's grab firefox um it's running a very old version of firefox i mean four seven is i i don't remember how old it is but it's it's old and why are you not able to see template now what we we are having new and exciting problems here or did i just spell it wrong oh say case sensitivity case sensitivity there we go you you know what i noticed is you can actually see the difference because of the font oh close firefox all right there it is there it is we i i'm running out i'm running out of desktop space all right i'm assuming you're going you you mad men want me to um install os2 on some point i should have os2 on something um this this is absurd all right let me let me see if i can turn the resolution down yeah okay that works that works and then we'll just make this really tiny just like that this is becoming an experiment on how many vms i can literally literally tile together um let's update let's update the family for odo while we're here um let's hear let's grab let's grab a new family photo this is this is quite possibly the most ridiculous thing i have done to date on this channel i i um [Music] holy cow um yeah that that's going to space isn't it that that that's just going to space so at react os has signed in um the chat wants os2 we're debating the specifics now uh yeah i'll pull up h-top in a moment um yeah so this this is my system right now and surprisingly we are not in the i'm in danger category because i have 64 gigs of memory in this system which means i can open all of two chrome tabs but [Laughter] uh i've actually been looking at seeing if i have to go to 90 secs okay fine the the the family photo must grow uh let's take a look at what vms i have on hand because i have a few um let's hear we could i've got longhorn um i've got multiple versions of longhorn uh that's that's an old it's a really uh i have an alpha version of nt4 what what version is this oh i think the vm i think that vm may be broken yeah okay that vm is probably could put um i had the wow i haven't used this one in a long time this is the comdex build of windows nt uh i should still have an os2 build somewhere i i think i don't think i got rid of all my os2 images i might have uh there are some things in life that i don't actually want to grab in that folder publicly uh find name os2 actually let me do this on the other monitor just in case because there are my junk folders where i put stuff that i don't want to be showing on stream um apparently i have an 86 version uh hold on i actually we might be in business hold on desktop junk os2 yes we do have the uh we have the radioactive hot dogs the radioactive hot dog installs live on um also i have a slackware install in here no sorry that that's not i don't have all the radioactive hot dogs i only have some of the radioactive hot dogs and i swear there's probably like two people in the stream that don't know what i'm talking about am i going to have to install os2 are are we going to have to install os2 i mean i don't know why i'm asking do you need to make do i have to make all these radioactive hot dogs this is fine oh god it's a hundred percent it's 100 why why did i why do i give you maniacs a choice fine we're at least i'm going to use a newer version of os2 because and we'll we'll add more things to this we'll we'll keep growing the family photo um i love the fact that it's at 94 wow you guys are you guys just hate me don't you uh warp yeah i i think we're gonna go with now i don't have the discs on hand uh why why are we doing this but but why i'm going you know i'm going to be spending the better part of an hour cleaning up this my my desktop i'm getting the os2 install going if you really enjoyed this content please like and subscribe your um my tiers hopefully inspire things to higher and higher hopes we're going to have to install os2 from floppy disks aren't we yeah we're going to have to this this is a thing that's going to happen if we have to finish the family photo this is going to be the post divorce photo this this is going to be os 2 2 1 this is cruiser so this is when this stop being that and it's not working is it it's a virtual box used to have good support for os2 and then i'm guessing that probably went away at some point because of course it did that that would just be far far too easy i just saw curiosity is there any chance that this will that the ecoms um the warp cd was bootable like am i i don't think i'm that lucky but maybe i don't think this is a bootable cd i mean it's it's refusing the boot os 2 which is probably a good thing for my sanity no it's just not it's just refusing the boot okay what what gives have we have we hit a limit of how many vms we can actually run on this system like or did i just give it too much memory let's see here 128 one processor there we go okay we're going to install os2 warp because i don't need to um no no they all have to be they all have to be running at the same time because the suffering um well the the the fact of the matter is that there is super chat here oh god why am i installing os2 on a stream again yo it's not like we haven't done this joke and now it doesn't see the damn cd are you really are we you don't see this he d oh no okay i just it it just needed the other cd that's fine uh that's fine this is this is uh frig how do you do this it's it's been a while uh primary partition beginning of free space okay and then we need to change to logical view seer all right except the volume trying to remember how the thing is that this partitioning tool is probably one of the absolute worst things to exist and i don't remember how you actually use it is it does it have to be a logical partition like is that really what has to happen here delete partition you know it's i've done this before i should not be struggling with this save changes except the accept volume and then ah here we go create new volume that can be made bootable os2 okay there we go save changes and now i have to reboot we have to we have to do the reboot dance again that's fine this is fine i probably should go full screen here just so you guys can actually see what i'm doing but you're enjoying my suffering far too much i i mean to its credit reactos is is staying up and then i have to get the 16 version bit version of template there i mean at least i'm not willing to cross no don't finish that sentence donut don't finish this sentence i if i finish this sentence i will i mean i could get the compact portal well you know that sentence isn't so bad i mean we could get the compact portable out and i could run this on real hardware is that how we're going to end it is that how we're going to end it that we're going to run it on real hardware although i don't actually know where my cf card reader is i don't well the thing is that i would need the cf card slot to get the file on there and i don't hold on let me just see if the thing is even here i don't know where my card reader is i um i haven't actually seen it in quite a while which makes me think i may have lost it also i have to go over to um go to friends and i don't want to do a serial file transfer i mean yes we could do that it would work just fine but no i don't actually want to do that i don't want to do that i don't want to do that because that would require me to do rs 232 things because because um the compact portable only has five and a half inch drives so it's kind of a pain to get data on and off it i mean there is the the cursed 486 is behind me hold on let me turn the camera we we could we could put it on the cursed 486 we could put it on cthulhu's 486. well okay oh man why does chat hate why does chat hate me yeah i'm here i'm hearing boss music did os2 just crash or is it actually installing [Laughter] i don't even know how i would be able to talk and do it well os2 was still installing so one at a time one at a time i we we're not doing the thing that i don't want to say out loud because if i say it out loud chat will put like 500 in the tip jar and then i'll feel obligated to do it okay we don't need uh we don't need networking support for this that's fine that's fine okay os2 is installing i mean i could install windows on my cell phone and then no you know let's not and the fact of the matter is my cell phone is my face cam you would have to fortunately i don't have nt alpha mips or power pc hardware right now but you are getting it on os 2. like i still have yet to do a video on os2 and yet it's shown up in every live stream i don't think gcc would tolerate it you are you i would literally have to put fail server back together i literally would have to put fail silver back together to do a titanium port no i didn't say that out loud that that's not a sentence that exists that that's not a sentence that exists we aren't talking about that that's not the thing it's not a thing um yeah we um let me go full screen this is the family photo um we we're adding to it we have 1.0 nt4 uh server 2003 and windows 11 we have it running on wine we're adding os2 i actually have a surface rt i don't have a working power brick for it but i do have a surface rt and yes trans rights matter just to be clear since chad asked for it yes i do have a surface rt um seer oh god i i'm almost afraid to look on what twitter has done to that tweet oh lord oh lord um um 21 retreats 48 likes help help i'm going viral uh i can't tell if it's still installing or if it crashed titanium vms are not a thing no we are not doing the cumulative updates i i i i i help help i think os2 crashed with uh no it booted from the hard drive maybe i feel like we had this problem before like i feel like this has happened before let me just give it the free finger salute this is fine we are all fine um windows 1.0 applications aren't real and they can't hurt you this is going to be on the top of our programming humor i just know it someone's going to get a lot of reddit karma okay insert the cd uh team titanium is really making a lot of noise isn't there like i i i'll put a link to the tweet because um yeah there's the tweet there's the tweet i think i think it's broken i think i think oh i think warp refuses to install [Music] let's try this one more time [Music] it and some ways i shouldn't be encouraging this because i could walk away i said i tried i could i could walk away i i i but no i i'm not a person that does half measures good lord that has gone super viral i should have put the stream why did it boot that time uh no i know os2 booted i have to deal with that fact i i i have to deal with the fact all right let's let uh i don't remember is it oh yeah here it is os2 win window there we go this is fine this is fine all right let me let me make an iso out of this because i was ready to go to sleep quite a while ago and then this that then you know it's easier to make a cd than it is to put it on a floppy disk and yeah i know to an extent that's just me being lazy but uh oh right because it needs to be a 16-bit application i need the i need the 16-bit version that's fine i just i i got a little confused um okay we have to bring we have to start another vm up okay um i i i can't see my desktop anymore it it it's just windows all the way down i and i i mean that in a very literal sense it is windows all the way down i think i have to build a release build um don't remember offhand if there's a difference between the two uh rebuild yep there we go we just have to copy it to the floppy uh where is it template okay copy um things have happened things have happened the the there has been unfortunate life decisions made in this chat uh or i should say in this channel because we're going to add more to the family photo uh i have to change windows resolution if we're gonna add more to the photo but i think it's for a good cause and uh i believe that's known the video card going ha ha ha screw you yeah no that's uh virtualbox that's not what your video card looks like just saying you know the fact of the matter is i have two six i have enough vms here that all right let me see here we need to switch you to just a vga because we need there we go all right the uh the family tree must grow where do i put this one i guess this one's going to go down here um now i need to find the os 2 vm i i'm i'm it it okay all right uh os2 has joined the family photo it's a little hard to tell that that's os2 let me make that a bit smaller oh god what what am i doing with my life um i gotta rearrange these the this this this is this is becoming a bit much okay if i do this and i move this over here i can put the windows free one under my face because when i take the screenshot i won't be in it um i want the os 2 part to be visible so i guess i gotta make this smaller there we go uh how do i do this i guess i can just do it like that it's pretty clear it's on os2 okay um yeah i i this is the argument for having a tiling vm actually can you tile i thought you could tile with uh sugar but that might that's a dangerous cleck um all right let's time to add time to add to the collection this is this i mean i technically have a second monitor that we can add oh yes i have to add the i have to do the about box i have a second monitor that i could add help i mean i we could also add nt on mips that's a thing that could be done it'll even run the existing program just fine i won't even have to recompile it holy cow twitter help help help [Laughter] you can emulate ntn mips it's completely doable it's completely completely doable i i i just what what is this what is this yes reactos has signed in it's gone a little buried but this is a windows 1.0 application that we poured to 32-bit that we uh migrated to 64-bit and then brought back full circle to bring on react os like reactivist community has literally joined the chat [Laughter] the li the the vod is just going to be me laughing magnetically i i'm running out of things i'm running out of desktop space let's look at the i'm in danger meter uh no we're still at 32 gigs of free ram [Laughter] you guys really want me to put it on titanium don't you you really want me to put it on titanium oh you've been watching the whole time okay i i reacted react to western apparently knows where i live [Music] well i still have to compile it for titanium i'm not going to just run it on titanium i'd have to compile it uh i don't have an alpha server and i'm starting to think that's a good thing at the moment and i swear to god my friends are going to burst down my door and an alpha computer is going to walk into this apartment and it's like well son of a no queue cannot run nt-alpha [Laughter] i'm going to receive a bot if i get a box copy of react os i'd actually install it on something i don't know what but i install it on something help help i i i know i proposed it i'm allowed to make regrettable life mistakes fine fine let me look at the install instructions let me see what this is even going to take cube windows and t mips um that's not even as hard as i thought it would be that's not even am i really going to i'm i need to i need to find visual c plus plus for risk if i'm going to do this i i i i will post the files for this i'm not going to hoard them all right i i guess we're doing this i i don't what has my life i've lost control of my life this is why i stopped live streaming because there there is no controlling this the the madness is real okay uh queue system meps um no there is no cross compiler for meps there's no cross compiler for mips um it is native compilation only i'd have to install visual c plus plus four mips but and there's a but the mips version will run win16 software uh and then i oh i really hope i have a version of the cd with i should have a version of the cd uh windows yeah nt4 workstation will work fine can't load bios which file oh nt prom raw uh mips el bio stop bin that's fine this is fine oh god it actually we're we're doing it it's happening okay yeah no it's actually happening this this should not okay because we are we are in jazz uh it's actually not on the back office cd which is the copy i physically own or um it's the copy i normally use because that has all the useful back office stuff um i think it just crashed yeah no it just crashed jazz jazz platform just went down smoke but it did get far enough to boot run a program cd mips setup loader oh god here we're doing it we're doing it holy crap that looks like something just puked it didn't see the hard drive okay why didn't it see the hard drive oh i didn't run the ark install okay we're fine we're fine i actually have an entire box of msdn cds um but they're missing the risk tools which is kind of annoying all right cd mips arc install ah here we go configure partitions i've never even done this before i only just knew it was possible like why am i okay oh no that's the wrong program run program uh mips setup loader oh nope that ain't right um cd mips setup loader okay all right i i hear the fan on my desktop going full tilt which oh um okay so that's actually not how you do this uh frig i screwed i screwed up the hard drive that's fine i gotta remake it uh you ha it's much more let's see here uh run a program cd mips arc install uh delete partition create system partition let's call let's make it just 32 megabytes and then now we can do uh run a program cd mips setup loader cool yeah no um i think we're now in the i'm in danger territory okay cool now we can create a new partition install format ntfs install what is with that screen i mean is that the way it's supposed to look so while this is going we're going to run h top oh yes no now we're in the i ha ha i'm in danger holy cow look at that system load 10 11 11. help okay this portion of the step is complete successfully okay it's not restarting did it yeah no it crashed okay ah there we go start nt4 workstation well now it doesn't look that square um that's squished i can't believe i'm doing this i legitimately cannot believe i'm doing this i'm i'm pretty sure someone has already sent this to programming humor i'm pretty sure you can't virtualize titanium we're going to go for with nt4 we are going where no windows 1.0 application has any right to go uh i i honestly i know my friends and side pocket and cyril cell said is uh you know we'll probably turn on your stream four hours after you intended to end and you're going to say that you need some crazy thing to happen so i'm half expecting the alpha servers just bursting through the door no this is the part where adrian digital basement enters the chat because he actually owns one of these systems like he actually owns a a jazz system did it fail to restart yeah no it failed to restart it just can't automatically reboot so i just have to reboot it for it okay that's os loader sorry ntfs hey look a desktop i i i really am going to need i mean i could put the source code to this on github right now if people want to compile it i mean we could do i i could just do that right now [Music] i will just note that i'm get i i just want to note to people that my next video might be delayed because i'm probably going to have to recover from this one um um and 1.0 exes will in fact run on uh ntvdm that was my very first video on the channel i proved that i didn't i didn't actually compile it though that's the thing i haven't i haven't actually gone that far yet i i i we we we haven't gone that this that far but we're going there okay i mean i it wasn't like i was planning on putting a token ring card in the titanium um oh wait i shouldn't have said that out loud i'm gonna wait for the chat delay to catch up uh yeah so the thing is i still need the okay let's see here visual c plus plus risk maps screw it let me see if i can quickly find it because it's not the standard thingamajig it's um you need the specific version oh yep there it is okay okay i guess we're doing this i guess this is a thing that we are in fact doing today that i wasn't planning on doing i was yes i've woken the titanium did it crash again yeah no it crashed again the this is the most manual restart procedure i've ever seen oh god what have i done god what have i done how do i send in all control delete uh is it send key is that how you do it it's been a while yes that's how in fact how you do it yeah oh look it's not y2k compatible on mips [Laughter] oh i just did fine i'll i'll do it i'll i'll just is there a pre-made radioactive hot dog or do i actually have to go make my own you know that eggplant was pretty good i just have to make it uh you know that works that works oh god damn it you know what my brain just went and i really i i can't unthink it um star trek lower dax uh when when the first season finale happens okay this is fine this is fine this is fine you're literally watching this is literally the desolut cpu idling what is that god oh this is not good i i okay um i gotta get the 32-bit binary off uh hold on win3 source um temple.exe uh temple template16.exe does that work so that actually hold on template 16.exe and then let's just make iso let's make a new iso okay this is fine and now we need to put that in here scuzzy cd-rom cd-rom 2. why why why have i done this to myself and you do realize at some point i'm gonna have to make a sequel to this there we go that's this that's a 16-bit application but you know what that counts um we we we have it running on we we have left x86 it's now running on mips literally it's running on mips like there there ain't no intel here uh okay and now we're we're going we're going for a hat trick we are going to native we're going to native compile we're going to native compile it on mips why do i let you people do this to me okay uh let me get the visual let me get the cd ready let me get the cd ready because because of course this is a thing i end up doing you know you know i i was thinking this was going to be a nice simple lightweight stream and it isn't okay so vcp oh frigg i just realized something oh frigg that was not what i wanted to do i accidentally quit the vm here's the problem this is actually [Music] kind of going to suck because uh i'll control delete this is visual studio four this is not sex which means it can't open the project files yes i know it's not y2k yes but if i killed the windows 11 vm it might not start up again uh no that's not that's actually the wrong cd i need the i need the other cd uh change scuzzy cd cd2 home m cast of all okay here we go i love the fact that that still works wait did you say i have insufficient disk space uh how do i not have enough disk space like did i really make it that tiny oh i see what it's doing it's i i need to install today i need to install today there we go you know i actually have this visual c plus plus cross development edition for macintosh i actually actually have this like i have the physical desk no tha it was trying to install to the system partition why am i doing this to myself but why no fortunately cross development edition is only mfc i actually have the disc i have the disc but we're not doing that we're not doing that oh i'm so screwed now i have to fix the sword i i we we have to do a few things to make this work i have to fix the source code we we we fixed the um my god my god it's full of compilers are you serious i might actually get you know you're not wrong i might actually i don't think that's the correct clear i don't think that's the correct year okay so as long as i scroll up i can actually make it to 2021. [Laughter] okay i i'm i'm i'm this is fine so okay i have i do have to actually fix the bug though uh if we're going to actually compile this so i need to find the windows 11 vm because i have a lot of vms running at this moment [Music] because the reason is i need to fix the source code i had to fix the source code for this version so um i just need to grab the dot c files type grab these i don't think i made any changes to the rc file win32 porting uh and then we'll dump these in here and replace okay and then actually i have to rebuild the cd because we have to put the source code on it because we are go oh uh oh i i just minimized everything i didn't lose it i didn't lose it bring it all back bring it all back um i i i should i really should walk away okay um just think about this way just be happy just imagine that your life could be like mine right now all right so we've got the patch source code here now we need to bring it into the vm and i'm gonna have to create a new project file for this i think like i've just caught my second wind and it's not good because it means i could actually do stuff all right so now we go here uh works on server i need to grab the template folder like that and actually i have an idea of how we can do this so if we go open desktop template um and then i think i could just open it as a make file or did i delete the make files i probably delete the makefile so we'll have to do a new project new project this is an application this is template mips create man i hate this version of visual studio okay now we just need to add some files uh how do you do that in this version can you not import files in this version no i don't think you can i think you have to ah files in the project here we go now we gotta go to the desktop and just grab all of them add build here we go wow it actually only has it almost works like it it actually almost built on the first try the only thing that didn't work was [Music] there are some differences between x86 and uh and the header files and i think that's what we yeah see these we had this problem before was this get l parameter thing um uh frigg we need to see what the mac we need to see what the macro is on real windows because i need to know how to recode that so how do i do that visual studio vc include windows like i said it's i know it's a process a compiler macro you know i can just look it up why am i doing it like this all right um get xl pram like what's the easier what's an easier way to do this uh it's low word okay that's it's low word high word low word and then high word i believe what what why is that read-only this file exists and is read only are you did i import you off the cd no it's it's just you probably just got confused and fine we'll do it in a text adder low word alpram okay why oh you know maybe it is actually read only because i copied it from a cd i mean is that a possibly a thing full control full control replace on existing subdirectories yes what i i feel like i'm i'm dealing with really cursed computing right now how what has got my file open oh first page says it's read only oh the whole thing is read only good catch chat good chat a good catch [Music] but why why why is that a thing uh we don't need the book where we're going we don't need a manual i'm probably going to request famous last words okay low pram hey i can actually save hi pram compile uh did i typo it wrong release cursor please i may have oh it's low word not low lopram low word i don't understand how this has a compatibility bug but it does okay yeah so that works so now we just need to copy and paste the other ones i'm feeling pretty dead inside i i gotta say that i know i sound real chipper but i'm feeling dead inside where we're going they don't have manuals it actually built it actually built [Laughter] that's a thing we have successfully escaped the x86 architecture we have we have successfully escaped the x86 architecture uh i need a way to show that this is a mips process i think i got i think task manager will work uh task manager because i believe it'll show well it shows that it's a mips process but that doesn't quite help in the way i was expecting um is there a tool i can use come on chat you guys need to help me out here uh yeah all right time to upgrade the family photo um i don't even want to know what people are saying in my discord right now oh yeah when when info is probably not a bad idea win info or win ver actually windward doesn't even say that it's running on mips so this is probably the best i'm going to get okay um no it's it's actually it's returned to its roots because nt started life yeah um ms info32 let's do that ms info uh i didn't want to do command i wanted to see it that's cursed windows nt dos who else besides me knows what the problem with that is and right click match doesn't exist in this version um yeah this this is this is this is properly cursed no it doesn't look like an i can add more columns we um [Music] um i think i think we might have gone a little just a little bit too far we we yes [Laughter] the fam the family tree has gone a little risky that i i found the i that yes the family tree has gone a little risky and if someone has an alpha or power pc i will upload the code right this moment otherwise i'll do it at the end of the stream i want to keep the hype train go holy cow twitter really um um i'm just looking at my twitter right now on the other monitor the internet the internet has come they have they have spoken from the hills oh the family [Laughter] when end commander goes a little bit crazy um [Music] um the family tree has gone a bit risky windows nt mips which comes with windows nt daws and that was unexpected cursed uh computing in in both 16 and 32-bit varieties okay all right the 486 or are we going to try and boot fail server i'm i'm going i'm going to put the poll i'm going to put the poll uh okay all right lovecraft i don't have a way of running the arm port i don't have a way to do it and i have to put the titanium back together so you're going to have to watch it on stream holy cow you guys both really want to see it you both want oh man you um um you yeah guys it's literally split 50 50. you're don't be like the don't be like the 2000 election please i don't want to have the the florida to be the deciding vote you guys you guys just went unexpected thanos on me you just went unexpected thanos on me this this stream just went unexpected thanos why why [Laughter] all right the the 486 is easy okay because i just need this i just need a real life save icon [Laughter] oh nga road fan you you went there okay okay this is fine this is fine i wasn't expecting to run fail server today but no sorry fail 4086. at least this one's easy i just have to turn it on well i've called the poll what's next um i i i i feel like you guys need to do a sky hold on i i need to go full screen here i need to go full screen here i feel like you need to do someone needs to photoshop this that i have the skyrim bar and it says madness level 100 unlocked fail server is the titanium um there's a very good chance that when i plug it in the stream will end because i would have blown the breaker um nj road fan this is my isa 486 and it's a cursed 486 so okay um all right let us see here uh there is a copy of windows on the 4a sex so now this needs to copy over to the floppy okay i mean i could probably get it on the intel on the compact portable where is my card reader like i should walk away there is no winning this battle like i have oh i have the compact portable right here let me give me a moment let me see if i can actually find the card reader like i should have it here i know it's in this apartment somewhere i know it's here somewhere and the problem is that cf car i only have one card reader of a cf slot and i don't know where it is let me just see if i can find it i i'm hoping you guys can hear me because if not then this has become a very boring stream god that is 45 pounds ow yeah i have no idea where my freaking cf card reader is i i haven't seen it i've been looking for it on and off for a week but i haven't really put the effort in i mean there are ways i could get it on there it would involve rs 232 in an x modem and [Music] i'm okay this is fine this is fine this is fine i mean i know i can do serial transfer i i know i can do that that the only way i'd be able to do serial transfer on fail server is if i used x modem in terminal on windows goddamn it you guys are gonna make me do it you actually are going to make me do it fine i i really don't want plug and fail server let me hold on let me get the camera so you can understand why i don't want to do fail server like this is it's easier if i let me move the audio to the camera hopefully you guys will be able to hear me while i'm walking the reason i don't want to do fail server right now is it's currently in pieces i have to take it apart to fix something i fixed it but it's not currently back together i'd have to reassemble it it's a giant pain this is the main reason why i haven't wanted to do fail server so [Music] okay so we're gonna have to settle and just try and do the contact i i you guys are gonna make me reconstruct it you guys you guys are really gonna make me do this i mean yeah you you weren't okay uh hold on i'm looking for my i don't even know where my rs242 skills are like you know you know like i have an n900 sitting here on the table that's waiting for a project but this is apparently what we're doing that's a serial cable uh and here's the other half of the serial cable so if i plug these serial cables together and i plug the other end of my keyboard oh sorry about that okay let's hear do i have a spare usb will this actually work okay okay okay well i'd still have to compile it for titanium so hold on let's go back to full screen let's go back to full screen uh does it actually see it no it does not actually see it because if it doesn't work off this port then it's not going to be usable ls usb the reason oh that's kind of annoying let me just try it on the other one see the problem is i don't really have a spare you the i have a cabling problem unless i um my laptop's not even here my laptop's currently in downtown new jersey because i accidentally left it at my friend's place oh os 2 is full screen i i'm trying to this this 232 adapter is not working let me see if i got another one i should have another one if not i do have networking cards i mean i could network the compact portable but this is getting some this is going someplace that i'm not sure i want to go there are here i am just looking at through the boxes and boxes of stuff to see if i can bring more madness upon the land i don't think i don't think i have a working 232 adapter um see here fine i could do god damn it i could actually do that i hate i hate that what i don't even know what's on the thing i don't even know what i got installed on the thing pad i think i erased i don't think i even have windows on the thinkpad i think i formatted the hard drive which is a problem because i would have to install pro com plus on it you can tell that i ran out of material okay fine um you know what we're gonna put fail silver back together we're putting felsiver back together okay i've got it i got it i ow screw it i i give him the the rule for being successful on youtube is give them what they want so we're doing this we're going to put it back together again ladies and gentlemen it's a heart of pure all arthritis i don't have a battery for this damn it's not going to be happy i don't even think it may not even boot i had to pull the battery out of it because i needed a spare 232 so it it's going to be an unhappy machine even if it turns on but we will try so fan b i gotta get the fans and i'm trying to think where would i have a spare 232 i could pull it out of the rs6000 but i don't want to take the rs6000 apart uh hold on i'm going to switch microphone chat is that better or worse okay so that goes like that okay all right so now and then that clicks in like that look at the other parts parts that goes like that uh and then this goes like that and we should be able to turn it on this is probably a really bad idea but fine uh i gotta liberate the vga cable so i oh i took the vga cable from here at least i know where it is okay because i don't actually you know what let me put this on the other table because that's gonna make my life a lot easier okay yeah no we're gonna put it on this table i gotta put the 486 away though why the things i do for you people oh man that thing is heavy that is that's about 30 pounds this thing ow all right i gotta get the usb keyboard okay we have a usb keyboard chat just get a mic check please now the fans aren't actually all that bad i'm checking the camera the chat behind me um oh god fail server has an rs232 part port all right [Applause] this is not going to be elegant oh i don't know i'm running i'm running itinerant hardware it wasn't going to be elegant to begin with what although ironically everything on this side of the table has been made by intel i have an itin i have the itanium in professional workstation and i have an itch intel professional workstation and commander is going mad news at 11. all right so hard drive check check uh power cord like i'm not sure it's going to boot let me see i gotta get that here okay all right uh note to self label the vga port because i can't like oh that's right because the vga port is over here on this machine this isn't the pci cage isn't sitting right oh damn it why can't i get that why can't i get the cable to go in what is going on is why when the titanium comes out it doesn't go away into for a very long time because there's an ongoing memory of what it takes to get this machine set up and torn down again you know it's i'm just going to pop this the cage out because i think that's gonna be easier the problem is i'm really hoping you guys can hear me is uh the connector's under a lip and it's really annoying to get in place i've had this problem before that could have been really bad that could've been really bad that's all i know there's no one actually on stream anymore okay let's see here can i please get this to go in all right what is going on here oh i see what happened okay uh the cage is not sitting properly flush so the connector isn't lined up okay i see that there are super chats happening but i can't read them from this distance i really wish i tied my hair back today uh okay so that goes like that like this is making usb ports look normal is there a bent pin in there no what is going on ah finally okay all right let's plug it in i'm not gonna put the lid on it so you guys can see it's full glorious majesty uh i gotta get the screwdriver to start though although it might auto boot i think it's gonna auto boot yep there it goes all right let's see if it actually starts i don't think it's going to i think it's not happy not having a battery unplugging the plug back in come on look please two lights flashing yellow i don't think it's gone unless it's complaining that the lid is off that may be why i've never actually tried to start without the lid on just in case you are actually caring about this unless something else is disconnected like i only hear fan spinning up because i got these in place that's wired yeah it's just really janky i don't think it's gone boot i think it's dead i think i think it might actually be dad but i'll try one or two other things before i give up we'll have to check the service manual to see what the codes are [Music] all right let's give it a re okay once i have the lid on it we will try yeah i don't have a good feeling about this because normally i've never seen it hang like this on startup i mean i've run it with a dead battery but i've never actually run it without a battery yeah it's dead all right i'm gonna have to work on it off camera i tried i legitimately tried oh did i really oh i there's gonna be regret isn't there there is then this one does not have an ilo okay i'm just i'm thinking apparently i apparently i gave a full plumber's crack to this the chat which is like yay uh i probably know what's wrong with it i just have to fuss with it a bit a lot more like i it clicked which tells me that it's in place i've never seen it let's let's look at what the codes are before we do anything else uh full screen uh hp zx 6000 i need i need the service manual let's just see what the manual is saying is happening yeah well it's dealing with other things um where is let's see here let me find the codes um let me find the codes um diagnostic leds so we got we got two green one red yeah battery voltage low battery voltage low so it's literally complaining because it doesn't have a battery the only way i could get a battery is if i popped popped it out of a different system and popped one in there so i i guess that's the thing it's a cr2 2032 it's why i had it apart so i'm gonna have to take it apart off camera i think i'm done fussing with it so okay um this i think it's time to wrap this up so um i don't have a spare battery on hand i don't have a spare battery on hand so um this is uh i guess this is end commander signing out and wishing you all a pleasant evening and before we go let's enjoy the cursed um images i i literally don't have a way to do it i i'm sorry guys but i don't um so yeah and i'm going to have to look at the vaude is um and i'm probably going to cut out part of that aren't i but oh well it it's been interesting for all the interesting reasons all right until the next time this is end commander signing out wishing you all a pleasant day if you've liked this content please like and subscribe if you really like this content consider supporting me on patreon until next time bye
Info
Channel: NCommander
Views: 23,331
Rating: undefined out of 5
Keywords: ncommander, livestreaming, retrocomputing, vintage computing, windows 1.0, microsoft c, hello world, 16-bit, windows nt, migration, porting, visual c++, windows 3.1, windows nt 4, real mode, protected mode, long mode, intel x86, x86, x86_64, k&r c, wine, winemine, virtualbox
Id: _zcQNw0JVYg
Channel Id: undefined
Length: 507min 56sec (30476 seconds)
Published: Sun Nov 14 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.