A re-tracing of how Paul Allen loaded BASIC on the MITS Altair 8800 from paper tape

Josh Bensadon loads Bill Gates' and Paul Allen's BASIC to the Altair 8800 on December 6th 2014 in Toronto at the TPUG World of Commodore Show

Пікірлер: 77

  • @andrewomahony9260
    @andrewomahony92605 жыл бұрын

    Holy cow...the fact that Bill Gates and Paul Allen got ANYTHING to work on this thing and somehow were able to market it is amazing.

  • @MarvelousLXVII

    @MarvelousLXVII

    4 жыл бұрын

    The amazing thing is that they had never even seen one when they programmed the basic for it. They simulated it all on a PDP-10 computer that emulated the microprocessor of the Altair. Real Paul Allen's wonderful autobiography if you ever want to hear more.

  • @uni-byte

    @uni-byte

    3 жыл бұрын

    Yeah, back when computers were cranky and computer folk were clever, not Windows Wussies. People did real work back on such machines. Basically the same root functionality as is used by business today ... without all the bloat.

  • @miloh-k7660

    @miloh-k7660

    3 жыл бұрын

    ​@@uni-byte Yeah, back when computers were ENIACs and CNC's and computer folk were clever, not Punchedcard Pansies. People did real work back on such machines, fixing vaccum tubes and the like. Basically the same root functionality as is used by buisnesses today in the 70s and 80s... without all the bloat. - Yeah, back when computers were electromechanical and computer folk were clever, not Vaccum-tube fixing losers. People did real work back on such machines, designing complex motors with little help and integrating them into things like typewriters. People didn't need fake brains for missle equations back then, they did them themselves. Basically the same root functionality as is used by business today... without all of the vaccums and X200+ efficiency. - Yeah, back when computers were mechanical calculation machines and computer folk were clever, not Motor Morons. People did real work on such machines, using Difference machines or binary Integraphs to get arithmatic tables and had thousands of breakable parts. Basically the same root functionality as is used by adademics today... without all of the electricity. - Yeah, back when computers were Astronomical clocks and Abaci, and computer folk were clever, not Calculator Ninnies. People did real work on such fragile machines, doing the math by hand with nothing but aiding tools as we got our culture appropriated by the romans. Basically the same root functionality as is used by natural philosophers today... without all of the work. - Yeah, back when computers were simply our brains with the invention of complex numbers and computer folk were clever, not Abacus Assholes. People did real work on such fragile machines, counting thier goats for trade. Basically the same root functionality as is used by merchants today... without all of the beads. - Yeah, back number no exist people were farmer, not lazy thinker. Did real work, place stone when goat leave remove stone when goat come back. Same today... no lazy thinking not working. - OOK! OOK! EEE EE! OOK! AAH! EEEH EEH AHH AAH OOH! OOH OOH AHH EE EEE EEE!! E EEE OO OOH AAH OOK! OOOH OOH... AAH AAH EEEE! - glubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglub....glubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglubglub. - GAUACGGGACCAGUUUACGAUCAGUCAGUGUCGGUCGAGAGAUCUGUACCUCGUCGCUACAGUCAGUACAGAGAGAUUCAGACUGAUUGCACAGUCCAGGAUCAGAUAG - TACGATTACGATTACAGGATCATATATATATACCAGCAGCTTGTATCCCCCCCCAGACTCGAGAGAGCAAGACCATGGATACGAAGCTGCATGACAGCAAACGCTCATTCATTCCAGAGCATCGGTAG - ...

  • @uni-byte

    @uni-byte

    3 жыл бұрын

    @@miloh-k7660 Let there be light!

  • @cpcnw

    @cpcnw

    2 жыл бұрын

    Andrew 'Tridge' Tridgell reverse engineered SMB & BitKeeper by analysing their protocols 'on the wire'. Yep, Bill & Paul where smart as they didn't have access to the hardware [only the manual]. But imagine trying to do what Tridge has done? No specs, no manual - It's another level.

  • @wrongmouse1658
    @wrongmouse165811 ай бұрын

    Don’t step on the tape! OK, as with all systems of that day for the most part they were unique. Your boot loader was different for each system. Now, I had an Altair 8800 too, and mine had had something like 16k or so of memory, a Teletype Model 33, and a MITS serial card. Had more but this is what we need for this example. One Saturday morning, I thought I wanted to play a game of Battleship. So, for the next 45 minutes I loaded 12K basic paper tape with no issues, it came up to Ready. Next, I loaded the paper tape with Battleship, again with no issues, and it up to came to Ready. At this point, the power to the apartment blinked! (A naughty woad), 90 minutes down the drain! Left to do something else.

  • @ConernicusRex

    @ConernicusRex

    10 ай бұрын

    I wrote a whole casino worth of simple gambling games as a 10 or 12 year old on my RC-10 and had the power blip before I could write to cassette. I almost quit programming right there 😂

  • @wrongmouse1658

    @wrongmouse1658

    10 ай бұрын

    @@ConernicusRex That was why upgraded to auto tape. Then floppy later.

  • @pauldzim

    @pauldzim

    10 ай бұрын

    @@wrongmouse1658 what’s autotape?

  • @datadude67

    @datadude67

    9 ай бұрын

    @@ConernicusRex every programmer has lost days if not weeks of work due to power glitches or bad media. It's part of the hazing ritual!

  • @eanerickson8915
    @eanerickson89153 жыл бұрын

    I was relieved to see the terminal at the end. Could you imagine using those switches for basic?

  • @ConernicusRex

    @ConernicusRex

    10 ай бұрын

    It was only 4kb. You could do it in… like 3-3.5 hours if you didn’t mess up a byte and have to re-do it. Edit: just realized you meant writing input in BASIC, not loading BASIC itself into the machine which would have to be done first.😂😂😂

  • @sebione3576
    @sebione35767 жыл бұрын

    I always wondered about this. thanks for uploading.

  • @JoeCnNd
    @JoeCnNd8 жыл бұрын

    He sounds a lot like John C. Reilly. I think this stuff is interesting. It's amazing to see where a lot this got it start. Being 32 I was getting my hands on computers around 1989-1990 time frame and even from there it's unrecognizable.

  • @ConernicusRex

    @ConernicusRex

    10 ай бұрын

    This is only a decade older than the IBM PC clones you first used. Imagine that in any other field. It’s like if someone invented the drag racing funny car 13 years after after the first horse drawn wagon. 😮

  • @datadude67

    @datadude67

    9 ай бұрын

    ​@@ConernicusRexyou are so right. Things happened SO fast back then.

  • @danielcisak7003
    @danielcisak70033 ай бұрын

    Impressive, very nice.

  • @allanegleston4931
    @allanegleston49312 жыл бұрын

    i have that issue of pe in my collection. i would have loved to make the machine but didnt have the skill sets to make it . neat .

  • @tschak909
    @tschak9097 жыл бұрын

    This is not the first version, but rather the most common variant of 4K Microsoft BASIC for the Altair. The very first version shown @ MITS demonstrated: (1) Memory size prompt was different, and did not automatically calculate memory size (2) The signon was 8080 BASIC (3) the prompt was READY instead of OK (4) no NEW, but rather used the dartmouth SCRATCH keyword (5) was actually somewhere closer to 6K, this was before they optimized it. (6) Did not use a checksum loader, but rather required a loader that would dump the raw binary on the tape starting at location 0000. There were some others, but that's what I remember for now. -Thom

  • @datadude67

    @datadude67

    7 жыл бұрын

    I do remember reading that Bill having an issue with the "Ready" prompt, which stayed in the version sold to Commodore. Apple and Tandy (and likely many others) were given the "OK" version. I am not sure how many bytes are in the version Josh is seen uploading, but I read that early versions of basic were made to run in as little as 6K of RAM. That includes space for a small program and variables.

  • @JasonMasters

    @JasonMasters

    7 жыл бұрын

    Actually, the TRS-80 model 1 had a 4K BASIC interpreter and had only 4K of RAM, some of which was used by BASIC and the memory-mapped screen. I remember it had exactly 26 numeric variables, A-Z, two string variables (A$ and B$) each of exactly 16 characters and one single-dimension numeric array "A()" which had a size dependent on the amount of unused RAM. There were three possible error messages: WHAT? (syntax error - I don't know what you want) HOW? (you're asking me to do something impossible, such as divide by zero) and SORRY (I've run out of memory). As one wag commented, "just so long as it never asks WHY?" ;)

  • @tschak909

    @tschak909

    7 жыл бұрын

    The 4K Level I basic was a straight port of Li-Chen Wang's Palo Alto Tiny Basic, which shares no code with Microsoft's BASIC whatsoever, which actually fit into roughly 1 and a half K of assembled code.

  • @ConernicusRex

    @ConernicusRex

    10 ай бұрын

    @@datadude67my TRS said, “READY”.

  • @WickedScott
    @WickedScott5 ай бұрын

    I am mystified how MITS didn't even know the potential of the thing they created

  • @shadowjuan2
    @shadowjuan25 жыл бұрын

    I envy them, they must had a blast working on this thing. Too bad in Colombia, my country, people don’t appreciate technology.

  • @whitesludge2214

    @whitesludge2214

    Жыл бұрын

    Did you escape Colombia already?

  • @toxicfem69
    @toxicfem692 жыл бұрын

    great now let's see paul allen's altair BASIC

  • @Gromitdog1
    @Gromitdog17 жыл бұрын

    Are the toggle switches inputting the bios and the punch tape is a program or data?

  • @JasonMasters

    @JasonMasters

    7 жыл бұрын

    No such thing as a BIOS in that old computer. It might be a difficult concept for young folk to grasp, but a computer that old had nothing but garbage in its memory when first switched on. There was no permanent memory so it had no sensible instructions to run. The memory was full of the random garbage which shows up as part of applying power to volatile read-write memory (RAM). The switches were for inputting the boot loader to tell the computer how to read the paper tape and where in memory to put the program while it was being read from the tape and where to jump to in order to start running the program once it had been loaded. The paper tape was the "disk drive" of its day. It could hold a program or data, depending on how the computer handled it. In this case, it was a program and was a very early version of BASIC.

  • @pauldzim
    @pauldzim2 жыл бұрын

    CDs were invented in 1982, barely more "modern" than the Altair 😄

  • @ConernicusRex

    @ConernicusRex

    10 ай бұрын

    People don’t realize how close together the tech advances really were from 1930-2000. It’s absolutely insane.

  • @chrispedersen2526
    @chrispedersen25264 жыл бұрын

    Just wondering, what language is on the paper tape? Is the code on the paper tape machine code like the bootloader that you toggled in? Or is it assembly language?

  • @eanerickson8915

    @eanerickson8915

    3 жыл бұрын

    Did you see them load a compiler?

  • @somethingsecretsteersus5115

    @somethingsecretsteersus5115

    3 жыл бұрын

    @@eanerickson8915 =)

  • @BigEightiesNewWave
    @BigEightiesNewWave2 жыл бұрын

    Wow it is like long , skinny punch cards end-to-end on a spool.

  • @SevenDeMagnus
    @SevenDeMagnus6 жыл бұрын

    Hi. How'd Bill and Paul Allen able to afford the machine to create the paper tape BASIC as students, in the first place? Also where did their BASIC idea come from? Also how they did test it without the Altair? Thank you. God bless, Proverbs 31

  • @kb8679

    @kb8679

    6 жыл бұрын

    I don't believe they could've afforded any of the equipment required to pull this "neat little stunt". They had access to computers as Harvard students (along with the paper tape equipment) and they already had their own 8008 emulator for the PDP-10 which was the starting point. So designing and testing was done via emulation. First run on a real Altair hardware was the demonstration Allen gave to MITS. And while many things could've gone wrong, everything worked fine. BASIC was still relatively new at the time and it seemed like a great way to interact with the computer which would otherwise be pretty useless. Latter proved to be very true since nearly all of the following microcomputers did indeed had BASIC interpreter. In many cases this was the OS these machines would run. Other OS's were around at the time too, but even if they ran something else, they almost certainly all had some form of BASIC included too.

  • @youtuuba

    @youtuuba

    4 жыл бұрын

    Bill and Paul already had experience wiring software with their previous venture, Traf-O-Data, which they had while students at Harvard. Paul had an early microprocessor emulator which ran on one of the college's PDP series computers, which they had to share the resources of....apparently this was running a business using college property, which the college authorities were not aware of. When MITS announced the Altair 8800 on the pages of Popular Electronics, Bill and Paul were shocked and were also worried that the computer world was already passing them by. They got busy writing their first version of BASIC, intended to run on an Intel 8080 microprocessor, which the Altair used. They did not have an Altair or access to an 8080, so they revised their earlier emulator on the PDP computer so it would emulate an 8080. Their only reference for this was the Intel manual for the 8080, and they were very concerned that if an error(s) were in the manual regarding how the 8080 executed various instructions, then their emulator would be defective, and any programs they developed using the emulator would also be non-operational when run on an actual 8080. They contacted Ed Roberts of MITS and told him they had a BASIC that would run on the Altair 8800, which he sorely needed to make his product actually do something useful. Bill was on the phone with Ed since he had written most of the BASIC and was most familiar with it (Paul had written various auxiliary routines, and another student had written the floating point math routines). Apparently, Bill and Paul were concerned that if Bill went to meet Ed, he would be dismissed since he looked too young and Ed did not realize that they were 'just college students'. Paul looked older, so he was the one who went to meet Ed. Bill stayed up in the college dorm all of the previous night, re-reading the Intel manual, because of his concern that they might have missed some critical aspect of the 8080. In all this, they forgot to send a boot loader program with Paul, which would be necessary to load in their paper tape of BASIC. Paul realized this and hastily wrote a boot loader while on the flight to meet Ed (Bill later re-wrote the boot loader to be less than half as long as Paul's version, and Josh Bensadon, shown in this video, later re-wrote it to be even smaller). On the first try, it did not work, but on the second try, the boot loader worked and BASIC was successfully loaded, and it worked. This was Microsoft's first product. The first program run with this BASIC on an actual 8080 processor, in this instance on the Altair, was "PRINT 2 + 2", and the answer came back as 4, and both Paul and Ed were amazed. Paul was amazed that their software was working, and Ed was amazed that his new computer actually would run something as complex as BASIC. Bill and Paul and some other students soon left Harvard and moved to Albuquerque to be close to MITS. They had no almost money, and stayed in a cheap hotel that was far enough away from MITS that they would not be embarrassed if Ed found out what a tiny operation they were. Microsoft was based in that hotel, and after a while they moved to a somewhat less modest office. They were refining BASIC and writing other software for the Altair. Their agreement with MITS was that in addition to getting paid outright for letting their software be used by MITS, they also got a percentage of every sale, AND they were still allowed to sell their BASIC to other computer companies, albeit in modified forms to suit each computer. The rest is history.

  • @Plarndude
    @Plarndude2 жыл бұрын

    Why is there no reel to reel system for paper tape like there is for magnetic tape?

  • @isallah1kafir196

    @isallah1kafir196

    2 жыл бұрын

    @Plarndude The CD-ROM shown here was not even invented yet. So maybe they used something else. Or just folded it up....

  • @mr.fancypants3366
    @mr.fancypants33666 жыл бұрын

    How did Paul Allen (and Ed Roberts) connect a monitor to the Altair, a machine that when introduced could connect with nothing but power, that I like to know.

  • @1videoshow

    @1videoshow

    6 жыл бұрын

    Teletype printer i think.

  • @youtuuba

    @youtuuba

    5 жыл бұрын

    My understanding is that MITS had a Teletype terminal connected to the Altair they used for testing BASIC. The Teletype terminal combined the typewriter terminal (keyboard and printer) with a paper tape writer/reader. Paul Allen entered the boostrap loader, much as is shown in this video, using the Altair's native front panel toggle switches and LEDs. Then he used the connected Teletype terminal's paper tape reader to read the tape (containing their BASIC program) that Allen and Bill Gates had produced back at Harvard. Once BASIC was loaded from the paper tape, using that boot loader, then the Teletype would have printed (literally printed) the initial lines that prompt the user for things like memory and such. Any BASIC programs that a user would write could then be saved to a connected Teletype terminal, as long as it had a paper tape writer/reader. Later, it would have been more likely to use a CRT based terminal, and probably some kind of magnetic program storage (cassette or other). These days, we Altair hobbyists just connect a modern PC to the Altair, and the PC runs any of the 'terminal emulator' programs that behave like the older CRT terminals, or the Teletype terminals. Usually, the terminal emulator also handles saving and loading user programs, using the PC's hard drive as the storage media.

  • @cpcnw

    @cpcnw

    8 ай бұрын

    @mr.fancypants3366 @@youtuuba kzread.info/dash/bejne/noGcl7uRadbPpZs.html

  • @cpcnw
    @cpcnw2 жыл бұрын

    Somehow, I have always secretly wanted to see BIll's boot loader...

  • @dhollenbach
    @dhollenbach5 жыл бұрын

    RIP Paul Allen

  • @Shawn_White

    @Shawn_White

    5 жыл бұрын

    Damn I had no idea he passed.

  • @KamiKitsuneVA
    @KamiKitsuneVA3 жыл бұрын

    Aaaaaaand I'm lost. I'd love to build a kit replica of the Imsai 8080 to play around with, but like fuck am I lost on how to operate it.

  • @melissarainchild
    @melissarainchild3 жыл бұрын

    So, imagine booting up the Enterprise...

  • @BigEightiesNewWave
    @BigEightiesNewWave2 жыл бұрын

    Analog feeds digital.

  • @hanniffydinn6019
    @hanniffydinn60195 жыл бұрын

    What is the actual source code of the boot loader ?

  • @Lord-Sméagol

    @Lord-Sméagol

    5 жыл бұрын

    Here is the asm: LXI H,0FAEh ;End of [4K] 2nd stage loader Loop: LXI SP,Stack ;Stack of 1 item [Loop] IN 0 ;Get serial in status RRC ;No Rx byte (bit 0) to Carry RC ;Loop until byte available IN 1 ;Get byte CMP L ;Leader byte? [initially 256(oct)/AE(hex)] RZ ;Loop if leader DCR L ;Move down [leader changes; not needed now] MOV M,A ;Store byte RNZ ;Continue until start of page PCHL ;Jump to 2nd stage loader Stack: DW Loop ;Stack of 1 address: Loop Is this the '17 byte' loader that Bill Gates wrote? I count 20 bytes: 17, then 1 [PCHL] and 2 [DW Loop] ! I managed to improve it (and retain full compatibility): LXI H,0FAEh Loop: LXI SP,Loop ;NEW CODE: Set stack to [3] INX SP ;NEW CODE: Point to the operand [3] ONE EXTRA BYTE IN 0 RRC RC IN 1 CMP L RZ DCR L MOV M,A RNZ PCHL ;No 'DW Loop' SAVED 2 BYTES An overall saving of 1 byte! I also had a go at writing a totally new loader: LXI D,Load ;Load address & leader [021(oct)/11(hex)] Loop: LXI SP,Loop INX SP IN 0 RRC RC IN 1 CMP E ;Leader byte? [initially 021(oct)/11(hex)] RZ STAX D INR E Load: You may think this program is incomplete: no conditional return instruction to continue looping! But you don't need to toggle-in that instruction, you can load it! The first byte loaded can be either: 360(oct)/F0(hex) [RP] to finish loading at 177(oct)/7F(hex) or: 300(oct)/C0(hex) [RNZ] to finish loading at 377(oct)/FF(hex) Then continue with (fall through to) your 2nd stage loader. Having the 2nd stage loader in low memory lets you use the RST instructions (well, 5 of them). So this is a TRUE 17 byte loader :) (I used DE instead of HL to gain a little toggle-in speed with the 2 bytes of 021 021)

  • @Lord-Sméagol

    @Lord-Sméagol

    5 жыл бұрын

    Here is the object code for the loaders: Original Improved New Method Oct Hex Oct Hex Oct Hex 041 21 041 21 021 11 256 AE 256 AE 021 11 017 0F 017 0F 000 00 061 31 061 31 061 31 022 12 003 03 003 03 000 00 000 00 000 00 333 DB 063 33 063 33 000 00 333 DB 333 DB 017 0F 000 00 000 00 330 D8 017 0F 017 0F 333 DB 330 D8 330 D8 001 01 333 DB 333 DB 275 BD 001 01 001 01 310 C8 275 BD 273 BB 055 2D 310 C8 310 C8 167 77 055 2D 022 12 300 C0 167 77 034 1C 351 E9 300 C0 *** ** First byte loaded: 360 F0 for short, 300 C0 for long 003 03 351 E9 000 00

  • @michaeltayon9184

    @michaeltayon9184

    5 жыл бұрын

    @@Lord-Sméagol Wow! I tried to get into ASM in 1983 or so, first with an actual Radio Shack ASM electronics board/kit, then on a 386 with MASM. Like Surfing, I couldn't "get it", and stuck to BASIC LOL :) (For the record, I was in the Navy in Bremerton WA, and was going to work with the Univac 1219, which is what sparked my interest in ASM)

  • @zoiuduu
    @zoiuduu3 жыл бұрын

    so thats how wizards see tech from muggles , they cant understand shit like me

  • @dmitryponyatov2158
    @dmitryponyatov21586 жыл бұрын

    Why tape load was not used from scratch without loader program? every track is swith state on front panel - not very hard to do diy punch machine and pull paper by hand. Photo film may be more effective, but price much more then paper.

  • @intrernationalpaddy

    @intrernationalpaddy

    3 жыл бұрын

    @@tripplefives1402 or literally build a dedicated hardware bootloader with configurable start address... Analogous to the switch mechanism

  • @farhanhoran927
    @farhanhoran9272 жыл бұрын

    интересно очень

  • @brissance
    @brissance9 ай бұрын

    damn hell and i thought i know computers , what was that grandpa pc.?

  • @warker6186
    @warker61865 жыл бұрын

    gud

  • @homebuiltindoorplane
    @homebuiltindoorplane8 жыл бұрын

    I had grand theft auto 20 on paper tape and the spool was a half mile wide.

  • @intrernationalpaddy

    @intrernationalpaddy

    3 жыл бұрын

    Well GTA is around 65GB....69,793,218,560 bytes... At 10 bytes an inch on paper tape that would be... let's see... 63360 inches to the mile... So ... 1,101,534.4 miles of tape... It's 238,900 miles to the moon... So GTA would sit on a tape that would go to the moon and back two times over with enough left over to go back for half the distance (4.6 trips to the moon)... In terms of width, even if you opted for 64bit tape, it would still be 8 inches wide. Just saying 😀

  • @intrernationalpaddy

    @intrernationalpaddy

    3 жыл бұрын

    That said, if you are talking about diameter there's math for that 😂 470 meter diameter... So 1/4 of a mile ;)

  • @kyotomitch8672
    @kyotomitch86728 ай бұрын

    PET2001!!!!

  • @Lion_McLionhead
    @Lion_McLionhead7 жыл бұрын

    How the current generation struggles to count in binary.

  • @Ltulrich
    @Ltulrich2 жыл бұрын

    Cool. Interesting. Not very entertaining. Gave it a like. 😊

  • @alistairmcelwee7467
    @alistairmcelwee7467 Жыл бұрын

    Can anyone read the text before it disappears? My goodness. So annoying.

  • @retrogameplayer2.086
    @retrogameplayer2.0862 жыл бұрын

    fumjaha