Dave I'm sure it's only a matter of time until you get a Bill interview for your channel. Watching you both remember your MS days and ask each other questions would be amazing.
@@hillaryclinton2415 Yeah, why would any viewer of a channel run by an ex-Microsoft employee who spends a lot of time on talking about Microsoft during the 1980s and 1990s want to see an interview with Bill Gates, right? 🤣
Love that you provide so much background and history behind these stories. These videos are not only entertaining but very informative. Keep up the excellent work Dave! We appreciate all your hard work in order to bring us awesome content. Thank you!
@@masternobody1896it's basically just assembly language. It is sort of human readable but directly translatable to machine instructions and thus binary orders for the CPU.
Dave, you left out the best part of the paper tape BASIC demonstration story, in their haste Bill and Paul forgot they would need a loader, so Paul at the last minute on the fly wrote the loader, just prior to the demonstration of their 8k BASIC software that day.
I've been writing software since about 1967, including a few easter eggs myself, but I did not know that there was a practical reason for them. Thank you so much!
5:00 This is how Satoru Iwata got the contract for HAL to work on the original Golf on Famicom, Nintendo wanted the full 18 holes to be included, but no one else was willing to try to get that to fit on the Famicom cartridge's ROM. Iwata "rather recklessly, said 'I’ll do it!'" and ended up having to write the compression to get it to fit from scratch.
Great video as usual. Your mention of Ohio Scientific brought back some nostalgic memories. I worked what seemed like many hours at $2.38/hr to save up for my Challenger 1P. I made my parents quite aware of the progress of my savings every week. One night they were late coming home from work, I had a gut feeling about what might be the cause of their delay. My guess was right. About 10 minutes after coming home, dad told me he "forgot" something in the car and sent me out for it. My dad said all he saw was a blur running from the driveway to the front door. I was elated! My first computer with 4K of RAM.
Oh!!! You remember the Woz's Integer Basic!!! I remember disassembling that. It's _beautiful_ code! Here is a deep question. There was, for a very brief time, an Apple II program called "The Spreadsheet." It was quietly replaced with something else not as good (I'm trying to remember back to 1979, folks) by sticking a new label over the old one. VisiCalc had just come out. I speculated at the time that Woz had written a spreadsheet that was quietly suppressed so as not to compete with VisiCalc. I'm wondering if anybody has a more vivid memory of this.
Dave Thanks ever so much! Started my coding career in 1974 on a IBM 1620 Mainframe then Migrated to Wang 2200 and our team of 3 built our own version of Lunar lander that was ported to one of the labs at Nasa.
Yes, I remember garbage collect. The garbage collect on the original Commodore Basic would sometimes take a long time. Maybe 30 seconds on a big program. The method of garbage collection was doing lots of searching and copying to do the collection. I believe John Feagens and Ric Weiland worked out a new method with pointers embedded in the garbage to speed up the process. I also remember another bug in the original basic called "the cursor go away bug". Users doing a lot of screen editing on the PET computer would see this bug about once every few weeks. Users were very angry because the PET would lockup (the cursor would stop blinking) and the user would loose the basic program they were working on. We had to rig a PET up to do a lot of screen editing as fast as we could to get this bug to show up so we could track it down. It turned out Microsoft Basic was doing something bad with the stack. If an interrupt happed when the Basic screwed up the stack you ended up out in the weeds and the PET locked up. The screen editing was tied to the cursor blinking and would get you there. John Feagens found the code that was messing with the stack and fixed it. John's patch even fit into the same number of bytes as the original code.
It was incorrectly using a static value of 4 for the length instead of the actual length of a string when garbage collecting. The fix was a very simple one.
I never experienced buggy (trash computer) version, but on C64 garbage collection can take 30 seconds or more during which time the computer will *seem* to be broken. I don't know when Commodore fixed it, but on the C128 every string has an extra 2-bytes allocated as a 'back pointer'. Even though much more RAM is available for strings, the new garbage collection rarely takes more than 1 second ... but users may still consider it a bug when an otherwise responsive program suddenly pauses for no apparent reason (even if only a second).
Easter eggs like this have been used in many other software projects, and real life. For example, there are maps with fictional streets and cities, as an easy way to catch copying from other companies.
Except in the case of raw dictionaries and maps they're not copyrighted as it's collections of facts. Images ofc are excluded, but I think this map/dictionary practice will die out.
There was at least one case where somebody names their business after the fake place name that was already on the map. A second map company dutifully put it on their new map and were sued by the first map company. The first map company lost. Note: I read this somewhere, there may be some inaccuracies.
Its not only done in software, but in hardware was well. Easter eggs have been used in circuit traces for instance, which could easily prove hardware was xrayed and copied directly by the presence electrically nonfunctional artwork of circuit traces.
Radio Shack/Tandy had it's own easter egg in TRS-DOS... if you held down "R" & "V" keys while the floppy booted, it popped up the creator's name Randy Cook. When it became public, corporate changed "Randy Cook" to "Tandy Corp" in later revisions. (And being from Detroit, we LOVED "Friendly Giant" being broadcast from Windsor, Ontario!)
The joy of hearing you talk about the UK1010 fills my soul. The garbage collection bug was also on the UK101. Another UK101 bug was a bit set on the MS error codes so syntax error that should have shown as SN Error read S? Error. A syntax error in itself. Garbage collection would kick in when the ever growing stack of variable assignments grew in memory until it hit the program memory and the garbage collection would have to cleaned it up to free the ram. The secret was to define the variables and then they would stay put. Great video!
(10:04) I had an Ohio Scientific C8P back in the late 70s with Micro-Soft 6502 ROM basic. I remember having issues running code that used arrays of strings. At some point, the system would stop responding and the screen would periodically flash. Later after having disassembled the code, I confirmed that the garbage collector was to blame. If I recall correctly, string descriptors were stored as 3 bytes - two for the address and one for the length. The garbage collector incorrectly stepped through arrays of string descriptors assuming a length of 4. The result was predictably unpredictable. It was also interesting to see the implementation of the trig functions as as polynomials with only a few terms.
My first computer was an OSI (Ohio Scientific) C1P, with the same buggy BASIC. When the defective garbage collector kicked in, the screen would flash or pulse because the garbage collector was searching through the whole 64k memory space, including the dedicated video RAM at $D000. Each access to it blanked the video output for one clock cycle, producing a tiny, momentary black line on the screen that was usually invisible. But thousands of them in a short space of time were quite visible. Anyway, OSI programmers soon became adept at manipulating BASIC's pointer that controlled where strings were stored in order to avoid triggering the buggy garbage collector. I later acquired a C8P (or C2-8P) DF with dual 8-inch floppy drives, and got a job at an OSI dealership, where I worked on software for OSI's big C3-B computer, with its massive (for the time) 74 MB hard drive. Physically, they _were_ massive: big rack-mounted systems with 14-inch hard drives that would take two men to lift. We sold those systems to a bunch of local companies, and supported many of them with custom software. Thanks, Dave, for mentioning (at least briefly) the often-overlooked OSI line of computers.
Maybe too easily discovered to be considered a true Easter Egg but on the TRS-80 Color Computer and Dragon computers, passing any eight bit number greater than 8 to the CLS command clears the screen and generates 'Microsoft' before the OK prompt. On the Color Computer 3 in the high resolution text screens, this is replaced with 'Microware Systems Corp.' who patched Microsoft Basic for that machine since Gates & Company apparently were no longer interested in doing work on 8-bit Basics.
20:00 I also recommend checking the comment section under the Pagetable article. You can find some familiar names there, including a certain Bill Gates. ;)
I have to watch your videos in multiple sessions. That is not to say that they are dull or boring, but there is just so much relevant information to the subject that it can be overwhelming at times for someone who wasn't there to begin with. Great work!
Not exactly an Easter Egg, but my favorite example of someone signing their work in a way that can't be removed is the Maillardet Automaton. This 19th century mechanical automaton, constructed by Henri Maillardet, can draw pictures and write verse in English and French. When the Franklin Institute in Philadelphia received it in 1928, it was a wreck and not much was known about it. After extensive repairs, they had it write out all of its pictures and poems, and on the last poem, it wrote "Ecrit par L'Automate de Maillardet" ("Written by the automaton of Maillardet"). No other builder of such devices could ever claim it was their work.
There was quite a popular 6502 machine in the UK, the BBC Micro (and its little brother, the Acorn Electron), that went a different way and rolled its own BASIC rather than using Microsoft's offering. BBC BASIC was further developed later for the ARM processor (arguably, for a very long time the only BASIC for ARM!) and is still developed today, by RISC OS Open for ARM, and two cross-platform efforts in the shape of BBCSDL by Richard Russell, and Matrix Brandy (a fork of Dave Daniels' Brandy BASIC).
I’ve always had skepticism about what happened first when Paul loaded the tape into the Altair because I’ve seen an interview where Bill gates said it failed the first time but ran the second time, and in another interview I’ve seen him say it ran perfectly the first time. It’s always frustrates me we’ll never know
I wrote two floating point libraries for the Z80 about 35 or so years ago, one of them was IEEE 754. Back in those days, the real skill was getting it to run fast, and IEEE 754 made it seriously hard on a Z80. To this day, hardware limited microcontrollers' vendors don't implement IEEE 754 as a result to improve speed. The Z80 made it a bit easier because of the IX & IY registers: I'd hate to try to do it for an 8080. The beauty of doing this stuff is that you have to implement development feedback particularly around data structures: you can make dramatic speed improvements by choosing how you implement the mantissa/sign/exponent bit fields.
Did you work for U.S. Software? If so, I really, really appreciate your floating point library. Used it extensively in power metering calibration equipment on a HD64180 (8051-like) processor.
Speaking as a lifelong Commodore guy, there's some humorous catharsis in the knowledge that Bill Gates was once flustered by Jack Tramiel. I couldn't imagine any scenario that saw the two of them in the same room with tempers boiling over over a business deal, that might have been like matter and antimatter colliding, reality couldn't have handled it.
I remember The Friendly Giant" on CBC. I loved it when I was very young. One little chair for one of you, and a bigger chair for two to curl up in, and for someone who likes to rock, a rocking chair in the middle.
KIM-1 was one of the first computers I wanted, learned everything about, but could never have. So much hardware innovation back in those days. I remember there was a trick to double the RAM capacity by piggy back / double deck soldering on an extra set of RAM chips with an enable pin bent up and wire wrapped back to an otherwise unused address line. Low clock speeds were so permissive of this kind of hardware hackery. The kids of today ....
I'm not sure which is better, lately - Dave giving us the inside scoop on this stuff, or reading the comments and learning lots MORE inside stuff from the super-knowledgable community that's growing up around his videos!
Geeking out... Dave thank you for this channel so much fun to know history... It would be cool if you could interview a few more people before they pass on...
I don't know which is older, but the TRS-80 Color Computer also had an easter egg in its MS-BASIC rom. The "Wizards" image that was encoded in some unused chunk of ROM, and that IIRC you could see with a USR() command to some special address, or some tiny bit of assembler to load the image or something like that. It would be neat for you to do a video (or a series!) on easter eggs across all Microsoft OSes!
Holding down CTRL and ALT while turning on or resetting the Color Computer 3 would display an image of the three Microware programmers who updated the BASIC ROM.
My dad has a story of similar functionality, but a bit more sinister. First i have to set the scene - Bulgaria in the 90's. Soviet Union just collapsed, the economy is still shit. Going to court for anything is way to expensive and will bankrupt basically anyone. My bad and his colleagues made controllers for packaging machines. The kind of machines that seal bags of rice or salt, etc. Since he knew that it would be really hard for him to get the money for the controller, after its installed (and getting it before then would be even harder) he had a really nice plan to make people pay. He put a secret function that made the controller brick itself after several thousand packages were made. It came out to around 1-1.5 months of work. The bricking could be turned off from a secret menu, accessible only on boot by holding 2 random keys. If the client payed, he would turn it off and that would be that. If the client did not pay, my dad would just wait around a month for a call that the machine broke. He would fix it "for free" when the controller was payed in full. It its not used for a malicious purpose, stuff like that can be a very nice way to get your money.
Here in Brazil people did things like that too, to avoid not getting their money. We had a expression for it, there was a bit that needed to be "brushed", otherwise the system would stop working. So, every 2 months your father was asked to "fix" the controller? :)
@@mauriciobraga I've asked myself the same question. From what I know about him, the answer is a definite no. From what I know about some of his colleagues at the time, I would not be surprised if some of them did suggest that idea.
Dave, it'd probably be tedious to make an audio book version of your book, but I'd for sure buy it if you did. Been wanting to read it, but know I'm too lazy to read more text after a day of work
I have a good story for you. I had an early MITS Altair 8800. One day the snow was so bad that I could not get in to work. It was before remote dial in to the mainframe. I wanted to work on a problem of calculating the interest rate given a principal and payments. I had a math degree, but there is no formula that I could find to do the calculation. Then I remembered Newton's method of approximation. I began coding in basic. Had to learn basic that day. I got a routine coded and debugged. I ran everything I could think of. It was scary accurate! Who wudda thunk? It took me three days to get my COBOL program to do the same thing starting from an already working BASIC program! My MITS Altair 8800 came originally with 256 BYTES. I splurged on a DECwriter. The Basic interpreter was on a small cassette tape. Turns out that the tape reader was a 110 baud modem.
Thanks, good story. John G. Kemeny, the in inventor of BASIC, who also did math for Einstein and was one of the mathematicians in Los Alamos, said the entire math done during the Manhattan Project could be done by one student using BASIC in an afternoon.
Really fascinated by this, but my first machine was a Texas Instruments TI-99/4A which served me well and I'm still a member of the usergroup today. Keep up the good work with your championing those with autism. I'm still waiting for my referral with a psychologist and was only inspired to do it after watching your video.
6k+ views in just over 2 hours. Fantastic. You truly have a nitch carved out here. Stay the course. I personally enjoy your videos but I considered myself rather eclectic, apparently I'm in good company. Bravo.
Lol Dave, truly a gentlemen and a scholar. So what's the deal with the taskman pins... Something about exemplary comments or what not? I doubt I have the practicum to make such an informed comment but maybe just some simple words of encouragement or flattery might suffice? .... a rocking chair for one whom likes to rock. 🕺
I landed the lunar lander on top of the Macdonalds on our university DEC GT40 in around 1977/78 - eliciting the message: You have just destroyed the only Macdonalds on the moon!
That's awesome! I'd never seen the DEC version before writing this episode, and had thought the Atari version was the first. Really cool that he wrote it back in 73! I wonder if you could connect a GT40 to a pi based emulator of a PDP?
I played it while on a course. After several attempts it left a number of wrecks on the screen. I thought it a bug. On my next attempt I got the lander to hover but, I ran into a wreck crashed. It displayed the message ... " You Turkey. If you have not tripped over one of your old wrecks you would have landed that" I rebooted the machine.
Strange - I replied twice to Dave’s reply but it got deleted each time, by YT AI? Anyway there is a GT40 implementation in Simh including moon lander in the well known repository of code.
Your channel is amazing and so are you! Can't get enough! Your content is a breath of fresh air on the Microsoft shroud of secrecy. You're a true man of small steps can create ripples.
Thank you Dave for being the first person in the world to make me interested in programming. Unfortunately I am very busy to start learning how to code now, but I'm sure one day I'll pick it up and learn to write my own piece of software. All thanks to you
Hey there, just wanted to wish you the best with learning on how to code! I just started learning JavaScript and have been playing with Python for some time. Don't give up when it gets hard, and have fun!
Basic 7 is a development based on an earlier released machine (B128 or B500 depending on where on the planet you are) and the unreleased Commodore LCD machine. The start of this development predates the aquisition of Amiga inc. Leonard Tramiel was involved with the technical side of things when Commodore aquired MOS, and very likely has some of the details of the deal also. He is quite around still, and quite approachable. You may want to check with him on what details of the deal he still knows.
Ah, the UK101. My first computer, bought pre-built (the other option was a bag of chips and a soldering iron) on a whim after graduating (not in computing!), that started a 30 year career in IT. These inside stories are fascinating insights into things I remember as home computers gave way to the IBM PC and led to Microsoft ruling the day. I managed to program a crude version of space invaders on the 8k MS basic using Xs and Os, with a few peeks and pokes to specific memory addresses, the only problem being that you could go and make a cup of coffee between each screen rewrite so it took about ten minutes for a missile to reach the top of the screen and the aliens to move down one row. It still gave me a sense of achievement! Keep the stories coming - from Pets to Win 11 they're fascinating.
Fascinating! I'm glad I stumbled onto this. I worked with the Altair, got mine running on Bicentennial Day, and my company duplicated cassettes with software for both MITS and Radio Shack. I remember the easter eggs in Altair Basic -- when the Memory Size prompt comes up, answer A (return). The early versions say "Written by Bill Gates, Paul Allen and Monte Davidoff." BTW, the 4K basic was integer, with the 8K and larger version floating point. I could go on...
As an old-schooler, it still fascinates me how the grammar and hardware support fit into such a tight spot since today, well, everything is so crazily written.
@4:19... I really want to verify that for myself... 2.0001+2.0001 = 4.0004??? Great video, always enjoying the 'behind the scenes' since my computer journey started a few years later (and on the Z80 processors). Keep them coming!
I got a Vic 20 in 1982. I bought the programmers guide and had a blast. I later bought the c64 when it came out. I connected hardware to the io port. Fun times.
Fascinating!! I don't know if Bill still does social media sessions where you can ask anything. I think it was on Reddit? Anyway, that may be a good forum to ask him about some of the historical questions. Good luck!!
That court case did play out. Jack Tramiel still got the last laugh on Bill. All of that money Bill lost by selling BASIC to Commodore without royalties.
OMG Dave thanks for that jaunt down memory lane. I spent so many hours in the computer lab at the College of Aeronautics playing that lunar Lander on our schools PDP 1108 we independently discovered that MCD Easter egg . between that and tower controller and Zork 1 we literally took over the school's computer lab and used up all of the bifold paper we could get our hands on .
There was also a professional version that was much more complete and powerful that you never hear much about. I think it was called BC 70 or PDS 7.0. QB45 FTW!
I programmed in GW-BASIC, and, had managed to program and design a simple inventory program on it back then. Of course, the GW-Basic on a 386 or 486 is pretty limited as to how many lines of codes can be run. The hardware also had around 4 MB RAM or even less. -Mind you, I think the program runs from a 5.25" diskette, since the size is under 640 KB RAM.
In fairness to the TRS-80, your reference to the TRS-80 failing to enter a large salary due to integer arithmetic @3:45, is regarding a prototype of the TRS-80 Model I. The demo to Tandy executives, used a public domain 2K version of Tiny Basic and not the 4K Level 1 production version. The later level II basic used the much better as you pointed out, Microsoft Basic.
Thanks, Dave. I learned my programmimg and hardware, inc assembly language programming, on the UK101. I later disassembled (manually) quite a lot of the BBC Basic, very well organised. It's very interesting to hear your reminiscenses.
I guess you mean "GET" (works with string and numerical variables). A shorter command name saves bytes when listed. :-) And there is also "GET#" in Commodore BASIC which inputs from a file, so "INKEY#" wouldn't be plausible.
I remember finding the easter egg in Atari's Adventure. You had to find enough items to place in a room so that the wall would flash and you could walk through the wall to the secret room.
That is possibly one of the coolest Microsoft tales I have heard to date, would be awesome to know if it was ever used in a copyright battle or similar or if it is just a cool unused piece of the programme as Microsoft soon grew to the level where that kind of thing was almost unnecessary or what ever the case may be.
Dave, love the stories. I have known about and Easter Egg for decades but until this story, I did not realize that is what it was. IBM introduced the System/36 in 1983. At least on the big box 5360, the Easter Egg would show itself. There was a cover over the operator panel. On that panel was a four hex digit display intended for diagnostics. If you had the cover up when you keyed POWER OFF, you would see the hex digits DEAD displayed on the panel. Keep up the good work.
there is only so much nerd talk i can handle, but it seems that dave never peaks close to my upper limit. the speed and quality is just too captivating. a great story teller and a person with stories worth telling. I thank you for sharing your life experiences. You've effected my life in so many ways yet I never knew who you were until now
I worked on some development for cellular base stations, the upcoming features for the next major revamp of the ITU standards, no mobile available so we used simulators, a later chat with someone working for a major handset manufacturer and they were using simulators to develop the mobile for the same reason.
Love your channel Dave. My 1st computer was a KIM 1 or maybe it was SIM 1, hexadecimal keypad and a whopping 1K of ram with no way of saving programs. that fun lasted about 6 months until I shelled out $1249 (1980 Canadian Dollars) for a 4k TRS-80 with level 2 basic and a cassette recorder to save programs. My last 8 bit computer is an Acorn Atom 6502, which I still have, although I haven't used it for about 40 years. I think there is simulator for it out there on the web.
Man you blow me out! I wrote on z80 then 6502 even 68000 but just for myself. Did some cool stuff but it’s amazing to listen to you, though I don’t always follow, but that’s cool. Great videos.
Another awesome video. Keep up the good work. A couple of years younger then you so I missed out on 6502 machines from the 70s. Basic really brings back memories running it on z80 machines with cpm and then later on c64 because it had cooler graphics and a joystick.
As an original "end user" of the beginning personal computers, I wasted so much time of my life dealing with "failures" of the software that I resent the amount of money charged for "working" software at the time as a complete waste by pure greed! I hate those statements of "if you had bought Microsoft stock at the first offering" as completely stupid because the stock was only offered to mega fund holders that one could never buy the stock at any lower level.
I imagine all these old devs looking at each other’s source code playing out like the business card scene from American Psycho: “Impressive… very nice… let’s see Paul Allen’s code…” “Look at that subtle uniformity and legibility… the tasteful indentations… oh my God, it even has comments…”
Dave I'm sure it's only a matter of time until you get a Bill interview for your channel. Watching you both remember your MS days and ask each other questions would be amazing.
Pretty sure that people interested in tech do NOT want to see an interview with vaxxine billy.
@@hillaryclinton2415 Wrong, flat-earther.
@@hillaryclinton2415 again, you're wrong.
@@hillaryclinton2415 Yeah, why would any viewer of a channel run by an ex-Microsoft employee who spends a lot of time on talking about Microsoft during the 1980s and 1990s want to see an interview with Bill Gates, right? 🤣
I for one would refuse to speak with that known Epstein/Maxwell child offender.
Love that you provide so much background and history behind these stories. These videos are not only entertaining but very informative. Keep up the excellent work Dave! We appreciate all your hard work in order to bring us awesome content. Thank you!
Glad you like them!
@@DavesGarage I dont understand the source code can you make a video about it what does it do
@@masternobody1896it's basically just assembly language. It is sort of human readable but directly translatable to machine instructions and thus binary orders for the CPU.
@@hoej shut up, We are trying to have a civil conversation here!
1 and
Dave, you left out the best part of the paper tape BASIC demonstration story, in their haste Bill and Paul forgot they would need a loader, so Paul at the last minute on the fly wrote the loader, just prior to the demonstration of their 8k BASIC software that day.
4K, the extension to 8K came later
I've got an original cassette tape copy of Altair 8k basic. I'd be honored to donate it to your garage if you would like.
@kedmark pepperidge farms, I mean, pirates of silicon valley, remembers. Aarrrr!
@@raydcongdon9614 I would contact him by his email! He has it on his channel page. Contact him directly! He might not see this!
True. But history repeats. A similar thing happened when Acorn Computers demonstrated the original ARM chip. Another late night session.
I've been writing software since about 1967, including a few easter eggs myself, but I did not know that there was a practical reason for them. Thank you so much!
What did your easter eggs look like?
5:00 This is how Satoru Iwata got the contract for HAL to work on the original Golf on Famicom, Nintendo wanted the full 18 holes to be included, but no one else was willing to try to get that to fit on the Famicom cartridge's ROM. Iwata "rather recklessly, said 'I’ll do it!'" and ended up having to write the compression to get it to fit from scratch.
Great video as usual. Your mention of Ohio Scientific brought back some nostalgic memories. I worked what seemed like many hours at $2.38/hr to save up for my Challenger 1P. I made my parents quite aware of the progress of my savings every week. One night they were late coming home from work, I had a gut feeling about what might be the cause of their delay. My guess was right. About 10 minutes after coming home, dad told me he "forgot" something in the car and sent me out for it. My dad said all he saw was a blur running from the driveway to the front door. I was elated! My first computer with 4K of RAM.
Beep beep, faster than the road runner I'm sure.
Oh!!! You remember the Woz's Integer Basic!!! I remember disassembling that. It's _beautiful_ code! Here is a deep question. There was, for a very brief time, an Apple II program called "The Spreadsheet." It was quietly replaced with something else not as good (I'm trying to remember back to 1979, folks) by sticking a new label over the old one. VisiCalc had just come out. I speculated at the time that Woz had written a spreadsheet that was quietly suppressed so as not to compete with VisiCalc. I'm wondering if anybody has a more vivid memory of this.
Dave Thanks ever so much! Started my coding career in 1974 on a IBM 1620 Mainframe then Migrated to Wang 2200 and our team of 3 built our own version of Lunar lander that was ported to one of the labs at Nasa.
Yes, I remember garbage collect. The garbage collect on the original Commodore Basic would sometimes take a long time. Maybe 30 seconds on a big program. The method of garbage collection was doing lots of searching and copying to do the collection. I believe John Feagens and Ric Weiland worked out a new method with pointers embedded in the garbage to speed up the process.
I also remember another bug in the original basic called "the cursor go away bug". Users doing a lot of screen editing on the PET computer would see this bug about once every few weeks. Users were very angry because the PET would lockup (the cursor would stop blinking) and the user would loose the basic program they were working on. We had to rig a PET up to do a lot of screen editing as fast as we could to get this bug to show up so we could track it down. It turned out Microsoft Basic was doing something bad with the stack. If an interrupt happed when the Basic screwed up the stack you ended up out in the weeds and the PET locked up. The screen editing was tied to the cursor blinking and would get you there. John Feagens found the code that was messing with the stack and fixed it. John's patch even fit into the same number of bytes as the original code.
It was incorrectly using a static value of 4 for the length instead of the actual length of a string when garbage collecting. The fix was a very simple one.
@@rich1051414 what is the purpose of this comment?
@@HatelivesNextDoor Come at me bro
@@HatelivesNextDoor I will answer you if you answer me what is the point of yours? And don´t ask me for my purpose please.
I never experienced buggy (trash computer) version, but on C64 garbage collection can take 30 seconds or more during which time the computer will *seem* to be broken. I don't know when Commodore fixed it, but on the C128 every string has an extra 2-bytes allocated as a 'back pointer'. Even though much more RAM is available for strings, the new garbage collection rarely takes more than 1 second ... but users may still consider it a bug when an otherwise responsive program suddenly pauses for no apparent reason (even if only a second).
Easter eggs like this have been used in many other software projects, and real life. For example, there are maps with fictional streets and cities, as an easy way to catch copying from other companies.
Most dictionaries also include fake words, for the same copying reason.
And one of those streets appeared in Google maps lol
Except in the case of raw dictionaries and maps they're not copyrighted as it's collections of facts.
Images ofc are excluded, but I think this map/dictionary practice will die out.
There was at least one case where somebody names their business after the fake place name that was already on the map. A second map company dutifully put it on their new map and were sued by the first map company. The first map company lost.
Note: I read this somewhere, there may be some inaccuracies.
Its not only done in software, but in hardware was well. Easter eggs have been used in circuit traces for instance, which could easily prove hardware was xrayed and copied directly by the presence electrically nonfunctional artwork of circuit traces.
Radio Shack/Tandy had it's own easter egg in TRS-DOS... if you held down "R" & "V" keys while the floppy booted, it popped up the creator's name Randy Cook. When it became public, corporate changed "Randy Cook" to "Tandy Corp" in later revisions.
(And being from Detroit, we LOVED "Friendly Giant" being broadcast from Windsor, Ontario!)
The joy of hearing you talk about the UK1010 fills my soul. The garbage collection bug was also on the UK101. Another UK101 bug was a bit set on the MS error codes so syntax error that should have shown as SN Error read S? Error. A syntax error in itself. Garbage collection would kick in when the ever growing stack of variable assignments grew in memory until it hit the program memory and the garbage collection would have to cleaned it up to free the ram. The secret was to define the variables and then they would stay put. Great video!
(10:04) I had an Ohio Scientific C8P back in the late 70s with Micro-Soft 6502 ROM basic. I remember having issues running code that used arrays of strings. At some point, the system would stop responding and the screen would periodically flash. Later after having disassembled the code, I confirmed that the garbage collector was to blame. If I recall correctly, string descriptors were stored as 3 bytes - two for the address and one for the length. The garbage collector incorrectly stepped through arrays of string descriptors assuming a length of 4. The result was predictably unpredictable.
It was also interesting to see the implementation of the trig functions as as polynomials with only a few terms.
My first computer was an OSI (Ohio Scientific) C1P, with the same buggy BASIC. When the defective garbage collector kicked in, the screen would flash or pulse because the garbage collector was searching through the whole 64k memory space, including the dedicated video RAM at $D000. Each access to it blanked the video output for one clock cycle, producing a tiny, momentary black line on the screen that was usually invisible. But thousands of them in a short space of time were quite visible.
Anyway, OSI programmers soon became adept at manipulating BASIC's pointer that controlled where strings were stored in order to avoid triggering the buggy garbage collector. I later acquired a C8P (or C2-8P) DF with dual 8-inch floppy drives, and got a job at an OSI dealership, where I worked on software for OSI's big C3-B computer, with its massive (for the time) 74 MB hard drive. Physically, they _were_ massive: big rack-mounted systems with 14-inch hard drives that would take two men to lift. We sold those systems to a bunch of local companies, and supported many of them with custom software. Thanks, Dave, for mentioning (at least briefly) the often-overlooked OSI line of computers.
You don't remember the controversy of Billg copying Palo Alto Tiny Basic from Dr Dobbs Journal.
Maybe too easily discovered to be considered a true Easter Egg but on the TRS-80 Color Computer and Dragon computers, passing any eight bit number greater than 8 to the CLS command clears the screen and generates 'Microsoft' before the OK prompt. On the Color Computer 3 in the high resolution text screens, this is replaced with 'Microware Systems Corp.' who patched Microsoft Basic for that machine since Gates & Company apparently were no longer interested in doing work on 8-bit Basics.
20:00 I also recommend checking the comment section under the Pagetable article. You can find some familiar names there, including a certain Bill Gates. ;)
I wonder if microsoft would let you start a podcast...You discussing with former and current Microsoft engineers would be pretty darn cool.
I have to watch your videos in multiple sessions. That is not to say that they are dull or boring, but there is just so much relevant information to the subject that it can be overwhelming at times for someone who wasn't there to begin with.
Great work!
Not exactly an Easter Egg, but my favorite example of someone signing their work in a way that can't be removed is the Maillardet Automaton. This 19th century mechanical automaton, constructed by Henri Maillardet, can draw pictures and write verse in English and French. When the Franklin Institute in Philadelphia received it in 1928, it was a wreck and not much was known about it. After extensive repairs, they had it write out all of its pictures and poems, and on the last poem, it wrote "Ecrit par L'Automate de Maillardet" ("Written by the automaton of Maillardet"). No other builder of such devices could ever claim it was their work.
is this the story of Hugo
There was quite a popular 6502 machine in the UK, the BBC Micro (and its little brother, the Acorn Electron), that went a different way and rolled its own BASIC rather than using Microsoft's offering. BBC BASIC was further developed later for the ARM processor (arguably, for a very long time the only BASIC for ARM!) and is still developed today, by RISC OS Open for ARM, and two cross-platform efforts in the shape of BBCSDL by Richard Russell, and Matrix Brandy (a fork of Dave Daniels' Brandy BASIC).
I’ve always had skepticism about what happened first when Paul loaded the tape into the Altair because I’ve seen an interview where Bill gates said it failed the first time but ran the second time, and in another interview I’ve seen him say it ran perfectly the first time. It’s always frustrates me we’ll never know
Wow. I deved on 6502. Zx81 dev 1973, Ran BBS etc in 1985. Lovely stuff dave.
I wrote two floating point libraries for the Z80 about 35 or so years ago, one of them was IEEE 754. Back in those days, the real skill was getting it to run fast, and IEEE 754 made it seriously hard on a Z80. To this day, hardware limited microcontrollers' vendors don't implement IEEE 754 as a result to improve speed.
The Z80 made it a bit easier because of the IX & IY registers: I'd hate to try to do it for an 8080.
The beauty of doing this stuff is that you have to implement development feedback particularly around data structures: you can make dramatic speed improvements by choosing how you implement the mantissa/sign/exponent bit fields.
Did you work for U.S. Software? If so, I really, really appreciate your floating point library. Used it extensively in power metering calibration equipment on a HD64180 (8051-like) processor.
Each and every one of your videos exceed expectations! They are gems. Thank you Dave for the history.
Speaking as a lifelong Commodore guy, there's some humorous catharsis in the knowledge that Bill Gates was once flustered by Jack Tramiel. I couldn't imagine any scenario that saw the two of them in the same room with tempers boiling over over a business deal, that might have been like matter and antimatter colliding, reality couldn't have handled it.
I dont think Bill was alone :) Jack was notorious.
I remember The Friendly Giant" on CBC. I loved it when I was very young.
One little chair for one of you, and a bigger chair for two to curl up in, and for someone who likes to rock, a rocking chair in the middle.
KIM-1 was one of the first computers I wanted, learned everything about, but could never have. So much hardware innovation back in those days. I remember there was a trick to double the RAM capacity by piggy back / double deck soldering on an extra set of RAM chips with an enable pin bent up and wire wrapped back to an otherwise unused address line. Low clock speeds were so permissive of this kind of hardware hackery. The kids of today ....
I'm not sure which is better, lately - Dave giving us the inside scoop on this stuff, or reading the comments and learning lots MORE inside stuff from the super-knowledgable community that's growing up around his videos!
Yes and Yes !
Thank you for doing these episodes on Commodore/6502 BASIC.
Geeking out...
Dave thank you for this channel so much fun to know history...
It would be cool if you could interview a few more people before they pass on...
I hope to start doing that this year!
As a self-professed lover of computer history, your channel and this specific episode, were awesome! Thanks, and keep up the good work.
I don't know which is older, but the TRS-80 Color Computer also had an easter egg in its MS-BASIC rom. The "Wizards" image that was encoded in some unused chunk of ROM, and that IIRC you could see with a USR() command to some special address, or some tiny bit of assembler to load the image or something like that. It would be neat for you to do a video (or a series!) on easter eggs across all Microsoft OSes!
Holding down CTRL and ALT while turning on or resetting the Color Computer 3 would display an image of the three Microware programmers who updated the BASIC ROM.
Thanks for the shout out to the MSFT old timer's group!
My dad has a story of similar functionality, but a bit more sinister.
First i have to set the scene - Bulgaria in the 90's. Soviet Union just collapsed, the economy is still shit. Going to court for anything is way to expensive and will bankrupt basically anyone.
My bad and his colleagues made controllers for packaging machines. The kind of machines that seal bags of rice or salt, etc. Since he knew that it would be really hard for him to get the money for the controller, after its installed (and getting it before then would be even harder) he had a really nice plan to make people pay.
He put a secret function that made the controller brick itself after several thousand packages were made. It came out to around 1-1.5 months of work. The bricking could be turned off from a secret menu, accessible only on boot by holding 2 random keys. If the client payed, he would turn it off and that would be that. If the client did not pay, my dad would just wait around a month for a call that the machine broke. He would fix it "for free" when the controller was payed in full.
It its not used for a malicious purpose, stuff like that can be a very nice way to get your money.
So essentially they got a demo version and had to upgrade to the full version to continue using it. 🙂
@@Lovuschka NICE!!!
'
@@Lovuschka I never thought about it like that, but its 100% true.
Here in Brazil people did things like that too, to avoid not getting their money. We had a expression for it, there was a bit that needed to be "brushed", otherwise the system would stop working.
So, every 2 months your father was asked to "fix" the controller? :)
@@mauriciobraga I've asked myself the same question. From what I know about him, the answer is a definite no.
From what I know about some of his colleagues at the time, I would not be surprised if some of them did suggest that idea.
Dave, it'd probably be tedious to make an audio book version of your book, but I'd for sure buy it if you did. Been wanting to read it, but know I'm too lazy to read more text after a day of work
I AGREE JOHN! I want to hear the audio book - and in DAVE's voice!
One more proof that full time jobs mean slavery.
I have a good story for you. I had an early MITS Altair 8800. One day the snow was so bad that I could not get in to work. It was before remote dial in to the mainframe. I wanted to work on a problem of calculating the interest rate given a principal and payments. I had a math degree, but there is no formula that I could find to do the calculation. Then I remembered Newton's method of approximation. I began coding in basic. Had to learn basic that day. I got a routine coded and debugged. I ran everything I could think of. It was scary accurate! Who wudda thunk? It took me three days to get my COBOL program to do the same thing starting from an already working BASIC program! My MITS Altair 8800 came originally with 256 BYTES. I splurged on a DECwriter. The Basic interpreter was on a small cassette tape. Turns out that the tape reader was a 110 baud modem.
Thanks, good story. John G. Kemeny, the in inventor of BASIC, who also did math for Einstein and was one of the mathematicians in Los Alamos, said the entire math done during the Manhattan Project could be done by one student using BASIC in an afternoon.
Really fascinated by this, but my first machine was a Texas Instruments TI-99/4A which served me well and I'm still a member of the usergroup today. Keep up the good work with your championing those with autism. I'm still waiting for my referral with a psychologist and was only inspired to do it after watching your video.
6k+ views in just over 2 hours.
Fantastic. You truly have a nitch carved out here. Stay the course.
I personally enjoy your videos but I considered myself rather eclectic, apparently I'm in good company.
Bravo.
Wow, thanks!
Lol Dave, truly a gentlemen and a scholar.
So what's the deal with the taskman pins... Something about exemplary comments or what not?
I doubt I have the practicum to make such an informed comment but maybe just some simple words of encouragement or flattery might suffice?
.... a rocking chair for one whom likes to rock. 🕺
I landed the lunar lander on top of the Macdonalds on our university DEC GT40 in around 1977/78 - eliciting the message: You have just destroyed the only Macdonalds on the moon!
That's awesome! I'd never seen the DEC version before writing this episode, and had thought the Atari version was the first. Really cool that he wrote it back in 73! I wonder if you could connect a GT40 to a pi based emulator of a PDP?
I played it while on a course. After several attempts it left a number of wrecks on the screen. I thought it a bug. On my next attempt I got the lander to hover but, I ran into a wreck crashed. It displayed the message ... " You Turkey. If you have not tripped over one of your old wrecks you would have landed that" I rebooted the machine.
@@kenclough12345 Nothing says 1970s more than the phrase "You turkey!"
Strange - I replied twice to Dave’s reply but it got deleted each time, by YT AI? Anyway there is a GT40 implementation in Simh including moon lander in the well known repository of code.
Your channel is amazing and so are you! Can't get enough! Your content is a breath of fresh air on the Microsoft shroud of secrecy. You're a true man of small steps can create ripples.
Another great video Dave! Keep IT up! :-)
Your insider stories are very valuable and worth being preserved.
Thank you Dave for being the first person in the world to make me interested in programming. Unfortunately I am very busy to start learning how to code now, but I'm sure one day I'll pick it up and learn to write my own piece of software. All thanks to you
Hey there, just wanted to wish you the best with learning on how to code! I just started learning JavaScript and have been playing with Python for some time. Don't give up when it gets hard, and have fun!
That friendly giant reference hit me with all the feels.
GW Basic was the first Basic interpreter I ever used on PC on an amber monochrome display PC XT.
More!!! Love it Dave - you are the Tech Bard.
Another great video Dave. Love these Microsoft stories.
Basic 7 is a development based on an earlier released machine (B128 or B500 depending on where on the planet you are) and the unreleased Commodore LCD machine. The start of this development predates the aquisition of Amiga inc.
Leonard Tramiel was involved with the technical side of things when Commodore aquired MOS, and very likely has some of the details of the deal also. He is quite around still, and quite approachable. You may want to check with him on what details of the deal he still knows.
Yes, Dave, I do like and enjoy the nostalgia pieces.
I had completely forgotten the Friendly Giant outro, with the furniture.
So I searched it, and watched one, and i gotta say: you do it much better.
Ah, the UK101. My first computer, bought pre-built (the other option was a bag of chips and a soldering iron) on a whim after graduating (not in computing!), that started a 30 year career in IT. These inside stories are fascinating insights into things I remember as home computers gave way to the IBM PC and led to Microsoft ruling the day.
I managed to program a crude version of space invaders on the 8k MS basic using Xs and Os, with a few peeks and pokes to specific memory addresses, the only problem being that you could go and make a cup of coffee between each screen rewrite so it took about ten minutes for a missile to reach the top of the screen and the aliens to move down one row. It still gave me a sense of achievement!
Keep the stories coming - from Pets to Win 11 they're fascinating.
Fascinating! I'm glad I stumbled onto this. I worked with the Altair, got mine running on Bicentennial Day, and my company duplicated cassettes with software for both MITS and Radio Shack. I remember the easter eggs in Altair Basic -- when the Memory Size prompt comes up, answer A (return). The early versions say "Written by Bill Gates, Paul Allen and Monte Davidoff." BTW, the 4K basic was integer, with the 8K and larger version floating point. I could go on...
As an old-schooler, it still fascinates me how the grammar and hardware support fit into such a tight spot since today, well, everything is so crazily written.
It was fun seeing things go from that group to TH-cam! Also love the Friendly Giant ending. Need a Mr. Dressup nod in the future.
@4:19... I really want to verify that for myself... 2.0001+2.0001 = 4.0004???
Great video, always enjoying the 'behind the scenes' since my computer journey started a few years later (and on the Z80 processors). Keep them coming!
I got a Vic 20 in 1982. I bought the programmers guide and had a blast. I later bought the c64 when it came out. I connected hardware to the io port. Fun times.
Fascinating!! I don't know if Bill still does social media sessions where you can ask anything. I think it was on Reddit? Anyway, that may be a good forum to ask him about some of the historical questions. Good luck!!
Having a father working at AT&T i first programed in Basic, through a terminal dialed into a PDP-10
I have worked in IT for the last 10 years and really enjoy all this knowledge. Thank you Dave!
That court case did play out. Jack Tramiel still got the last laugh on Bill. All of that money Bill lost by selling BASIC to Commodore without royalties.
I remember the Lunar Lander on the PDP-11 being demonstrated at a special event at the UW campus.
The idea you're willing to share with us a peek behind the curtain and how it all came to be and bill is out working another hustle.
Love little fragments of architectural history from the frontier days!
One of my absolute favorites. Great stuff!!
Glad you enjoyed it!
The flight simulator in Excel was the trigger that convinced me to switch to Star Office. I enjoyed your book btw!
Didn't think I'd be "early" enough to see a video uploaded 30 minutes ago, since I am from the UK! Thanks for uploading
OMG Dave thanks for that jaunt down memory lane. I spent so many hours in the computer lab at the College of Aeronautics playing that lunar Lander on our schools PDP 1108 we independently discovered that MCD Easter egg . between that and tower controller and Zork 1 we literally took over the school's computer lab and used up all of the bifold paper we could get our hands on .
The ultimate MS language was Quick Basic 4.5 Rarely ever discussed but once ruled the world.
And for the C64, there is a compiler called BASIC BOSS which hit the market too late to rule the world, but which is also great.
There was also a professional version that was much more complete and powerful that you never hear much about. I think it was called BC 70 or PDS 7.0. QB45 FTW!
Watching with my Dave's Garage mug! Thanks for the entertainment and the opportunity to benefit charity!
this is prob my favorite PC channel lol so concise and profesional love it
Irish Pirate made me laugh so loud I startled my dog. Love your content, Dave! Thanks for sharing so much insight and experience.
I programmed in GW-BASIC, and, had managed to program and design a simple inventory program on it back then. Of course, the GW-Basic on a 386 or 486 is pretty limited as to how many lines of codes can be run. The hardware also had around 4 MB RAM or even less. -Mind you, I think the program runs from a 5.25" diskette, since the size is under 640 KB RAM.
Dave, truly enjoy these stories. Thank you and appreciate you.
The fact that they coded a BASIC interpreter in a mere 8K still blows my mind.
Tom Pitman’s Tiny basic made it in 1K on the KIM-1 ;) The original MS one on the Altair was 4K
@@pschugi9171 🤯
I’m glad you described the accent, as I would never have guessed from how it sounded.
In fairness to the TRS-80, your reference to the TRS-80 failing to enter a large salary due to integer arithmetic @3:45, is regarding a prototype of the TRS-80 Model I. The demo to Tandy executives, used a public domain 2K version of Tiny Basic and not the 4K Level 1 production version. The later level II basic used the much better as you pointed out, Microsoft Basic.
Thanks, Dave. I learned my programmimg and hardware, inc assembly language programming, on the UK101. I later disassembled (manually) quite a lot of the BBC Basic, very well organised. It's very interesting to hear your reminiscenses.
Another excellent video. That old computer PET system is a thing of beauty.
I've always wondered why the Commodore BASIC uses GET$ rather than INKEY$.
I guess you mean "GET" (works with string and numerical variables). A shorter command name saves bytes when listed. :-) And there is also "GET#" in Commodore BASIC which inputs from a file, so "INKEY#" wouldn't be plausible.
@@NuntiusLegis Very valid points. And sorry that I've only now seen your reply. Just been watching the video again.
Was about to have an early night here in the UK. Hmmm what’s this a new Dave’s Garage video? That will do nicely thank you very much
Morning!
Thank you for some history again 😃
Sadly I missed this age of IT, started with Win95 (i think, may it even was Win3.1) at 3 years old 😂
Thank you for all the awesome historical information you provide. Keep up the good work :)
I remember finding the easter egg in Atari's Adventure. You had to find enough items to place in a room so that the wall would flash and you could walk through the wall to the secret room.
That is possibly one of the coolest Microsoft tales I have heard to date, would be awesome to know if it was ever used in a copyright battle or similar or if it is just a cool unused piece of the programme as Microsoft soon grew to the level where that kind of thing was almost unnecessary or what ever the case may be.
Dave, love the stories. I have known about and Easter Egg for decades but until this story, I did not realize that is what it was. IBM introduced the System/36 in 1983. At least on the big box 5360, the Easter Egg would show itself. There was a cover over the operator panel. On that panel was a four hex digit display intended for diagnostics. If you had the cover up when you keyed POWER OFF, you would see the hex digits DEAD displayed on the panel. Keep up the good work.
Love your channel Dave. I imagine big Bill would love to answer these questions!
there is only so much nerd talk i can handle, but it seems that dave never peaks close to my upper limit. the speed and quality is just too captivating. a great story teller and a person with stories worth telling. I thank you for sharing your life experiences. You've effected my life in so many ways yet I never knew who you were until now
Interestingly, PC BASIC's protected saves used the bytes of a couple of trig tables as its encryption XOR values.
I worked on some development for cellular base stations, the upcoming features for the next major revamp of the ITU standards, no mobile available so we used simulators, a later chat with someone working for a major handset manufacturer and they were using simulators to develop the mobile for the same reason.
Love your channel Dave. My 1st computer was a KIM 1 or maybe it was SIM 1, hexadecimal keypad and a whopping 1K of ram with no way of saving programs. that fun lasted about 6 months until I shelled out $1249 (1980 Canadian Dollars) for a 4k TRS-80 with level 2 basic and a cassette recorder to save programs. My last 8 bit computer is an Acorn Atom 6502, which I still have, although I haven't used it for about 40 years. I think there is simulator for it out there on the web.
Man you blow me out! I wrote on z80 then 6502 even 68000 but just for myself. Did some cool stuff but it’s amazing to listen to you, though I don’t always follow, but that’s cool. Great videos.
Trivia: Apple ProDOS for the Apple II series looks for the words "Apple II" in the ROM else it won't run.
Dave, keep it coming. Love this stuff
I read on google news that the Windows Task manager in Windows 11 is getting a redesign. can you tell us about it please.
Another awesome video. Keep up the good work. A couple of years younger then you so I missed out on 6502 machines from the 70s. Basic really brings back memories running it on z80 machines with cpm and then later on c64 because it had cooler graphics and a joystick.
I recall playing lunar lander on a PDP-11/34 in 1980 with a VR-17 vector display and I remember finding the McDonalds on the moon.
Great story, learned something new today on why and for good reason easter eggs exist and persist today.
As an original "end user" of the beginning personal computers, I wasted so much time of my life dealing with "failures" of the software that I resent the amount of money charged for "working" software at the time as a complete waste by pure greed! I hate those statements of "if you had bought Microsoft stock at the first offering" as completely stupid because the stock was only offered to mega fund holders that one could never buy the stock at any lower level.
I imagine all these old devs looking at each other’s source code playing out like the business card scene from American Psycho:
“Impressive… very nice… let’s see Paul Allen’s code…”
“Look at that subtle uniformity and legibility… the tasteful indentations… oh my God, it even has comments…”
I used to watch The Friendly Giant, great memory jogger. Thanks for that!
Paul Allen’s IBM 360 was a time shared machine FYI
Story about the bias, reminds me of the TV series "Holt and catch fire". I wonder how true to life it is.