Bare Metal Coding: Big Iron! Assembly Language on the PDP-11/34

Поделиться
HTML-код
  • Опубликовано: 5 окт 2024
  • Dave demonstrates programming the PDP-11/34. For my book on the spectrum, see: amzn.to/3XLJ8kY
    Follow me for updates!
    Twitter: @davepl1968 davepl1968
    Facebook: davepl

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

  • @Scott-i9v2s
    @Scott-i9v2s 3 месяца назад +247

    Thank you for NOT having a 5-minute-lasting "Let's get right into it!" intro!

    • @Andy-fd5fg
      @Andy-fd5fg 3 месяца назад +13

      and for not repeating what you just said before the adverts.

    • @SuperSpajky
      @SuperSpajky 3 месяца назад +6

      Microsoft stocks make that unnecessary :)

    • @20chocsaday
      @20chocsaday 3 месяца назад +1

      I don't think he could imagine doing that.

    • @Psythik
      @Psythik 3 месяца назад

      @@Andy-fd5fg "Adverts"? Are you serious right now? Why aren't you using proper adblockers, like Ublock Origin and RUclips ReVanced? Why would anybody willingly put up with ads on the internet, especially when they're so easy to block?

    • @gorauma
      @gorauma 2 месяца назад

      Is that a dig against Adrian?

  • @hmrody
    @hmrody 3 месяца назад +159

    Ah, memories... I still am at it at 64 years old. Bank switching was fun. My first personal computer was an Apple II (Integer). Did a lot of work with a Sperry Univac. The replacement of the PDP 11, a full VAX actually was an awesome machine. First time I could step backwards in a debugger. Love your videos. I saw the IBM PC in your garage. I put together hundreds of those when I was working through school at Mississippi State. Have a great day. Great memories.

    • @Rai_Te
      @Rai_Te 3 месяца назад +13

      Same here ... this also reminded me on a time many decades ago, when I was programming a VAX11/780 in assembler.

    • @vslabs-za
      @vslabs-za 3 месяца назад +1

      Fond memories feeding punch cards to our university's Sperry as data for solving math problems. Liked computers more than maths, ceased trying astrophysics, and became a software engineer...

    • @atertee
      @atertee 2 месяца назад

      Holy S... I can barely do fundamental Matlab and some labview ... this is way beyond my comprehension of what a comouter is ...

    • @warmCabin
      @warmCabin 2 месяца назад

      I'm curious, what was it like writing bank switching code back then? I've never written anything like that, only observed it in old Nintendo games.

  • @xfinnerjx
    @xfinnerjx 3 месяца назад +265

    Too many coders today are so disconnected from the proper hardware. More like this is just fantastic.

    • @MathewPanicker1010
      @MathewPanicker1010 3 месяца назад +25

      There's nothing wrong with that

    • @JxH
      @JxH 3 месяца назад +15

      Little know fact: Microsoft heard about people building virtual hardware (CPUs, even PCs) in Minecraft blocks. So a VP at Microsoft lobbied to purchase Minecraft for several billion dollars with the goal of moving all hardware into the virtual Minecraft ecosystem. The stated goal was to implement this recursively, and eliminate all hardware all the way down. Microsoft envisioned a hardware-free implementation of personal computing. Everything would be virtualized all the way down, zero hardware anywhere.
      This may sound silly, but how else do you explain the purchase of Minecraft by Microsoft ?
      🙂 !!

    • @nezbrun872
      @nezbrun872 3 месяца назад +45

      @@MathewPanicker1010 "There's nothing wrong with that" is why your new TV takes longer to boot today than an old tube set from the 50s did to warm up.

    • @Aeduo
      @Aeduo 3 месяца назад +4

      @@nezbrun872 Nah, that's a choice by the manufacturer. No shot that they'd spend the money and time for engineers to optimize all that boot/initialization code. They could if they wanted to and if there was demand for it, we'd have that talent trained up to do so.

    • @milllkkkk
      @milllkkkk 3 месяца назад +16

      @@JxH this makes 0 sense.

  • @davorzmaj753
    @davorzmaj753 3 месяца назад +49

    "Four linear feet" of RSX-11M docs: that says less about RSX than it does about documentation practices. They believed in giving you *full* documentation back then. Plus, it was all hard copy -- no electronic versions.
    To be perceived as an expert, you didn't need to know all the things -- but only where in the manual set to find them.
    Other examples:
    - The original IBM PC (1981) included a source listing of the BIOS
    - The Seagate ST-506 hard drive (1980): its manual included schematics for the logic boards. That proved invaluable a few years ago, when we needed to hack an ST-506 to get the data off it
    - If you open up consumer electronics of the day (radios, TV sets and whatnot), you'll often find a schematic inside the case. Right to repair went without saying...

    • @cykkm
      @cykkm 2 месяца назад +5

      Most Un*x programs from "back then" come with quite extensive documentation. GNU also adds info. Emacs and friends are self-documenting. People who release even simple programs have a great example before their eyes and try to follow. But in the Windows world it's a plague. I partly blame MS for that: how long did it take for the CHM format to appear, only to be declared obsolete in Vista? (You had to tweak the registry to enable rendering them; I do not know how much of a security hole they are, but that was the reason.) They work OOB in Windows 8 (?) and later, tho. But they drag the IE rendering engine behind them into the second quarter of this century...

    • @Drycleanerguy
      @Drycleanerguy 2 месяца назад +2

      Exactly, and that information can be of immense value. The original NEC APC included a full source listing of the BIOS, plus a diagram showing all the logical connection of the parts. That was awesome, since the native OS, CPM/86 was horrid. Having all that info allowed me to enhance the OS significantly with an interrupt driven printer driver (much faster, plus you could multi-task) and a memory resident interrupt controller/menu system, allowing direct chaining from one program to another. (The native way in CPM/86 to get from one program to another was to write a batch file to the disk calling the next program, then terminate and chain to the batch file.)

  • @JimmyZorb
    @JimmyZorb 3 месяца назад +99

    Fun fact: The entire CompuServe network was a couple thousand PDP-11 nodes with DEC-10 hosts running the applications. All the network code was written in assembler and the applications were mostly written in BLISS. The PDP-11's were slowly phased out beginning in 1988 when we began deploying 386-based nodes.

    • @DumbledoreMcCracken
      @DumbledoreMcCracken 3 месяца назад +4

      I knew a guy who claimed his friend took the code from CompuServe. I have no idea how, doubt through a 1200 bps modem, but maybe.

    • @lboston4660
      @lboston4660 3 месяца назад +4

      That's impressive. That makes me feel a little proud to have had them as my first ISP.

    • @wtmayhew
      @wtmayhew 3 месяца назад +1

      There was a bit of real-time history at the Cosci Museum in Columbus, Ohio. They had working PDP-11 based ConpuServe node in a glass enclosed room on the museum floor when I visited there back in the 1980s.

    • @stevejohnson1685
      @stevejohnson1685 3 месяца назад +1

      I met the founder of CompuServ. He claimed to have salvaged the initial PDP-11 from the flooded basement of a building on the Ohio State University campus. His house had a shamrock-shaped swimming pool, and the first salvaged PDP-11 had a place of honor in the house. He had sold time-share time to commercial organizations during the day, and thought it would be fun to sell time to hobbyists and amateurs in the evening. He quickly discovered how much pent-up need there was, and switched the focus of his business to create what we recall today.
      I did my Master's at Ohio State, on a PDP-11/45. The boot code had been toggled into core memory, and as long as we didn't screw it up (which we did, on occasion), we could just toggle in the start address and kick it off. The RK05 platters would start winding up, and a few moments later, we'd be in business. When we screwed up the boot code, there was a fairly short (maybe 128 words) of code we'd have to toggle in that comprised the cold boot. I can't remember it now, but I did for quite some time.
      I'm glad you discussed the beauty of the PDP-11 instruction set. I've always appreciated it; truly orthogonal, symmetric instructions.
      One of my favorite projects (when I wasn't frantically wiring up A-to-D and D-to-A converter modules and their control logic) was to wire up a General Instruments top octave generator, a half-dozen selectors and a half-dozen programmable dividers, to create a six-voice music synthesizer. While Wendy Carlos was producing "Switched On Bach" our lab had Ravel and Debussy playing on a PDP-11. The A-to-D and D-to-A assembly? It ran Robert Murphy's hexapod robot. In 1979.

    • @dougf94912
      @dougf94912 3 месяца назад +1

      I became a CompuServe subscriber in 1990as a way to stay in touch with my company's HQ in the UK as I traveled around the world on their behalf. Those international POPs (Points Of Presence) were a real lifeline for me! I had that subscription for about ten years until the WWW became a thing and I moved to Earthlink as my ISP as I was now based, full time, in the US. 🤓

  • @gpTeacher
    @gpTeacher 3 месяца назад +31

    Dave, these are ABSOLUTELY retro computing GOLD! Your work here is building a priceless archive of our computing history. Thank you so much for your ongoing work!

  • @terryrogers6232
    @terryrogers6232 3 месяца назад +83

    We despair at the small business where I consult for bare metal programmers. Best one we got so far is a lady in her 50s who I intro to bare metal on new MCUs.
    It is indeed a long time since I saw and worked with PDP-11. My wife, who loved puppy dogs, cooking, swimming, knitting and guitar, surprised me one time by asking, "what do you do at work?" When I told her, she said, "Can I try some of that?" Knowing better than to try instructing her myself, we went to the community college which had a course programming on a PDP-11. I chuckled...BUT she passed flying colors! She tried math...disaster. Music...flying colors. More computer languages...flying colors. I have never figured it out (and now she is passed away) and never found another like her nor a machine like the PDP-11.

    • @CallousCoder
      @CallousCoder 3 месяца назад +10

      Im sorry to hear your wife passed and relatively young it feels. She sounds like marvelous person. Cherish her memories i learned when my little brother died. Those memories of the good times are my most priced possessions and nobody can take those from me. And I’m sure that’s the same for you, hearing you speak about her like this - so loving and endearing.

    • @terryrogers6232
      @terryrogers6232 3 месяца назад +3

      @@CallousCoder Thank you - Terry

    • @jgharston
      @jgharston 3 месяца назад +4

      You mean there is actually a market for bare metal programmers? Where are the adverts?

    • @smiththers2
      @smiththers2 3 месяца назад +3

      I'm sorry to hear of your loss.... I would be devastated if my wife passed before me..

    • @CallousCoder
      @CallousCoder 3 месяца назад

      @@jgharston yeah I was wondering that too. Here in the Netherlands there’s no demand. The lowest you can get (and that’s getting harder and harder) is C++

  • @Tigrou7777
    @Tigrou7777 3 месяца назад +39

    I'm pretty sure that every time Dave startup the PDP, the lights in the city fade.

    • @Zarcondeegrissom
      @Zarcondeegrissom 3 месяца назад +3

      neh, that's his CRAY X1E in the other room, lol. /sarcasm

  • @alanmichaels8774
    @alanmichaels8774 3 месяца назад +22

    I have been really enjoying watching your videos on the PDP 11. I am a genuine grey beard. I became an OEM dealer for DEC's business computer division way back in 1975. I was actually president of the DECUS business user special interest group from 1977 to 1981. This is all fascinating to me that you are resurrecting it.
    I have to wonder if you know what you have. A DEC Data system was actually packaged as a business system. What you probably have is a Dec DataSystem 350 series, probably a 354. It probably shipped with the DEC operating system based on RT-11 with a multi-user operating system layered above. The normal programming language was DIBOL. You could typically run a maximum of three terminals (although 2 was optimal) with the RT-11 based system. You could also run the 500 based operating system based on RSTS-E with some business extensions.
    The underlying machines were identical to DEC's standard machines. They ran RT-11, RSX-11 and Linux just fine.
    It is forgotten though, that before the IBM PC came out, DEC was heavily involved in business computers for the industry.
    So whether you realize it or not, not only do you have a PDP 11/34 you have one that is even more rare because it is a DataSystem.
    Treasure it, it is something very special. I have so many memories of those days.

  • @clementgaudet
    @clementgaudet 3 месяца назад +12

    I’m 67 and my first assembly programming was on a PDP8. Love the channel.

    • @Drycleanerguy
      @Drycleanerguy 2 месяца назад

      I'm 69, and I first programmed a PDP8e.

  • @stephengevers5894
    @stephengevers5894 3 месяца назад +18

    My first exposure to computers was as a high school sophomore in 1980 where we had to do a 3 week class. Following that class I spent all my free time in the school computer lab. When I entered college, I got to take an assembly language class in the spring of '83 on a PDP-11 (I think it was a 44 that had added parts to make it behave like a 70). From the moment I learned about addressing modes and the crazy control you have, I was hooked. I was one of the weirdos that bought the PDP-11 architecture handbook from the school bookstore and read it cover-to-cover like a novel. Honestly, most of that video felt like I was watching you read my mind. I desperately wanted a 68000 based machine that I could play with at the assembly level. Thanks for really stoking up those old memories!

  • @PeterRowe-k1o
    @PeterRowe-k1o 3 месяца назад +20

    The best one yet, this puts a huge smile on my face. I worked at DEC in the Galway plant in Ireland building PDP 8’s and then PDP 11’s. Lots of assembly in diagnostics, and we had to start using binary (012737…) entered through the front console before the machine could do anything. Yes, the switches and the lights! We would create short loops to exercise a fault area, like a stuck bit, so that we could stick a scope on a clock/enable signal and see what was going on. Those were happy days. Thank you for this piece of nostalgia, it’s been 40 years. Subscribed.

    • @cdr-sailor
      @cdr-sailor 3 месяца назад +2

      I worked at the Augusta, Maine plant as a tech where we made various comm devices, including the early generations of Ethernet interfaces for PDP-11s and VAX Systems. First class I took on being hired was PDP-11 machine language.

  • @mandolinic
    @mandolinic 3 месяца назад +15

    Niche? I spent two years doing exactly this on a PDP-11 - and getting paid for it. The PDP-11 was a dream to program and its instruction set was easy to learn and really well designed. Driving devices was easy if you could use polling (as in your example), but it was a lot more fun using interrupts. And once again the PDP-11 blew all its contemporaries out of the water, with a dedicated interrupt vector for each device type, and a multi-level interrupt priority scheme.
    A couple of years later, I had to do it all again with the Texas 9900 microprocessor, whose instruction set was clearly influenced by the PDP-11. That was also great fun.
    It is truly amazing just what you can do with just 8K of RAM and no operating system.

    • @markteague8889
      @markteague8889 3 месяца назад +2

      Andrew Tanenbaum gave DEC an A for their design of the PDP11 / VAX architecture, Motorola a B for the 680x0 family, and Intel a C for the 80x86.

    • @mandolinic
      @mandolinic 3 месяца назад

      @@markteague8889 I dread to think what he gave the appalling DG Nova and HP-1000 ;-)

    • @Loki-
      @Loki- 2 месяца назад

      Yes, niche.

  • @matambale
    @matambale 3 месяца назад +11

    I remember writing PDP11 asm in college in the late 70s, and then soon on a Zilog chip - it took a while to get used to the DST, SRC sequencing on the Zilog/Intel chips, but it sure helped that MOV became LD.
    I have very fond memories of writing large projects in assembler, including debuggers, disassemblers, and assemblers. Can still remember the Z80 machine language bytes for a lot of the opcodes. I recall decoding what the CPU was executing by watching what bytes were being fetched on the logic analyzer. Converting hex to ASCII in my head. That was a grand time. Later, much work on 80x86/87, 68k and a whole lot of fun on the 56k DSP. The Moto chips brought back memories of PDP11 architecture.
    Loved this video. Got a little misty-eyed. Thank you for this, Dave. Just realized I was not subscribed! Fixed that.

    • @jgharston
      @jgharston 3 месяца назад

      Zilog and Dec have the syntax the correct way around. Move *from* source *to* dest; load dest *with* source. As with Dav, I can't get my head around Intex syntax and it still hurts having to think about it when I'm reading code.

    • @ganswijk
      @ganswijk 3 месяца назад +1

      @@jgharston'move' should move the data from the left operand to the right operand and 'load' from the right operand to the left one, I think. Btw. the assembler can easily reverse this from language to actual operation. And what should 'store' do? I think it should also move the data to the right operand.

  • @michaelkoehler7441
    @michaelkoehler7441 3 месяца назад +12

    Thank you so much for bringing back some great memories and help sharing this knowledge out to the next generations!

  • @giorgiobarchiesi5003
    @giorgiobarchiesi5003 3 месяца назад +4

    You might not believe me, but in 1978, my university had a PDP 11/34, and as a student I had some machine time available. I programmed in Fortran 77, mostly, but I remember I also ventured into assembly, after the professor had explained the register set and part of the instruction set. I still clearly remember the peculiar fact that R6 and R7 had that special meaning. Combined with indirect addressing, and autoincrement, this allowed some very nice tricks. It really was a wonderful architecture! Thank you so much for sending me back in time to those enthusiastic days!

  • @toddmarshall7573
    @toddmarshall7573 3 месяца назад +33

    I developed a term insurance/ mutual fund application (competing with full life) in 1977 on my Processor Tech Sol...that cost me $5,000. The company wanted to go nationwide so I bought a PDP 11/23 for about $35,000. The program was written in PT Basic. When I converted it to run on the PDP 11/23 it wouldn't fit. And I only had 4K bytes of static ram on the Sol. I had more memory on the PDP but the RSX-11 used it all up. I really took a bath on that deal. Even after I got it working and on-line, the company that needed it stiffed me. Live and learn.

    • @briansturges2658
      @briansturges2658 3 месяца назад +4

      Wow, you got a story to tell out of that deal. What did you end up doing with the PDP 11/23? Did you at least get some enjoyment out of owning it, or other projects? 35K is more money than our family home cost in the 70's.

    • @martyhill8342
      @martyhill8342 3 месяца назад +1

      I loved my Sol, too. Especially the first original PTDOS that limited Random Access files to 16k in length. .

    • @patrickwingert5224
      @patrickwingert5224 3 месяца назад +2

      I hung around a computer store and they were developing an Amniocentesis analysis program on a Sol-20. They decided it was better to give me a job testing the app at minimum wage then letting me sit around and play on their computers. They gave me test script to run and check expected results and to note deviations from the expected results. Not a bad job for a 12 y/o. I worked for three months for an hour a day after school. I always had to disappear if the client was on site.

  • @wernerdittmann7579
    @wernerdittmann7579 3 месяца назад +10

    Most programmer today often do not know that C was influenced by the PDP-11 assembler and its various ways to address memory. In C it was called 'pointers'. So if someone knew PDP-11 assembler, learning C was just straight forward. Direct addresses, indirect addresses (aka pointers in C), post-increment, pre-decrement etc

    • @NoBody-xg1wg
      @NoBody-xg1wg 2 месяца назад

      I remember using the original Kernihan and Ritchie "C' book.

    • @janmichael1262
      @janmichael1262 2 месяца назад

      Still have it lol

    • @janmichael1262
      @janmichael1262 2 месяца назад

      C was initialy described to me by one of the early programmers as a portable PDP11 assembler

  • @flooooooooooooooooo
    @flooooooooooooooooo 2 месяца назад +3

    A lot of people here say they learned to program in the 1970s, but I am learning to program now and these videos are very insightful for seeing how computers evolved. thanks

  • @BFLmouse
    @BFLmouse 3 месяца назад +9

    I still have a copy of the LSI11 PDP11/03 handbook on my bookshelf, a souvenir from an assembly language programming class in college.

  • @tcpnetworks
    @tcpnetworks 3 месяца назад +5

    Ex VAX and Novell Netware guy here. We wrote a Bindery syncing tool for our Netware system, ran on a VAX, to sync the user-accounts and passwords between domains. We would create accounts only in VMS, but inject the users credentials into each Novell Bindery every 10 minutes. The code was only 50-60 lines long and was blisteringly fast. Added more comprehensive error checking a little later on, but basically we had a 4000-user network running on 50 Netware servers, with unified accounts at all sites, with the integration making everything so nice.
    Windows NT Advanced Server and SQL changed all of that in 1995.. All went away...

  • @andreasrothmund9147
    @andreasrothmund9147 3 месяца назад +5

    Well that does bring back memories! Learned how to program both in MACRO11 and FORTRAN IV on a PDP11/40 running RSX11M and have run my own PDP11/23+ and a PDT for many years. Thank you!

  • @RevellingTerror
    @RevellingTerror 3 месяца назад +7

    Great stuff, in the 80's I was an assembly programmer writing games released under Ocean, US Gold and AMSoft for 8 the bit micro computer market and as the 6502 & Z80 processors ran so slowly, it was vital to optimise the code to run as fast as possible... for example on the Z80, the SP took fewer clock cycles to PUSH data to memory than a LOAD to (HL) so the SP was hi-jacked to point to screen memory and graphics were "pushed" in reverse to the screen mem. Tying in with that exam question, as the SP had been appropriated, many subroutines were coded such that instead of RETuring to the calling code a return flag was loaded with an identifier and conditional jumps were used to load the PC to the specific next address of the calling PC location, denoted by the identifier (the next address after the "call" being labled for the compiler). Thus subroutines with no RET lol... Of course, with this approach careful attention was given to any possible recursion but Speed was of the essence!!! cheers🍻

  • @victorman7777
    @victorman7777 3 месяца назад +17

    We used a PDP-11 in my CS classes in the mid-80’s. I started programming on a TRS-80 model 1 with tape recorder storage. Wow! A blast from the past.

    • @robertthomas5906
      @robertthomas5906 3 месяца назад

      We had a PDP 11/44 to write an operating system on for computer science in college.
      Then they moved on to an IBM AT. The first program on the IBM was write a keyboard handler. That claimed most people in the class.

    • @walkerjian
      @walkerjian 3 месяца назад +1

      much the same with me, I started wit logic circuits on my electronics kits as a kid, then used slide rules and calculators until I forst used a trs-80 II to control an experiment at a technical college in 77-78. Then used PDP11-10 mark-sense card reader at uni, explains my tenuous and highly bemused grasp of reality to this day :) Then my own trs-80 after working all summer in a steel mill to pay for it. I still have it, but sadly may have to let it go soon. Then onto another PDP running RSTS, then a VAX at Uni. Then 6502 SBC's in assembler, and onto the first PC's. Been a fun trip, kinda.

    • @adrianwilliams763
      @adrianwilliams763 3 месяца назад

      My first computer was a “Video Genie” which was a TRS80 II clone. It also had a tape drive. Then we upgraded it to the Stringy Floppy which was a credit card sized cassette with an endless loop tape. Worked really well until the tape unraveled, which happened often !!

  • @kmtabq617
    @kmtabq617 3 месяца назад +5

    This brought back a bunch of fond memories, Dave. The first minicomputer I worked on was from Data General and was delivered without an operating system back in the early 70s. Assembly language was our only option. In the 80s, I did a lot of direct hardware interaction using assembly language on embedded systems using 80x86 processors. It took a lot longer to develop programs than using high level languages, but we knew exactly what was going on in the hardware. Since our focus was on authenticating the system's operation, that was important. Some of that code I developed is still in use 40 years after I wrote it.

  • @RodCleaves
    @RodCleaves 3 месяца назад +5

    Love it! I used to teach PDP 11/34 (and others) field engineers for DEC. Brings back a lot of fine memories. A good friend was the last RT11 engineer. We lived in Maynard, MA

  • @lorensims4846
    @lorensims4846 3 месяца назад +16

    I call that JSR RTS question a "trick" question. Just because multiple JSR instructions may use the same RTS instruction DOESN'T mean that each JSR instruction doesn't require a RTS, they just don't each need Their OWN RTS instruction.

    • @sharpbends
      @sharpbends 3 месяца назад +4

      RTS is not required if JSR is not intended to ever return, eg infinite loop or intentional HALT. That might leave something on the stack but in those circumstances it doesn't matter.

    • @a4d9
      @a4d9 3 месяца назад +2

      There are cases where, for example, JSR is used to call an error handler, where JSR is used to automatically push the program counter to the stack, and where the error handler never returns to the program. (the error handler pops the address from the stack without RTS)

    • @lorensims4846
      @lorensims4846 3 месяца назад

      @@sharpbends Wouldn't it make more sense to use something like a JMP instruction for that?

    • @sharpbends
      @sharpbends 3 месяца назад

      ​@lorensims4846 Absolutely. RTS can still be achieved by stack and PC manipulation as well.

    • @phill6859
      @phill6859 3 месяца назад +2

      ​@@a4d9that was one of my first thoughts too. And rop chains are rts without jsr. And you can put stack into rom and just use push/jsr to change the stack pointer, pop/rts will grab values from rom. I suspect that most teachers wouldn't comprehend these methods, but they would have taught students better what was going on in the CPU

  • @gerrykavanagh
    @gerrykavanagh 3 месяца назад +4

    Loving this series of videos. Back in the day, you would see the words “Maynard, Massachusetts” on the vast majority of PDP front panels. Very occasionally, you’d see “Galway, Ireland”. As a native of Galway, I have always had a fondness for DEC and their wonderful hardware and OSes, particularly VMS and the glorious VAX.

    • @petergibson2318
      @petergibson2318 3 месяца назад +1

      DEC in Galway donated a PDP-11 to Galway Regional Technical College where I first used it as a student in 1977.

    • @gerrykavanagh
      @gerrykavanagh 3 месяца назад

      ​@petergibson2318 in 1983 or '84 they connected all the secondary schools in the city to a VAX 11/780. Donated a bunch of VT100s and venerable VT52s and some miltiplexors to each school. It gave us kids a taste of 'real computers' when everyone else was playing with Spectrums and VIC20s. Fond memories. ​@@petergibson2318

  • @soba소바
    @soba소바 2 месяца назад +1

    These assembly instructions really intrigues me, and makes me understand more about how computer executes code. Hope you make more of these❤❤

  • @agosto1685
    @agosto1685 3 месяца назад +3

    Great stuff, Dave! Really triggered my recollections from the seventies using PDP 11 equipment.
    I got my first taste of programming in college back in '76 on the RSTS 11 system on our school's PDP 11/40. My roommate got me started learning BASIC. Not long after, as a BSEE student, I got access to the the EE department's computer lab (not much more than a closet, but it had a rack mounted PDP 11/10) where I fumbled my way through the documentation for booting the 11/10.
    I wasn't taking any CS classes and had to figure things out alone. I toggled in my first machine code program using the switches on the front panel. That program sent a single character to the hardware register for the system console terminal, an old ASR 33 teletype. When it sprang to life and printed "A" I got excited. I needed to make a loop to print more characters.
    I got stuck trying to figure out how to branch backward and searched the manuals for a clue. That's how I learned about two's complement arithmetic and got my conditional branch to loop back. I tried sending more characters to the ASR 33. It didn't work reliably because I was overrunning the printer's ability to keep up. I figured out that I needed a delay and made one that worked, but was uncomfortable that it wouldn't be reliable and that I needed some kind of of feedback from the hardware.
    Along about this time, I started wondering why there wasn't an easier way to have the computer do this calculation for me (didn't know about assemblers but saw intriguing references to the mnemonics and labels in the manual). More digging and I discovered that there was an assembler available in the rack of paper tapes in the lab. I had to toggle in the insctructions for the boot loader, which in turn allowed the Absolute Loader to be read in from paper tape, destroying the boot loader in the process.
    Finally, I got the macro assembler loaded and was able to experiment with assembly language. I spent many hours reading everything I could find and experimenting. This gave me a firm underpinning for understanding computers and laid the groundwork for my entire career as a BSEE specializing in digital electronics and microcomputing.

  • @howardwilliams2587
    @howardwilliams2587 3 месяца назад +6

    Thanks, these are great memories. We used the Xerox Sigma 9 (don't remember the model though) and my code of choice was METASYM (Meta-Symbol) the standard for Sigma 9. We wrote compilers using METASYM. What else was funny, the assembler I wrote was in Fortran 4 with University of Waterloo WATFOR and WATFIV. This was back in the early '70's. Magnificent memories. Thanks so much for sharing.

  • @gottfriedheumesser1994
    @gottfriedheumesser1994 3 месяца назад +9

    Thank you Dave as this reminds me of the first 15 years of my work after finishing the university. We did logging and automating industrial plants, mainly in electric power generation and distribution. In 1975 we made the first high-voltage switchyard automation running on a pdp-11/10. I was the first and only European user of Dave Cutler's RSX-11A kernel. Later, it was migrated to RSX-11M/S and implemented in over 50 substations. The last one was replaced in 1999 because people feared the millennium bug. The switching control program became quite long, with about 2k words of assembly code. For pure binary decisions assembly coding was much more proper than higher languages (we used FORTRAN at this time). We said one can write pdp-11 assembler code even while traveling with a train or streetcar.

    • @unixtohack
      @unixtohack 3 месяца назад

      Did you know anyting about the Ferranti Proces Computer with real IO-cards inside. I forgot which OS is was running ...

  • @JoeBurnett
    @JoeBurnett 3 месяца назад +2

    I look forward to every new video you publish! Great stuff!

  • @jakebrodskype
    @jakebrodskype 3 месяца назад +3

    I worked on later models of the PDP-11, the LSI-11/23 with RT-11, and later the MicroPDP-11/73, using RSX-11M+. The operating systems were very well organized and the processors were designed for good software.
    One of the interesting things is that the interrupt process was significantly slower than polled hardware. So when doing data acquisition, I elected to poll the hardware instead attempting to process interrupts. This made foreground/background processing in RT-11 work very well for me. So those of you who are wondering why Dave didn't use interrupts for I/O there was a good reason: Not only was it simpler, it was FASTER.

  • @RobertM125
    @RobertM125 3 месяца назад +6

    It's just crazy to think how far we have come with the colorful and type ahead predictions of Visual Studio. Thank you for this awesome look back in time.

  • @frankj.hoffmann7030
    @frankj.hoffmann7030 2 месяца назад +1

    Great stuff as usual, Dave. Much appreciated content!!! Greetings from across the pond.

  • @lorensims4846
    @lorensims4846 3 месяца назад +4

    I'm used to "big iron" referring to mainframe computers.
    A venerable minicomputer like this might have been referred to as "medium iron."
    I started programming in Assembler using punch cards on an IBM 370 clone by Burroughs in 1980.
    In '81 I decided I needed to learn BASIC so I took a class to learn Microsoft BASIC on an Ohio Scientific minicomputer. Considering that, contrary to my Assembler professor's opinion, microcomputers were becoming a "thing," those all ran some version of BASIC.
    But I understood that Assembly Language was really where it was at.

  • @eskwadrat
    @eskwadrat 3 месяца назад +1

    Programming bare metal since late 80's with 8086 and 8051, I suddenly feel I need the PDP. The assembly is so similar, and I can live with mov from,to syntax. Thank you for this video.

  • @AlanEvans789
    @AlanEvans789 3 месяца назад +3

    During my Royal Air Force trade training as an air defence radar technician in 1984 my course was the first in my trade to do the "Digital" course as part of initial trade training. It was something like six weeks in the summer of 1984. As part of that course we had to do an introduction to programming using assembler on a PDP11/??. We also had to cover programming on a 6502 with just a hex key pad and a bunch of seven segment LEDs. This was on a board called an EMMA, which allowed you to add boards to do stuff like program a set of traffic lights. Never went near a computer again during my nine years in the RAF. Spent lots of time in a world where we mixed analogue and digital hardware techniques while processing the returned signals for the radar. Given of course that were were using a "pulse" radar.

    • @ximalas
      @ximalas 2 месяца назад

      Yay! I was subjected to EMMA as a sophomore in high school in Norway almost 30 years ago.

  • @Belznis
    @Belznis 3 месяца назад +1

    A mate of mine always used to say how sad it is that the basics and the beginning is forgotten. Now people can use the things they got, but what if all that fails, the old things are lost. I think he had a good thought here and that is why I enjoy videos like these even not understanding everything. WiseG you did have a good thought there.

  • @jamesgazin9447
    @jamesgazin9447 3 месяца назад +2

    Reminds me of the 1401! My first computer job was programming and operating a computer that was only one year younger than I was. Autocoder also used the more rational from/to method to move data. Every assembler I've coded in since uses to/from and I've never really understood why.
    When my company finally switched to an HP/3000, I salvaged some things: A core storage unit from a 1403 line printer, some random 1401 blade cards and manuals for both the 1401 system and Autocoder language.
    Life was so much simpler then. with no operating system, punched cards, and a physical Bit-Bucket I had to dump at the end of my shift.
    Remember Coding Sheets -- and the maxim, "Real programmers code in INK"?

    • @rty1955
      @rty1955 3 месяца назад

      I still jave my COBOL and ASSEMBLER coding sheets. I began on 407 accounting machine doing plugboard wiring then a 1401, onto 360/30, 370/138, 4300 series [4331, 4341, 4361, 4381] Then to 3090, Amdahl 5880 and s/390.
      I was a systems programmer on all those machines, wrote millions of line of assembly code. I get a kick out of people calling ANY PDP computer "big iron"'
      I am well versed in 13 languages, but my fav is assembly on REAL big iron where there is no silly stack pointer and other silly things

  • @LexSijtsma2
    @LexSijtsma2 3 месяца назад

    Thanks Dave, this is very nice to see. It reminds me of my early years in programming in the 70ties. I started with Z80 assembly language on a Sinclair ZX80 with 1 Kb of RAM.

  • @GlenHHodges
    @GlenHHodges 3 месяца назад +13

    Roy, Gary and Roe sang some great tunes as well!

    • @bama21
      @bama21 3 месяца назад +2

      He had to use pic of CCR by accident right?

  • @SteeleDynamics
    @SteeleDynamics 3 месяца назад

    This is gorgeous! I love how the post-increment instruction has a direct mapping to C's post increment!
    Keep up the great work, Dave!

  • @schmidt28117
    @schmidt28117 3 месяца назад +1

    I agree with the great video and great memories. The PDP-11 and RSX were a great pair. I implemented many industrial process control systems in either Macro or Fortran , using memory mapping over the I/O page and then inputting / outputting directly to the device registers. I also love the comments section of the macro programs. I did 10's if not 1000's of "sysgens" that configured the operating system for the machine I was using. We had the whole source code of RSX on the disk. Things like looking at the module of RSX where it tried to dig it's way out of a stack issue, if it failed it went to address "Crash", where there was a HALT instruction, with the comment "Die Horribly" .

  • @willynebula6193
    @willynebula6193 3 месяца назад +1

    I couldn't click fast enough Dave.
    Thank you for making awesome videos on assembly!

  • @DougKnowles76
    @DougKnowles76 3 месяца назад

    In my first job out of college, I worked with several PDP-11s, including the earliest model (eventually called the 11/20, but this machine had no model designation on the front panel). It was equipped with a (removable) disk drive but booting required hand-loading the boot loaded into memory via the binary switched on the console (about 20-30 instructions, IIRC). Talk about bare metal...
    I also loved the instruction set. It was so rational, most of my co-workers and I could manually disassemble an octal dump of code. My company also performed some magic leveraging the PDP-11's Unibus architecture, which was also exciting to work with.
    I later moved on to the Motorola 68000, which had a similarly "orthogonal" instruction set and some advantages (more and larger registers), but was not as simple and pure as the PDP-11.
    Thanks for the memories!

  • @ian-nz-2000
    @ian-nz-2000 3 месяца назад +2

    Great memories! Back in the early 80s, I attended a DEC PDP-11 assembler programming course that had us writing machine code before we could use the assembler. I still have the workbooks 😀 Fun times.

  • @jimsteele9261
    @jimsteele9261 3 месяца назад +1

    Reminds me of the time I worked on the Burroughs B6700. In it's last days it sat idle as backup, powered up but all it's peripherals except the console had been moved to the new system. I used the hardware memory test panel to loop the thing into constant I/Os to the console spitting out witty comments like "My mind is going, Dave", "Daisy, Daisy" and so on.

  • @heslop1brian
    @heslop1brian 2 месяца назад

    Brings back memories of 37 years ago. Writing custom boot code for process control system loading. Very satisfying loading memory management and not mapping the code out. Daunting at first a completely bare machine,band then only your code running.

  • @carisma-uk
    @carisma-uk 2 месяца назад

    Thank you for sharing this Dave, I spent about 4 years writing Assembler on PDP 11/23 and the 11/73 on RSX11S so this is a great blast from the past

  • @SuperKidgib
    @SuperKidgib 3 месяца назад +1

    That was great Dave,, thanks! I learned assembly on a pdp-8 and did a little pdp-11 assembly. I was a professional ibm 360 programmer for many years. In a lot of ways assembly is like an exact science.

  • @tomcolby3052
    @tomcolby3052 3 месяца назад

    I spent lots of hours in high school on a PDP 11/34. Only BASIC programming, but learned a lot. Nice to see that some machines still live.

  • @cedbobking
    @cedbobking 3 месяца назад +6

    Since there are not many comments here, I will drop this in one presuming there is more of a chance you will read it.
    First, I stumbled across the channel looking for LED stuff. Then I discovered the 10 Second Autism test. Obviously the correct answer is be creative. That led me down down a rabbit hole of realization that I may not be unique, but merely rare, which was quite mind-blowing. The hope is that turning Autism into the current special interest will give me insight on how to be better for myself and the world around me. So thanks for that. {The real purpose of the post.}
    Second, when I was in grade school a PDP-8/e was delivered to the house to do the billing for my dad's medical practice. My much older brother wrote the DIBOL. I just did operator stuff like print the bills. Things grew. Moved from house to office space. Upgraded from PDP-8/e to a PDP-11/70 running RSX-11/M+. By then I was in junior high. Leared to write some Fortran and Pascal. Skipped history a couple of days a week to sit in on a university class, PDP-11 assembler. Watching your Macro "Hello World" was took me way back.
    Anyway, you could really freak some folks out by using the front panel of the machine to enter the program and run it without using the unibone or any typing whatsoever. I think it should be possible. There can't be that many lines. A sped-up view of the entry might look really cool. Hit the continue button, get a line. It would be super on a DECWriter LA120.
    Also, I was ridiculously good at using Teco in my mid-teens. There was a DECUS Teco script to run full-screen editing with the ability to still do line editing. I recall it being pretty amazing.
    Since you have the 11/34, I highly recommend two DECUS games Star Trek and Dungeon. Someone ported the latter from DEC-10 to PDP-11 back then.

    • @JeffRyman69
      @JeffRyman69 3 месяца назад +1

      I remember using TECO on a DECSystem 10. I occasionally still use the VEDIT editor on a PC. Originally developed for CP/M systems before moving to X86, the command line commands of VEDIT are quite similar to TECO.

    • @mikenielsen8781
      @mikenielsen8781 3 месяца назад +2

      Ohh... TECO. (escape-escape). Fond memories from 1977/78 on a PDP-11/55 (IIRC) with RSX-11/M. TECO and PDP-11 assembler were my drugs of choice.

    • @wernerdittmann7579
      @wernerdittmann7579 3 месяца назад

      TECO - Only real programmers dare to use TECO (Text Editor and COrrector). Later on I used the version modified by DECUS (DEC Users Group) which had full support of the numeric keypad, cursor keys on a VT52, later VT100. One game with TECO: type in you name and then ESC ESC and see what happens 😎. Used it to program Macro-11 assembler, Basic, and then Fortran IV plus.

  • @consultingengineer5593
    @consultingengineer5593 3 месяца назад +2

    From an OLD Dec man. I loved your screen flash: "OCTAL DAMN IT"

    • @trail.blazer
      @trail.blazer 3 месяца назад

      I actually shouted it before the flash showed. I did a lot of MACRO11 and whilst I haven't used it for a very long time, I suspect I might remember quite a lot about it.

  • @kurttosczak8544
    @kurttosczak8544 3 месяца назад

    The mini that the college was running on when I got my computer degree was the PDP-11/70 (released in 1975. 1 years before the 11/34). I learned a whole raft of languages on that computer, including assembly. You are bringing lots of memories back to me.

  • @mst14160
    @mst14160 3 месяца назад +3

    Lots of memories there. I started UofR in 1979. Used a dec pdp 11, to write my first code. The machine was actually in the computer lab with us, but we had only a teletype writer to code on. Never forget when I got something to run rather than spitting out error messages on rims of 36 inch folding printer paper. At least it was better than the punch cards for the IBM assembly language I would write a year later. We have come a long way.

  • @victrolaman2007
    @victrolaman2007 3 месяца назад

    Wow, I was working at DEC back in 1979 as circuit pack repair technician for the RL01/2 disk drive while I was in college. I had to be able to control the drive at the register level and hand wrote many PDP11 assembly language routines to be able to control the hardware at the bit level. This past year I was going through old papers and came across my DEC PDP11 programmers reference pocket guide. Programing at the assembly level was a lot of fun and, back in those days, it opened a world of imagination of what was to come. Thanks for the memories, and keep them coming!

  • @sqlsmarty4325
    @sqlsmarty4325 2 месяца назад

    Great look into retro coding in assembler! Enjoy these trips down memory lane! 😎👍

  • @davidwilliss5555
    @davidwilliss5555 3 месяца назад +2

    I used to do that sine wave BASIC in the 70s too. I was an Apple fan at the time so I'd go into Radio Shack and enter that code but have it scroll "TRS-80 Sucks" over and over.

  • @rjy8960
    @rjy8960 3 месяца назад +1

    I have always loved coding in assembly because I had total control over the CPU in those days. I cut my teeth on it as a kid with various MCU's - 6800, 8085, Z80...
    My formative commercial years were on bare metal and very constrained single processor embedded microcontroller systems before the PIC's and similar arrived . I spent YEARS developing code for a Hitachi H400 4-bit microcontroller on a 4.77MHz PC development system using using Word Perfect as an editor (RIP Bruce Bastian) native Hitachi tools, programming to a UV reprogrammable part with broken legs (they were expensive) and crash and burn, bringing out test pins to unused I/O as traps. Code ran into hundreds of pages and I came up with my own bottom-up coding methodology that worked at the time and at the higher level of the programme the systems became almost high level configurable although with some faff.
    Happy days.

  • @jimmeade2976
    @jimmeade2976 3 месяца назад

    Dave, you're really bringing back memories. Though most of the rail control system code we ran on our PDP was in FORTRAN, we did use assembler for important operations like resource locking between tasks, time-critical I/O, and code that needed to be re-entrant. That was circa 1990-1994, about 30 years ago. Thanks for the memories.

  • @jeffolson4731
    @jeffolson4731 3 месяца назад +2

    I am glad you are doing this series. The PDP-11 was a fun machine. Though, I only ever had the emulator that ran in a PC on an FAA certified flight simulator. By the time I got there the hardware had been replaced.
    I do have some real old hardware experience though. I am not much older than you but I started at a small flight simulator training company in 1986 and had a simulator that had see a DDP-124 for the host and a Varian 620/L for the visual. Both used paper tape and I assure you, pranks were pulled with the bits that were punched out.
    I rather miss programming in Assembly or just punching in a quick program for diagnostics using the data and register switches on the front panel.

  • @jamesbond_007
    @jamesbond_007 3 месяца назад +2

    I'm in agreement about the beauty both the PDP-11 instruction set and the 68xxx instruction set. Very clean, very easy to use. No real surprises when coding at that level.

    • @NathanielMishkin
      @NathanielMishkin 2 месяца назад +1

      +1. The first two instruction sets I learned were for the IBM 360 and the PDP-11 (writing an emulator for the latter in the former for a course). A little later I learned the 68000 ISP which was an easy follow on to those. Eventually I encountered the x86 architecture and I’m like what? Address calculation isis done how? Fortunately I rarely had to dive down to that level when programming for x86 boxes.

    • @jamesbond_007
      @jamesbond_007 2 месяца назад

      @@NathanielMishkin Interesting. The 360 instruction set with it's (I think) segmented architecture has made me think that it was an inspiration for the x86 architecture. I had to learn a superset of the 360 instruction set for an avionics processor called an AP-101C, which is like what flew originally in the shuttle, and is like the 360 instruction set, but has specific instructions for doing trig operations.

    • @NathanielMishkin
      @NathanielMishkin 2 месяца назад

      Ah, no on your inspiration point (at least not for ground-based 360 CPUs :-). No segmentation. If anything it was the 68000 instruction set that was inspired by the 360.

  • @ronbackus1229
    @ronbackus1229 3 месяца назад +2

    Memories, my first CS class was Fortran WATFOR / WATFIV on a UNIVAC 1100 using punch cards and line printer output.
    The first code I got paid for was 6502 assembler. Nothing since has been as satisfying.

  • @arsnakehert
    @arsnakehert 2 месяца назад

    At my former university in Brazil we still do our computer architecture courses based on a series of increasingly complex architectures created by one of our professors, but based on simplified versions of historical architectures; one of them is "Cesar" which is inspired by the PDP-11, including its assembly language
    One of our assignments actually involved using timer interrupts or something like that to read input from the keyboard and write bytes directly into addresses mapped to a simulated LCD screen
    So seeing PDP-11 code actually brings me back, despite never having seen one in my life and not being old enough to be around during the heyday of these computers

  • @lavy9740
    @lavy9740 2 месяца назад

    Ohh man. I'm an ECE and I love working as close to the silicon as I can. Seeing stuff like this makes me wish I was born in the 60s but it also gives me a real appreciation for all the abstract goodies we have today. Really hoping my son takes an interest in computation and electronics, I would love to be a dad that shares his knowledge with the patience and passion that you have.
    Ur freaking cool Dave.

  • @fredflickinger643
    @fredflickinger643 2 месяца назад

    I really hadn't thought much about my first experience with Assembly language in Engineering school on the VAX. Thanks for the trip back!

  • @PaulGeffen
    @PaulGeffen 3 месяца назад

    This brings back great memories from the Digital (Equipment) days. My first personal computer was a PDP-8/e in 1972. We had one in our basement and wrote programs for stock brokers in BASIC. I also built a hardware interface to an external tape drive for it. Much simpler than your PDP-11/34, I know, but definitely bare metal. Thanks for keeping this legacy alive and running.

  • @swaroopsahoo214
    @swaroopsahoo214 2 месяца назад

    Just FANtastic. So much i’ve learnt from you than today’s modern cs profs.

  • @ah244895
    @ah244895 3 месяца назад +3

    I remember learning assembly on a DEC10 back in the mid 1980's. When computers were computers.

  • @dannyepstein
    @dannyepstein 2 месяца назад

    For your next video, I recommend getting even closer to the metal: machine language. The PDP-11 instruction set is quite elegant, particularly when you use octal. For example, 011507 is MOV (R5), R7 with 01 specifying the MOV instruction, 15 specifying deferred addressing for register 5, and 07 specifying direct addressing for register 7.
    I was pleasantly surprised when I found out that one of my courses in the late 80's was taught on a PDP-11. I enjoyed it a lot. I remember going back to the building where it was taught a year or two later, only to discover that the PDP-11 had been moved to the stairwell and now had a placard describing it as the museum piece it was! An elegant computer for a more civilized age.

  • @Sevenfeet0
    @Sevenfeet0 3 месяца назад +2

    We are of the same age (vintage?) and my assembly language journey was 6502. At the height of my powers in high school/college, I could do most 6502 assembly programming without having to review back to the manual for my Apple ][. I did have access to a PDP 11/40 in high school that lived at a local college across the street where I could load BASIC programs on the RSTS/E system, but this machine was so above my perceived skills, I didn't even consider doing assembly on it. In reality, I really should have since it would have probably been a lot of fun and useful for my programming skills. Considering that in college I had direct access to DEC-20 and VAX systems, I'm kinda kicking myself for not taking the opportunity to get a little more bare metal experience with these systems. Thanks for your video to demystify all this.

  • @ByteCurator
    @ByteCurator 3 месяца назад

    Thank you Dave, for sharing your knowledge! I'm too young to have had the privilege to work on machines like these yet I'm deeply intrigued by coding & computing with much of the abstractions torn away. Practical examples shown in such a simple manner are extremely helpful.

  • @ModusPonenz
    @ModusPonenz 2 месяца назад

    Seeing that shelf of orange binders brings back memories. I recall getting sets of errata manual pages with the new version of the OS. Starting with the first binder, replace pages 7,8 with pages 7a, 8a, 8b. Sometimes just a page or two per chapter. Sometimes whole chapters were dropped and replaced with a new chapter. Keep repeating until all the relevant pages were replaced. And we actually referred to the manuals often and needed them kept up-to-date.

  • @mahtin
    @mahtin 3 месяца назад

    1975 was my first year PDP11 coding on DOS11 and then RT11. (I still have my DECtape from that year). I continued coding in MACRO11 for many many years. Thanks for bring back the memories!

  • @scotty3114
    @scotty3114 3 месяца назад

    Ah! The good ole days! I started work in 1966 for NCR as a field technician. Got trained on their 315 system. We were expected to write our own diagnostic code for the specific problem we were having. It was a hoot! My first PC was an Apple II integer, but I soon sold it to a highschool kid and upgraded to a //e. Had and built many PCs over the years, trying to keep skills relevant. I always enjoy your posts.

  • @geoffbarton5917
    @geoffbarton5917 3 месяца назад

    WOW, that sure brought back memories. Tens of thousands of lines of assembly code written for direct hardware control on multiple platforms, includind PDP 11 and PDP 10.
    Thanks for sharing.

  • @ariella4063
    @ariella4063 3 месяца назад

    I love learning how it was done in the old day, Please keep making more videos.

  • @lohikarhu734
    @lohikarhu734 3 месяца назад

    My first introduction to "software" was a course about microcomputers, but the instructor used the PDP 11/05 schematics to illustrate how a "computer" worked, right down to the gate level... It gave me a "Eureka moment" to realize that "software" was a means to get the hardware to be re-configured, on the fly, to perform a sequence of operations that performed the desired movement and math operations on individual high/low 'bits', and on "words".... Suddenly, it made sense!
    And, we wrote a boot loader, which actually resulted in something, in the real world, doing something visible, with a big old KSR-33 suddenly clattering away! Talk about "bare metal", seeing 74xx logic devices shifting high/low signals around on data and address lines, multiplexers redirecting signals, ALU's adding and subtracting, all controlled by "instructions" that had specific bits to control what/where/how this all happened! Then, the MC68000 assembly code was clear!!

  • @rjsmall23
    @rjsmall23 2 месяца назад

    Fascinating episode. Took me back to assembly coding in university using MASM.

  • @MadMathMike
    @MadMathMike 3 месяца назад +1

    Reliving that failed exam question is something I identify with very strongly. 😅

  • @stephenbrandon2554
    @stephenbrandon2554 3 месяца назад

    This brought back memories of the last time I wrote machine code, Z80 on our school System 80s (antipodean version of TRS-80) in the mid 1980s. When I first realised what was possible, I got a book from the library on Z80, and was reading it balanced on the handlebars of my bike while riding home from school.... then crashed my bike into the back of a parked car. That was the first of many adventures in Z80, the rest of which included hand-dissassembling the BASIC interpreter, working out how to transparently recover from the non maskable interrupt, making a full graphic screendump onto the dot matrix printer, and all sorts of associated hackery. The rest of the class were learning FOR loops in BASIC. Happy days.

  • @gm6270
    @gm6270 3 месяца назад +3

    Dave, I would LOVE to see some sort of collaboration video(s) of Steve Gibson and yourself
    Plllllleeeeeeeeeeaaaaassssssseeeee 😊

  • @KPbICMAH
    @KPbICMAH 3 месяца назад +1

    Assembler is so high-level! Machine code is our everything. After all, writing 012737 is so much more fun than "MOV number, address"

    • @quintrankid8045
      @quintrankid8045 3 месяца назад

      Machine code? Too much complexity and overhead. Purpose built TTL circuits FTW.

  • @stefanpettersson5670
    @stefanpettersson5670 3 месяца назад +2

    I know that the pdp exist but there goes the end of my knowledge, but these two episodes is the most interesting you have done lately, keep them coming:)

  • @avatarcowboy2435
    @avatarcowboy2435 3 месяца назад

    My first job after graduation involved programming in Fortran on a PDP11/34. Removable storage at the time consisted of 14" diameter 1Mb disks.
    I shared this computer with two other software engineers. Every so often I had to run a large simulation. Had to arrange with the other two engineers to tie up the PDP11/34 for an entire week!

  • @joelyoungcbi
    @joelyoungcbi 3 месяца назад

    I can't express how much I enjoy your videos. I know quite a bit about computers and computing, but not as deep as I'd like. I know enough to understand 95% of what you talk about, and the other 5% I can figure out from the context.
    But yeah, I'm a geek, and I love hearing your stories and explanations, and learning or refreshing my memory with it all. Thanks, Dave!

  • @waynesworldofsci-tech
    @waynesworldofsci-tech 3 месяца назад +5

    To hell with serial terminals, punch cards to the max baby!

    • @victorman7777
      @victorman7777 3 месяца назад +1

      At least until you drop your deck! 😠

    • @quintrankid8045
      @quintrankid8045 3 месяца назад

      @@victorman7777 That's why real FORTRAN doesn't use the entire 80 column card, so you can number the deck.

  • @NathanielMishkin
    @NathanielMishkin 2 месяца назад

    In the computer architecture class I took in the mid 1970s I had to write a PDP-11 emulator in IBM 360 assembly language. It was a great educational experience-I learned two machine architectures at the same time!

  • @judirollings3959
    @judirollings3959 2 месяца назад

    So much fun! I wrote PDP-8 and PDP-11 code in college and Data General NOVA assembler in early jobs. Then on to VAX/VMS writing special purpose drivers for material handling systems. Proprietary protocols for distributed controllers. No email in those days!

  • @jerrythompson
    @jerrythompson 3 месяца назад

    This video brings back fond memories, thank you. I graduated with a BSCS from the University of Utah in 1974. I learned to program on a mainframe, the Univac 1108. At the time of graduation I was working at Sperry Univac as an electronics technician in R&D. With degree in hand I was promoted to programmer and began coding for mini computers. (Unfortunately, I did not get any DEC experience back in the day. I do have PiDP-8 and PiDP-11 to play with now though.) I spent 20 years with Univac->Unisys where I mostly coded in assembly language for 8080, Z80, 8048, 6800, and my favorite, the 68000 series. Mostly using home grown OSes. In the late 90s I worked at Novell on their core OS which is where I got most of my x86 experience. The last 10+ years of my career were spent with C++, and although I was more productive in C++, it was no where near as enjoyable of a job as was writing assemble language in the 70s and 80s for the mini and micro computers.

  • @RobertRidgley
    @RobertRidgley 3 месяца назад

    Seeing the over of the Commodore Programmers Reference Guide brought back some fond memories of my Assembly Language days, thanks.

  • @rilauats
    @rilauats 3 месяца назад

    Your PDP 11 story across multiple videos is like a trip down memory lane.
    I still remember being exchange student at University of Kansas, Lawrence, Kansas back in 1982-83. The time when my uni days really were like National Lampoon's Animal House.
    Anyways, one of my classes was assembly programming for the PDP11. I love your channel, keep it coming!
    BTW: In my residence hall we had one terminal with acoustic modem connection to university's main-frame computer. Speed 1200/75 baud which roughly becomes 8 chars/sec keyboard typing and 100-125 chars/sec display on terminal. World was different back then.

  • @grahamkwalmsley
    @grahamkwalmsley 2 месяца назад

    A blast from the past. I started off my IT career on the PDP-11

  • @JimRoberts
    @JimRoberts 3 месяца назад

    That brought back memories. As a self taught programmer it did push me to write assembly code for a obsolete language (RPL) for the PICK OS for Dec and Microdata
    ‘Mini’ machines in the late 80’s early 90’s fun times

  • @mikesmith3704
    @mikesmith3704 3 месяца назад +5

    In the 70's and early 80's I worked as a hware interface design eng on PDP 11s. For us, macro 11 was high level programming 🙂 🙂 Real programmers use 1s and 0s. That's real bare metal 🙂Like booting, easy enough, you don't need any fancy hardware cards like the one you used. You simply manipulate a couple of registers in the disk controller like word count and CSR, load in the first block from disk and run it. Voila! OS loads and runs :-) Dave, thank you so much for your videos, I really enjoy them.

    • @gottfriedheumesser1994
      @gottfriedheumesser1994 3 месяца назад

      We 'poisoned' the pdp-11s for the basic training groups by entering 014747 (mov -(PC,)-(PC)) at the highest address and executed it. It copies itself through all the memory, and if a different program performs a wrong jump it works self-destroying.

    • @wernerdittmann7579
      @wernerdittmann7579 3 месяца назад

      Yes, using the toggle switches to enter the code to read the paper tape (the folded paper tape) which then contains the boot loader, add the disc address and load the OS. We were using RSX-11M and RT-11.
      I still have PDP-11 handbooks, programming card etc 😄.

    • @mikesmith3704
      @mikesmith3704 3 месяца назад

      @@gottfriedheumesser1994 Indeed - in fact we used to use 014747 as a very quick and dirty memory diagnostic. Run it and if it does not make it all the way through memory you can look back and see at what address it was corrupted. Work out which bit failed and change the RAM chip because the memory was all xKB x 1 bit chips so easy to find. Not a very rigorous test but useful sometimes 🙂

  • @ianhammond7132
    @ianhammond7132 3 месяца назад

    My first machine was a PDP-11/20. Many decades and hundreds of thousands of lines later I still write code for that elegant instruction set. And RT-11 I rewrote a few times as well, for different environments. I'm just finishing moving XXDP, the PDP-11 diagnostic operating system, to run in an RT-11 environment. Because the PDP-11 is such a delight.

  • @AreTwo2
    @AreTwo2 3 месяца назад

    Thanks Dave. Love your work. My "bare metal" in 1966 was an IBM 1620 M1 with an 80 col card reader. Great to learn on as it operated in decimal, and no bootsrap as it had a "Load" button (read card image into pos 0 and branched there). It had no registers, just storage to storage commands (well one for a sub call to store return address). Then we got a 360 so I had to learn hex and operating systems.

  • @n5pa
    @n5pa 2 месяца назад

    I started my IT career on an IBM 360/20 card system using Assembly Language. As my time on Mainframes grew I got into COBOL and PL1. Later on I had a PDP 11/70 in my office when we were porting to some new software. As time went on we grew into an IBM 370/195 and its follow on systems. My path led to systems like Cray, Burroughs, Univac, Unisys, and several IBM Midrange Computers from IBM 32 to 38’s and AS400’s. My last 25 years were mainly spent on very large Linux Systems with Terabytes of memory and Petabytes of SSD, running Oracle Databases and E-Business Suite. But up to my retirement day I was still using Assembly Language to interface a multitude of varying hardware back to Oracle! Even though we used a lot of C and other languages, I always had Assembly to fall back on. Keep up the good work Dave!