I'm glad it appeared on my KZbin recommendations. Subscribed and turned on notifications!
@aarondewindt3 жыл бұрын
"As you know I wrote the Windows task manager." - That quote made me click the Subscribe button, you're one of my personal heros I never knew I had.
@markmorton25193 жыл бұрын
Unfortunately, one of my favorite programs :) - I just subbed for the same reason
@sophiacristina3 жыл бұрын
@@markmorton2519 Mine too, especially with my 4gb ram in modern days... *cries*
@paulmichaelfreedman83343 жыл бұрын
@@markmorton2519 I prefer Process Explorer, although in 10 it has improved significantly.
@mfaizsyahmi3 жыл бұрын
The best bragging right to ever exist for humankind!
@kavinunethsarakoswattage35163 жыл бұрын
@@sophiacristina me too. But not because I only have 4GB RAM, but because I have only 2GB
@paulveitch3 жыл бұрын
It's only low enough level if you've hand stitched it into rope memory as they did on the apollo flight computer. All these fancy text editors, pah!
@DavesGarage3 жыл бұрын
With Covid I couldn't find any old grandmas to do my wire wrapping for me :-)
@bokkenka3 жыл бұрын
Pah! You with your fancy electricity... Why don't you try cutting brass gears by hand like they did with the Antikythera machine?
@williambrasky38913 жыл бұрын
@@bokkenka With your fancy machines, bah! Acquire an orphan, force it to be your computer.
@bknesheim3 жыл бұрын
@@williambrasky3891 You us women for that type of work.
@sundhaug923 жыл бұрын
@@DavesGarage You could make your own mask-rom though
@tristynspies82843 жыл бұрын
Been programming for 3 years, it's amazing how Dave shows you what true mastery looks like while remaining incredible humble. Makes you think about what it really means to BE a programmer. You sir are an inspiring.
@GeeTrieste3 жыл бұрын
Yeah he's humble . . . but soo humble as to humblebrag !
@slickstretch63912 жыл бұрын
an aspiring what?
@gregoryshields4258 Жыл бұрын
@@slickstretch6391 My thoughts exactly!
@nkazimulojudgement3583 Жыл бұрын
@@gregoryshields4258 aspiring hardcore programmer
@lazymass Жыл бұрын
@@GeeTriestehe has everything he needs to do exactly that 🤓
@larswillsen10 ай бұрын
I coded assembly since I was a kid .. now 61 and being cool when I meet coders .. the respect fpr us oldies is huge hehe :) (x86 / 8088)
@CFSworks3 жыл бұрын
Fun fact: Roller Coaster Tycoon was written in assembly. There was just a little bit of C code to glue the game into the Win32 API. To date, it's the only assembly program that I know which *deliberately* contains crashing. :)
@das_murks2 жыл бұрын
The predecessor Transport Tycoon (Deluxe) was also coded in Assembly by Chris Sawyer alone.
@bradley19952 жыл бұрын
@@das_murks what a mad man
@damienretro44162 жыл бұрын
RCT was a very well-made game. RollerCoaster Tycoon Classic from 2016 is a great re-release for modern systems btw.
@IlliaZhdanov Жыл бұрын
Yeah...
@greg5095 Жыл бұрын
@@damienretro4416rollercoaster Tycoon 2 with openrct2 is a better option
@martysh12263 жыл бұрын
Even for a modern C++ programmer, this gives a lot of insight to how programming was in the early 90s/late 80s. The commenting work is also very good! Learned some stuff I never knew about Windows.
@herrbonk3635 Жыл бұрын
I don't really get what he says though. Sounds like he's swallowing half of most words. And he is so C-centric (and also windows centric) that it hurts.
@martysh1226 Жыл бұрын
@@herrbonk3635 well... why would he be talking about Mac / Linux in a video about Windows?
@herrbonk3635 Жыл бұрын
@@martysh1226 Well, Linux is even more C-centric. The old Windows API structures were originally defined in Pascal in the mid 1980s, largely taken from Xerox (very much like the first Lisa/Mac systems that were also written in Pascal). That's why we still use "PASCAL" calls on the ABI-level when writing Win32 code in C/C++ (although renamed STDCALL today, iirc). However, I did this in the 1990s without thinking much in either C or Pascal. I though in terms of assembly plain and simple.
@monsterhunter4454 ай бұрын
@@herrbonk3635abi of pascal it was still written in c not pascal
@pezia3 жыл бұрын
This makes people appreciate 4k demoscene intros even more.
@RiversJ3 жыл бұрын
That it does though they measure by source code size i believe not the executable, but i could be wrong.
@pezia3 жыл бұрын
@@RiversJ Yes, the restriction is on the binary, not the source code.
@RiversJ3 жыл бұрын
@@pezia Thanks for correcting me!
@jonaslund97243 жыл бұрын
Indeed,.. if you're at 3k when doing a 4k intro you're starting to cut into the musicians part of the space so better have all graphics and effects working at that point :D , honestly though this stuff he writes would probably be far smaller if he used the crinkler linker instead.
@TimLesher2 жыл бұрын
Watching Dave livecode is as relaxing as watching Bob Ross paint. I haven't done Win32 programming in over a decade, but this brought back some great memories.
@user-zq8bt6hv9k Жыл бұрын
except it's not live coding
@ParalyticAngel Жыл бұрын
Exactly the feelings while I was watching this video.^^ Dave is the Bob Ross of coding lectures.^^ 😉😉😉😉
@unixux11 ай бұрын
Come on, raw win32 was an exercise in self-mutilation only comparable to raw x/motif … hmm, I’m seeing a pattern here, or rather a … motif ?
@TimLesher11 ай бұрын
@@unixux it was a breath of fresh air compared to Win16. SS != DS and your pointer just fangandoed into File Manager's gall bladder.
@DL-mk4mzАй бұрын
Bob DOS?!
@SkarTisu2 жыл бұрын
Fascinating content, and Dave’s typing sounds like white noise since it’s so fast. That’s decades of time spent at a keyboard on display. Thanks for creating this!
@herrbonk3635 Жыл бұрын
His speech is the same to me, a fast weak noise. His phrases are hard to decipher for an outsider.
@maxinator80ify3 жыл бұрын
7:06 Dave just casually flexing his typing speed :D
@Thristle3 жыл бұрын
The flex starts at the video title where he wrote "assembly"
@SteveJones172pilot3 жыл бұрын
Even in fast mode, that clicky keyboard is a very distinct sound.. I would bet it's an original IBM model M or a close cousin.. the sound still makes me jealous and wish I still had my original AT keyboard.
@emilianoruizcarletti93813 жыл бұрын
@@SteveJones172pilot I do have a model M and trust me it's not that one. Sounds like modern tactile switches.
@nickwallette62013 жыл бұрын
I refuse to believe he wrote this in one pass, fixed "typos", then compiled it and got a working EXE file on the first try. That's impossible!
@fotofillholland3 жыл бұрын
I confused typing noises for ASMR video for a second there.
@schulmastery3 жыл бұрын
I emailed Dave the other day about the Windows Message Pump, and he replied within 2 hours. This channel is awesome!
@Hossimo3 жыл бұрын
Love the Steve Gibson call-out.
@emmanueloverrated2 жыл бұрын
You're a machine Dave. I've coding for 15 years and I can't still code that fast... impressive.
@TheNameOfJesus Жыл бұрын
Indeed, he is a machine. For a while I assumed he sped up the video, (there were some suspicious camera cuts, such as 22:30) but nope, he really does type code that fast. It looks impossible. I had to LOL several times. But he could have sped up his typing by 2% if he learned the keystroke for "delete previous word" rather than hitting the backspace character multiple times in a row.
@cyberwaves Жыл бұрын
I don't know but it looks pre recorded coding rather than live coding. The text cursor stops as he turns around to speak and also the blinking speed of that text cursor is fast (Like 2x - 3x or so). Also when he exit the nano editor, the directory is changed. I might be wrong on all these but yeah I noticed that.
@TheNameOfJesus Жыл бұрын
@@cyberwaves I hear ya. Maybe someone with OCD can slow down the video and analyze the keystrokes, comparing them with what actually appears on screen.
@JustAnotherBuckyLover Жыл бұрын
@@TheNameOfJesus Did you really just use OCD as a synonym for "doing something detailed"? See, THIS is why people get annoyed at people just throwing around legitimately destructive mental health issues like OCD and lifelong, disabling neurodevelopmental diagnoses for fun.
@TheNameOfJesus Жыл бұрын
@@JustAnotherBuckyLover You are absolutely right; using a real disease as a humorous metaphor for fun is a real cancer on society. Sorry.
@chrisjeppesen29933 жыл бұрын
I love to watch a master at work, machinist, electritians, carpet layers, roofers ect. Most of this is so far over my head. the peak of my programing was a basic program to calculate the length of a bicycle spoke, took me a week. I got clear through this and hold you in awe!
@billstrader43263 жыл бұрын
I also grew up in the '80s but I was in Louisiana. As you might expect, things were not great for a computer nerd during those days. I had my Commodore 64, banging out BASIC scripts, but I lacked resources or a mentor that could take me to the next level. My guidance counselors, who didn't understand computers, didn't encourage me to go down that path for a career. I literally thought you could be a scientist or work in a store. Retail is what I ended up doing for 10 years, though I was always building my own PCs. I finally broke into the IT support business and never looked back. Still can't code very well though. I wish I had focused on it more when I was young. So if you are a young person, or a parent of one, and your child shows an inclination to learn programming, by all means support them and try to encourage them to learn as much as they can.
@tinchote3 жыл бұрын
Argentina and TRS-80 (Models I and III) for me; not mine, for some mysterious reason they allowed me to use them in a retail shop. Luckily there was some documentation for the API calls for the TRS-DOS, and it had a debugger that allowed you to to step-by-step and basic disassembling. With that and a book on Z80 I ended up reverse-engineering the operating system when I was 14 years old. Good times.
@cyborgedude3 жыл бұрын
It's never too late I learned assymbly recently and still learning.
@DavesGarage3 жыл бұрын
Great to hear you finally found your calling!
@Nick-lx4fo3 жыл бұрын
@ozone o3 Java is a standard, but they're only teaching OOP
@Nick-lx4fo3 жыл бұрын
@ozone o3 Yes, schools and universities should teach C as a standard, even some ASM to cover lower topics
@Naudia933 жыл бұрын
From buying MS-DOS in a Retail Box, to watching the creation of the World’s Smallest Windows App, what a time to be alive!
@DavesGarage3 жыл бұрын
Ha... I feel rare and old because I put MS-DOS *into* the box. I worked on it!
@synthoelectro3 жыл бұрын
@@DavesGarage Thank you, because you made my Heretic gaming days, epic.
@TechLord793 жыл бұрын
Haha, ask me, I surely needn't tell - from 8-bit pixel graphics in 320x200 to software-rasterized vector line graphics to the first textured 3D after gouraud (looking at you, TIE Fighter) - to now graphics cards that do not only do global illumination in real-time but can also do raytracing, in real-time and hardware! The past 30+ years have been a hell of a ride! Though youngster would probably look at me like "old fart syndrome" XDDD
@bbowling49793 жыл бұрын
@@DavesGarage So it's all your fault? :). Seriously though thanks for all your great work over the years and helping make today possible!
@Pozi_Drive3 жыл бұрын
Getting MS-DOS 'for free' yet buying DR-DOS in the States (I live in Europe) was an adventure of its own. "Programmers paradise" was the nearest shop for me.... At 5000 miles distance.
@rby_3 жыл бұрын
I love the soothing piano music in the background
@DavesGarage3 жыл бұрын
Not too loud? Trying to make sure it's additive and not annoying!
@cromulence3 жыл бұрын
@@DavesGarage Nope, sounds well mixed to me!
@jackgerberuae3 жыл бұрын
Perfect backdrop, agree.
@valdisblack15413 жыл бұрын
@@DavesGarage maybe, 10% lower will be better
@jaigupta27703 жыл бұрын
@@valdisblack1541 Nah its perfect as it is right now.
@lxhon3 жыл бұрын
When I wrote some assembly code in the early 90s I wouldn't have imagined that one day I'd be seeing someone's screen with 753,488,695,296 bytes of free space next to a 7,292 bytes assembly code. Also: insane assembly coding skills displayed in the 21st century.
@tetraquark24023 жыл бұрын
It's amazing how far we've gone.
@mycelia_ow3 жыл бұрын
@@tetraquark2402 it's amazing how far we'll go 😱
@alanhat52522 жыл бұрын
@@tetraquark2402 amazing how much space we've wasted :-(
@Intelwinsbigly2 жыл бұрын
@@alanhat5252 this
@BigHeavyB2 жыл бұрын
@@alanhat5252 It's amazing how much space is out there!! Which is only in the dimensions that we know of... Mind boggling to think of how much is actually there just that we don't perceive it as being there as space! 🤯🤓
@RodCleaves5 ай бұрын
Started a computer science course in 1966. At BU it was simply called programming, we used Dartmouth Timeshare BASIC. In my career the most sophisticated language I ever used was Pascal, GUI programming scared me. Recently, after retirement, I bought a few Raspberry PIs and learned Python. When I was at Digital Equipment Corp I taught their machine code and assembly language. All this has no value unless I want to start a KZbin channel. I love your videos Dave, they bring back a lot of memories. BTW, my daughter was diagnosed with Autism but after years a tests it turned out to be CVI and I'm glad to say she's one of the few that has almost completely adapted out of the worst of it.
@funposting89123 жыл бұрын
I had to do two double-takes when I read the title, first thinking something must be wrong, as I was sure I’d seen this video a week ago, and then confirming I actually read the title correctly. I thought your previous video was unbelievable enough, I was shocked you could go so low in windows, having to manage so much yourself, so to turn around and do the same things in ASM, I’m speechless. It’s truly amazing to see an entire program written this way, it feels so alien to anything I’ve seen before (and in a fifth the time it takes me to get a 6502 spitting out data through a serial connector no less)! You never fail to amaze, best of all is that you explain things as you go in a way that even I can follow along with, that’s saying something.
@krabbenarmy84953 жыл бұрын
Im doing an education as Application Developer specialized on application development and im always impressed when someone writes in Assembly or still uses "old" languages. Keep it up!
@doccolorado3 жыл бұрын
Loved this! Brought back memories of my machine language work in 8080 in the mid-'70s. I couldn't afford an "OS" after building the IMSAI, so a friend gave me a copy of his Altair basic. I wrote a machine language program to search for the input instructions, as the IMSAI could be loaded from the front panel, find the input/output commands, and then I wrote a jump to my input/output to my devices (Altair basic was loaded with my homemade "Tarbell" tape interface). When I finally acquired an 'assembler' for the 8080 I thought I had died and gone to heaven! The best program I ever wrote on the IMSAI/8080 was a "BAUDOT to ASCII" converter so I could use ASCII on ham radio RTTY. (Today ASCII is ok on ham radio, but not back then! ) - And to think we had 1K boards back then plugged into our S-100 bus! Fun Stuff! BTW< who else do you know who started their career with Western Union as a teletype tech and finished (retired) with Cisco Systems !!
@philnelson23642 жыл бұрын
How I wanted an altair in 1975. Looked like those movie computers till I discovered a "computer store" by accident. The owner convinced me to get a SWTPC6800 with two buttons ON-OFF / RESET instead of flipping switches just to read a keyboard, to type code to read a cassette tape program etc. The swtpc6800 used a "BIOS" called MIKBUG which had code to read a serial keyboard, display to a serial monitor, load and save a program from and to a serial cassette tape machine, enter an address and type machine code in hex. I thought "who needs blisters on their fingers" suffered by many an altair user.
@lewisv.36753 жыл бұрын
After the Tandy TRS-80 Color II (Trash-80) in 1985, Finally got a 386SX with DOS 5 in the mid-90s. Moved on to DOS 6.22. And then to Linux and FreeBSD in 1999. Dave, I forgive you for working for micro$0ft. And I greatly appreciate your current contributions to the free world. I've worked in IT support, Data Centers, and field work for the last 21 years. Cheers!
@JDin17603PA2 жыл бұрын
Oh the memories you brought back to this 73 yr old nerd. Started with assembler cutting my eye teeth with MASM. Enjoy your channel immensely Thanks Dave for another walk down memory lane.
@Lzanocco3 жыл бұрын
I’m to old to code like Dave...I’d be happy to be able to type half as fast. Great channel Dave...don’t stop.
@xXFastD3athXx3 жыл бұрын
There's nothing more satisfying than building something from scratch and seeing it work! Thanks Dave!
@dougalplummer4021 Жыл бұрын
You make that look so easy, the flood of memories from my windows 2.X days reminded me that nothing was easy back then. You had to really work for performance. Great demonstration of an ancient art, definitely a "Bob Ross" moment.
@stargazersfield2 жыл бұрын
Just found this channel. I have to say this now in my top 5 favorite channels to view. I see a flight full of downloaded Dave's videos. Well done sir. Glad to see we old nerds are still makin' it happen. This is also a great stroll down memory lane to coding in the 80's. Cheers
@dinohunter71763 жыл бұрын
The speed and precision of writing the words is impressive, also about the asm code I'm glad I found this channel. Thanks.
@DevilbyMoonlight3 жыл бұрын
this takes me way back.. I learned 68k assembly language to a good standard using a machine code monitors back in the day, I found the motorola cpu is a real joy to work with compared to the 6510 from the c64, there was no internet to speak of back then, interaction with others was done via voice over the phone or in a message base on a BBS, back then I ran a 3 node BBS which contained amongst other things a pretty active coding conference, it was the Seka assembler, that I used for a few years before DevPac came out.. comparing Seka to DevPac is like comparing the original vi to nano, but it was using Seka where I leaned concepts such as self modifying code and can remember how blown away I was at the time when I was able to see the changes while stepping through the code as it executed... good times fond memories
@ckohen3 жыл бұрын
I absolutely love these videos. I know there's an infinitesimally small chance that what I learned from this video will be used directly, but its still great knowledge. Learning low level information on how to interact with the native APIs is something you don't see very often, and I'm enjoying it a ton. I will admit, these videos strike a perfect balance between description and achieving an outcome, while I don't always understand perfectly whats going on, I understand enough of it to make sense of what I don't and you reach the goal in 1 video! That's impressive. Anyways, see you next time!
@stonedhackerman3 жыл бұрын
it's rare to see such quality content thisese days, and it's even more awesome he speaks about things we today think of as the dark magic of compilers and frameworks and dont care about. keep this awesome content coming
@Sgt_Bill_T_Co Жыл бұрын
I started with the 8080a - in machine language and can still remember most of the codes! 40-7F were reg moves ,b,c,d,e,h,l,m,a etc 21 00 00 (ld hl,0) and a whole bunch of others. Working for IBM in the UK I wrote DOS device drivers for various Production line control cards. and a huge amount of assembly code. Your video took me back more than a few years!
@ApteraEV20242 жыл бұрын
Found you Dave!! Thanks for Sharing! 47yo here, I tried to code as ä teen.... Star Trek game in Basic.. it had an error that I never found... I want to go back and try again! Thanks again for sharing your history & example in ASM coding. You really inspire me! I've been in the military for the past 26yrs, and was isolated. Now retired, out in the wild, ready to pursue my passions!
@peregrinesantos74833 жыл бұрын
Assembly is still the language I love. I am now at a point I am trying to learn higher level language. I use my programs to run motors in a factory.
@science_trip3 жыл бұрын
also for me ❤️
@littlegoobie3 жыл бұрын
I remember a pretty "big" collection of assembly widgets that didn't do much but were very amusing. The zip was found on most software repositories and it was out there to show what you could do with some seriously small bits of code. This was right before the big software bloat era.
@NormAusSmith3 жыл бұрын
Thanks Dave, another great video. I spent some of my early career developing in IBM 360/370 Assembly so it was very interesting for me to see the comparison.
@DavesGarage3 жыл бұрын
Cool! I have a video on the channel of an IBM 360 in operation!
@IBITZEE3 жыл бұрын
@@DavesGarage link please...
@DaimlerSleeveValve3 жыл бұрын
I never managed to write 360 assembler code. The only reference source available to me (the IBM manual) carefully avoided any reference to I/O. However it did let me figure out a bit of what had happened in a core dump.
@michaelbauers88003 жыл бұрын
I have been a programming since this guy the 1970s ( I was maybe 14 when I first wrote some code,) and watching this guy bang out assembler code like he was typing an email is humbling :)
@johnadams17252 жыл бұрын
Hello Dave, I thought I 'd better pay my dues and thank you for your generous offerings. I am an old electronics enthusiast from back in the thermionics days. My first computer was a CoCo64. I quickly discovered that Basic did not get me very far so Assembler was the answer. I loved it. I have not programmed since about 1996 and that was on the 486. I am really pleased to have discovered your clips and am inclined to dust off the old assembler again and see where it can take me in this jungle of languages. Thanks again.
@le90382 жыл бұрын
It is actually scary to see this video and think "oh, looks like he is just speeding it up a bit." But then you look at the webcam and realize he is really typing this fast. This man would dominate typeracer
@BlownMacTruck2 жыл бұрын
It’s fast but it’s hardly uncommon.
@judgegroovyman2 жыл бұрын
13:42 Based on the speed of the video here it looks like most of the video is actually sped up a bit but it’s all no less impressive and this video and channel are awesome.
@achtsekundenfurz78762 жыл бұрын
I too think that it's sped up. The audio filter gives the keyboard an incredibly cheap sound. Dave is most probably a "real kayboard" user. No cheap membrane KBs, but a mechanical ones, or at least one with high-end membrane switches. Still impressive, tho.
@danytoob2 жыл бұрын
@@achtsekundenfurz7876 It's real time. If you look at the RGB lighting in the background and compare it's speed during typing with Dave's explanations the light motion is the same. Snappy digit man.
@carriersignal2 жыл бұрын
@@achtsekundenfurz7876 It is sped up. I love Dave's videos, and he is brilliant and quick I'm certain, but the typing is in fact too fast to be realistic if you look at it. Besides the proof is at 16:56 for anyone who doubts this. At 17:03 it resumes warp drive. He probably put that in there to see if anyone would catch it! I give the guy full props. I'll bet he was good with practical jokes around the office in his day. His videos are great!
@cowasakiElectronics3 жыл бұрын
Its quite funny what you actually remember. We are of a similar age and I wrote assembly language for the Amstrad CPC and Acorn computers. I still remember that calling &BB5A prints the character who's code is in the accumulator BUT I can't remember what I had for breakfast .........
@jeremiahlyleseditor4373 жыл бұрын
Call 0a7fH Prints the character code in the accumulator on the Trs-80 Models I, II, III & IV. Maybe their color computer as well but that one I never used.
@cowasakiElectronics3 жыл бұрын
@@jeremiahlyleseditor437 The problem with modern computers is that you can't know it all whereas with all machines you could know most of it
@KoMaHu3aM3 жыл бұрын
keeping those algorithms happy...
@josephrobertson5090 Жыл бұрын
I love you videos Dave. I was born in 2001 and I've always been interested in computers and how they work, but so much of how computers really work is abstracted away and hidden from us now a days. I think this leaves my generation of software developers with a more shallow understanding of what we're actually doing. Creating a windows application in assembly that draws a window was something I didn't think was possible but have always been curious about. This video has scratched an itch I've had for an extremely long time. Thank you!
@shanefeather-lopez59353 жыл бұрын
What I love about this channel is Dave's candidness about some of his inter-personal skills being somewhat sub-par and how he has managed to still succeed while some of us are repeatedly told it'll hold us back. I'm prone to making badly-timed interjections that (although honourable and honest) usually end up being about as welcome as a fart in an elevator to those who haven't taken a moment to get to know me. I'm also a big fan of his obvious thirst for knowledge when it comes to anything engineering based - my grandfather was a classic American car restorer here in the UK in his retirement and as a kid I was mesmerised with his metal-working skills. I am addicted to Dave's anecdotes :D
@DavesGarage3 жыл бұрын
Thanks... oops, sorry, didn't mean to interrupt :-)
@helter2K103 жыл бұрын
Just found your channel Dave - this is gold! Love it - keep up the great work :) cheers from Brisbane, Australia
@rubenschaer9603 жыл бұрын
Assembly was still part of my apprenticeship in 2005, and we weren't allowed to progress to C until we were reasonably adept at writing simple programs for the Z80 and C51. Unfortunately, I never got to use ASM again. This Video might change that :)
@paulveitch3 жыл бұрын
I did computer science at 17 and we spent a couple of months doing hand written binary arithmetic, not sure I ever used it, but gave me an appreciation of what's actually happening
@mmaranta7853 жыл бұрын
I used ASM on 8048, 8051 and then PIC micros for decades before learning C.
@frjustinhewlett70673 жыл бұрын
I love Dave's observation that xor-ing out the contents of the register is "a tad more efficient" than writing zero to it!
@shalinpather41983 жыл бұрын
It's a recommended practice in the x86 programming manuals from Intel and AMD: the register should be zero-initialised through the XOR operation with itself, rather than moving a zero into the register.
@ruperttoncic99263 жыл бұрын
This cuts out the memory fetch cycle(s) on all processors. Every little helps...
@shalinpather41983 жыл бұрын
@@ruperttoncic9926 Yup, optimisation is a really powerful practice that's often overlooked these days. 8088 Corruption and 8088 Domination are enough proof of this.
@ruperttoncic99263 жыл бұрын
@@shalinpather4198Z80 was the way forward! Back in the day... Wrote half of Space Invaders in less than 2K - I say half as I never had the time to finish it!
@shalinpather41983 жыл бұрын
@@ruperttoncic9926 Yup, sounds pretty cool! Less than 2K today sounds like a godly achievement.
@lupinthird2 жыл бұрын
I just want to say how happy I am that I stumbled onto Dave's Garage. His friendly cool persona is a breath of fresh air from a lot of other over-the-top YT personalities. I just like to listen to his videos while I'm working on coding. It's like having a good friend in the room at all times. Thanks for everything you do, Dave, I appreciate your content more than you will ever know. Keep up the good work!
@looneyburgmusic3 жыл бұрын
Watching you program brought back memories of banging away at my keyboard all night long coding ASM for the 6502 and 8088. The late 70's - 80's were such an amazing time to be obsessed with computers, every day brought something new and wonderful to learn and play around with :-)
@chrismcdonnell74483 жыл бұрын
When I was in high school in the early 90s, one of my friends was writing programs in assembly. I thought I was nerdy until he started doing this. LOL. He would have gone far in life if he hadn't self deleted 2 days before graduation. He was a good friend and I still think about him to this day 30 years later.
@964tractorboy3 жыл бұрын
I didn't understand until the end. That's tough to deal with; at any age.
@randominternetuser51233 жыл бұрын
Damn.
@grantcivyt3 жыл бұрын
What was his name?
@964tractorboy3 жыл бұрын
I would respectfully suggest that remains private.
@rockrl983 жыл бұрын
Big oof, just the way this world is.
@calmvolatility27873 жыл бұрын
Lol that background music is wonderful! Not even being sarcastic, it’s like “just relax as we do something that will cause most people nothing but misery and pain”
@Damaniel33 жыл бұрын
Yep - I don't normally listen to music while I code because I get easily distracted by most kinds of music, but I'd totally code to that.
@gnudarve3 жыл бұрын
Two victories for you today Dave, that's the smallest windows app I've ever seen and the fastest I've ever hit Like and Subscribe. Congrats from an old C programmer who was also forged in the glorious and brutal 80s. :)
@jasonrubik Жыл бұрын
Damn Dave , i've been watching you for years, but I'm only just now watching this one, and when you busted out the 1959 Feynman reference, I almost lost my shit ! Thanks for being so awesome !
@robertgagne88922 жыл бұрын
I Purchased a copy of MASM back in the early 80's, when software still came with BOUND MANUALS. I'll never forget just how much fun it was learning not only how to program in that language, but finally understanding just how Pascal, BASIC and C could be linked to your assembly language functions, and how the different call mechanisms worked, parameter passing, etc. I think my time programming in assembler was some of the most important in my programming career. I highly recommend it to anyone interested in how computers actually WORK, rather than how to make cool programs! Being 56 now, those days are far behind me, but I still cherish them! What an adventure it was :-}
@StereoBucket3 жыл бұрын
I remember when we were writing some simple assembly programs and for some reason we were getting segfaults. We'd do everything according to the lab steps but when the program reached printf call, it'd just crash. We noticed if we just decide to push something else onto the stack it'd work, and if we pushed 1 more it wouldn't work, and 1 more push and it would work again. At some point I googled the instruction the program was segfaulting on and saw something about "stack alignment" and put two and two together and realized what was going on. Anyway, professor did not anticipate that the stack alignment would become an issue. There were some instructions inside that required 16 byte alignment, and with our 3 pushes to stack, we were just 1 quadword short of that. Perhaps in older systems the implementation was different.
@carlfranz68052 жыл бұрын
Once upon a time there was a company (I believe) called 'Base Two' or maybe 'Phase Two' (I still have the disks around here somewhere). They produced an enormous library of x86 assembly macros which were really amazing, wide ranging, and simple to integrate into your own code. They were so well laid out that it actually helped with code design. I really miss coding with those. Sigh. Made x86 assembly coding fun instead of a slog.
@lepidoptera9337 Жыл бұрын
And they went out of business. The end. Well, yeah, I agree, though. A well thought out assembly library is a great tool. You also have a point about the slog. "The slog" has been created, in my opinion, by two effects: everything that is server centric requires an incredible amount of plumbing over leaky pipes (many of which contain mostly sewage and deliberately toxic substances) and everybody wants to log the movements of the little toes of the user because they are worth a billion dollars (or so the advertising industry claims). So the same business process that once could be done with 16k of assembly on an eight bit CPU now requires a GByte of frontend, middleware and backend code. Use OOP in addition and you are up to 10GBytes. :-)
@benk61533 жыл бұрын
I had no clue you wrote task manager, you’re now officially my hero
@billyd1045 Жыл бұрын
I wish I took this path back in the 80's. Computer programming has always intrigued me. Dave is a classic! He explains it so well. I love his humor. Congrats on your achievements sir!
@herrbonk3635 Жыл бұрын
Explains it so well?? I had to program the Windows API at the assembly level for a couple of years (for a compiler I was designing). I got it working somehow, but never understood most of the API abstractions. This does not help either, it just pore salt in the wound for me.
@escapist818 Жыл бұрын
As a former developer who has been a hairdresser for the past 19 years, your videos have helped inspire me to re-learn how to code just for fun. Your content is very much appreciated by me!
@andrewwilson62403 жыл бұрын
Mentioning Steve Gibson was genius! Cue the whole "security now" listenership coming over and subscribing!
@nickwallette62013 жыл бұрын
Steve Gibson's biggest fan is Steve Gibson. ;-)
@mathewjones21643 жыл бұрын
I still don't know whats happening but i can't stop watching
@seebaastian3 жыл бұрын
That is your actual typing speed? It's amazing. I didn't knew you could load libraries from assembly. Thank you for your very instructive videos ;)
@do0nv2 жыл бұрын
I'm pretty sure it's sped up
@alanhat52522 жыл бұрын
If a computer is doing it it's doing it in machine code which translates directly into Assembly language so yes, you can call into DLLs from Assembly language. The actual code for doing it is in the _include_ files listed at the beginning. They're human-readable so you can go see what's going on if you're interested.
@MrStevenDeer3 жыл бұрын
I love this, I was a spaggetti basic nerd back in the day and these videos bring back so many memories of life before mice
@jovanfilipovic3 жыл бұрын
I love assembly . Started back in 1996 for 8-bit 6502 but never had time to go to the x86. Now im catching up. Cake work.... What I love the most is - SPEEEED, full hardver control, SMALL and apps. John from Serbia
@vince77Z3 жыл бұрын
I never clicked a video faster in my life
@chronos11573 жыл бұрын
28:38 My very first thought was "I need to head over to GRC and see what Steve's app sizes are."
@starlite5283 жыл бұрын
I LOL'ed at the SG quip, and I was beginning to worry I might be the only one to get it having scrolled this far down in the comments
@apptouchtechnologies37223 жыл бұрын
@@starlite528 I haven't even watched the video, saw the title and said hmmm I haven't checked out GRC in prob a decade or longer.
@decibel_tastic28693 жыл бұрын
I'm not a Coder, although I do recall entering machine code into a Motorola microcontroller half a century ago. What fascinates me is how steeped Dave is in Microsoftness. He uses 'dll' as if it were the very bread of life. He provides an insight into the MS religion, the opaqueness, the special handshakes and implicit nods. How somehow, we should all know - 'this is the way'.
@kenbrady42754 ай бұрын
I also wrote a great deal of assembly and C for x86 including real-time schedulers (pseudo OS) for several systems. I also had to do some Z80 patching where we jumped to the end, patched in some instructions, and jumped back. Watching you do this was like stepping back in time. I enjoyed it immensely.
@uplinktruck Жыл бұрын
That was amazing. Thank you for the trip back in time. I cut my teeth on machine and assembler coding 6502's and 8085's. There are probably some of those still running traffic lights in smaller locals around the nation. I think you've forgotten more about coding then I ever learned. Respect!
@omerkaragoz3 жыл бұрын
I thought the video is sped up when he was coding. But no, it is in real-time. OMG :^)
@andersrimmer66753 жыл бұрын
Suggestion for next video: “Learn how to code like Dave”- aka “How I learned to stop worrying about dependencies and type at 300 bauds!” Seriously, love the throwbacks to my own programming adolescence. Thank you.
@antesmolcic43542 жыл бұрын
Still can't believe he types this fast!
@cmoxiv2 жыл бұрын
I like how calm and collected he is. Complete in tune with his emotions. I assume he had done several rehearsals but it still amazes me how he codes straight forward.
@do0nv2 жыл бұрын
@@antesmolcic4354 It's speed up
@gblargg2 жыл бұрын
@@do0nv I don't think it's sped up. Watch 12:45, with an unbroken shot of him talking, coding, then talking.
@stevojohn3 жыл бұрын
I used to love that Turbo Pascal allowed inline assembly - used it when writing a texture mapping routine back in the day.
@1971merlin3 жыл бұрын
And that you can do 32 bit asm inline by prefixing each instruction with db 066h. Joys!!
@michaelmeichtry3163 жыл бұрын
Same here - I used Turbo Pascal inline assembly to access and display file/directory info., and perform other low-level functions. Borland was at its peak during those times.
@christopherknee57563 жыл бұрын
"Turbo Pascal" - I haven't heard that spoken in years! I loved my Turbo Pascal. Only generated ___.com files that were minimum 10 K long, but the Integrated Development Environment was so clean. Easy to run and and then compile.
@michaelmeichtry3163 жыл бұрын
@@christopherknee5756 In college all I needed to write code was contained on a 3-1/2 inch floppy 💾 disk, which contained the entire Turbo Pascal Compiler and my source code/output files. No need for a Terabyte hard drive back in those simpler times! Also used the inline assembly feature to interact with the DOS-based file system and perform tricks like displaying the time in the program's execution.
@garyrobinson89912 жыл бұрын
Mesmerizing….! Nice that I understand the code from what I used in college several decades ago ! Many thanks, Dave !
@alwynbressanelli78503 жыл бұрын
Wow! A double bonus. Finding this channel of Dave's and the comment posted by Steve Gibson. Thank you both for your insightful commentary and incisive programming. Sirs, I salute you!
@Ho1yhe113 жыл бұрын
Dave needs to make an episode of himself porting reversi from windows 1.0 to windows 11 just so we all can see his thought process in such a task
@robinpage2730 Жыл бұрын
Dave needs to make a video of himself getting the assembly dump from a complete Ubuntu Linux distro on different architectures. I'd love to see what the filesystem looks like in various assembly architectures
@Borsting893 жыл бұрын
The wild wild west in coding inspired from a time way back when programmers and CPU`s spoke the same language.
@techrazor32803 жыл бұрын
Those were the days,,,,, 🙄
@wasd____3 жыл бұрын
I did my Master's in computer science, graduating in 2020, and I had to do some pretty extensive assembly language programming for both of the computer architecture classes I had to take. The plot twist, though: neither of them was x86 assembly. One was a toy processor that only exists as a virtual machine, and the other was RISC V. It was more to understand how CPUs work and what your C (or whatever) code ultimately becomes, rather than because we were really expected to program assembly in the real world.
@LanceMcCarthy3 жыл бұрын
Human words == assembly, Gobblygook == machine language. Great way to help anyone distinguish the difference and look smart to thier friends.
@TheNewFaceOfHSP3 жыл бұрын
I just bought a mug and I don't even drink coffee anymore (too much in my lifetime, I'm allergic to caffeine now, developer life ain't easy!). I just love the fact that Dave isn't in it for money but "just fame", and is just providing merch to give the profits away. That's reason enough to buy it. I hope there'll be more goodies.
@danielpalasek90313 жыл бұрын
this ... is ... so ... fantastically ... cool !!! I'm so old-school assembly my registers don't start with an "E" (assembly programmers will get this) Dave, I will watch you live write assembly any time. It's surprisingly zen watching this.
@SirFancyBacon3 жыл бұрын
Dave, Just wanted to say, thank you for donating to Autism research; my brother and several close friends of mine are autistic and i cannot thank you enough. Also, thanks for the entertainment!
@bdwilcox3 жыл бұрын
Thank you for inventing the scientific method for improving pork products.
@8bitoverclocking9323 жыл бұрын
Me: I'm gonna learn Vim because I hear I can be faster and more efficient than if I use Nano Dave: Watch me do circles around Vim users with my Nano coding
@miss_gray3 жыл бұрын
I must say I really love seeing you use GNU nano! So many people tout the usefulness of editors like Vi/Vim etc but to be honest, sometimes the simplest of tools are the best!
@GothAlice3 жыл бұрын
Hurts me when he doesn't have syntax coloring enabled, though. Nano is much better than most people give it credit for.
@someindianguy_993 жыл бұрын
@@GothAlice I agree.
@m4dizzle2 жыл бұрын
When you absolutely KNOW assembly... nice! I had a semester on it back in school, but that was a looong time ago and I never worked in it commercially. Love these, keep it up! :)
@emasolie41353 ай бұрын
I don't understand anything you do but I enjoy watching because you clearly are a superior being.
@juvenal12283 жыл бұрын
A significant portion of the 4k file size is just image section alignment. If you use a linker which allows you to cut that out, you can get your program down to 1,640 bytes without changing a single byte of the source file. Here is the commands I used: \masm32\bin\ml.exe /c HelloAssembly.asm \masm32\bin\polink.exe /SUBSYSTEM:WINDOWS /ALIGN:4 HelloAssembly.obj Of that 1,640 bytes, 456 are the DOS Header, DOS stub, NT Headers, and COFF section headers. You can shrink these, but its not as trivial as shrinking the section alignment.
@CoDEmanX472 жыл бұрын
Can you share more insight about shrinking these headers?
@achtsekundenfurz78762 жыл бұрын
You could . . . -- make the DOS program just quit without a message if the exe is run on a DOS system -- remove COFF info (it's debug data) -- initialize ALL data (if the uninitialized data are only a few bytes, the extra distinction might use more bytes than simply setting those data to 00000000) -- use test eax,eax instead of cmp eax,0 (save 3 bytes, because the 0 is a 32-bit constant in the code segment) -- call standard APIs via ordinal where standardized: some APIs have long names, but the ordinals are 16-bit numbers IIRC, so instead of referencing a string of ~15 bytes, you provide a single word (or DWORD at worst) number to select te subroutine you want (not sure if that optimization is 100% legal tho) And there are definitely some smaller Windows exes; there's a 4k demoscene for contemporary Windows and even a *1k* competition on many demoparties. BUT those are hardly _full featured_ Windows apps. They merely roll a gfx demo and quit. Still VERY impressive. Google _youtube rgba elevated_ for a 4k compo winner.
@harleyspeedthrust401311 күн бұрын
I managed to get a PE down to 756 bytes by doing some dirty stuff. I'm not as familiar with the PE format now as I was then but I vaguely remember making sections overlap and trying to make alignments as small as possible. It wasn't a very impressive or useful program though - it only called a function in ntdll to blue screen the system.
@agustinjauregui52603 жыл бұрын
I loved learning assembly in my CS courses. It’s great to see that you could program a Windows application using assembly even in the modern day
@justkidding72643 жыл бұрын
hi, I like the circuits related topic and how to turn them into assembly. I think intel give too much choices in the x86. I have to much way to finish the same task, but I like a more compact size assembly code with hardware transactions enabled, but now I'm doing other things. watching u code is also a good thing.😎
@NickHermans3 жыл бұрын
"are you sitting comfortably?" *Corrects contortionist position slightly*
@danielsolomon62277 ай бұрын
I worked with MASM assembly back in 2013. I got really good at it too, but I don't remember a single command today. Dave, you're amazing.
@alexanderatanasov28003 жыл бұрын
love it, the nano editor use. back then when i used windows nt the task manager was probably the only application that behaved as it should.
@QuicksilverSG2 жыл бұрын
The most edifying aspect of this exercise is the way Dave shows you how to diligently document your source code: one line at a time, code on the left, comments on the right. C++ programmers, take heed, you may not have a convenient comment tab to neatly line up your comments in a column, but you can still use the right side of your text page to document your code.
@matthewconnor68173 жыл бұрын
As soon as I saw ‘A9’ instantly thought “LDA immediate mode” - if you’re of a certain age, 6502 is burnt into your synapses
@forkless3 жыл бұрын
...and by extension 6510, that $D021 address as well even if you don't speak ML/assembler.
@Jeff-xy7fv3 жыл бұрын
Yep! It's burnt into mine. Has been since I was 12 years old and playing around with a C64.
@wafikiri_3 жыл бұрын
I'm of that certain age, but 6502 is not burnt into my synapses. Why? Because I used Motorola 6802, similar but with some important differences (one of them made me waste two weeks trying to find a bug in the first and only program I wrote for 6502... that bug would not be such in 6802).
@nunyabusiness37103 жыл бұрын
@@Jeff-xy7fv The owner's manual for that thing is legendary. Every bit, nibble and byte accounted for in exquisite detail. The alternate characters on the keyboard, the ability to obfuscate BASIC code by changing font colors to match the background or place special backspace characters in the code. I still have mine, including my log book containing the tape counters as to where my apps are. The C64 was an incredible computer and still to this day my favorite computer EVER. Only a Raspberry Pi is as much fun to own and use.
@fredericmokren97373 жыл бұрын
"'l'll shell out" Haven't heard anyone use that phrase is loooong time.
@clonkex3 жыл бұрын
I honestly had no clue what it meant (other than "cough up the money") until he quit nano, and now I can guess at the meaning.
@MurrayHurps Жыл бұрын
This brought back so many great memories from the Ad Muncher days (14 years of maintaining pure win32asm code) - Dave you’ve made my day and I love your work, thank you, and let me know if you’re ever in Sydney for a beer.
@cipherxen23 жыл бұрын
With this channel I found the gold mine. For other programming videos I've created playlist "Prog" but for this I've created a separate playlist called "Real Engineering Prog".
@Borsting893 жыл бұрын
NO DISLIKES YET? I guess all the Vim users are still fast asleep. Let`s give Nano some love, guys!
@romanhredil37993 жыл бұрын
There is 1 dislike already which has probably been cast by -Emacs users- Python programmers accusing him of witchcraft known as Assembly I use Vim btw
@_xzvf25573 жыл бұрын
*raging*
@Borsting893 жыл бұрын
@@romanhredil3799 Haha, you madman! But that is in fact very true!
@TomStorey963 жыл бұрын
I'm a Python programmer but also do plenty of assembly for other things. We aren't all stuck 3 degrees north of the hardware. 🙂
@ncot_tech3 жыл бұрын
There’s two now, a DOS programmer must have stopped by and noticed the include lines dragging in several K of library code.
@joell93193 жыл бұрын
As a frontend web developer, watching this makes me want to go home and rethink my life.
@amciaapple16543 жыл бұрын
I know what you mean. Having coded in ASM half of my life and experiencing the freedom, performance and lack of restrictions, after several minutes of of developing a web frontend I start swearing, cursing profiously and pounding my fist on the keyboard. Just yesterday, I became livid when I was writing a simple HTML5 upload widget, when it turned out that it is possible to select files or folders and upload them ...but it is NOT POSSIBLE to select BOTH files and folders and upload them. Who makes this shit up!
@verica4b3 жыл бұрын
same. i'm still at university so i have no job yet but that really makes me think if IT it the thing for me. dont get me wrong i dont want to do anything else... but man... my brain isnt smart enough and its a shame
@__vyre6 ай бұрын
@@amciaapple1654The realest thing I’ve read in a while, although I do most of my programming in C rather than ASM.
@robertcase29613 жыл бұрын
It was interesting to see you use "xor eax, eax" to zero out the register. Back when 16-bit ruled the world, compilers would use "sub ax, ax" to accomplish the same thing. I'd see code snippets from Dr. Watson, usually in conjunction with a "NULL pointer assignment", show code snippets like that. Both do the same thing, but I wonder if compilers today still do it that way. Good stuff! :-)
@JamesRichardson-we9fq Жыл бұрын
In the IBM/360 mainframe "Principles of Operation," under the XOR instructions (XR between registers, X between a register and an indexed fullword (32 bits on a multiple of 4 boundary), and XC between character strings up to 256 bytes long), a hint was given suggesting how to swap the values of two character strings without having an intermediate memory location. Rather than coding: MVC TEMPSTRG,STRINGA STRINGA=AAA, STRINGB=BBB, TEMPSTRG=AAA MVC STRINGA,STRINGB STRINGA=BBB, STRINGB=BBB, TEMPSTRG=AAA MVC STRINGB,TEMPSTRG STRINGA=BBB, STRINGB=AAA, TEMPSTRG=AAA ... STRINGA DS CL3 INITIAL VALUE = AAA STRINGB DS CL3 INITIAL VALUE = BBB TEMPSTRG DS CL3 we can code the following: XC STRINGA,STRINGB STRINGA=(AAA XOR BBB), STRINGB=BBB XC STRINGB,STRINGA STRINGA=(AAA XOR BBB), STRINGB=(BBB XOR (AAA XOR BBB))=AAA XC STRINGA,STRINGB STRINGA=((AAA XOR BBB) XOR AAA)=BBB, STRINGB=AAA STRINGA DS CL3 INITIAL VALUE = AAA STRINGB DS CL3 INITIAL VALUE = BBB which can save allocating the TEMPSTRG variable, especially when STRINGA and STRINGB are 256 bytes long.
@jimdiroffii Жыл бұрын
I got MASM32 installed, wrote the application and successfully assembled it! Thank you for the great tutorial and explanations.
@TomAtkinson3 жыл бұрын
Finally I get to see someone write some assembly code!! That was totally sweeeeeeet!!!! That was hardcore. 12 arguments in precisely the right order. Interesting XOR trick that is over the top. Have you seen MOVfuscator compiler? The compiler that only outputs MOVs is kinda the opposite.