Bootstrapping EDSAC: Initial Orders - Computerphile

Поделиться
HTML-код
  • Опубликовано: 24 ноя 2024

Комментарии • 134

  • @104d_3rr0r_vince
    @104d_3rr0r_vince 6 лет назад +71

    Normally I wouldn't watch this as it is too advanced for me BUT, who can resist to this guy?
    His spirit is strong.

  • @no_more_free_nicks
    @no_more_free_nicks 6 лет назад +37

    Finally I understand where the BIOS comes from. After 15 years of programming on the high level, watching this video actually closed some gaps in my thinking about computers.

  • @VoteScientist
    @VoteScientist 6 лет назад +143

    I once programmed a computer with a hammer.
    On the IBM 360 mod 30 boot code was stored in read only TROS strips (transformer read only strip). A one or zero was encoded by which side of a magnet the strip had a hole. One night we were doing engineering changes on a mod 30 and I was tasked with adding new holes to a TROS strip. This was done using a hammer and a 3/8 inch punch.

    • @VoteScientist
      @VoteScientist 6 лет назад +25

      It was 1968 when we were doing EC's on the IBM 360 equipment. Interestingly the 360 mod 40 did use punched cards for micro code and boot code. Rather than TROC the mod40 used CROS (capacitive read only storage). One and zeros were encoded by holes the a standard punch card. the cards were sandwiched between a flat plate and an array of addressable electrodes. The card hole provided a dielectric different from a no hole. CROS was bulkier than TROS, but much faster to read. Instead of a hammer I used an 029 to program the micro code. Higher speed cpu's used still other methods for read only storage, including diode arrays. The first floppy disk was invented to store micro code the 360 channel controller. Oh yeah, I was there even before the 7094 back to the 650.

    • @amicloud_yt
      @amicloud_yt 3 года назад +12

      Now that's what I call coding close to the metal

    • @siarles
      @siarles 3 года назад +6

      @@amicloud_yt Coding right *through* the metal, it sounds like.

    • @ropersonline
      @ropersonline 3 года назад

      @@VoteScientist It's probably worth mentioning that the IBM 029 was a card punch.

    • @uku4171
      @uku4171 2 года назад

      @@VoteScientist brilliant

  • @GordonjSmith1
    @GordonjSmith1 2 года назад +2

    How wonderful see an explanation of the difference between 'operating code', and 'programming code'! Lordy I just learned so much!

  • @renatac210
    @renatac210 6 лет назад +9

    This is my favorite computer stuff related channel on youtube. Thank you so much Professor Brailsford, I always learn a lot with you.

    • @AndersJackson
      @AndersJackson 4 года назад +1

      This is one of the best Computer Science introduction I have found on RUclips. And @ProfDaveB are really great in explaining theses stuff.

  • @austinfernando8406
    @austinfernando8406 6 лет назад +14

    I think computerphile should do a video on the Pilot​ ACE computer, it was designed by Alan Turing (starting 1945, finished in the 50s)

  • @disorganizedorg
    @disorganizedorg 6 лет назад +5

    Wonderful video. I've used a Data General Nova 1220 with front-panel toggle switches (1978 in High School), and also booted a Univac 1100/42 from drum (1981 in the USAF). Also later used a bunch of PDP-11's as front end to Bell & Howell COM recorders, making microfiche in a service bureau.

    • @TimHayward
      @TimHayward 2 года назад

      I still remember a lot of the PDP11 boot loader. Can't remember where I put my car keys, but part of my memory is tied up with that.

  • @johnwhitmore2531
    @johnwhitmore2531 6 лет назад +23

    Brilliant stuff! Great to get a glimpse into the early days of computing. Thanks a million for it.

  • @nab-rk4ob
    @nab-rk4ob 6 лет назад +3

    Awesome! I've was taught by someone who worked with the lead female coder in the Navy in the late 60s. She's in the history books. He was a tall, bent, cigarette-smoking, hard drinking, cussing, programmer, who talked about her with such reverence.

  • @pkeshish
    @pkeshish 6 лет назад +2

    this series is absolutely precious!

  • @sleepCircle
    @sleepCircle 6 лет назад +1

    i love every video with Professor Brailsford in it. idk why. he's my favourite.

  • @AZOffRoadster
    @AZOffRoadster 3 года назад +2

    Brings back memories of writing bit-slice code on the AM2900. Our system used 3 in parallel. Fun times.

  • @TYNEPUNK
    @TYNEPUNK 6 лет назад +3

    I absolutely love this channel, thank you guys.

  • @pallzoltan
    @pallzoltan 6 лет назад +8

    6:37 "Oh Yeeah!" :D I love that reaction

  • @CristiNeagu
    @CristiNeagu 6 лет назад +27

    12:25 That's a bit confusing. I take that to mean 5 locations from the instruction pointer, when in fact it's 5 locations from the base address.

    • @mgrinzRafal
      @mgrinzRafal 6 лет назад +6

      Yes, I also expected the program to be like: O5@, O5@, O5@

    • @Thompson8200
      @Thompson8200 6 лет назад

      Exactly what I came here to say!

    • @profdaveb6384
      @profdaveb6384 6 лет назад +28

      Yes -- many apologies for that slip-up! I'll try and indicate in the sub-titles that the offsets are relative to the base address.

    • @profdaveb6384
      @profdaveb6384 6 лет назад +7

      Thanks for this. Yes the character P is 00000 in EDSAC encoding and these 5 bits occupy the LH end of the word (see Fig. 5 of the Tutorial).
      It's a no-op as an op-code but is very useful in a machine where integer constants can only be inserted by making them look like pseudo-instructions!
      So , in P 23 F, the F resolves into a 0 at the far RH end of the word to show it's a single-length instruction. The 23 , or 0000010111 in 10-bit binary, occupies the 10-bit "Address" field but this is pushed one place to the left by the trailing 0 bit we already inserted for `F' . This shift left doubles the 23 into looking like 46 - if the word is regarded just as a bit-pattern for an integer. A trailing `D' in the instruction format plants a 1 at the far RH end. Combined with the shifted-left doubling already referred to, this explains why P 16 D is 16*2+1 = 33

  • @ayushsharma9270
    @ayushsharma9270 6 лет назад +12

    Can you do an episode dedicated to emulators. I really want to learn about them, and others would like to learn too.

  • @nicolaiveliki1409
    @nicolaiveliki1409 3 года назад +1

    Necessity may be the mother of invention, but laziness is its father

  • @frankharr9466
    @frankharr9466 6 лет назад +3

    My first (and so far only) program didn't say "Hello world" but converted units of measure with fractions and multiple units.
    I think I missed a step or two.

  • @HerrLavett
    @HerrLavett 6 лет назад +4

    Wonderful video, great professor, nice lamp. ok curtain.

  • @Chlorate299
    @Chlorate299 6 лет назад +54

    Wow...I'm amazed they were able to get the entire "operating system" of the computer into 42 WORDS. More memory was used to type this comment.

    • @Verrisin
      @Verrisin 6 лет назад +8

      A LOT, LOT, LOT more memory was used to write it. XDXD
      - Your comment alone is about 8 18bit words. All the JS and browser stuff to write this... I don't even want to think how much more that is. XD

    • @hattrickster33
      @hattrickster33 6 лет назад +24

      Yes imagine if the people back in 1950 knew we would be wasting MEGABYTES of memory simply to display comments.

    • @Verrisin
      @Verrisin 6 лет назад +7

      As true as that is, even worse is how many PB we are wasting storing and transmitting rubbish videos on YT XD.
      - I'm BY NO MEANS saying this video is rubbish, btw.! - It's great, but most stuff uploaded to YT actually is (and most people never see it)
      ... The world is moving fast. I wonder if in few years, people will laugh at us for worrying about a few GB. XD
      --- "What do you mean you measured your storage capacity in GB? My *pen* alone has 128GB of persistent RAM-SSD-XYZ memory-battery, and I buy a new one every week and it can do nothing but write*!" XDXD ..... yeah..... (... and they don't _need_ the new one, they are just tired of the color of the old one or something....)
      (* on every AR board around, synced to global network connected to everyone's mind or..... well, they probably don't need a pen, but that's beyond the point XD)

    • @TheGrooseIsLoose
      @TheGrooseIsLoose 6 лет назад +3

      Martin Verrisin The speed at which memory and storage grow always seem to be the ones that are the most apparent to me. When I got my previous laptop, it was the most advanced computer I’d ever owned, and I was questioning whether to bother getting 6 GB of RAM rather than 4 because why would I need more than 4? Then I built a desktop 2 years later with 16 GB, and my new laptop has 32 GB. Within 6 or 7 years, I went from thinking 6 GB was overkill to getting a laptop with 32 GB of RAM.
      For storage, Windows’s File Explorer makes it really easy to see how quickly what we consider big changes. This is its size classification:
      0 - Empty
      0-10 KB - Tiny
      10-100 KB - Small
      100 KB - 1 MB - Medium
      1-16 MB - Large
      16-128 MB - Huge
      128 MB+ - Gigantic
      Which seems ridiculous to me because when freeing up space, I consider anything under 1 GB completely insignificant. If I was asked to come up with the numbers to match those names today, I’d come up with this:
      0 - Empty
      0-1 MB - Tiny
      1-128 MB - Small
      128 MB - 1 GB - Medium
      1-8 GB - Large
      8-128 GB - Huge
      128 GB+ - Gigantic
      It’s clear from the vast differences between what Windows named the sizes whenever they started doing that and what I think of now that the concept of what’s big is changing rapidly.

    • @hattrickster33
      @hattrickster33 6 лет назад +1

      Yeah I just bought the Apple iPen 128GB for $1000 and I'm already tired of the color. First world problems lol

  • @peabnuts123
    @peabnuts123 6 лет назад +3

    If you wanted to print out "WORLD" i.e. O5@ O6@ O7@ O8@ O9@ and then later you decided you wanted do something else before printing WORLD (e.g. jump/branch, print another word "HELLO", etc.) wouldn't you still have to update all your offsets, because you had inserted more instructions between the program origin in memory and the location of your data (WF, OF, RF, LF, DF)?

    • @profdaveb6384
      @profdaveb6384 6 лет назад +2

      Yes, you still have to get your offsets correct. But the much bigger pain (of having to change almost everything, if you moved a chunk of code to a new position) has now been overcome.

    • @peabnuts123
      @peabnuts123 6 лет назад +1

      That's very convenient and impressive that Wheeler managed to achieve this in forty-something words 😳

    • @profdaveb6384
      @profdaveb6384 6 лет назад +1

      Yes if you download the EDSAC simulator and read the documentation that comes with it, there is a listing of Initial Orders II somewhere in there. The more you study them, and work out exactly what they are doing, the more impressive David Wheeler's achievement becomes.

  • @davel8116
    @davel8116 6 лет назад +1

    Brailsford? Press play and thumbs up immediately.

  • @sebbes333
    @sebbes333 6 лет назад +6

    *@Computerphile* Would humans be able to hear the beeping from the mercury tank, or is it outside human hearing? maybe because of the weight of the mercury or something?

    • @andrewgrillet5835
      @andrewgrillet5835 6 лет назад +3

      It is way higher than human hearing over 100kHz, I think. Incidentally, Maurice Wilkes told me they wanted to use Alcohol instead of Mercury as it was more stable with temperature, but no one could guarantee the security of that much alcohol in the presence of students.

  • @DavidVaughan00
    @DavidVaughan00 6 лет назад +7

    It'd be really cool if you interviewed youtuber Sethbling, the guy who programmed a hex editor into Super Mario World using SNES controllers. Lots of interesting low-level stuff there.

  • @AndersJackson
    @AndersJackson 4 года назад +1

    So? Initial Orders 2 are a sort of very simple version of ld.so(8) or ld-linux.so(8) in Linux, for loading and dynamic linking in Linux?

  • @Tupster
    @Tupster 6 лет назад +5

    I was looking for a video called "Initial Orders I" in vain.

  • @braindeadbzh
    @braindeadbzh 6 лет назад +5

    There is one thing I don't understand, if the address given by @ is relative to the current instruction, should it not be always O5@? As each instruction will the base address? Or the @ is relative to the beginning of the program?

    • @HebaruSan
      @HebaruSan 6 лет назад +7

      I think he may have misspoken at some point if he implied that. Reasoning backward, if you get to address 69 by adding 05 to something, then that something is 64, but that instruction was from address 66. So it's not relative to the current instruction. Scrolling up, the "T64K" instruction is probably setting the base offset shared by all the subsequent instructions (and that might be what the video was about).

    • @kindlin
      @kindlin 6 лет назад

      I made a quick reply to another similar comment, and I think this has to do with the limited size of the initial orders.
      In order to make the memory reference relative to the current line versus relative to the start of the program, it would have to take more memory and code to keep track of your current line, as well as the relative reference itself, to then add both of them to the initialized start of the program.

  • @thromboid
    @thromboid Год назад

    The name "Initial Orders" always seemed quaint and faintly militaristic to me - fitting for the post-war period the EDSAC was developed in. But I'm glad other terms (instruction, statement, command, etc.) became popular, avoiding confusion with "order" in the sense of a sequence, or "order" as in a class or rank within a hierarchy.

  • @jansendimas
    @jansendimas 6 лет назад

    Positive Vibrations from Brazil!

  • @MrMalchore
    @MrMalchore 6 лет назад

    I wonder when this video was shot. Couldn't help but notice Prof. Brailsford is still using Windows 7.

    • @MrGman590
      @MrGman590 6 лет назад

      When I do use Windows, I still use Windows 7. I refuse to use a newer version.

  • @ivuldivul
    @ivuldivul 6 лет назад

    I find these wretched things fascinating

  • @Poldovico
    @Poldovico 6 лет назад +3

    The ultimate cruel irony would be to write the edsac emulator in lua running over java.

    • @Poldovico
      @Poldovico 6 лет назад

      In fact, scratch that. It would be to write it in Haskell.

    • @sameash3153
      @sameash3153 4 года назад

      I love lua!!! :D gives me a warm feeling in my heart.

  • @Jeff121456
    @Jeff121456 6 лет назад

    I was keying-in instructions up until 1993. Only for diagnostics though. Harris 100 24 bits with twinkling lights.

  • @RonJohn63
    @RonJohn63 6 лет назад +6

    14:45 Now you know why linkers used to be called link-loaders, and the Unix linker is still named _ld._

    • @lvl10cooking
      @lvl10cooking 6 лет назад +1

      Didn't code "bugs" get thier name from the insects that'd get stuck in the rotors and memory and prevent intended function?

    • @RonJohn63
      @RonJohn63 6 лет назад +1

      No. The term "bug" has been used in engineering circles since the 19th century.

    • @klaxoncow
      @klaxoncow 6 лет назад +1

      Indeed. It's an interesting etymological mystery.
      But the most fruitful avenue appears to be that it's actually related to "bug" in the sense of illness. When you've caught a cold or the flu and you might say "I've caught a bug". Which actually takes its etymological journey past Shakespeare, who talked of a "bug" being upon someone, meaning that an illness had befallen them.
      Tracing it further, this sense of "bug" actually comes from the pre-scientific belief that illness was caused by "evil spirits". That if someone had gone mad by illness, this was because a malicious ghost had "possessed" them. And, in Medieval times, they had a wonderful means of "curing" someone - called "trepanning" - where they drilled a hole in a person's skull to let out or release this "spirit".
      So this brings us to the conclusion that when we say a program has a bug, the underlying semantics are that there is a "ghost in the machine", as it were, that's behaving maliciously and driving the thing to a bit of "temporary insanity" and a bout of the sniffles, so to speak.
      That it's feeling a bit under the weather because it's "caught a bug", which is itself the notion that you've been possessed by a malicious spirit, passing through.
      So, really, a debugging session could alternatively be called "an exorcism".
      **cue Mike Oldfield's "The Exorcist" theme**

    • @RonJohn63
      @RonJohn63 5 лет назад

      @Evi1M4chine I made two comments. Which are you challenging?

  • @reneko2126
    @reneko2126 6 лет назад +7

    That is some matrix level wizardry right there at 10:39

    • @HebaruSan
      @HebaruSan 6 лет назад +4

      You say wizardry, others might say "mere" competent engineering.
      Doesn't seem all that different from learning to read hex dumps of some binary format. Surprising and impressive if someone just does it unexpectedly, but very do-able if you sit down and make yourself learn it.

    • @spooky_action
      @spooky_action 6 лет назад +7

      I don't even see the code, I just see blonde, brunette, redhead

  • @medinachete73
    @medinachete73 6 лет назад

    I'm relatively new at this. Are O and F "APIs" or "system calls"? Just starting to play with asm.

  • @DamaKubu
    @DamaKubu 6 лет назад

    I love this prof.

  • @crazylegs85
    @crazylegs85 6 лет назад

    I see someone was able to produce the T-shirt the professor wanted.

  • @Alex2Buzz
    @Alex2Buzz 6 лет назад +1

    Holy crud it did address relocation?

  • @manchul
    @manchul 6 лет назад +1

    Oh my god, it's like program and data segment???
    The 66~68 is program and 69~71 is data.
    Or not...

    • @RolfRBakke
      @RolfRBakke 6 лет назад

      Correct. Von Neumann architecture.

  • @petros_adamopoulos
    @petros_adamopoulos 6 лет назад +2

    The rubik's cube in the back has been in this exact position and state, for what is now 60 years xD.

    • @ludvercz
      @ludvercz 6 лет назад +3

      And then 44 years ago Rubik actually invented the thing. Man, time travel is complicated.

  • @danceswithdirt7197
    @danceswithdirt7197 6 лет назад

    This is so cool.

  • @ailijic
    @ailijic 6 лет назад

    I love those curtains.

  • @21guitarworld
    @21guitarworld 6 лет назад +3

    The mitochondria is the powerhouse of the cell

    • @Roxor128
      @Roxor128 6 лет назад

      Looks like someone posted in the wrong tab. This is a computer science video, not a biology one.

    • @TheBluMeeny
      @TheBluMeeny 6 лет назад

      Roxor128 Oh jeez youre right, Ill correct that comment for you.
      The mitochondria is the powerhouse of the CPU.

  • @2GFactFinder
    @2GFactFinder 5 лет назад

    Beautiful.........................

  • @damejelyas
    @damejelyas 6 лет назад +1

    and some people complain about assembly language

  • @alexandermirdzveli3200
    @alexandermirdzveli3200 6 лет назад

    Great story!

  • @sebastianlenzlinger9291
    @sebastianlenzlinger9291 2 года назад

    how to print a ‚Z‘ if ZF is stop?

  • @11Kralle
    @11Kralle 6 лет назад

    Life is good!!!

  • @-ion
    @-ion 6 лет назад

    How do you output an asterisk?

    • @RolfRBakke
      @RolfRBakke 6 лет назад

      With an escape char ofcource! :)

  • @tcsiwula
    @tcsiwula 6 лет назад

    He so happy :)

  • @johnhunter5247
    @johnhunter5247 6 лет назад +3

    but what are the 42 words tho

    • @KlausWulfenbach
      @KlausWulfenbach 6 лет назад +6

      For that, the mice will need a computer the exact size and shape of Earth...

    • @kyoung21b
      @kyoung21b 6 лет назад

      John Hunter - not sure what comes after life, the universe, and everything..,

  • @ButteryCowEgg
    @ButteryCowEgg 6 лет назад +27

    Hi

  • @estebanmorales4089
    @estebanmorales4089 6 лет назад

    Buen video

  • @amywyvern3924
    @amywyvern3924 6 лет назад

    I'm getting distracted by the Rubik's cube in the recent videos. ^_^

  • @mikejohnstonbob935
    @mikejohnstonbob935 6 лет назад

    hello world level: expert

  • @alessandrozanardi4393
    @alessandrozanardi4393 6 лет назад +5

    Why does he have a log(2,10) shirt?

    • @Discount_Friendly
      @Discount_Friendly 6 лет назад +1

      Alessandro Zanardi in a previous video i think he said that a base 2 computer needs log(2,10) times the circuitry than a base 10 computer

    • @GdotWdot
      @GdotWdot 6 лет назад +1

      In an old video he said if someone makes one he'll buy it. The formula itself describes something like how many more binary digits it takes to encode a decimal number, but I'm not sure if I remember right.

    • @Discount_Friendly
      @Discount_Friendly 6 лет назад +3

      it’s in the why use binary video and the prof even said that if someone made a shirt saying “log2(10) = 3.32193” he’ll buy one

  • @dangnabbit1379
    @dangnabbit1379 6 лет назад

    >>>THIS

  • @platin2148
    @platin2148 6 лет назад

    Runtime Linker like thing.

  • @kieranthompson171
    @kieranthompson171 6 лет назад

    ICAR

  • @justinliu7788
    @justinliu7788 2 года назад

    jit compiling asm

  • @heinerml2
    @heinerml2 3 года назад

    eggsac

  • @hearueszueke6206
    @hearueszueke6206 6 лет назад

    Hi again

  • @richardamullens
    @richardamullens 6 лет назад +2

    Clearly some people find this historical information interesting, but I would much prefer to hear more modern stuff such as the admirable talk on Bitcoin Scaling or how to set up a Mesh network or using the Raspberry Pi GPU
    I used the machine at the Maths Lab in 1970. I remember the flexowriters where you could feed the 5 hole paper tape output back into the input and it would copy it until stopped. It had letter shift or similar. Then the PDP8 and PDP 11 had switch registers with Load address and deposit keys. The PDP8 ? had a RIM and a BIN loader & the PDP11 had an absolute loader I believe. The PDP11 maintained its core memory after power down and one could leave a program in memory which would start automatically on power up.
    Later generations will have entered Basic or Z80 machine code into their ZX80 or Spectrum computers and nowadays there is information as to how to write in Assembler for the Raspberry Pi

    • @Roxor128
      @Roxor128 6 лет назад +2

      I find this early stuff much more interesting than the stuff from my lifetime. When I visited the museum of computing at Bletchley Park in 2016, I spent most of my time with the machines from before I was born, and only had an hour before closing time to skim over the stuff from the 1980s and onwards.
      There's something fundamentally more interesting about punching a program on paper tape than typing into GW-BASIC.

    • @richardamullens
      @richardamullens 6 лет назад +1

      Roxor128 A stint at maintaining a suite of COBOL programs held on punched cards would probably cure you of this ;)

    • @Roxor128
      @Roxor128 6 лет назад +2

      Richard Mullens - Heh. Probably. I've looked up COBOL on Wikipedia and from the source code samples I've seen there, I don't fancy having to write it.

    • @lvl10cooking
      @lvl10cooking 6 лет назад

      Richard Mullens They... They still use those?!

    • @peterjohnson9438
      @peterjohnson9438 6 лет назад +1

      Onno Inada rarely, but I've heard of systems in use at banks that are specced to perform some ops exactly as "the original".. which is written in COBOL on punched cards and stored in a vault.

  • @rockisch2758
    @rockisch2758 6 лет назад

    >not using discord
    >using skype
    kek

  • @infiniteen
    @infiniteen 6 лет назад

    hi 3rd!