Bill Gates Sucks? An Anti-Microsoft Easter Egg Hidden In C64 BASIC?

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 2024

ความคิดเห็น •

  • @psych0naut
    @psych0naut 5 ปีที่แล้ว +269

    Hi Robin! Thanks for your interest in my little "Easter egg". I'm glad to see it's still getting noticed all these years, and I enjoyed your video exposé. :)

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +29

      It was a fun puzzle, thanks for writing it up!

    • @psych0naut
      @psych0naut 5 ปีที่แล้ว +20

      @@8_Bit You and your viewers might also be interested in reading my follow-up article, which is on page 6 of TPUG's Spring 2016 newsletter: www.tpug.ca/tpug-media/nl/92-Spring2016.pdf (Warning: For hard-core retrocomputing nerds only!)

    • @LordOrwell
      @LordOrwell 5 ปีที่แล้ว +12

      @@8_Bit man i was about to leave a rude comment about how this wasn't an easter egg and you were generating the words by seed, but then you came out and explained how it worked. Ah, pseudo-random at its best. The biggest tell though is that you had to use multiple seeds so the order you called them would affect the output.

    • @mathieuleader8601
      @mathieuleader8601 5 ปีที่แล้ว +3

      ooh the man himself

    • @Lord-Sméagol
      @Lord-Sméagol 5 ปีที่แล้ว +12

      Here is a smaller decode routine:
      0 GOTO 3:DATA 125708,33435700,17059266,0
      1 PRINT CHR$(A+64);
      2 A=INT(RND(A)*22):IF A THEN 1
      3 PRINT" ";:READ A:B=RND(-A):IF A THEN 2
      ... and an optimized searcher:
      0 T=22:A=0:L=0:B=0:INPUT B$:L=LEN(B$):DIM F(L)
      1 FOR A=0 TO L-1:F(A)=ASC(MID$(B$,A+1,1))-64:NEXT
      2 FOR B=-1 TO -99999999 STEP -1:A=RND(B)
      3 FORA=0TOL:IFINT(RND(T)*T)=F(A)THENNEXT:PRINT -B:END
      4 NEXTB
      *Line 3: IF ... THEN NEXT ' Takes advantage of the BASIC interpreter; Compilers won't like this!
      Run multiple C64's on MAME to search for several words at the same time.
      MAME doesn't appear to run C64 very fast with speed throttling turned off [F10] !
      I only get 188% [Xeon E5-2697-v2 2.7 (3.5) ] ! I get 875% on a MAME Einstein ! :)

  • @theenderman9042
    @theenderman9042 5 ปีที่แล้ว +127

    *at least microsoft back then wasn't begging to make microsoft account.*

    • @MetalGearHazumu
      @MetalGearHazumu 5 ปีที่แล้ว +5

      Please, please, please make a Microsoft account

    • @toysareforboys1
      @toysareforboys1 5 ปีที่แล้ว +4

      A friend asked me to set up his new Acer laptop for him, couldn't make an offline account anymore!!! Was running "Windows in S mode", wtf? Format, reload, offline account worked fine after that, zero acer garbage on there now too, just rips.

    • @samuellourenco1050
      @samuellourenco1050 5 ปีที่แล้ว +7

      No, M$ was busy urinating on someone else's products.

    • @technoguyx
      @technoguyx 5 ปีที่แล้ว +5

      they would have if the Internet had been a widespread thing back then

    • @nagash303
      @nagash303 5 ปีที่แล้ว +5

      microsoft is evil company, who wants to run everybody out of business, so they rule computermarket.

  • @SuperVstech
    @SuperVstech 5 ปีที่แล้ว +32

    Back in high school in 82 the gazette magazine had a cool word processor program that seeded the random number generator with a code word, and would encode your messages. You could save and send messages to a friend with the same computer with the seed word, and they could read it...
    I was amazed back in the day.

    • @cigmorfil4101
      @cigmorfil4101 5 ปีที่แล้ว +11

      That's effectively how the Lorentz machine Hitler used in WW2 worked: it used a pseudo random sequence to obscure the plaintext. As long as the same code word (initial setting of the sequence) was not used it is extremely secure.
      However, by sending two similar (long enough about 5000 character) messages the bods at BP were able to work out not only the obscuring sequence for those messages but the actual (mechanical) "function" that created the obscuring sequence.
      Tommy Flowers converted that mechanical function into an electronic version, and built Colossus around it to effectively step through the seeds and check each sequence thus generated against the intercepted message, looking for possible German words.
      Tommy Flowers effectively built the first electronic pseudo random number sequence generator in a computer.

  • @JasonHonan
    @JasonHonan 5 ปีที่แล้ว +71

    Using the pseudorandom number generator to hide a string in integers reminds me a bit of Tupper's self-referential formula (a formula that, when graphed, displays the formula itself).

    • @maxarothdev7374
      @maxarothdev7374 5 ปีที่แล้ว +1

      I'm intregued

    • @Josh2102
      @Josh2102 5 ปีที่แล้ว +4

      Maxaroth Dev I think they are referring to this th-cam.com/video/_s5RFgd59ao/w-d-xo.html

    • @microdesigns2000
      @microdesigns2000 5 ปีที่แล้ว +2

      Math inception

    • @calebfuller4713
      @calebfuller4713 3 ปีที่แล้ว +5

      It's actually how the developers of the original Elite game managed to fit all the planets and descriptions and other data into the limited memory of machines at the time. The entire galaxy was actually procedurally generated with a seed and a pseudo-random number generator pulling words and letters from a few short strings! They had to be careful with the initial seed to get a decent sounding set of planets - an early attempt infamously produced a planet called "Arse"...

  • @ramblinevilmushroom
    @ramblinevilmushroom 5 ปีที่แล้ว +80

    I could tell that wasn't an Easter egg xD It made me think of a story of a kid who thought that he was unlocking secret hidden games by typing in "really long cheat codes" into his c64.

    • @MS-ho9wq
      @MS-ho9wq 3 ปีที่แล้ว +4

      looool

    • @calebfuller4713
      @calebfuller4713 3 ปีที่แล้ว +5

      Did the "cheat codes" happen to involve a bunch of hex codes that were poked into memory and CALLed? 🤣

    • @jimmyzhao2673
      @jimmyzhao2673 ปีที่แล้ว +1

      @@calebfuller4713 There's an old saying in Tennessee-I know it's in Texas, probably in Tennessee-that says, 'Fool me once, shame on...shame on you. Fool me-you can't get fooled again.'

  • @3DPDK
    @3DPDK 5 ปีที่แล้ว +38

    It's not that the RND(0) generates bad numbers, it's that it always takes the seed value from the CIA timer (or system time clock). It's possible to ask for a RND(0) value twice in a row before the system clock has "ticked" (about 30 times per second). This means the seed value will be exactly the same in both cases. There's also a problem that RND(0) will skip numbers in a given sequence; INT(RND(0)*300), if looped will *always* skip something like every fifth number from 1 to 300 - the number or pattern of skip depends on the range multiplier. *500 skips every other number and *1024 skips five numbers in a row. I had figured out once why this happens but now I can't remember. A rounding error when converting the clock seems most likely.
    The Ideal way to use RND in C-64 BASIC is to:
    10 X=RND(0)
    15 X=RND(1)* what-ever
    Line ten seeds the RNG with the CIA timer which has an extremely low probability of ever being the same number twice from one session to the next and does not require the user to input a seed value. Line 15 uses the previously generated number to seed the next value and does not suffer from sequence skip. If this is used every time (or even just periodically) that a random number is needed, it also prevents sequence cycle repetition. A truly random number comes from reading or PEEKing (54299) with voice 3 of the SID chip producing a high frequency noise wave form (voice 3 does not need to be "turned on" or outputting to the speakers to read this random number, but the voice three parameters for wave form and frequency do have to be set) . The SID used a non-biased NPN (internal) transistor to produce a true analog random wave form - collector current noise - like static on a radio or T.V.. The number retrieved is limited to 255 but by adding or multiplying several PEEKS and a bit of creative math you can get what ever range you need.This is also the fastest and easiest way to generate random numbers in ML.
    Try this for proof:
    10 ?"[shift home]"
    20 POKE 1024 + INT(RND(0)*300),1: GOTO 20 (the effect is the same without INT())
    This will fill the first 7 and a half screen lines with the letter 'A'. You will see the pattern of skips and it will change by changing the multiplier.*400, *500, *1000, etc (don't go over 1024 or you start overwriting the program and it will crash)

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +3

      Thanks for the clarification!

    • @Cythil
      @Cythil 5 ปีที่แล้ว +7

      I actually had the same sort of bug in a game I was making on a (far faster machine). I generated two random numbers one after each other but they always turned out the same. Which I found odd at first. Then I figured it was due to the code was executed so fast that the seed that I assumed was based on clock ticks was the same. So being lazy I added a little hack simply by adding a little 1ms wait between them. Worked like a charm after that. But of course was not a elegant solution to the problem but I manage to finish up my game for the class assignment at least. ^_^

    • @IvanEngler
      @IvanEngler 5 ปีที่แล้ว

      ultra comprehensive! thanks.

    • @3DPDK
      @3DPDK 5 ปีที่แล้ว

      @@Cythil BASICA, QBASIC, and a bunch of others for IBM type computers and their predecessor high level languages all had a means to use the system clock to seed and generate a random number. RANDOMIZE (TIMER) is what I think I remember in QBASIC . They all have similar problems of repeated and skipped numbers depending on how fast the system clock updated. It's strength is that you have a greater chance of being squashed by a blue whale falling out of the sky ... ;/ ... than for the timer method of ever repeating any sequence of numbers. The millisecond delay is about as good a solution as any and nobody is going to notice a 0.01 second hiccup ;)

    • @Cythil
      @Cythil 5 ปีที่แล้ว +1

      @@3DPDK Yeah but I would likely have just randomized a longer number and split it between the two outcomes. I have not really check which is the faster method. Though if I was making a more advanced application I would.
      But then rather then programming in a high level language (it may even have been a interpreted language.) I might as well go down in to assembly if I want it to be really optimized. (Though I have not done anything in assembly I will admit)
      But then again this was just a little school project for my game design course. And programming was not even a high priority. Just that as a game Designer you should be familiar with programming. But let the true programmers do the real implementation. Still if you going indy you likely have to be that programmer.
      Now a days the closest I come to programming is programming the robots at work which is pretty simple in comparison in many ways.

  • @jeffflowers5489
    @jeffflowers5489 5 ปีที่แล้ว +4

    It's been decades since I used a Commodore but I learned way back then that the best way to generate a TRUE random number is to use RND(-TI) with TI being the always-changing time value.

    • @gordontaylor2815
      @gordontaylor2815 8 หลายเดือนก่อน

      That plays into the idea that computers, by their nature, simply cannot produce "true randomness". The "Easter Egg" in the video is fundamentally an RNG manipulation exercise that could be modified to get pretty much whatever short phrase you wanted to generate. Using the time value would be a quick and dirty way to improve RNG that would be invisible to anyone not familiar with C64 programming.

  • @GeoffSeeley
    @GeoffSeeley 5 ปีที่แล้ว +16

    I learned to code (basic) on that model of PET in junior high school. I'm pretty sure I remember learning that the RND function wasn't that random :-) Good times!

  • @tonelemoan
    @tonelemoan 5 ปีที่แล้ว +8

    Fascinating. Slightly related story:
    In the April 1985 edition of an all formats computer magazine published here in Britain (can't recall the name), there was a type in program that purported to seed the RNG with values likely to produce "art" while PLOTting pixels at random co-ordinates. The screen would slowly fill with what initially looked like random dots but would slowly resolve into a message. The message? The month is a clue! It was "APRIL FOOLS!"
    A quick practical lesson on the vastness of the number space of even 2 colour low resolution microcomputer screens!
    The ASCII values where obfuscated in a similar way.
    Having an Acorn Electron at that time (the little brother of the BBC Micro) was a great challenge. Eking more from the limited RAM (32K but around 12K-22K depending on screen mode) was always desired. Similar to how Elite packed data for several galaxies of 256 star systems each into even the Electron's tiny memory.

  • @hugovangalen
    @hugovangalen 5 ปีที่แล้ว +82

    Easter eggs should be relatively simple to trigger, not with such an elaborate program -- the moment I saw the listing I knew it was a fake.
    It is comparable to searching the ROMs for certain bytes in an arbitrary string, and then writing a program to print the bytes at those addresses and saying it is a hidden message in the KERNAL.
    But it is a good joke the author pulled on so many people. :)
    It basically demonstrates that you can decode random bytes to anything you want with the right "decoder", and why trying to decrypt strong encryption without keys is futile.

    • @manuell3505
      @manuell3505 5 ปีที่แล้ว +3

      I once used this to let FreeBSD communicate with MS Qbasic within a MSDOS virtual machine with no communication channel to outside. Just assign a string in Basic and trace it back in the VM process space. It probably gets more difficult when both systems have different byte-standards like ASCII vs. EBCDIC.

    • @bloepje
      @bloepje 5 ปีที่แล้ว +4

      You should be able to find anything with the right offset and length in PI.

    • @hugovangalen
      @hugovangalen 5 ปีที่แล้ว +2

      @@bloepje No it does not, there are hardly any repeating numbers, so you would need additional mathematics to get something like "Aaaaaaaaaaaaaaaargh" from the number in pi. It's too irregular to get something regular out. (I know because I wasted a Sunday toying around with what I thought was an ingenious compression method... :-))

    • @mechamania
      @mechamania 5 ปีที่แล้ว +1

      I wondered who the arbiter of Easter Egg definitions were.

    • @hugovangalen
      @hugovangalen 5 ปีที่แล้ว +2

      @@mechamania The "Easter egg" term is self-defining. They should just stare you right in the face after doing something relatively simple, like hitting a certain key somewhere, poking something in a certain place, or choosing a certain path in a game.
      These convoluted steps are like: "Lay an egg. Paint it. Hide it behind a bush. Go walk to the bush. Pick it up. You have found an Easter egg."
      That's not how it works.

  • @michaelstoliker971
    @michaelstoliker971 ปีที่แล้ว +2

    Hi Robin, I finally subscribed to your channel as I'm adding Commodores to my collection. I saw your number of subscribers sitting at 49.9K and hoped y single subscription would push you to 50K...no such luck.

    • @8_Bit
      @8_Bit  ปีที่แล้ว +1

      Thank you, looks like 17 more are needed!

  • @Eightbitswide
    @Eightbitswide 5 ปีที่แล้ว +55

    You had me until you started changing the number to get the RULES output. Well played!

  • @scottfromderby
    @scottfromderby 2 ปีที่แล้ว +1

    did you seriously get out a PET 2001 for the camera and go out of your way to *mime* the keypresses?! I am so impressed by your dedication to the art :)

  • @evansdm2008
    @evansdm2008 5 ปีที่แล้ว +20

    I’ve subscribed. I like that you went to the effort to reverse his program. Funny to think that a true random number generator would contain the works of Shakespeare given the right seed. And would also contain every possible program including the number generator itself. Super weird.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +4

      Thanks for the sub :) I always try to show how things work on my channel - if I can figure it out! And yes, it's bizarre to think of randomness in this way. Every person's entire life story would be there, whether they had been dead for thousands of years, or hadn't even been born yet.

    • @djosearth3618
      @djosearth3618 5 ปีที่แล้ว

      Woah wow!.. ;] Maybe like:
      *10 FOR infinity to andbeyond:BE=infinitesimallyinfinite:NEXT*
      *20 GOTO ∞*

    • @captainchaos3667
      @captainchaos3667 2 ปีที่แล้ว

      I've always thought it must be a misconception, that idea that a true RNG must produce the works of Shakespeare at some point. Proof by reductio ad absurdum: a true RNG _could_ just produce a never ending string of A's.

  • @ColdRFusion
    @ColdRFusion 5 ปีที่แล้ว +16

    Random Number Generation & its quirks is always fascinating, love the last message!

  • @allenhuffman
    @allenhuffman 4 ปีที่แล้ว +3

    Thanks again for this. I finally applied the RND trick on my Radio Shack Color Computer and have ben having fun with that.

  • @TotenBRx
    @TotenBRx 5 ปีที่แล้ว +2

    Library of Babel before Library of Babel

  • @troycowell7381
    @troycowell7381 4 ปีที่แล้ว +1

    I wonder, maybe the "Not an egg" comment was supposed to follow "Bill Gates Sucks" ? Perhaps to say "Bills Gates Sucks - Not an egg" ?? An attempt to "get that dig in" just a bit more, without being TOO Graphic about it?

  • @nzwedjat
    @nzwedjat 4 ปีที่แล้ว +1

    I ran the Bill Gates one up on a new Retrogames C64 Maxi and it almost runs properly, you get a bunch of randomish characters and then GATES SUCKS or RULES, looks like the emulators implementation of the random number generator is different enough to mess with things, interesting though.

  • @JohnnyX50
    @JohnnyX50 5 ปีที่แล้ว +3

    The BBC Micro has the names of the developers at the end of its ROM. I discovered this by accident back in the 90's when I did an electronics YTS scheme. We were using EPROM programmers to read and write code and me and a mate decided to lift the ROM from the BBC and bung it in the reader to see what would happen. We noticed the names in its HIMEM portion. I dont know if this was accessible with a POKE or whatever BBC BASIC used but I remember we got a proper bo###cking for 'deliberate mis-use' of equipment lol, well, I was only 16 at the time ha ha

  • @raycouzens7139
    @raycouzens7139 5 ปีที่แล้ว +4

    Just want to say that I really enjoy your channel. I used to own a C64 and later a C128 in the 80's and early 90's, but then parted with them for later machines. I am now going retro and have ordered the parts to make a new old C64 by using an Ultimate64. I know it's not exactly the same as an original machine, but possibly has a little more future proofing. Anyway, after such a long time away from my C64 world I will be returning to it and rekindling some of that early excitement. Your videos are always interesting and very informative and encourage my yearning for these older but still interesting computers.

  • @chadcunnington7152
    @chadcunnington7152 5 ปีที่แล้ว +2

    It was definitely much easier to seed the Random Number Generator on the original classic TRS-80 Computers (Model 1 - 4), you could simply type the command, "RANDOM", and all the work was done for you
    It was a little bit more involved on the TRS-80 Color Computer, and was achieved using the inbuilt timer module, (which was a constantly changing value), and then seed the RAM against that, and, you could set this, in two very different ways
    The first was very similar to the Commodore command, as it required a negative number, and was X=RND(-TIMER)
    The second way, was by using a POKE, to seed the RND command against the Timer module, and was POKE 280, PEEK(275)
    By typing in PEEK(275) on it's own, you can see the current value of the Timer module, which is a constantly changing number, between 0 - 255, before it resets back to zero

  • @junker15
    @junker15 5 ปีที่แล้ว +1

    Just like on the CoCo, a variant of "WAIT6502" is present in Applesoft for the Apple II (at least the 9-digit versions shipped on ROM for the II+ and later, and most likely for the LASER 128). The FAC-sized constants are present, but just encoded slightly differently to the CBM ones. It's slightly more work, but all one needs is to write a short machine language program to print the 10 bytes at $F094 (you have to exclusive-or with $87 then set the high bit of each byte).

    • @MichaelPohoreski
      @MichaelPohoreski 5 ปีที่แล้ว

      junker15 www.txbobsc.com/scsc/scdocumentor/EFEA.html

  • @andymanaus1077
    @andymanaus1077 5 ปีที่แล้ว +4

    Having programmed BASIC games in the mid 80s, I suspected foul play when I saw that "simple four line program". Easter eggs were nearly unheard of in the 80s due to memory constraints and I understand the fury of CBM when they found out that valuable ROM space had been wasted. Programmers today have no idea of the anguish experienced in trying to shave off a few bytes just to squeeze a game into the memory of these early micros.

  • @emaaaaax
    @emaaaaax 2 ปีที่แล้ว +2

    As soon as I heard "hidden in the random number generator" i already knew that rng manipulation was gonna happen next

  • @tribemaster101
    @tribemaster101 4 ปีที่แล้ว +2

    "Bill Gates Sucks" LOL

  • @RCassinello
    @RCassinello 5 ปีที่แล้ว +6

    Reminds me of those "Bible Code" books whereby with enough brute force, you could find any hidden message you wanted to 'secretly hidden' in the old-testament.

  • @WarrenPostma
    @WarrenPostma 5 ปีที่แล้ว +2

    That was fun. It's been a long time since I wrote RND(-TI) in a program. In Pascal on my x86 dos box, that RND(-TI) invocation changed to Randomize() which did a timestamp based init as well.

    • @cigmorfil4101
      @cigmorfil4101 5 ปีที่แล้ว

      Somewhere in the back of my mind I have that, RND(-TI) = RND(0)

  • @mark12358
    @mark12358 5 ปีที่แล้ว +5

    Really a top 8-bit channel, if not "the". Great job! cheers, M

  • @smug8567
    @smug8567 4 ปีที่แล้ว +1

    I must have picked the wrong day to quit sniffing glue.

  • @billkeithchannel
    @billkeithchannel 5 ปีที่แล้ว +2

    I own a C128 and never knew about that sys-egg.

  • @Hirpina81
    @Hirpina81 5 ปีที่แล้ว +1

    Thank you for the videos abou C64 Easter Eggs, they're amazing! I really am not an expert: I was a little child when a Commodre 64 appeared at home, and we have been using it for ages, above all for videogames. Once I tried to copy some program lines, from amagazine or a manual, to create a sound, and you can imagine a little girl what could do (the best things had been: I discovered colors, shapes, how change fonts from big to small, how to draw with them). But once we recieved this weird "not an egg" message. Just once. I am Italian and that time we did not know anything about Easter Eggs. So, when we read this message, we translated it literally, and we were really perplexed. What was this egg about? The sentence was lacking of too many parts to translate it properly, so we thought we got a bad gate or almost broke something; we knew pretty well how C64 worked when it got crazy, with all those @s and #'s; this time it gave us a proper sentence, but we still found it weird. It should be "Sorry, there are not hidden surprises here; please, try elsewhere". I think we could get it only with this super-long sentence. You made me remind of this singular and unique episode. - I also want to thank you about the Easter Eggs on vinyl discs: I noticed there were these weird handcarvings on brand new records, and I was really puzzled. Now, finally, I got why. And I could recognise the digital sound of Commodore 64 programs, as, once (again, only one time) I tried to listen a C64 videogame cassette on a common cassette recorder. I could hear it again! Thank you :-)

  • @MakersEase
    @MakersEase 5 ปีที่แล้ว +1

    This is funny... I had a C128 when I was a kid. TH-cam videos are listened to mostly while I am driving to and from work.. (so they only get half listened to...) My mind was wondering and I was thinking that I don't remember rnd being really random.. Wait - did someone find random sequences for the text they wanted?... Wait - did someone do a prank? Then I listened more intently and found out I was right! Great job!

  • @indyshadow18lg
    @indyshadow18lg 4 ปีที่แล้ว

    Wow. Funny how there is still interest in these old computers. I remember Rainbow magazine! Now I’m inspired to dig out my TRS-80 Color Computer! My daughter had been begging me to show her the old TRS-80 and the BASIC programs I wrote back in the day! Guess it’s time to pull it out and plug it in! 😉

  • @djosearth3618
    @djosearth3618 5 ปีที่แล้ว

    4:11 "(Credit for discovering this Easter egg is due to the late *F. Jacques Beurrechamp,* whose rough notes were _obtained_ from the archives of the Trammel Memorial Library in West Chester, PA and summarized by the present author.)" -Tristan Miller

  • @alakani
    @alakani 5 ปีที่แล้ว +1

    Aww that CoCo! I used to have one that I picked up at a thrift store when I was a teenager. One day it disappeared and I asked my mom, and she tried to convince me that it never existed, lol. I would have went completely insane except luckily a friend was with me when I got the thing. My mom was great.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +1

      That is a very strange story :) Do you think she threw it out or sold it or something?

    • @SimonQuigley
      @SimonQuigley 5 ปีที่แล้ว

      frinkiac.com/meme/S08E20/719684.jpg?b64lines=IFJFTUVNQkVSIFRIRSBUSU1FIEhFIEFURQogTVkgR09MREZJU0ggQU5EIFlPVSBMSUVECiBUTyBNRSBBTkQgU0FJRCBJIE5FVkVSCiBIQUQgQU5ZIEdPTERGSVNIPyBCVVQKIFdIWSdEIEkgSEFWRSBUSEUgQk9XTCwKIEJBUlQ_

    • @chadcunnington7152
      @chadcunnington7152 5 ปีที่แล้ว +1

      I had 7 of them, and my wife coerced me to get rid of them after we got married
      We are no longer together, btw

  • @alanva73
    @alanva73 5 ปีที่แล้ว +1

    I seem to recall an easter egg in the coco3 where if you held a certain key combo while pressing the reset it would display a picture of the Microsoft team.

    • @BaarBear
      @BaarBear 5 ปีที่แล้ว +1

      That was on the "CoCo 3" as I re call. Hold down the "ctrl" and "alt" keys while pressing the "reset" buttonto get a picture of "The Thre e Mugateers" as they were called.

  • @allenhuffman
    @allenhuffman 5 ปีที่แล้ว +3

    Fantastic. I shouldn’t have shared this with my Color Computer friends... I would have loved to have tried this trick ;)

    • @trizedlyza
      @trizedlyza 5 ปีที่แล้ว

      Love the CoCo and Rainbow reference. Found an archive of all the Rainbows and am really tempted to recycle the real mags at my parents house but just can't part with the bit of childhood.

  • @andlabs
    @andlabs 5 ปีที่แล้ว +4

    The RNG has changed over time; I immediately suspected it was not an egg and opened up VICE to test it on its PET 2001 mode with BASIC 1 and it does not work with those numbers at all. Now I'm wondering what range of machines have the same RNG... (Maybe even on non-Commodore machines, but I would need to set those up.)
    EDIT: it works on the VIC-20, Plus/4, and the C128 in 128 mode. It does not work on BASIC 4 on either the CBM-II or the CBM-II-5x0, but the output on both of these was the same as the one on the PET BASIC 1, so maybe there are only two RNGs on the Commodore machines?
    VICE doesn't have a C65 emulator, so I can't check there. I forget if the TI-99/4A has Microsoft BASIC or not (but trying to use MAME's TI-99/4A emulation frustrates me to no end). I don't know if the ZX Spectrum uses Microsoft BASIC or not.
    And for the heck of it, I tried it on MSX-BASIC 4.0 on an emulated Panasonic FS-A1ST (since that's the configuration I had set up in OpenMSX Catapult at the time). It also doesn't work there (and produces an entirely different output than any of the Commodore machines). (Catapult provides a GUI frontend that allows me to, among other things, paste large blocks of text into the emulator, so I didn't need to type everything out multiple times =P )

    • @anderszapac
      @anderszapac 5 ปีที่แล้ว

      I was about to do the same, but you beat me to it. For that matter, neither TI-99/4A, ZX Spectrum nor Atari 8-bit computers have a Microsoft BASIC variant, but many others do. I'd check e.g. the TRS-80 CoCo in Robin's video, possibly Oric-1 and some more, perhaps Apple II which initially came with Apple's own Integer BASIC but later was shipped with Microsoft.

    • @anderszapac
      @anderszapac 5 ปีที่แล้ว +2

      Some more results from emulation on the "Bill Gates sucks" test program:
      MSX BASIC 1.0
      UUJFDRIARCLBEIFJJCBELOGRDCOB
      HUSKULGTENCNTGRBA
      NKULNROECESMAMBHDSHQF
      Both Apple II and Oric Atmos (exact same output!)
      SJ
      FUNGFBPPIAFIQPNRDPT
      MISDCJKSLCSLS
      CBM BASIC 2.0/4.0/8296 as indicated above:
      LNDJIGOBQLQOATMUNNHSQCCNAFSLGBJCUGFLCTJDOMBGGGKJJPGE
      NB
      DSCJGCHFLIBTJPUNHMMUNU
      VTech Laser 500/700 (also running Microsoft BASIC)
      HIMCUSAPLMGO
      AQNUDHSJEKAGD
      LA
      For that matter, BASIC V2 in the VIC-20 and C64 supposedly is BASIC V4 but stripped down, removing the disk handling commands rather than reusing the old PET version V2. Since the RNG is different, there must be more changes to it.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +1

      Nice research! Very interesting.

    • @anderszapac
      @anderszapac 5 ปีที่แล้ว

      On running your second program finding strings, I found that on the Oric Atmos (and thus most likely Apple II series), you will find "AN" at 22399, 31391, 40928, 41302, 42917 etc. The Oricutron emulator can run up to 64 MHz but I'm afraid it would take a lot of time to find longer strings. Perhaps there is a scripted Apple II environment similar to the Commodore BASIC environment you mentioned.

    • @acmenipponair
      @acmenipponair 5 ปีที่แล้ว

      Anders, you are wrong: Basic 4 was an enhanced version of Basic 2. It was with Basic 3.5 and the C116, that Commodore first time at all after the PET 2001 were making a newer CBM Basic form, after they had acknowledged, that changing their Basic would not result in another license fee for Bill Gates.
      I would say, the reason why it don't work in the Basic 4 Versions - as the computers where Basic 4 was used with the Commodore CMD 4000 series - and that series don't have a SID chip ;)

  • @IntoTheVerticalBlank
    @IntoTheVerticalBlank 4 ปีที่แล้ว +1

    MOVE your hand! Stop talking! Hey Robin! keep kicking ass!

  • @272zub
    @272zub 5 ปีที่แล้ว +1

    You always generate a string of the same length as the string you are searching for. Only then you compare them. But if any of the generated character is not what you want, all subsequent generating is just eating cpu time.
    I can't test that now, but I think optimizing that (and thus pruning the search space earlier) would bring a big improvement, especially for long words.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว

      Yes, I think that would be faster. Good suggestion.

    • @8bittimes
      @8bittimes 5 ปีที่แล้ว

      Beat me to this comment.... 😉

  • @CleberMag
    @CleberMag 5 ปีที่แล้ว +3

    :D , nice video! I remember that in the past, I and my friends put an easter egg in a tachograph build here in Brasil. But no one finds this. The Tachograph is SV-2001, built in 2001 from Seva Engenharia. I Don't remember the right version that applies.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +3

      Do you remember what the easter egg did? I love these kind of secrets :)

    • @CleberMag
      @CleberMag 5 ปีที่แล้ว +2

      ​@@8_Bit , it prints all the staff names in diagram tape. Normally, it prints the graphic of velocity in a time period. But to get this, it's necessary to set up his velocity limit (normally used to alarm the driver that he is too fast) for one that I don't remember and press UP button for a long period.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +1

      Very cool! :)

  • @UberAlphaSirus
    @UberAlphaSirus 3 ปีที่แล้ว +1

    When you showed the easter egg program, I thought to myself, this is a monkeys and typewriter thing.

  • @Lion_McLionhead
    @Lion_McLionhead 5 ปีที่แล้ว

    Brought back memories of how unrandom the random number generator was. Games using random numbers were really frustrating.

  • @ianjuby
    @ianjuby 5 ปีที่แล้ว +6

    enjoyable as always! btw - Commodore 16?!?!??? I don't recall ever hearing of that before

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +8

      It was part of the ill-fated 264 series from Commodore. The C16 is the little brother to the Plus/4; both machines did very poorly as they were inferior to the C64 in many ways despite being released afterwards. en.wikipedia.org/wiki/Commodore_16

    • @jpcompton
      @jpcompton 5 ปีที่แล้ว +4

      @@8_Bit Stop talking about them! TED chips are frying left and right from all the explanation!

    • @geekwithsocialskills
      @geekwithsocialskills 5 ปีที่แล้ว +1

      @@8_Bit I recently upgraded my C16 to 64k memory, so now it runs all the Plus/4 software that requires 64k. Super easy modifcation to do.

    • @Blue_Noah
      @Blue_Noah 5 ปีที่แล้ว

      @@8_Bit I got a fully functional C16 some years ago =)

    • @AaronOfMpls
      @AaronOfMpls 4 ปีที่แล้ว

      @Ian Juby The 8-Bit Guy did an episode about the TED machines (C16, 116, Plus/4) in his Commodore History series: th-cam.com/video/ICiZbUypMlQ/w-d-xo.html

  • @TheRetrospective
    @TheRetrospective 5 ปีที่แล้ว +2

    Thanks 8BS&T, I enjoy your videos tremendously. 👏🏻👍 I'll soon try reminiscing my old assembly skills too... 🤪

  • @crazyknarf
    @crazyknarf 3 ปีที่แล้ว

    Thanks for bringing back my childhood. My very first computer was the Commodore 16.

  • @jack002tuber
    @jack002tuber 5 ปีที่แล้ว +3

    An excellent demo of how psudorandoms work. I've never seen that done before

  • @4lpha0ne
    @4lpha0ne 8 หลายเดือนก่อน

    Nice one! I remember the 8-bit guy reporting about an easter egg in MS BASIC in the C64 ROM.

    • @4lpha0ne
      @4lpha0ne 8 หลายเดือนก่อน

      Thx for the

  • @RandolfRichardson
    @RandolfRichardson 3 ปีที่แล้ว

    Compiling that with PetSpeed and then running in the VICE x64 emulator with Warp mode enabled will make your search algorithm run dramatically faster. (Thanks for a great video, as this brought back plenty of fond childhood memories for me.)

  • @cigmorfil4101
    @cigmorfil4101 5 ปีที่แล้ว

    RND(0) uses TI as the seed.
    [Early] Pseudo random number generators were sequence generating functions which took the last random number as the initial value for the function to create the next pseudo random number which was then plugged back in to get the next, and so on.
    Seeding via a negative number just set the last pseudo random number to that value.
    Seeding via zero sets the last pseudo random number to a value based on TI (if not just TI itself).
    In a quick loop TI will not change much and the result is that the seeds are very close in value. The RND function possibly gives little weight to the lower bits of the seed, resulting in the clumping effect if you see. Also, "fixing" the sequence produced to generate the first 21 letters of the alphabet into words probably messed up the "randomness" of the function meaning that close seed values result in clumping - converted to letters possibly gave double letters.
    RND(0) is best used when there is an external random event to seed the function, and then not used again until the next external random event to reseed the function.
    The easiest external random event is the user pressing a key (the Applesoft deliberately (rapidly) incremented its random number seed pair whenever the GET command was used to get a character from the user, thus randomly disturbing the random number sequence).

  • @DiskWizard001
    @DiskWizard001 5 ปีที่แล้ว +1

    Good job ! Very interesting ! Thank you. I'm long time Sinclair 128K user and yes, it remainds me of "pseudo randoming" RANDOMIZE USR 15616 - TR-DOS call :)

  • @kiltworm
    @kiltworm 5 ปีที่แล้ว +1

    Do you know why the default colours in a C64 were blue on blue? From a readability standpoint it doesn’t seem optimal. Although it feels great to see the old C64 again.

    • @jpcompton
      @jpcompton 5 ปีที่แล้ว +2

      The Atari 8-bit series (first released in 1979) used the blue-on-blue first and it seems like a deliberate choice by Commodore to clone that look in the C64. But you're right that on blurry, interference-prone RF output it really wasn't the best move for either platform. (One may wonder if it was a stealth effort to prod buyers into picking up a dedicated monitor as well, and that's a legitimate possibility.)

  • @chunk1978
    @chunk1978 5 ปีที่แล้ว +1

    You're C64-C looks to be in pristine condition! Retro brighted, maybe? Anyway, I miss my old C64-C and all my disks that were lost many years ago. *sigh*

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว

      Thanks! I haven't retro-brighted any of my machines. Some of them like this 64C and the VIC-20 I've shown in other videos look great still. Other machines, especially my C-128 computers, do NOT look so good.

  • @Magisktification
    @Magisktification 2 ปีที่แล้ว +2

    What a bunch of hippies! 😂😂😂

  • @n2kmasteroriginal
    @n2kmasteroriginal 5 ปีที่แล้ว

    I had the TRS-80 and never even noticed it was a Microsoft thing....nor knew about that easter egg. I never seen that PET model, I ended up getting the CBM Pet

    • @n2kmasteroriginal
      @n2kmasteroriginal 5 ปีที่แล้ว +1

      However checking out the BASIC coding you got on the screen (I'm a GW-Basic and Qbasic-er) and now im curious if that coding would show me any sort of easter eggs in those versions of basic

  • @Games-bw5ee
    @Games-bw5ee 3 ปีที่แล้ว +1

    Nowadays, Microsoft's 'Easter Eggs' come in the form of forced mandatory System Updates that break your computer. _"What are they like, ay?"_

  • @Wenlocktvdx
    @Wenlocktvdx 5 ปีที่แล้ว +1

    On the CoCo we used a=rnd(-timer) to seed the random number generator.

    • @Pandamad
      @Pandamad 5 ปีที่แล้ว

      You can do something similar on the C64 using the "ti" (time) variable. It's still not completely random.
      www.c64-wiki.com/wiki/TIME

  • @nullplan01
    @nullplan01 5 ปีที่แล้ว

    As I recall, the RNG seed for this algorithm was only 16 bits, right? So it can only produce 65536 different sequences. You are using base-22 digits to display a string. log(65536)/log(22) =~ 3.5, so you can find all 3 letter strings, most 4 letter strings, and then it tapers off.

  • @TheUtuber999
    @TheUtuber999 ปีที่แล้ว

    10:50 Thanks for the tip on using cbmbasic. I did a quick comparison and found that it runs about 5000 times faster than a C64, or about 500 times faster than using Vice in Warp Mode...
    Vice:
    10 t=ti
    20 forx=1to1e5:next
    30 printint((ti-t)/60)"seconds"
    ready.
    run
    117 seconds
    cbmbasic:
    10 T=TI
    20 FORX=1TO1E9/2:NEXT
    30 PRINTINT((TI-T)/60)"SECONDS"
    READY.
    RUN
    114 SECONDS
    READY.
    ?1E9/2/1E5
    5000

  • @seanrodgers1839
    @seanrodgers1839 7 หลายเดือนก่อน

    I had never even heard of Microsoft in the early 80s+, high school year. The VIC-20 and C-64 were great computers. I used to write machine code to go fast. It was so much faster, you have time before you get your driver's license.

  • @AiOinc1
    @AiOinc1 5 ปีที่แล้ว +1

    WAIT 6502 right? It's because Commodore got a an absolute STEAL on prices for Microsoft BASIC at the time - One time payment and they got to use it for years.
    It's also why Commodore BASIC sucked for a very long time.

  • @TheAtariCreep
    @TheAtariCreep 5 ปีที่แล้ว +5

    WOW that's some interesting stuff!

  • @aaronmicalowe
    @aaronmicalowe 4 ปีที่แล้ว

    I wonder if the reason why some random numbers are similar is because there was a trigonometric element to their generation. Imagine a sine wave and as it peaks and troughs the values are changing the least.

  • @drsnova7313
    @drsnova7313 5 ปีที่แล้ว

    The first thing that came to my mind when starting the video was "what idiot back then would waste precious bytes for an easter egg message?" Apparently, I'm with Commodore on this one.

  • @charles-y2z6c
    @charles-y2z6c 5 ปีที่แล้ว

    Jim Butterfield who wrote and taught plenty of Commodore software caught these eater eggs, I would not doubt if he wrote the revenge Easter egg

  • @Melds
    @Melds 5 ปีที่แล้ว

    It'd be fun to build a table of matches for a quick lookup of other phrases. Pretty clever trick.

  • @zaphod77
    @zaphod77 3 ปีที่แล้ว

    Actually that MS easter egg was a copyright trap.
    The fact that that command produces the output proves it's MS code, even though the poweron screen doesn't mention microsoft. The Xevious name trick is another such copyright trap, and caught many people with bootleg games back in the day. Even if the company name and copyright were modified, if you did the trick it printed DEAD COPY MAKING copy under NAMCO program (if it was the original rom it would print NAMCO ORIGINAL program by EVEZOO).

  • @TheMusclepig
    @TheMusclepig 5 ปีที่แล้ว

    Thank you for posting. The "funnest" days of ones' childhood were spent infornt of an MC-10.

  • @Renville80
    @Renville80 ปีที่แล้ว

    I remember reading that to seed the random number generator with an unique value every time, use -TI as the seed value.

    • @gordontaylor2815
      @gordontaylor2815 8 หลายเดือนก่อน

      Computers by their nature simply can't generate "true randomness" without an outside source for it. Using the time TI value was simply a quick and dirty way to constantly change the seed for the RNG.

  • @geekwithsocialskills
    @geekwithsocialskills 5 ปีที่แล้ว

    Very cool! I love these EasterEggs. I was unaware of the C16 one, so thanks for sharing that!

  • @Renville80
    @Renville80 ปีที่แล้ว

    While typing in the program on an emulator for the first time in years, I found it interesting that I was instinctively using the keyboard shortcuts while typing in the program (? instead of PRINT, g,o, shifted-S for GOSUB, etc.) after all these years! Almost like riding a bike - you never truly forget!

  • @doktor6495
    @doktor6495 5 ปีที่แล้ว +1

    My favorite easter egg is definitely 4:48 :-) Greetings, Doc64!

  • @HighestRank
    @HighestRank 5 ปีที่แล้ว

    Random access text editing functions from within the screen buffering? That IS the shit.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว

      I didn't realize how spoiled I was with Commodore's screen editor until I started using *nix, AmigaDOS, MS-DOS etc. in the late '80s and early '90s.

  • @MetalGearHazumu
    @MetalGearHazumu 5 ปีที่แล้ว +6

    You had me at 'CLICK SUBSC RIBE'

  • @yorgle
    @yorgle 5 ปีที่แล้ว

    My brain is cranking on ways to obfuscate this more. Having RND in there might be a trigger that something.. crafted? is happening... Replace that with a poke/peek/sys to call the RND function so it looks more complicated perhaps. ;D

  • @CommodoreComputerMuseum
    @CommodoreComputerMuseum 5 ปีที่แล้ว +2

    Another very interesting video. your videos blow my mind very in depth. Keep them coming

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว

      Thanks Bread Box! Make sure you ping me when you get that video about making a line in cassette adapter done, I'll share it on my channel community page.

  • @johng.1703
    @johng.1703 ปีที่แล้ว

    on the commodore you can actually get it to print just about any message you like

  • @danw1955
    @danw1955 5 ปีที่แล้ว

    I have a 1984 Xerox 820-II that runs CP-M 2.0, and I'm curious now to know if there were any easter eggs hidden in their code.😉 I had a TRS-80 at one point, but never really did anything with it, as it was right around the time that MS-DOS and IBM-DOS (PC-DOS) were the latest thing and everyone was building on those. My first *'real'* computer back in 1988 was an 80286 IBM/AT clone with 640K memory, a 2MB expansion board, and a 10mb. MFM hard disc, running MS-DOS 3.3. There was a big war between IBM and Microsoft right around that time to one-up each other in the DOS development game, and with the inherent problems in IBM-DOS 4.01, M$ actually moved ahead a bit taking advantage of the new EMS standard for utilizing memory over 1 MB... 1988 was a very busy year for all PC and software developers, and you can chart the progress here: en.wikipedia.org/wiki/Timeline_of_DOS_operating_systems 😉

  • @adagas-caouchristian7875
    @adagas-caouchristian7875 5 ปีที่แล้ว +1

    Super cool video! Very informative and entertaining. Thank you.

  • @csbruce
    @csbruce 5 ปีที่แล้ว +2

    0:01 Wow, 243k views on the previous video! If you want another big video, you can just find another intersection point between 8-bit computers and other retro-tech.
    1:17 I think the VT-100 terminal had a Blink attribute back in the 1970s, escape sequence « ^[[5m ». 'xterm' still supports this.
    1:30 A computer found an even-worse default color combination than the C64! Black on green with thin letters produces lots of blooming.
    2:48 It's hard to understand why they gave BASIC the WAIT command for any reason other than as a vector for this Easter egg. In the rare instances where you actually want to wait for a bit change in a hardware register in BASIC, you can easily do it with a PEEK in a loop. The ROM space for the WAIT statement could have been put to better use with some other statement or function.
    4:23 Didn't you previously promise to change the cursor color to white when showing C64 code?
    5:20 At this point in the video, I was reminded of the digits of pi. Pi's sequence of digits is infinitely long and effectively random, so if you search long enough, you'll eventually find a starting position that contains any secret message you want in any encoding method you want - all baked right into the fabric of the universe!
    7:08 Your string operations will be very slow. It'd be a lot faster to unroll the comparison loop and search for a specific sequence of integers:
    10 T=22
    20 FOR B=1 TO 1E9 : A=RND(-B)
    30 IF INT(RND(A)*T) = 1 THEN IF INT(RND(A)*T) = 14 THEN PRINT B : END
    40 NEXT
    7:21 The FOR statement is only parsed once, so removing spaces from it really doesn't impact speed.
    10:36 The VICE emulator on my desktop will only "Warp" to 10× speed, so a SuperCPU at 20-MHz would run the search even faster. I suppose I could break up the search space (interleave) and run a different X64 for each hardware thread my computer has.
    11:14 Mist64 would need to recreate the RND() function, floating-point operations, and round-off errors precisely to produce exactly the same random-number sequence as Commodore BASIC.
    12:25 An efficient positive number to give RND() is π.

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +1

      Thanks as always for all the comments. TH-cam still thinks you're a spammer, by the way :)
      Yes, I agree that WAIT is a strange command. It's of such limited utility. Really, the only advantage is that it's much faster than a PEEK loop which might occasionally be useful. I think I saw someone use it to do a raster split in BASIC which would otherwise be impossible.
      re: white cursor, I promised to do so whenever I remembered - and I didn't this time :(
      Very interesting idea about the unrolled comparison loop. If I ever find myself searching RND() again, I will try that! And thanks for the reminder again that I don't need to crunch the FOR statements. Old habits die hard.
      cbmbasic (part of Mist64) does exactly recreate all those elements of Commodore BASIC; I used it to find the SUBSC RIBE strings.

    • @rbrtck
      @rbrtck 2 ปีที่แล้ว +1

      Yes, using π is much faster than 1 or any other positive integer constant because those are parsed in a more general process, while π is a predefined constant. And for some reason, using . instead of 0 is also significantly faster. It's too bad that BASIC doesn't convert all constants to floating point ahead of time like how it tokenizes the keywords. If it did that and supported real integers, it would have been a comparative speed demon.
      By the way, calling RND(0) or RND(.) is a lot faster than calling RND(1) or RND(π). This doesn't mean you should do it, however. It's just an observation.

  • @teleradiomarvel
    @teleradiomarvel 5 ปีที่แล้ว +2

    it's Halloween non the April's Fool day

  • @cigmorfil4101
    @cigmorfil4101 5 ปีที่แล้ว

    "The PET Revealed" (second edition 1980) lists the ROM routines of the old (2000 series PETs) and new (3000 series PETs [with the proper keyboards and no internal cassette dtive). For the new ROM it lists:
    D745-D76D Microsoft joke
    The length of the perform WAIT code is given as the same for each (1B bytes); so either the jump is there or some pre-perform code does the jump.
    (Interesting change of terminology over about 40 years.)

  • @satan3959
    @satan3959 5 ปีที่แล้ว +2

    What would happen if you put in the killer poke on the PET emulator on VICE?

  • @andrewenglish3810
    @andrewenglish3810 5 ปีที่แล้ว

    Easy Script for the C64, though not made by Microsoft had an Easter egg in it. When you pressed a series of keys it would play the song that Bill Gate got the Altar to play back in the day, I think that might have been his first actual computer program. :)

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว

      Interesting! Do you know what keys need to be pressed? I haven't found that information online with a bit searching...

  • @eformance
    @eformance 5 ปีที่แล้ว

    The C64 RNG is just a linear feedback shift register, right? So then you just need to feed it a seed that, when shifted, results in the desired byte sequence.

  • @JacGoudsmit
    @JacGoudsmit 5 ปีที่แล้ว

    I wonder if you can speed it up even further if you store each character of the string into an array of integers.
    Also I wonder if performance would change if you would remove the for-loop and just replace it with a goto-loop: start with 20 B=-1, then 100 A=RND(B) (B is already negative so no need to let BASIC negate the number), then do all the other stuff and at the end do 130 B=B-1:GOTO 100.

    • @Lord-Sméagol
      @Lord-Sméagol 5 ปีที่แล้ว +1

      FOR will be faster; the address of B, the STEP value in internal floating point format and the start of the loop body are all stored in the FOR control structure.
      B=B-1:GOTO 100 would need to be parsed EVERY TIME; the variable list will need to be searched for BOTH instances of B, the "-" would need to be scanned, the "1" will need to be converted from text to internal floating point format, GOTO 100 will need to find line 100, searching from the beginning of the program.

  • @kelpkelp5252
    @kelpkelp5252 5 ปีที่แล้ว

    This is, quite frankly, astonishing.

  • @byteforever7829
    @byteforever7829 3 ปีที่แล้ว

    just typed it in my c64c and it worked, thats brilliant

  • @BitcoinJake09
    @BitcoinJake09 5 ปีที่แล้ว +2

    I'm a simple man.
    I see BASIC CODE & I click.

    • @DamianYerrick
      @DamianYerrick 5 ปีที่แล้ว +1

      Incidentally, if you change the RNG to SHA256, and instead of searching for a word you instead search for a given number of spaces at the start, this is exactly how Bitcoin mining works.

  • @davedogge2280
    @davedogge2280 3 ปีที่แล้ว +1

    4:47 lol aint that the truth

  • @dru1432
    @dru1432 5 ปีที่แล้ว +5

    Will your hand dress up for Halloween? :)

    • @8_Bit
      @8_Bit  5 ปีที่แล้ว +3

      Yes, I think my hand will dress up as LGR's!

    • @csbruce
      @csbruce 5 ปีที่แล้ว +2

      @@8_Bit: With a little green-screening, you could do a "Thing" from The Addams Family.

    • @Mario583a
      @Mario583a 5 ปีที่แล้ว

      @@csbruce Or the hand from Mr. Bill. th-cam.com/video/sQX4fYDeeGk/w-d-xo.html or th-cam.com/video/PqxN9dgBKL4/w-d-xo.html

  • @bluepill8077
    @bluepill8077 2 ปีที่แล้ว

    I saw this message in windows as well years ago, win 95 maybe?
    I did it myself, the process was something like you go into MS word, select the font DINGBATS, type out a string of nonsense letters and symbols, then highlight the text and convert it to a normal font, and the text would then read, Bill Gates sucks 😆

  • @frozenlake1215
    @frozenlake1215 5 ปีที่แล้ว +1

    Not quite a middle finger rendered in ASCII code but still pretty cool

  • @pleromicpastry5445
    @pleromicpastry5445 5 ปีที่แล้ว +1

    You have such pillowy bear paws. XD

  • @AllanFolm
    @AllanFolm 3 ปีที่แล้ว

    I'm not sure this is a true easter egg. As I understand it, the RND function does not produce a true random number. The seed value determines the string of numbers, which is the same for each run. If you look long enough, you'll find a seed which produces a string of numbers which creates some apparent predetermined result. It's the equivalent of enough monkeys and enough typewriters will eventually produce a new Shakespeare.

  • @AZTechLabs
    @AZTechLabs 3 ปีที่แล้ว

    you just discovered supreme RND seed compression.

  • @halamkajohn
    @halamkajohn 4 ปีที่แล้ว

    Display x 4 spots or / 4 spots C64? SDGB from Europe for 50 dollars. Been 25 years since a Commodore has been built.

  • @Jm0417-s
    @Jm0417-s 5 ปีที่แล้ว

    I only read newsletters. I can't find anybody who mails nooseletters.

  • @jfbeam
    @jfbeam 5 ปีที่แล้ว

    Not an egg per se, but perfect example of how computers can't do random.