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
Пікірлер: 859
@user-gx1rk8yw6lАй бұрын
Thank you for NOT having a 5-minute-lasting "Let's get right into it!" intro!
@Andy-fd5fgАй бұрын
and for not repeating what you just said before the adverts.
@SuperSpajkyАй бұрын
Microsoft stocks make that unnecessary :)
@20chocsadayАй бұрын
I don't think he could imagine doing that.
@PsythikАй бұрын
@@Andy-fd5fg "Adverts"? Are you serious right now? Why aren't you using proper adblockers, like Ublock Origin and KZbin ReVanced? Why would anybody willingly put up with ads on the internet, especially when they're so easy to block?
@goraumaАй бұрын
Is that a dig against Adrian?
@hmrodyАй бұрын
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Ай бұрын
Same here ... this also reminded me on a time many decades ago, when I was programming a VAX11/780 in assembler.
@vslabs-zaАй бұрын
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...
@atertee28 күн бұрын
Holy S... I can barely do fundamental Matlab and some labview ... this is way beyond my comprehension of what a comouter is ...
@warmCabin23 күн бұрын
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.
@davorzmaj753Ай бұрын
"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Ай бұрын
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Ай бұрын
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.)
@user-ol1fq6yh8hАй бұрын
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Ай бұрын
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Ай бұрын
That's impressive. That makes me feel a little proud to have had them as my first ISP.
@wtmayhewАй бұрын
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Ай бұрын
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Ай бұрын
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Ай бұрын
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!
@xfinnerjxАй бұрын
Too many coders today are so disconnected from the proper hardware. More like this is just fantastic.
@MathewPanicker1010Ай бұрын
There's nothing wrong with that
@JxHАй бұрын
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Ай бұрын
@@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Ай бұрын
@@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Ай бұрын
@@JxH this makes 0 sense.
@terryrogers6232Ай бұрын
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Ай бұрын
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Ай бұрын
@@CallousCoder Thank you - Terry
@jgharstonАй бұрын
You mean there is actually a market for bare metal programmers? Where are the adverts?
@smiththers2Ай бұрын
I'm sorry to hear of your loss.... I would be devastated if my wife passed before me..
@CallousCoderАй бұрын
@@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Ай бұрын
I'm pretty sure that every time Dave startup the PDP, the lights in the city fade.
@ZarcondeegrissomАй бұрын
neh, that's his CRAY X1E in the other room, lol. /sarcasm
@stephengevers5894Ай бұрын
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!
@clementgaudetАй бұрын
I’m 67 and my first assembly programming was on a PDP8. Love the channel.
@DrycleanerguyАй бұрын
I'm 69, and I first programmed a PDP8e.
@toddmarshall7573Ай бұрын
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Ай бұрын
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Ай бұрын
I loved my Sol, too. Especially the first original PTDOS that limited Random Access files to 16k in length. .
@patrickwingert5224Ай бұрын
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.
@victorman7777Ай бұрын
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Ай бұрын
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Ай бұрын
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Ай бұрын
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 !!
@michaelkoehler7441Ай бұрын
Thank you so much for bringing back some great memories and help sharing this knowledge out to the next generations!
@alanmichaels8774Ай бұрын
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.
@BFLmouseАй бұрын
I still have a copy of the LSI11 PDP11/03 handbook on my bookshelf, a souvenir from an assembly language programming class in college.
@mandolinicАй бұрын
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Ай бұрын
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Ай бұрын
@@markteague8889 I dread to think what he gave the appalling DG Nova and HP-1000 ;-)
@Loki-Ай бұрын
Yes, niche.
@matambaleАй бұрын
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Ай бұрын
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Ай бұрын
@@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.
@wernerdittmann7579Ай бұрын
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Ай бұрын
I remember using the original Kernihan and Ritchie "C' book.
@janmichael1262Ай бұрын
Still have it lol
@janmichael1262Ай бұрын
C was initialy described to me by one of the early programmers as a portable PDP11 assembler
@andreasrothmund9147Ай бұрын
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!
@RodCleavesАй бұрын
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Ай бұрын
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Ай бұрын
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Ай бұрын
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Ай бұрын
@@sharpbends Wouldn't it make more sense to use something like a JMP instruction for that?
@sharpbendsАй бұрын
@lorensims4846 Absolutely. RTS can still be achieved by stack and PC manipulation as well.
@phill6859Ай бұрын
@@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
@tcpnetworksАй бұрын
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...
@RevellingTerrorАй бұрын
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🍻
@giorgiobarchiesi5003Ай бұрын
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!
@kmtabq617Ай бұрын
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.
@floooooooooooooooooАй бұрын
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
@user-dz7qm7zu2kАй бұрын
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Ай бұрын
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.
@gottfriedheumesser1994Ай бұрын
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Ай бұрын
Did you know anyting about the Ferranti Proces Computer with real IO-cards inside. I forgot which OS is was running ...
@howardwilliams2587Ай бұрын
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.
@jakebrodskypeАй бұрын
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.
@agosto1685Ай бұрын
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.
@JoeBurnettАй бұрын
I look forward to every new video you publish! Great stuff!
@하와이안파인애플피자Ай бұрын
These assembly instructions really intrigues me, and makes me understand more about how computer executes code. Hope you make more of these❤❤
@gerrykavanaghАй бұрын
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Ай бұрын
DEC in Galway donated a PDP-11 to Galway Regional Technical College where I first used it as a student in 1977.
@gerrykavanaghАй бұрын
@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
@frankj.hoffmann7030Ай бұрын
Great stuff as usual, Dave. Much appreciated content!!! Greetings from across the pond.
@lorensims4846Ай бұрын
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Ай бұрын
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Ай бұрын
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Ай бұрын
Yay! I was subjected to EMMA as a sophomore in high school in Norway almost 30 years ago.
@GHHodgesАй бұрын
Roy, Gary and Roe sang some great tunes as well!
@bama21Ай бұрын
He had to use pic of CCR by accident right?
@carisma-ukАй бұрын
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
@BelznisАй бұрын
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.
@swaroopsahoo21427 күн бұрын
Just FANtastic. So much i’ve learnt from you than today’s modern cs profs.
@heslop1brianАй бұрын
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.
@jamesgazin9447Ай бұрын
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Ай бұрын
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
@arsnakehert28 күн бұрын
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
@lavy974025 күн бұрын
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.
@lohikarhu734Ай бұрын
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!!
@lohikarhu734Ай бұрын
In 1977
@dannyepsteinАй бұрын
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.
@SteeleDynamicsАй бұрын
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!
@kurttosczak8544Ай бұрын
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.
@DougKnowles76Ай бұрын
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!
@iAmTaki20 күн бұрын
I'm 20 year old game developer, I mostly write C++ and C# code, so this kind of thing fascinates me. I love your videos, thanks for teaching us so much!
@avatarcowboy2435Ай бұрын
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!
@willynebula6193Ай бұрын
I couldn't click fast enough Dave. Thank you for making awesome videos on assembly!
@mst14160Ай бұрын
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.
@johnnyragadoo241411 күн бұрын
As an old FORTH developer (Max-FORTH, embedded in the Motorola 68F11 was my project), playing games with the stack and return addresses was just another day at the office. So, let's see, you could JSR, pop the return address and store it someplace, and if you decided you really wanted to return from whence you came you could jump indirect. That would be a JSR without an RTS. I remember writing some subroutines that had to run twice on two different halves of a value. The subroutines did some setup and then did a JSR to the immediately following location in memory. An RTS returned to the location following the JSR. The second time the RTS got executed it returned to the real caller. It's assembly. It's the wild west. Everything is possible, including unholy ideas no one in his right head would consider. Cool stuff, in other words. Enjoyable video. Took me back!
@schmidt28117Ай бұрын
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" .
@donjaksa407128 күн бұрын
I wrote 6800 and 6809 assembly language professionally for 10 years. We wrote everything from the real-time-multi-tasking-interrupt driven operating system. From reset vector to the power-down non-maskable interrupt driver. This was before windows and the internet. Talk about a sound foundation. 40 years in the business
@tomcolby3052Ай бұрын
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.
@mahtinАй бұрын
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!
@ian-nz-2000Ай бұрын
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.
@leonardvisser956014 күн бұрын
My university had a PDP-11 in the 70’s but I only ran BASIC on it. I learned assembly for the Intel 8080A and now I’m writing a BASIC interpreter for my new vintage 8080A microcomputer.
@NathanielMishkin27 күн бұрын
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!
@nnov_tech_chan7891Ай бұрын
This is proper manual. Dave never disappoints.
@stefanpettersson5670Ай бұрын
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:)
@rjy8960Ай бұрын
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.
@andrewcrompton3444Ай бұрын
Oh yes! My - actually my lab's - first computer was a PDP11 running RSX11-M back in the 1980s. We were trying to do speech IO in real time, a hugely demanding task in those days. We enlisted the help of a friend of mine called Adrian. who was an RSX-11 system programmer - bow down and make homage, please: these guys were gods! Adrian had his own PDP11, which lived in his front room (he was single, so where else would it live?). With Dave's PDP11, it looks like you just press a few switches and the machine comes up - luxury. Adrian's PDP was not so advanced and initially required a lot of manual intervention to get it to boot up. Eventually, though, he bought a boot board for it. This was a card, about 20 x 25cm, with an array, about 8 x 10, of locations, which you slotted into the machine's back-plane. In some slots a big capacitor had been soldered in. In other slots there was no capacitor. (Or maybe they were resistors.) When the PDP started up using this boot board, it read the presence or absence of a capacitor in a slot as a 1 or a 0 and used a complete row of 8 slots to form 1 byte. The 10 or so bytes hard-coded on the board defined some machine code, which told the computer where to find the OS on disk and how to start it up. A beautiful illustration of hardware as software.
@SuperKidgibАй бұрын
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.
@jamesbond_007Ай бұрын
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.
@NathanielMishkin27 күн бұрын
+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_00725 күн бұрын
@@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.
@NathanielMishkin25 күн бұрын
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.
@RobertM125Ай бұрын
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.
@consultingengineer5593Ай бұрын
From an OLD Dec man. I loved your screen flash: "OCTAL DAMN IT"
@trail.blazerАй бұрын
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.
@sqlsmarty432527 күн бұрын
Great look into retro coding in assembler! Enjoy these trips down memory lane! 😎👍
@jeffolson4731Ай бұрын
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.
@ronbackus1229Ай бұрын
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.
@victrolaman2007Ай бұрын
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!
@Sevenfeet0Ай бұрын
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.
@PCBcarlsonАй бұрын
Brought back memories of asm coding a PDP-9 18-bit machine storing five 7-bit characters per two 18-bit words. KSR-33 terminal quickly replaced with a Tektronics tube. Load everything from paper tape, store to mag tape, not DECtape. Core memory 16kwords. Used it for four years until a PDP-11/45 showed up. Thanks, Dave
@PaulGeffenАй бұрын
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.
@grahamkwalmsleyАй бұрын
A blast from the past. I started off my IT career on the PDP-11
@shermanc87682 күн бұрын
MOV'ing vid! nice work and thanks for reminding me of the good ol days.
@judirollings395927 күн бұрын
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!
@JasonKingKongАй бұрын
So many physical buttons! So much more satisfying than touch screens.
@JT-kz7kq26 күн бұрын
For those of us lesser mortals who don't have a physical PDP, there is simh (simh.trailing-edge) and the software kits for RSTS/E and RT11. These provide a simulation of physical computers. There are also ones for PDP-10 (Tops 10/20), HP (TSB) etc. PDP-11 assembler was the first assembler I used. I thought it was great. I did a lot of PDP-11 assembler programming in the 1970's and 1980's. I also used the 68000/68020 which were fine. Then I came to the 8086/80286/80386 et al. Oh dear. What's with ptr, offset and operands from right to left?? Can names be named for who came up with notation for MASM? Great videos. Keep up the good work!
@MorrisTartАй бұрын
Fabulous. I used to keep my PDP-11 pocket coding quick reference card with me at all times. I'm sure that I still have it somewhere. The instruction set was elegant and logical.
@rjsmall23Ай бұрын
Fascinating episode. Took me back to assembly coding in university using MASM.
@ModusPonenzАй бұрын
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.
@jerrythompsonАй бұрын
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.
@scotty3114Ай бұрын
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.
@P2000CamaroАй бұрын
I absolutely love your channel, dude.. It's one of my favorites. NOt even just because of the content, but your personality makes the channel worth watching. Thanks dude..
@jimmeade2976Ай бұрын
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.
@joelyoungcbiАй бұрын
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!
@JimRobertsАй бұрын
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
@howardgraff4084Ай бұрын
I used two PDP/11s (an 11/20 I think acting as a FEP for an 11/70) during my Computer Science course at Manchester University in the UK starting in 1979. I remember using assembler code to program an attached Calcomp plotter to output text - my code directed the calcomp how to draw each letter and this was then tested with an input string. It was very cool. Those were fun days. How times have changed. Thanks for your video.
@johngoodspeed3585Ай бұрын
Dave, love your channel and subjects, I started out in the 70's on an IBM 1130, a PDP 11/40 and then on to the Intel 8008 and 8080. Keep up the great work!
@baronvonschnellenstein2811Ай бұрын
Now we're talking! Yes, more of this please, Dave. Appreciated the preamble (including the dudes using a PDP to cross-assemble to a C64, rofl) before you broke out the "big pants" and dived into the assembly coding. 👍
@ronosmoАй бұрын
I started with programming on the canon sx300 in 1975. We wrote programs for accountants. Each accountant would design his own chart of accounts, and my job was to punch in the text for those 300 accounts. So tedious! Our leaders were comp-sci students at uni. I was 20 and a uni dropout. But i had reasonable maths skills and had a job operating an ibm 360 at nights. I hated operating that beast. For some reason i liked programming! I graduated to our new platform, which was a pdp11 with a teletype console, twin 8 inch floppies, typically 16k of memory and running RT11. The left hand or a: drive contained all our programs and the accountant's client list, while the b: drive held a single client's data. My first task was to write a utility in macro-11 to verify the integrity of the client data and recover as much as possible if corrupted. The others were busy manually fixing client data disks as someone had fooled with the buffered write (bwrite from clib) and forgot that sometimes users would create odd numbers of transactions and all our testing was done with simple debits & credits. Such were the good, bad and ugly of computing in the 70s...
@RaudoraАй бұрын
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.
@davidwilliss5555Ай бұрын
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.
@FCCmusic13 күн бұрын
a very nice and easy way to consume historical yet modern information
@LexSijtsma2Ай бұрын
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.