Thanks everyone for making this the #1 all time video on my channel in less than a week! I see so much enthusiasm for the Z80 and this series, and I'm super stoked to start rolling out the episodes. Stay tuned!
...and first video to reach 1000 likes! Thank you so much! My next Z80 video comes out Thursday, and I hope it lives up to this one for you. As for the ten of you who disliked it, remember you can always buy a Raspberry Pi 😎
when u said you would be writing software for a z80 machine, i thought spectrum or a gameboy. glad its the speccy I been writing games in assembler for near 40 years on that system, cant wait to see wat you come up with.
The Intel 4004 development wasn't driven by a desktop computer market, which didn't exist in 1970-1971. It was spurred by the need for compact, reliable microcontrollers at the core of things like traffic signal controllers, home appliances, and so on.
Thank You! Thank You! Thank You! I am 65. I use Z80 since beginning. All kind of apps. Right now I created an emulated version in a FPGA. It runs at 100MHz. Quick enough to do almost everything. I work in slot machines industry. Once I knew by heart all instruction codes. I built PCBs, maybe dozens of. I create my own assembler, on extended page mode memory mapping. I will never let it down. An amazing architecture!
I used to do embedded programming for the company's Z80 products. The code I took over was written in assembler but I wrote new products in Avocet C. I did occasionally add inline assembler when say I found a CRC routine was too slow. Assembler seemed to be about 10 times as fast as C.
True. Looking at a Z80 hex dump even today I can still disassemble probably 50% of it in my head... which is a bit scary considering I barely remember my own phone number these days. 🙄🙂
Hi James, cool seeing you over here. I still remember hand assembling Z80 code in the back of my maths book and trying to get it running on our school's Research Machines 380Z. Wonderful days.
Me too. I loved the Z80, but it ruined me for learning 6502 assembler. Registers! I need registers! (And no, zero page is *not* like having 256 registers.)
Back in 1980/81 in the UK a company called NASCOM had a kit computer - Z80 processor, 1K RAM, UHF modulator for B/W TV - optional Basic module on EPROM but I didn''t buy - wanted to program in machine code (store owner said "ah your one of those machine code masochists eh?" lol). That kit put me into computing - at the time I was a Tool and Die Maker - finally led me to become a robotics engineer here the USA. Thanks for video, I've subscribed ready for more - brought back GREAT memories of the CPU that 'educated' me!!
Started on the Spectrum in about 1985. I taught myself assembly language and wrote a program that I was selling. It wasn't a game, but a program that allowed you to draw and print electronic circuit diagrams of unlimited length (as long as the roll of silver paper lasted). There was about 40K of fixed code and the remainder (about 8K) was available for the user to add more electronic symbols, ones that I hadn't supplied. Because of the specialised use, I only sold a few. I got some good write-ups in the hobby electronics press of the time, though. I'd include links to those, but they have my full name, address and 'phone number in them (they were written in 1989, a different time!).
@@Mnnvint I've lived here since 1989, when the articles were written. I've still got the same 'phone number I had in 1980 (at my previous address), but the area code has changed twice since then.
I built my first homebrew from a 8080A chip I found in a bargain bin at Radio Shack back in '79 (or thereabouts). Had to struggle through creating a dual-phase clock circuit because I couldn't find a 8224. Then discovered the Z80 with its built-in single-phase clock and DRAM refresh, and the world was my oyster! Bought a TRS-80 which got me through college, while working at an insurance company which had a fancy 5-card Z80 MP/M system (1 master, 4 slaves), writing assembly and BASIC and DBASE II programs. After 40 years, the Z80 is still my favorite chip!
@@slithymatt If Americans spoke properly they could have ended up with a decent society like in London...what...what 🤔 📢 X, y, zed!!! ZED ZED ZED ZED80 OK 😠
Love it !!!! z80 sparked my career in programming. I remember as teenager writting a small program in assembly that stored 4 seconds of music taken from the ZX81 cassete port, and another program to reproduce it.
I just finished Federico Faggin's book Silicone. A truly awesome read. I learned so much about the history of Silicone Valley and computes. Being born in 1950, I had the opportunity to own and use a lot of the machines referred to in your video.
Thank you for the history information on Z80 ptocessor. I learned my initial assembler language on the Z80 processor and utilized a z80 computer to master my first programming language, Pascal. The computer's operating system was UGC Passcal, and the entire operating system, along with our Pascal programming codes, was stored on a 400kB floppy disk. I am proud to have utilized the z80 8-bit processor to learn computer programming.
Thank you Matt. First class presentation. My first m/c was the Sinclair ZX81 with a CAI interface that fit in the memory expansion slot. Besides attaching a 48K Memtek expansion card, it would also run a 40 column dot matrix ceramic head thermal printer, plus 1 more port for a 56K baud stringy floppy magnetic tape cartridge storage device for large datasets that programs such as VuCalxc produced ( the DIM command saved the whole area on tape, even if only 1 spot was used of that Dimension Area, so large arrays would take forevcer to load from cassette at 250 baud, but loaded quite quickly with the stringy floppy ). Looking forward to your future endeavours.
As an Australian, the Microbee series of computers were my first introduction to Z80 programming. I loved having a professor in university who had written a text on Z80 assembler insisting that no-one can just write in assembler and run successfully first time. Lots of pride when his first assignment for me was done in one sitting and ran perfectly first time. I wish all the rest of my programming was that successful...
My first was a Microbee 32k. Upgraded the Rpm to Ram by pulling out 2 of the Rom Chips and replacing them with pin compatible Ram chips. Ran a write Enable wire to the previously to these now Ram chips so I could write to them. Grabbed a DreamDisk Controller. Soldered a 50 pin socket on the Bee motherboard and crimped 2 Idc Crimp sockets onto either end using a vice. Was not pretty but it worked. Connected the Dream Controller to 1 end of the 50 way and plugged in its ROM to the Bee. PS was a modified 12 Volt battery charger. Also connected up my 3.5 Floppy to the controller and booted up. Aquired CP/M disks and I was up and running with Wordstar etc. I was in heaven.
Don't forget Dick Smith System 80 -- TRS80 clone. But I always preferred 6502. The Z80 has all those extra registers, but using them effectively is more difficult than using 6502's much more spacious Zero Page and at CPU MHz and RAM speeds of the day didn't offer any more performance. Z80 has ldir/lddr but those are one-trick ponies -- and at 21 cycles per byte copied vs 14 for 6502 "LDA ,X;STA ,X; INX; BNE" a Z80 at the typically twice the clock speed was only 33% faster for block copy, and typically worse for almost anything else.
My first experience of Z80 machine code was converting a BASIC routine that took about a minute to run. After many attempts resulting in crashes it finally ran but I thought it had crashed because it ran so fast (maybe a quarter of a second). I fail to see how anyone can claim to understand how a computer works unless you've sweated over some machine code!
This brings back fun memories. My exposure to the Z80 was through a Northstar S-100 computer kit I assembled in the early '80's. That machine was used in my product development activities for well over 10 years.
@@rickhunt3183 The covers were wood while the frame was stamped metal. The original name for Northstar was "Kentucky Fried Computers" if I am not mistaken. Someone can probably clear up that lore. They were an early adopter of the 5-1/4in floppy. My machine had two. I purchased a 64k-byte memory board for over $300 at the time and whimpered when I had to disable the top 8k for the boot rom.
This was such a wonderful walk through the very beginning’s of my technology career. I had a professor in college that was building the Imsai 8080 and I helped him with that.
I started my IT career on a Sinclair Spectrum. I got partway through a version of asteroids for the Spectrum before I got distracted by other things. One thing that strikes me is that I learned everything that I needed to know about assembler on the Spectrum from a couple of small paperback books, both about 1/2" thick. Nowadays, any new technology requires a bookshelf and tens or hundreds of hours of tutorial videos.
This is why AI is so popular these days. Computers are too complex for humans to program. Need not be the case which is why revisiting the olden days is valuable. There is an Australian computer called the Marmite or Vegimite or something which uses a powerful embedded style CPU with a screen + keyboard + Basic interpreter that runs 20 times as fast as a C=64. The advantage of developing on this is there is no compiling and downloading. You EDIT the line then type RUN, just like on Home Computers.
Stumbled on this video. Reminds me of the seventies when I started designing embedded systems. Reason I used Z80 instead of 8080 was that it needed only one voltage supply. 8080 had three. Wire wrapped a system with 4k SRAM and 2k EPROM. For half of the EPROM I wrote a rudimentary assembler translating mnemonics to machine code. Used to learn students how to control a couple of pneumatic cylinders.
Just finished a Z80 computer on a bread board. 32K ROM and 32K of RAM. My childhood dream has finally come true! It's running a Prime Sieve I coded in straight assembler at 1Mhz and I just love it!
Thank you for the trip down memory lane. I remember learning BASIC and assembly language on a Z-80 kit computer (the Dick Smith Super-80 if there's anyone out there who knows of it). Looking forward to more videos in the series 👍
Thanks a lot for supporting the ZX Spectrum next! I joined the Issue 2 kickstarter campain and looking forward to receive the hardware in August. My plan is to write Z80 assembler programs on this machine, so your tutorial comes right in time.
I bought the Sinclair ZX 80 when I was a teen in Canada when it came out. Ordered it direct. It was kind of useless but I used it all the time. Also worth mentioning is the CPM 80 add in card for Apple II computers that used a Z80 and let you run CPM An OS very much like DOS. I had one and used it to run Wordstar!
It's funny how all home computers of the time were useless as they came. Exception being the TRS-80 with it's screen and disk drives. Unless you can save files to disk and have enough room on the screen to preview a printout they were not practical for business. They left out the disk drives and screen because those were the parts that made it too expensive.
Thank you for this series, brings back memories. We used a Z180 at the first computer company I worked at in 1994. It was obsolete at that time, but we could still buy them. When supplies started dwindling, we worked with the 386EX, then created the Rabbit 2000. It was a great learning experience, that Z80 architecture was simple and yet powerful. Moved to another company and worked with Motorola's flat memory model, then Coldfire, PIC, ARM, ... All embedded systems. These days very few programmers even work with the processors.
The first computer I ever got to program on was a Cromemco Z2D S-100 bus based system with the Z80 and 64KB of RAM. It ran a CP/M derived operating system called CDOS. It had a 32K Structured Basic interpreter. Naturally there was an assembler too. The computer also ran WordStar, an early word processing program. My dad also wrote a C compiler for it based on the 1978 K&R specification. One of the fun things I did (ha!) was manually type in the code for a terminal program for a Hayes S-100 modem in 8080 assembler. That was then translated by a program into Z80 assembler before assembling and linking. That all took about a week to do.
Hi Matt I found this an interesting video that brought back a lot of good memories for me. From 1969 to 1974 I worked at Motorola Semiconductor, out of the London Sales office. In 1973 we had an industrial group workshop in Geneva Switzerland where we were told about the Motorola 6800 processor. The other memorable event at that meeting was having steaks that were cooked in a skillet that had been used to cook the previous fish course. I was one of the 4 person management team that set up the London office for Cramer Electronics in the UK in 1975 with the sixth Motorola franchise in the UK. Our boss had been instrumental in giving out the other 5 franchises whilst running the UK for Motorola. My job was sales & marketing and in the first 6 months, we did £75,000 of sales from ground zero. Then in about May 1975, Motorola announced that the M6800 was going to be sold via the distribution channel and all six franchises were asked how many microprocessor evaluation kits they were going to order. Cramer UK lead the way, we ordered 100 whilst the others ordered between 0 and 6 each. When I queried our large commitment with Dave the boss he said he was confident that I would sell them. To which I replied, what happens if we don’t sell them. His reply was along the lines that he who commits gets all the support and if they don’t sell then they get returned when we did our 6 monthly stock return. Well, they did sell because in the second half of the year our sales were £750,000.00 which included kits, development systems and TI 733 Terminals plus plenty of referrals and support from Motorola. As we were part of Cramer Electronics, out of Boston Mass, and at that time they were the second-largest electronics distribution company in the USA so we had access to Intel products. But that suddenly changed when Cramer Italia starts to compete against Intel in the Italian market with imported Intel products from the USA. At Cramer UK we were negotiating with Intel to be a franchised distributor in the UK, that negotiation suddenly died thanks to the Italians. Back in the 1970s, we did not have the internet to find new products but various electronic publications which I used to read avidly and I came across Zilog in 1976 I went out to Cupertino for a training course and Cramer UK became the Zilog distributor. We had a press launch at a London Airport where I had the pleasure of introducing Federico Faggin, Ralph Ungermann and Charlie Bass to the UK press and Cramer’s customers. I cannot remember what Charlie Bass’s job was but I know he was very senior and important. A time that I look back on with pleasure and pride.
I remember the first computer within my young budget that I actually tested on a show room floor was a Bally. You entered code using a Pong controller to select characters or keywords by turning the knob and hitting the fire button. Files were saved to a cassette tape. No keyboard. I had a Sinclair, and a Commodore 64, but my first "real" computer was an S-100 bus based CP/M machine with two dual sided quadruple density hard sectored 8" floppy disk drives. While the original CPU was a Z-80, it had a Motorola 68000 daughter board using the pin outs of the Z-80 to make the Z-80's mother board a disk and I/O controller for the 68K daughter board which did the real work. I used to be able to hand code machine language for 8080, Z-80, 6502, and 6800, and wrote my own assemblers for all these. I am not convinced that modern computing power is necessarily a good thing. Most of what computers do is far removed from the purposes of the users, and machines are easily corrupted. I sometimes think we'd be better served by slower, more reliable, special purpose computers which did a specific suite of tasks well, and would be harder to spoof without being detected. I sometimes suspect that ubiquitous massive general purpose computing is a dangerous dead end.
So pleased you mentioned my first computer, the Amstrad! Over here in the UK it rarely gets a mention because it came out after the Spectrum and Commodores got a death grip on the market, despite being better than both. *ducks and runs for cover* 😂
Yes it was better. However it was not better at running Spectrum games unless the developers took the trouble to make it fit the Amstrad properly. I don't think the CPC 464 knew what it wanted to be. It was well equipped like a business machine but with a tape drive, doh! For a games machine they should have tried harder with the graphics chip. The BBC Micro was smart because they left empty ROM sockets where you could add business applications. Instantly start your Word Processor.
Good choice. The Spectrum is a perfect platform for Z80 learning/experimentation. Simple I/O and memory layout (with a few simple tricks for video addressing).
I entered the telecoms industry here in the UK back in 1982 and had three years of college day release doing a HNC qualification in telecoms-appropriate topics including assembly programming - the first computer system I was ever exposed to was the Sinclair ZX Spectrum at home and a Z80 machine code programming platform in college. My cousin and I both worked in the same building, both had Spectrums (as did many people at the time) and we formed a Spectrum computer club while there. He and I spent more time cracking game protections so that we could copy the games amongst the club members rather than actually playing the games! Almost 40 years later, I am still a "techie" working for a telecoms company, but have spent decades with UNIX and Linux and now work in cybersecurity on Linux-based call centre servers of many types. I also spent a couple of years in the late 80's being the sysadmin on a DEC PDP-11 server running RSX-11 that generated call centre reports for one of our customers. I still thoroughly enjoy what I do, and it was all thanks to the humble ZX Spectrum and Z80 CPU - those these days it's more BASH and Python rather than assembly programming.
I used Spectrum Sinclair since 1984 while I was in University. Did a lot of programs that some were running for more than half an hour to get the results. Yet was much better than running to the IBM mainframe and punching cards in Fortran. Later on learned assembler and that opened a new world in that little box. Three years ago I bought and fixed an old one for fun. I still believe it was a great affordable machine. So let's Peek and Poke.
Wow the most accurate explanation of the GameBoy CPU I've heard so far. I suspect it was people in the hacking/cracking/demo/homebrew scene who started calling the GameBoy CPU a Z80 since there wasn't much comparable scene with young bedroom coders around the 8-bit Intel machines.
I am so looking forward to this series! I would have loved to have seen you pick the TRS-80 as your platform for the series. It has a very active community (watch the trs trash talk series here on youtube), Fantastic emulator with debug capability (TRSgp), and the hardware is still pretty easily available if someone chose. On a side note, the TRS-80 model 4 you had in your video was actually a portable model 4P and no model 4 variant had 8" floppy drives. They were all 5 1/4". The Model II, 12, 16, and 6000 were 8" drive machines. Thank you for producing this series, I so look forward to viewing it.
@@MuzixMaker No, the Z80 was used for the UI, LFO generation, and pitch detection. They used various custom DSP solutions to process the audio. The Lexicon 200 was mostly 74LS and F logic to make a DSP. Later versions used an ASIC.
Great idea for a series! Some of the last assembly programming I did on my ZX Spectrum back in 1986-1987 was a real-time clock with hour, minute and second hands. I had fun optimizing the accuracy of the clock by tweaking the code to get the timing right, and I learned a lot during this experience. Sadly, neither my ZX Spectrum or the programs I wrote for it has survived until today.
Robert Greyell was my professor and I was his Teachers Assistant. We started with the 6502 (AIM-65 with many of the peripherals), then the 8080, 8086 and Z80 and finishing off with the 8048. We learned everything from internal architecture's, system integration, instruction sets, machine coding (with dip switches), assembly, etc. Our final 'project' was to design and prototype (wire wrap) a Z80 micro computer with four 7 seg displays lol I had this weird idea that the M1 and a couple of other signals could be gated to 'exclusively' access program data/ROM (Op code fetch), but knew an in depth analysis of the instruction set as well as 'guided coding' could/should be able to accomplish this... But was never able to test it. That should also be able to accomplish with an 8255... But then you would need to make a sub for memory management which can be virtually impossible on a non dedicated system.
at 11:24 I hoped you to say "TI-83+"... That thing taught me programming, first in Basic and then in Z80 assembler. I still remember writing my subroutines on paper, hand-assembling them using the book by Rodnay Zaks and typing the hex code into the calculator. Shortly afterwards, the Axe Compiler was released, making game programming a pure joy on the device. Good times :)
Excellent stuff Matt, really looking forward to this series. The ZX Spectrum was what i cut my teeth on programming as a youngster, it provided hours of enjoyment and learning. And nearly 4 decades on - im still learning. Take care Dan
Great intro to the z80. Brings back memories of long nights building my own z80 design on veroboard. Graphics card, eeprom programmer, tape modem. Must break it out of the attic to see if it still boots. Will be watching your Chanel with great interest. Oh I still have a Roland Jupiter 8 synthesiser. This also used a Z80 and powered the 80s electronic music revolution.
TI 84 plus seems like a good platform. 15Mhz Z80, low cost, very common since it’s used in schools, assembler, Basic etc already handy. Built in screen and lots of user support already. Tons of games and it has a built in calculator.
Interesting video about the history of the first computer systems. I assembled my first computer in 1976, the SWTPC 6800; soldered pin-by-pin to the circuit boards with 4k RAM. I still have that computer. It used the Motorola 6800 MPU. Thankfully, I'm a programmer, so I was able to write the device drivers (in Assembler) I needed for my peripherals, including a Heathkit H14 Dot Matrix printer (also assembled by me)
@@slithymatt Yes, it still runs. I wrote my own BIOS for it and burned it to an EPROM to make life a bit easier. Added a Percom floppy disc drive (10-sectors, hard). Modified the BASIC interpreter and Assembler to read data from the drive instead of the cassette tape player. Bought a video board, and wrote the device driver for that as well. Good time. Good times.
From the back in the day when you had to do REALLY efficient programming. My mate wrote a Space Invaders program for the ZX81. In 1 kilobyte of memory he managed to get 40 enemy ships, three forts, all the missiles, a scorer and a high score. I did a word based D&D program on a 1980s Pocket Computer. It had 100 rooms, a boss level, seven types of monsters, treasure and two combat options. I managed to squeeze all of that into 1kB.
Waaaaaaaaay back when I did a "Star Trek" game on the ZX80. The ZX80 was able to fit a bit more basic into the RAM because the numbers took less space. Some day, I may recreate the thing. I know the code was on a tape but I doubt the thing would still read.
My first computer was handmade by me and some relatives and friends of my parents, it was a Leningrad 48k. A ZX Spectrum clone made from a Z80 and small-scale integrated circuits, without the Ferranti ULA. The Gameboy CPU contains a number of oddities. I think the reset vector is nothing like either of the CPUs it's derived from.
One thing about ZX Spectrum which is well-hated (and loved!) is non-linear video memory layout. It is just exchange of two groups of 3 bits (lowest in high byte and upper in low byte of address), but it makes possible for video system to quickly extract two bytes of bitmap data and color data (so called DRAM burst mode). Also sublayout was choosen to simplify character transfer to the screen - incrementing high byte of address consequently iterates through bitmap stripes of single character. So... they not only implemented Z80 in FPGA, but uprgades it with new instructions two of which simply implements putPixel algo. :D (one translates x,y to address in videoram and other creates bit pattern to point to specific pixel in stipe. Hell, yeah! :D However many oldschool bisons see this as heresy and unworthy cheating. :D
Two more British home computers that featured a Z80 CPU were the Memotech MTX 500 & 512 machines and the Jupiter Ace which used Forth instead of BASIC as its programming environment. I started out with a Sinclair ZX81 (with a 16k add-on RAM expansion by Memotech) and then a ZX Spectrum. I've recently returned to my Z80 roots (after messing about a lot with PIC, AVR and ARM microcontrollers) with the recent purchase of a Z80-MBC2. The Z80 has always been a great processor for me and I'm looking forward to coding in Z80 assembler again.
This seems interesting. My first assembly language was Z80 for the TI-84 Plus. Pretty much every student has one, and there are a lot of resources online. The TI-84 also uses interrupts, DMA, and ports so it's great for learning the different ways the CPU interacts with other hardware.
In Europe the Spectrum coexisted in the 80s with Commodore and Amstrad (and some other minor platforms). I had a C64 and my best friend had a ZX Spectrum 48K (later a plus, plus2). Some weekends we swapped machines to try them out and do small projects. I used to love Spectrum's graph primitives right in the BASIC, but it was so slow. I studied 6502 machine code, never studied the z80 enough to do anything practical. Good memories.
Use the Australian Microbee as your development platform! It evolved from an S100 bus computer made mainly from readily available penny logic. It can emulate many machines from TRS-80, ZX Spectrum, MSX computers, Exidy Sorcerer and some commercial arcade machines. Note that the Z80 actually uses a 4 bit accumulator which unfortunately lead to variable length execution times that complicates interfacing with shared video RAM.
Wow, another microbee user! I couldn’t afford one, so I got hold of the circuit diagram of the bee, and made my own using wire wrap technology, cloning the eprom from a mates real one. . Even built the floppy drive and colour video interfaces. Taught me so much. Wish I had kept it...
Lots of great computers used the Z-80. Lots of products also used as an embedded CPU or controller using the later integrated versions. Looking forward to this series!
Looking forward with what you come up with! Got familiar with the Z80 thanks to TRS-80s and ZX-81s that my friends/schools had. I was initially a 6502 hacker thanks to the Apple ][ but really fell in love with the 6809 when I saw its beautiful ISA. Hopefully one day you'll get around to the 6809 after Ziglog gets its fair share of attention. 😎
We programmed 6800s at DeVry in Phoenix in 1980 using a hex key pad. didn't realize how brutal that was until getting my first job that required coding micro-Ps. got to use an IBM XT assembler with a Z80 emulator. Heaven on earth!
Namco used 3 Z80's in some of their arcade games, most notably Galaga and Dig Dug. Pole Position stepped it up even more, with a Z80 and a pair of Z8002's. That must have been a lot of work to program! The Z80 was definitely one of the most widespread embedded CPU's, and it still lives on today with higher clock speed and smaller packaging.
Can't wait for this, I've been thoroughly enjoying the 65C02 series. I've actually just bought a second hand ZX Spectrum +2A to try and recapture some of my childhood. I started writing games in basic at the age of 10 back when the Spectrum launched but Assembly always seemed so complex and in the days without UA-cam I didn't stand a chance. The most baffling thing about the Spectrum was always the crazy way the screen memory was laid out with it divide into 3 horizonal sections of 64 lines but even these were addressed every 8th line at a time. This meant changing byte values to put a sprite on the screen was a nightmare, or at least it seemed so back then.
I'm thinking of firing up my Dragon 32, I've been running the XRoar emulator and typing in BASIC programs by hand. I did Mandelbrot today. I would recommend one of those new devices that loads and saves files to SD card. I think all the retro home computers have them now.
The Timex Sinclair 1000 was the first computer produced by Timex Sinclair. My first computer. It made use of peeking and poking to access hardware. Basic instructions I have missed ever since as no other basic interpreters I used across the years ever included them in their programming language.
I wrote out a very similar script for a breadboard Z80 video series, but decided to cut it and skip straight to building and coding. Really interesting history, especially the parallels between Intel/Zilog and Motorola/MOS with disgruntled engineers leaving to build successful competitors, but ultimately with the big corps winning out in 16-bit and beyond. I loved Faggin's book as well, even the bits at the end about quantum physics and consciousness.
I thought I knew a lot about the Z80, but learnt so much more. Thank you. And thank you for pronouncing it Zed-X Spectrum! Also, please watch the "Micro Men" film here on UA-cam about the rivalry between Acorn and Clive Sinclair
I still have a ZX80 that most likely still works. Chances are in some box, I also have the 16KByte expansion RAM I built for it. You could do quite a lot with a ZX80. Some people made maze solving "mice" based on them. The thing about the ZX80 that allowed a lot of this was the fact that the whole bus came out on the expansion connector.
One of the earliest programming classes I took in college included assembley language for the TRS 80. I still have the rather thick book from Radio Shack.
I remember seeing Altair 8800 in an astronomy club in the early 90's. I don't think anyone knew how to operate it. It was more of a museum piece, but functional.
Just found by far the best video on the z80 n my reccomended :D . A couple years ago I quit my z80 project as the heart of the portable device was the rc2014 which died a slow death in the terminal. I could not afford a new one and found that I had lost interest in the 3 year journey so I scrapped it. It was going to be hard getting all the vintage parts needed as I wanted to fit it in a portable case similar to the osborne1. So now im left with a bunch of old chips, (some rare ones) and lots of knowlege. I have subscribed and am looking forward to the new series!
Excellent. I look forward to the series. I'm originally of ZX81, then Speccy origins myself :) [ I still have an _Amstrad_ "Sinclair" Spectrum+2 in a drawer next to me - and in the back room gathering dust, I've got a Yamaha CX5M II MSX Z80 Machine with FM synthesis a la Yamaha DX21 keyboard, but with on screen controls :) ] I took apart a Sequential Circuits TOM Drum machine I own the other year, just to take it apart and clean the contacts on the pads, and was pleased to find a Z80A CPU sitting proud inside :) aside: LDIR is still my favourite assembly opcode, but I really should get out more :)
OK, you've got a new sunscription. My ZX Spectrum is still in the loft. I have no idea if it still works and unfortuately I upgraded the keyboard so it doesn't have original look. I also learnt my first programming lanugages on the spectrum, Sinclair basic and assembly language, as I'm still learning my living as a developer, it could be said the Specrtum was a wise investment all those years ago. Anyway, it'll be interesting to see how much I can remember of the assembly language as it's a long time since I have done any coding in it.
The ZX Spectrum 48K was my first computer and I still have it, although it sadly doesn't work any more but I do have a working ZX Spectrum + with a currah speech synthesizer which plugged into the edge connector and allowed you to make the speccy speak using simple basic commands, LET s="Hello World", I think, the only problem was it spoke phonetically so you had to use special notation to get it to pronounce the words correctly, I remember getting it to sing happy birthday to a friend.
The tec1 was a kit computer based around the Z80, the kit was produced by Talking electronics, very simple with lots of add on boards programmable directly via a hexadecimal key pad, spent many hours programming as a teenager.
I'm excited for this series, I'm kinda putting off learning the Commander X16 until it looks like there's a good chance I will get one. You're tempting me to buy a speccy now.
I put together an IMSAI 8080 as a kit in the late '70s. The person I later sold it to replaced the CPU with an Z80 processor and installed two 8" floppy drives. I also worked for an Apple dealership in the late '70s and '80s. We looked at selling the Sinclair computers, but they looked too much like toys and the video would flicker for every keystroke.
That's where it all started for me! Z80 (and 8080) assembler and CP/M. Man, those were the days. Rewriting the BIOS, developing custom commands, video driver mods. Loved it. Why did things have to get so damned complicated?
Oh man the suspense when you were talking about what system you were going to develop for/produce a series on -- the SMS is the system I adopted as a kid and I was really hoping that was the direction you were going, but I totally get the Speccy. Great video as always. I have a Timex North American version of the ZX81 (along with a Russian clone), so I'm sure there is a lot to be learned that which is transferable.
Looks like an interesting new project, looking forward to it. An interesting point for the Z-80 is that it is still available to purchase in its original 40-pin package, though speeds up to 20 MHz make it a bit speedier. A part not mentioned in this intro is the other vertical market of (non-gaming) embedded devices. I was using an embedded z-80 microcontroller, made by Z-World, back in the mid- 90's for a project. The additional of a DRAM refresher cannot be underestimated, this was a critical factor in it's acceptance as a core component of a low cost home computer. As an example, the C-64 had to offload the DRAM refresh to the VIC-II chip, making it even more of a headache to get right at MOS (ask Bil Herd about that :) ). The simple MMU also expanded the memory space beyond the 64K limit... the embedded version I used allowed 4K paging of RAM that was handled by the C Compiler. Have you also heard about the kit project using the Z-80? Grant Searle's RC2014 project has been out for a while but it's massively modular and there are quite a few boards out for it on Tindie and other sites. Cheers,
I've heard of the RC2014, but I don't know much about it. And going into the embedded uses of Z80 outside of gaming would have been huge, not to mention new systems using the eZ80
The lack of Ram on the ZX80 meant that to do anything really impressive you had to write in machine code. The Sinclair Z80/81 was one of the best written manuals for a micro computer ever and funny too, it was also very good on the machine code and how to write machine code programs. I found the Z80 instruction set much easier than the 6502 we had at uni. There are some odd gaps in the Z80 instruction set, one can even work out what they might do and some of them did do things but usually totally totally screwed up the flags register. The Sinclair implementation of the Basic programming language is still probably the best Basic out there. And I like GoTo.
Still use a Z80 to this day in a 2 post car lift, just to keep 2 motors in sync so both sides go up and down. Started with a MSX though actually still have it somewhere in storage.
In 1976 I built my first PC when I built a IMSAI 8080 and within a year added a Z80A CPU with 24 k ram, floppy disk and later a hard drive. The hard drive was interfaced via a parallel port. Long time since then.
@@slithymatt I used it in 1978 and 1979 to enter my Masters paper. I hold a BSEE, MEEE in Electrical Engineering. My specialty was microprocessors. In my first job out of college, I got into C and UNIX. I worked virtually my entire career using C and UNIX and UNIX like systems. Good luck with your Z80 series.
I'm still doing a lot of Z80 programming! My most recent sub-project was writing binary32 float routines 😎 (Part of a larger project that has 80-bit, 24-bit, and another 32-bit format, hopefully with binary64 and maybe some base-10 floats in the future)
It would be interesting to see how well a Z80 could do double-precision floating point. I know the answer will be "not very", but how bad compared to other 8-bit integer-only CPUs?
At the moment I'm faking double precision by wrapping it in the extended precision routines which are pretty decent speed-wise. On the TI-83+/84+, they are far faster than TI-OS's floats (14 digits BCD, versus ~19 digits for the extended precision floats). Multiplication is around 9500cc, so about 630 multiplication per second at 6MHz
Erp, I accidentally a sentence. I'm not sure how it compares to other systems (I know comparing clock cycles is sometimes an apples-to-oranges comparison).
@@ZedaZ80 Clock cycle comparisons are pretty good for comparisons, so it can be oranges-to-oranges, where you have different sized oranges and some of them are peeled on one side, to belabor the metaphor
I mowed lawns for 3 years in order to buy an Exidy Sorcerer back in the early 80s! I wrote some machine code for it along with a lot of Basic games, including a cool graphic version of Star Trek. I'll never forget how much fun that thing was, it had RAM based fonts and by animating those fonts and managing them just right you could emulate high res graphics with it. There was a company in Australia that published a graphics engine using that trick. Man I miss that little beauty. I gave it to a friend of mine when I went off to college. Wish I could load up some of those old games one more time, it was just best. Cast a spell!
@@gnudarve Yeah, the programmable fonts was why I wanted it. I had created an integer-only version of APL on CP/M on an 8080 and wanted the ability to have the proper symbols for the language.
Thanks everyone for making this the #1 all time video on my channel in less than a week! I see so much enthusiasm for the Z80 and this series, and I'm super stoked to start rolling out the episodes. Stay tuned!
...and first video to reach 1000 likes! Thank you so much! My next Z80 video comes out Thursday, and I hope it lives up to this one for you. As for the ten of you who disliked it, remember you can always buy a Raspberry Pi 😎
@@slithymatt It's a nice little platform for running a good Speccy emulator!
Good vid bro
when u said you would be writing software for a z80 machine, i thought spectrum or a gameboy. glad its the speccy I been writing games in assembler for near 40 years on that system, cant wait to see wat you come up with.
The Intel 4004 development wasn't driven by a desktop computer market, which didn't exist in 1970-1971. It was spurred by the need for compact, reliable microcontrollers at the core of things like traffic signal controllers, home appliances, and so on.
Thank You! Thank You! Thank You! I am 65. I use Z80 since beginning. All kind of apps. Right now I created an emulated version in a FPGA. It runs at 100MHz. Quick enough to do almost everything. I work in slot machines industry. Once I knew by heart all instruction codes. I built PCBs, maybe dozens of. I create my own assembler, on extended page mode memory mapping. I will never let it down. An amazing architecture!
Hi Flavious -- see my comment to Matt above... I'd like to hear from you too... !!
Learned to machine languahe program on the old Z80. This is fun to see.
I used to do embedded programming for the company's Z80 products. The code I took over was written in assembler but I wrote new products in Avocet C. I did occasionally add inline assembler when say I found a CRC routine was too slow. Assembler seemed to be about 10 times as fast as C.
I have a v9990 VDP that is mounted in a casino slot PCB. The ones before they shifted to native SVGA chips from PC world. It has 512KB VRAM!.
Very cool. Thanks for sharing.
Z80 was the first assembler I ever learned. You never forget your first ;-)
True. Looking at a Z80 hex dump even today I can still disassemble probably 50% of it in my head... which is a bit scary considering I barely remember my own phone number these days. 🙄🙂
Hi James, cool seeing you over here.
I still remember hand assembling Z80 code in the back of my maths book and trying to get it running on our school's Research Machines 380Z.
Wonderful days.
@@edgeeffect We had the 380Z's at school as well. Nice built in machine code debugging in those.
Me too. I loved the Z80, but it ruined me for learning 6502 assembler. Registers! I need registers! (And no, zero page is *not* like having 256 registers.)
Mine was 6502. I feel it’s better. 🤯🤯🤯🤡🤡🤡🌍🌍🌍
Back in 1980/81 in the UK a company called NASCOM had a kit computer - Z80 processor, 1K RAM, UHF modulator for B/W TV - optional Basic module on EPROM but I didn''t buy - wanted to program in machine code (store owner said "ah your one of those machine code masochists eh?" lol). That kit put me into computing - at the time I was a Tool and Die Maker - finally led me to become a robotics engineer here the USA. Thanks for video, I've subscribed ready for more - brought back GREAT memories of the CPU that 'educated' me!!
Started on the Spectrum in about 1985. I taught myself assembly language and wrote a program that I was selling. It wasn't a game, but a program that allowed you to draw and print electronic circuit diagrams of unlimited length (as long as the roll of silver paper lasted). There was about 40K of fixed code and the remainder (about 8K) was available for the user to add more electronic symbols, ones that I hadn't supplied. Because of the specialised use, I only sold a few. I got some good write-ups in the hobby electronics press of the time, though. I'd include links to those, but they have my full name, address and 'phone number in them (they were written in 1989, a different time!).
Do you still have the same address and phone number as in 1985 though?
@@Mnnvint I've lived here since 1989, when the articles were written. I've still got the same 'phone number I had in 1980 (at my previous address), but the area code has changed twice since then.
I built my first homebrew from a 8080A chip I found in a bargain bin at Radio Shack back in '79 (or thereabouts). Had to struggle through creating a dual-phase clock circuit because I couldn't find a 8224. Then discovered the Z80 with its built-in single-phase clock and DRAM refresh, and the world was my oyster! Bought a TRS-80 which got me through college, while working at an insurance company which had a fancy 5-card Z80 MP/M system (1 master, 4 slaves), writing assembly and BASIC and DBASE II programs. After 40 years, the Z80 is still my favorite chip!
Thank you for saying “Zed X 80” etc. Much appreciated by a Brit who started out on a ZX81 back in 1982. 😉
Thus it shall be spake: The Zed-X Spectrum contains a Zee-80.
@@slithymatt Oooh Matt, in the UK it was a Zed-80 processor too! 😀
@@paddycoleman1472 this is why the League of Nations failed
@@slithymatt If Americans spoke properly they could have ended up with a decent society like in London...what...what 🤔
📢 X, y, zed!!! ZED ZED ZED
ZED80 OK 😠
@@kevinslattery5748 WE LIVE IN A SOCIETY
I still have my copy of "Programming the Z80" by Rodnay Zaks, purchased in the early 80s. What a doorstop that is.
Wow I had that same book - might even be stored in my attic somewhere - thanks for reminding me - I'll be hunting for it tonite!
Think mine finally got binned a couple of decades back... Bah humbug.. That or its getting damp still in the attic. Awesome book.
I loved that book. "Programming the Z80" That was the days. That was over 35 years ago
I have a pdf of it !!
I might have kept mine when I sold all my other Spectrum stuff. I know I saw it in the TRS-80 Model I/III days, a couple of years before the Speccy.
Love it !!!! z80 sparked my career in programming. I remember as teenager writting a small program in assembly that stored 4 seconds of music taken from the ZX81 cassete port, and another program to reproduce it.
I just finished Federico Faggin's book Silicone. A truly awesome read. I learned so much about the history of Silicone Valley and computes. Being born in 1950, I had the opportunity to own and use a lot of the machines referred to in your video.
Wow, how did UA-cam know I wanted to see this?! 35 years since I learnt Z80 machine code programming and I can still remember load A was 3E
I still have my Z80 microcomputer I built in college in the mid 80's. JPNZ - "Jump if NOT ZERO" was my favorite assembly command.
Thank you for the history information on Z80 ptocessor. I learned my initial assembler language on the Z80 processor and utilized a z80 computer to master my first programming language, Pascal. The computer's operating system was UGC Passcal, and the entire operating system, along with our Pascal programming codes, was stored on a 400kB floppy disk. I am proud to have utilized the z80 8-bit processor to learn computer programming.
Thank you Matt. First class presentation. My first m/c was the Sinclair ZX81 with a CAI interface that fit in the memory expansion slot. Besides attaching a 48K Memtek expansion card, it would also run a 40 column dot matrix ceramic head thermal printer, plus 1 more port for a 56K baud stringy floppy magnetic tape cartridge storage device for large datasets that programs such as VuCalxc produced ( the DIM command saved the whole area on tape, even if only 1 spot was used of that Dimension Area, so large arrays would take forevcer to load from cassette at 250 baud, but loaded quite quickly with the stringy floppy ). Looking forward to your future endeavours.
Oh, those 8-bit days
As an Australian, the Microbee series of computers were my first introduction to Z80 programming. I loved having a professor in university who had written a text on Z80 assembler insisting that no-one can just write in assembler and run successfully first time. Lots of pride when his first assignment for me was done in one sitting and ran perfectly first time. I wish all the rest of my programming was that successful...
My first was a Microbee 32k. Upgraded the Rpm to Ram by pulling out 2 of the Rom Chips and replacing them with pin compatible Ram chips. Ran a write Enable wire to the previously to these now Ram chips so I could write to them. Grabbed a DreamDisk Controller. Soldered a 50 pin socket on the Bee motherboard and crimped 2 Idc Crimp sockets onto either end using a vice. Was not pretty but it worked. Connected the Dream Controller to 1 end of the 50 way and plugged in its ROM to the Bee. PS was a modified 12 Volt battery charger. Also connected up my 3.5 Floppy to the controller and booted up. Aquired CP/M disks and I was up and running with Wordstar etc. I was in heaven.
Don't forget Dick Smith System 80 -- TRS80 clone. But I always preferred 6502. The Z80 has all those extra registers, but using them effectively is more difficult than using 6502's much more spacious Zero Page and at CPU MHz and RAM speeds of the day didn't offer any more performance. Z80 has ldir/lddr but those are one-trick ponies -- and at 21 cycles per byte copied vs 14 for 6502 "LDA ,X;STA ,X; INX; BNE" a Z80 at the typically twice the clock speed was only 33% faster for block copy, and typically worse for almost anything else.
My first experience of Z80 machine code was converting a BASIC routine that took about a minute to run. After many attempts resulting in crashes it finally ran but I thought it had crashed because it ran so fast (maybe a quarter of a second). I fail to see how anyone can claim to understand how a computer works unless you've sweated over some machine code!
My first ever assembler code was on a Spectrum - yah !
This brings back fun memories. My exposure to the Z80 was through a Northstar S-100 computer kit I assembled in the early '80's. That machine was used in my product development activities for well over 10 years.
haven't heard the name Northstar in a long time. if my memory serves me correct those computers were wooden, or the cases were...wow do I feel old.
@@rickhunt3183 The covers were wood while the frame was stamped metal. The original name for Northstar was "Kentucky Fried Computers" if I am not mistaken. Someone can probably clear up that lore. They were an early adopter of the 5-1/4in floppy. My machine had two.
I purchased a 64k-byte memory board for over $300 at the time and whimpered when I had to disable the top 8k for the boot rom.
This was such a wonderful walk through the very beginning’s of my technology career. I had a professor in college that was building the Imsai 8080 and I helped him with that.
That's really cool!
I started my IT career on a Sinclair Spectrum. I got partway through a version of asteroids for the Spectrum before I got distracted by other things. One thing that strikes me is that I learned everything that I needed to know about assembler on the Spectrum from a couple of small paperback books, both about 1/2" thick. Nowadays, any new technology requires a bookshelf and tens or hundreds of hours of tutorial videos.
This is why AI is so popular these days. Computers are too complex for humans to program. Need not be the case which is why revisiting the olden days is valuable. There is an Australian computer called the Marmite or Vegimite or something which uses a powerful embedded style CPU with a screen + keyboard + Basic interpreter that runs 20 times as fast as a C=64. The advantage of developing on this is there is no compiling and downloading. You EDIT the line then type RUN, just like on Home Computers.
imagine the rubber keyboard - what hard blokes we were back in the 80's, taking that for given, not worrying about bad ergonomics at all... ;)
Stumbled on this video. Reminds me of the seventies when I started designing embedded systems. Reason I used Z80 instead of 8080 was that it needed only one voltage supply. 8080 had three. Wire wrapped a system with 4k SRAM and 2k EPROM. For half of the EPROM I wrote a rudimentary assembler translating mnemonics to machine code. Used to learn students how to control a couple of pneumatic cylinders.
Just finished a Z80 computer on a bread board. 32K ROM and 32K of RAM. My childhood dream has finally come true! It's running a Prime Sieve I coded in straight assembler at 1Mhz and I just love it!
Thank you for the trip down memory lane. I remember learning BASIC and assembly language on a Z-80 kit computer (the Dick Smith Super-80 if there's anyone out there who knows of it). Looking forward to more videos in the series 👍
I built one of those way back when living in Brisbane and the User Group there had the author of the Basic interpreter as a member, Very handy!
Thanks a lot for supporting the ZX Spectrum next! I joined the Issue 2 kickstarter campain and looking forward to receive the hardware in August. My plan is to write Z80 assembler programs on this machine, so your tutorial comes right in time.
I bought the Sinclair ZX 80 when I was a teen in Canada when it came out. Ordered it direct. It was kind of useless but I used it all the time. Also worth mentioning is the CPM 80 add in card for Apple II computers that used a Z80 and let you run CPM An OS very much like DOS. I had one and used it to run Wordstar!
It's funny how all home computers of the time were useless as they came. Exception being the TRS-80 with it's screen and disk drives. Unless you can save files to disk and have enough room on the screen to preview a printout they were not practical for business. They left out the disk drives and screen because those were the parts that made it too expensive.
Thank you for this series, brings back memories. We used a Z180 at the first computer company I worked at in 1994. It was obsolete at that time, but we could still buy them. When supplies started dwindling, we worked with the 386EX, then created the Rabbit 2000. It was a great learning experience, that Z80 architecture was simple and yet powerful. Moved to another company and worked with Motorola's flat memory model, then Coldfire, PIC, ARM, ... All embedded systems. These days very few programmers even work with the processors.
I was using an Amstrad PCW into the 90s it was a brilliant piece of value engineering really.
The first computer I ever got to program on was a Cromemco Z2D S-100 bus based system with the Z80 and 64KB of RAM. It ran a CP/M derived operating system called CDOS. It had a 32K Structured Basic interpreter. Naturally there was an assembler too. The computer also ran WordStar, an early word processing program. My dad also wrote a C compiler for it based on the 1978 K&R specification. One of the fun things I did (ha!) was manually type in the code for a terminal program for a Hayes S-100 modem in 8080 assembler. That was then translated by a program into Z80 assembler before assembling and linking. That all took about a week to do.
Hi Matt
I found this an interesting video that brought back a lot of good memories for me.
From 1969 to 1974 I worked at Motorola Semiconductor, out of the London Sales office. In 1973 we had an industrial group workshop in Geneva Switzerland where we were told about the Motorola 6800 processor. The other memorable event at that meeting was having steaks that were cooked in a skillet that had been used to cook the previous fish course.
I was one of the 4 person management team that set up the London office for Cramer Electronics in the UK in 1975 with the sixth Motorola franchise in the UK. Our boss had been instrumental in giving out the other 5 franchises whilst running the UK for Motorola. My job was sales & marketing and in the first 6 months, we did £75,000 of sales from ground zero. Then in about May 1975, Motorola announced that the M6800 was going to be sold via the distribution channel and all six franchises were asked how many microprocessor evaluation kits they were going to order.
Cramer UK lead the way, we ordered 100 whilst the others ordered between 0 and 6 each. When I queried our large commitment with Dave the boss he said he was confident that I would sell them. To which I replied, what happens if we don’t sell them. His reply was along the lines that he who commits gets all the support and if they don’t sell then they get returned when we did our 6 monthly stock return.
Well, they did sell because in the second half of the year our sales were £750,000.00 which included kits, development systems and TI 733 Terminals plus plenty of referrals and support from Motorola.
As we were part of Cramer Electronics, out of Boston Mass, and at that time they were the second-largest electronics distribution company in the USA so we had access to Intel products. But that suddenly changed when Cramer Italia starts to compete against Intel in the Italian market with imported Intel products from the USA. At Cramer UK we were negotiating with Intel to be a franchised distributor in the UK, that negotiation suddenly died thanks to the Italians.
Back in the 1970s, we did not have the internet to find new products but various electronic publications which I used to read avidly and I came across Zilog in 1976 I went out to Cupertino for a training course and Cramer UK became the Zilog distributor. We had a press launch at a London Airport where I had the pleasure of introducing Federico Faggin, Ralph Ungermann and Charlie Bass to the UK press and Cramer’s customers. I cannot remember what Charlie Bass’s job was but I know he was very senior and important.
A time that I look back on with pleasure and pride.
I was wondering how Federico Faggin last name was pronounced. Great Job! :)
worked in assembler on both 6502 and z80. Video like those make me extremely nostalgic and sad. Ah, those good old days.
As someone who grew up in the UK in th 80s with a Spectrum - CAN'T WAIT FOR THIS SERIES!!!!!!
No need to wait! I have 11 episodes already on my channel, and #12 coming soon!
@@slithymatt Seen them already, but waiting for more....
I remember the first computer within my young budget that I actually tested on a show room floor was a Bally. You entered code using a Pong controller to select characters or keywords by turning the knob and hitting the fire button. Files were saved to a cassette tape. No keyboard.
I had a Sinclair, and a Commodore 64, but my first "real" computer was an S-100 bus based CP/M machine with two dual sided quadruple density hard sectored 8" floppy disk drives. While the original CPU was a Z-80, it had a Motorola 68000 daughter board using the pin outs of the Z-80 to make the Z-80's mother board a disk and I/O controller for the 68K daughter board which did the real work.
I used to be able to hand code machine language for 8080, Z-80, 6502, and 6800, and wrote my own assemblers for all these.
I am not convinced that modern computing power is necessarily a good thing. Most of what computers do is far removed from the purposes of the users, and machines are easily corrupted.
I sometimes think we'd be better served by slower, more reliable, special purpose computers which did a specific suite of tasks well, and would be harder to spoof without being detected. I sometimes suspect that ubiquitous massive general purpose computing is a dangerous dead end.
So pleased you mentioned my first computer, the Amstrad! Over here in the UK it rarely gets a mention because it came out after the Spectrum and Commodores got a death grip on the market, despite being better than both. *ducks and runs for cover* 😂
Yes it was better. However it was not better at running Spectrum games unless the developers took the trouble to make it fit the Amstrad properly. I don't think the CPC 464 knew what it wanted to be. It was well equipped like a business machine but with a tape drive, doh! For a games machine they should have tried harder with the graphics chip. The BBC Micro was smart because they left empty ROM sockets where you could add business applications. Instantly start your Word Processor.
I had aTimex Sinclair back in the early eighties. Had a lot of fun with it. Fun to see it mentioned here
Good choice. The Spectrum is a perfect platform for Z80 learning/experimentation. Simple I/O and memory layout (with a few simple tricks for video addressing).
I entered the telecoms industry here in the UK back in 1982 and had three years of college day release doing a HNC qualification in telecoms-appropriate topics including assembly programming - the first computer system I was ever exposed to was the Sinclair ZX Spectrum at home and a Z80 machine code programming platform in college. My cousin and I both worked in the same building, both had Spectrums (as did many people at the time) and we formed a Spectrum computer club while there. He and I spent more time cracking game protections so that we could copy the games amongst the club members rather than actually playing the games!
Almost 40 years later, I am still a "techie" working for a telecoms company, but have spent decades with UNIX and Linux and now work in cybersecurity on Linux-based call centre servers of many types.
I also spent a couple of years in the late 80's being the sysadmin on a DEC PDP-11 server running RSX-11 that generated call centre reports for one of our customers.
I still thoroughly enjoy what I do, and it was all thanks to the humble ZX Spectrum and Z80 CPU - those these days it's more BASH and Python rather than assembly programming.
I used Spectrum Sinclair since 1984 while I was in University. Did a lot of programs that some were running for more than half an hour to get the results. Yet was much better than running to the IBM mainframe and punching cards in Fortran. Later on learned assembler and that opened a new world in that little box.
Three years ago I bought and fixed an old one for fun.
I still believe it was a great affordable machine.
So let's Peek and Poke.
Wow the most accurate explanation of the GameBoy CPU I've heard so far. I suspect it was people in the hacking/cracking/demo/homebrew scene who started calling the GameBoy CPU a Z80 since there wasn't much comparable scene with young bedroom coders around the 8-bit Intel machines.
I am so looking forward to this series! I would have loved to have seen you pick the TRS-80 as your platform for the series. It has a very active community (watch the trs trash talk series here on youtube), Fantastic emulator with debug capability (TRSgp), and the hardware is still pretty easily available if someone chose. On a side note, the TRS-80 model 4 you had in your video was actually a portable model 4P and no model 4 variant had 8" floppy drives. They were all 5 1/4". The Model II, 12, 16, and 6000 were 8" drive machines. Thank you for producing this series, I so look forward to viewing it.
The Sequential Prophet 5, Prophet 2000, and EMU's Emulator sampler and synth keyboards all used the Z80 too.
Awesome axes built on an awesome uP.
And almost all Lexicon reverbs.
@@dale116dot7 they were doing DSP with a Z80?
@@MuzixMaker No, the Z80 was used for the UI, LFO generation, and pitch detection. They used various custom DSP solutions to process the audio. The Lexicon 200 was mostly 74LS and F logic to make a DSP. Later versions used an ASIC.
@@dale116dot7 right, I would have been duly impressed if the Z80 was gong FFT!
Great idea for a series! Some of the last assembly programming I did on my ZX Spectrum back in 1986-1987 was a real-time clock with hour, minute and second hands. I had fun optimizing the accuracy of the clock by tweaking the code to get the timing right, and I learned a lot during this experience. Sadly, neither my ZX Spectrum or the programs I wrote for it has survived until today.
The Spectrum +2 was my first computer and it got me into assembly language. Which I guess set my future career direction. Lots of fun to be had.
Robert Greyell was my professor and I was his Teachers Assistant. We started with the 6502 (AIM-65 with many of the peripherals), then the 8080, 8086 and Z80 and finishing off with the 8048. We learned everything from internal architecture's, system integration, instruction sets, machine coding (with dip switches), assembly, etc. Our final 'project' was to design and prototype (wire wrap) a Z80 micro computer with four 7 seg displays lol I had this weird idea that the M1 and a couple of other signals could be gated to 'exclusively' access program data/ROM (Op code fetch), but knew an in depth analysis of the instruction set as well as 'guided coding' could/should be able to accomplish this... But was never able to test it. That should also be able to accomplish with an 8255... But then you would need to make a sub for memory management which can be virtually impossible on a non dedicated system.
at 11:24 I hoped you to say "TI-83+"... That thing taught me programming, first in Basic and then in Z80 assembler. I still remember writing my subroutines on paper, hand-assembling them using the book by Rodnay Zaks and typing the hex code into the calculator. Shortly afterwards, the Axe Compiler was released, making game programming a pure joy on the device. Good times :)
Excellent stuff Matt, really looking forward to this series. The ZX Spectrum was what i cut my teeth on programming as a youngster, it provided hours of enjoyment and learning. And nearly 4 decades on - im still learning.
Take care
Dan
Great intro to the z80. Brings back memories of long nights building my own z80 design on veroboard. Graphics card, eeprom programmer, tape modem. Must break it out of the attic to see if it still boots. Will be watching your Chanel with great interest. Oh I still have a Roland Jupiter 8 synthesiser. This also used a Z80 and powered the 80s electronic music revolution.
TI 84 plus seems like a good platform. 15Mhz Z80, low cost, very common since it’s used in schools, assembler, Basic etc already handy. Built in screen and lots of user support already. Tons of games and it has a built in calculator.
My thoughts exactly. At 11:28 I was fully expecting him to reveal a TI-83 or 84
TI calculators were my first thought too.
Interesting video about the history of the first computer systems. I assembled my first computer in 1976, the SWTPC 6800; soldered pin-by-pin to the circuit boards with 4k RAM. I still have that computer. It used the Motorola 6800 MPU. Thankfully, I'm a programmer, so I was able to write the device drivers (in Assembler) I needed for my peripherals, including a Heathkit H14 Dot Matrix printer (also assembled by me)
That is really cool! Does it still run?
@@slithymatt Yes, it still runs. I wrote my own BIOS for it and burned it to an EPROM to make life a bit easier. Added a Percom floppy disc drive (10-sectors, hard). Modified the BASIC interpreter and Assembler to read data from the drive instead of the cassette tape player. Bought a video board, and wrote the device driver for that as well. Good time. Good times.
@@RamblinRick_ that is really impressive
@@slithymatt thank you
From the back in the day when you had to do REALLY efficient programming. My mate wrote a Space Invaders program for the ZX81. In 1 kilobyte of memory he managed to get 40 enemy ships, three forts, all the missiles, a scorer and a high score. I did a word based D&D program on a 1980s Pocket Computer. It had 100 rooms, a boss level, seven types of monsters, treasure and two combat options. I managed to squeeze all of that into 1kB.
Waaaaaaaaay back when I did a "Star Trek" game on the ZX80. The ZX80 was able to fit a bit more basic into the RAM because the numbers took less space.
Some day, I may recreate the thing. I know the code was on a tape but I doubt the thing would still read.
My first computer was handmade by me and some relatives and friends of my parents, it was a Leningrad 48k. A ZX Spectrum clone made from a Z80 and small-scale integrated circuits, without the Ferranti ULA.
The Gameboy CPU contains a number of oddities. I think the reset vector is nothing like either of the CPUs it's derived from.
One thing about ZX Spectrum which is well-hated (and loved!) is non-linear video memory layout. It is just exchange of two groups of 3 bits (lowest in high byte and upper in low byte of address), but it makes possible for video system to quickly extract two bytes of bitmap data and color data (so called DRAM burst mode). Also sublayout was choosen to simplify character transfer to the screen - incrementing high byte of address consequently iterates through bitmap stripes of single character. So... they not only implemented Z80 in FPGA, but uprgades it with new instructions two of which simply implements putPixel algo. :D (one translates x,y to address in videoram and other creates bit pattern to point to specific pixel in stipe. Hell, yeah! :D However many oldschool bisons see this as heresy and unworthy cheating. :D
I loved the Z80 and CP/M. I developed Z80 based industrial products on the Zilog Development System serial#4 from 1977-1985.
I repaired these computers with the Z80 (1987-1989)
oldcomputer.info/8bit/robo1715/index.htm
subscribed in hopes of more Z80.
I was a professional Z80 developer for the Ti83+ series made a few games and apps, but that was almost 20 years ago
Two more British home computers that featured a Z80 CPU were the Memotech MTX 500 & 512 machines and the Jupiter Ace which used Forth instead of BASIC as its programming environment. I started out with a Sinclair ZX81 (with a 16k add-on RAM expansion by Memotech) and then a ZX Spectrum. I've recently returned to my Z80 roots (after messing about a lot with PIC, AVR and ARM microcontrollers) with the recent purchase of a Z80-MBC2. The Z80 has always been a great processor for me and I'm looking forward to coding in Z80 assembler again.
This seems interesting. My first assembly language was Z80 for the TI-84 Plus. Pretty much every student has one, and there are a lot of resources online. The TI-84 also uses interrupts, DMA, and ports so it's great for learning the different ways the CPU interacts with other hardware.
In Europe the Spectrum coexisted in the 80s with Commodore and Amstrad (and some other minor platforms). I had a C64 and my best friend had a ZX Spectrum 48K (later a plus, plus2). Some weekends we swapped machines to try them out and do small projects. I used to love Spectrum's graph primitives right in the BASIC, but it was so slow. I studied 6502 machine code, never studied the z80 enough to do anything practical.
Good memories.
Use the Australian Microbee as your development platform! It evolved from an S100 bus computer made mainly from readily available penny logic. It can emulate many machines from TRS-80, ZX Spectrum, MSX computers, Exidy Sorcerer and some commercial arcade machines. Note that the Z80 actually uses a 4 bit accumulator which unfortunately lead to variable length execution times that complicates interfacing with shared video RAM.
Wow, another microbee user! I couldn’t afford one, so I got hold of the circuit diagram of the bee, and made my own using wire wrap technology, cloning the eprom from a mates real one. . Even built the floppy drive and colour video interfaces. Taught me so much. Wish I had kept it...
Lots of great computers used the Z-80. Lots of products also used as an embedded CPU or controller using the later integrated versions. Looking forward to this series!
Looking forward with what you come up with! Got familiar with the Z80 thanks to TRS-80s and ZX-81s that my friends/schools had. I was initially a 6502 hacker thanks to the Apple ][ but really fell in love with the 6809 when I saw its beautiful ISA. Hopefully one day you'll get around to the 6809 after Ziglog gets its fair share of attention. 😎
We programmed 6800s at DeVry in Phoenix in 1980 using a hex key pad. didn't realize how brutal that was until getting my first job that required coding micro-Ps. got to use an IBM XT assembler with a Z80 emulator. Heaven on earth!
You showed a picture of the TRS-80 Model II and said the Model 4. I learned Z-80 Assembly on my Model I, and later ran CP/M on my Model 4. Good times.
Namco used 3 Z80's in some of their arcade games, most notably Galaga and Dig Dug. Pole Position stepped it up even more, with a Z80 and a pair of Z8002's. That must have been a lot of work to program! The Z80 was definitely one of the most widespread embedded CPU's, and it still lives on today with higher clock speed and smaller packaging.
Can't wait for this, I've been thoroughly enjoying the 65C02 series. I've actually just bought a second hand ZX Spectrum +2A to try and recapture some of my childhood. I started writing games in basic at the age of 10 back when the Spectrum launched but Assembly always seemed so complex and in the days without UA-cam I didn't stand a chance. The most baffling thing about the Spectrum was always the crazy way the screen memory was laid out with it divide into 3 horizonal sections of 64 lines but even these were addressed every 8th line at a time. This meant changing byte values to put a sprite on the screen was a nightmare, or at least it seemed so back then.
I'm thinking of firing up my Dragon 32, I've been running the XRoar emulator and typing in BASIC programs by hand. I did Mandelbrot today. I would recommend one of those new devices that loads and saves files to SD card. I think all the retro home computers have them now.
The Timex Sinclair 1000 was the first computer produced by Timex Sinclair. My first computer. It made use of peeking and poking to access hardware. Basic instructions I have missed ever since as no other basic interpreters I used across the years ever included them in their programming language.
Peek and poke are pretty standard for most BASICs. Are there other instructions you're referring to?
I wrote out a very similar script for a breadboard Z80 video series, but decided to cut it and skip straight to building and coding. Really interesting history, especially the parallels between Intel/Zilog and Motorola/MOS with disgruntled engineers leaving to build successful competitors, but ultimately with the big corps winning out in 16-bit and beyond. I loved Faggin's book as well, even the bits at the end about quantum physics and consciousness.
Ahhhh, the Speccy; made me the software engineer I am today. I look forward to your series 😉
I thought I knew a lot about the Z80, but learnt so much more. Thank you. And thank you for pronouncing it Zed-X Spectrum! Also, please watch the "Micro Men" film here on UA-cam about the rivalry between Acorn and Clive Sinclair
I've seen Micro Men - really good film! Much better than the American counterpart "Pirates of Silicon Valley"
I still have a ZX80 that most likely still works.
Chances are in some box, I also have the 16KByte expansion RAM I built for it.
You could do quite a lot with a ZX80. Some people made maze solving "mice" based on them.
The thing about the ZX80 that allowed a lot of this was the fact that the whole bus came out on the expansion connector.
One of the earliest programming classes I took in college included assembley language for the TRS 80. I still have the rather thick book from Radio Shack.
Very cool! Could you post the ISBN number?
@@slithymatt 0-89588-047-4
Hello from Brazil of a former user and owner of a TK90X that was our national copy of the ZX Spectrum.
Really love the the 6502 series so far. The Spectrum will be interesting to try tinkering with as well.
I remember seeing Altair 8800 in an astronomy club in the early 90's. I don't think anyone knew how to operate it. It was more of a museum piece, but functional.
Z80 - the CPU of my youth.
Just found by far the best video on the z80 n my reccomended :D . A couple years ago I quit my z80 project as the heart of the portable device was the rc2014 which died a slow death in the terminal. I could not afford a new one and found that I had lost interest in the 3 year journey so I scrapped it. It was going to be hard getting all the vintage parts needed as I wanted to fit it in a portable case similar to the osborne1. So now im left with a bunch of old chips, (some rare ones) and lots of knowlege. I have subscribed and am looking forward to the new series!
Excellent. I look forward to the series. I'm originally of ZX81, then Speccy origins myself :) [ I still have an _Amstrad_ "Sinclair" Spectrum+2 in a drawer next to me - and in the back room gathering dust, I've got a Yamaha CX5M II MSX Z80 Machine with FM synthesis a la Yamaha DX21 keyboard, but with on screen controls :) ]
I took apart a Sequential Circuits TOM Drum machine I own the other year, just to take it apart and clean the contacts on the pads, and was pleased to find a Z80A CPU sitting proud inside :)
aside: LDIR is still my favourite assembly opcode, but I really should get out more :)
If you have a favorite opcode, you've found the right channel. Thanks for coming by!
OK, you've got a new sunscription.
My ZX Spectrum is still in the loft. I have no idea if it still works and unfortuately I upgraded the keyboard so it doesn't have original look.
I also learnt my first programming lanugages on the spectrum, Sinclair basic and assembly language, as I'm still learning my living as a developer, it could be said the Specrtum was a wise investment all those years ago.
Anyway, it'll be interesting to see how much I can remember of the assembly language as it's a long time since I have done any coding in it.
The ZX Spectrum 48K was my first computer and I still have it, although it sadly doesn't work any more but I do have a working ZX Spectrum + with a currah speech synthesizer which plugged into the edge connector and allowed you to make the speccy speak using simple basic commands, LET s="Hello World", I think, the only problem was it spoke phonetically so you had to use special notation to get it to pronounce the words correctly, I remember getting it to sing happy birthday to a friend.
The tec1 was a kit computer based around the Z80, the kit was produced by Talking electronics, very simple with lots of add on boards programmable directly via a hexadecimal key pad, spent many hours programming as a teenager.
I grew up with an MSX, so this sounds interesting! Compliments on the clear explanation and pleasant narration.
I'm excited for this series, I'm kinda putting off learning the Commander X16 until it looks like there's a good chance I will get one. You're tempting me to buy a speccy now.
I think I still have some of those. I should probably use them in throwback projects.
I put together an IMSAI 8080 as a kit in the late '70s. The person I later sold it to replaced the CPU with an Z80 processor and installed two 8" floppy drives.
I also worked for an Apple dealership in the late '70s and '80s. We looked at selling the Sinclair computers, but they looked too much like toys and the video would flicker for every keystroke.
That's where it all started for me! Z80 (and 8080) assembler and CP/M. Man, those were the days. Rewriting the BIOS, developing custom commands, video driver mods. Loved it. Why did things have to get so damned complicated?
Complicated? Have you seen the Owner's Manual for the 2021 Ford Bronco Sport? It's 440 pages!
I first encountered Z-80 Assembler on a Sharp MZ80K back in 1980, it was my first computer.
Oh man the suspense when you were talking about what system you were going to develop for/produce a series on -- the SMS is the system I adopted as a kid and I was really hoping that was the direction you were going, but I totally get the Speccy. Great video as always. I have a Timex North American version of the ZX81 (along with a Russian clone), so I'm sure there is a lot to be learned that which is transferable.
I had a z80 in my TI-86...actually studied the programming language...it was fun...
Back in the '80s I was team CPC, so I might have to follow along and port!
I was team CPC+ - a hand-me-down from my brother in the early 90s. Sleak machine... just 64K RAM though
Ah, sweet memories. A buddy had a Video Genie, a TRS-80 clone and I had a ZX81. Regards from Germany
I will always love you, Spectrum
I am looking forward to working your tutorials
Looks like an interesting new project, looking forward to it.
An interesting point for the Z-80 is that it is still available to purchase in its original 40-pin package, though speeds up to 20 MHz make it a bit speedier.
A part not mentioned in this intro is the other vertical market of (non-gaming) embedded devices. I was using an embedded z-80 microcontroller, made by Z-World, back in the mid- 90's for a project.
The additional of a DRAM refresher cannot be underestimated, this was a critical factor in it's acceptance as a core component of a low cost home computer. As an example, the C-64 had to offload the DRAM refresh to the VIC-II chip, making it even more of a headache to get right at MOS (ask Bil Herd about that :) ). The simple MMU also expanded the memory space beyond the 64K limit... the embedded version I used allowed 4K paging of RAM that was handled by the C Compiler.
Have you also heard about the kit project using the Z-80? Grant Searle's RC2014 project has been out for a while but it's massively modular and there are quite a few boards out for it on Tindie and other sites.
Cheers,
I've heard of the RC2014, but I don't know much about it. And going into the embedded uses of Z80 outside of gaming would have been huge, not to mention new systems using the eZ80
The lack of Ram on the ZX80 meant that to do anything really impressive you had to write in machine code. The Sinclair Z80/81 was one of the best written manuals for a micro computer ever and funny too, it was also very good on the machine code and how to write machine code programs. I found the Z80 instruction set much easier than the 6502 we had at uni.
There are some odd gaps in the Z80 instruction set, one can even work out what they might do and some of them did do things but usually totally totally screwed up the flags register.
The Sinclair implementation of the Basic programming language is still probably the best Basic out there. And I like GoTo.
Still use a Z80 to this day in a 2 post car lift, just to keep 2 motors in sync so both sides go up and down.
Started with a MSX though actually still have it somewhere in storage.
Awesome. Looking forward to this. Be happy to help with Speccy programming, too.
In 1976 I built my first PC when I built a IMSAI 8080 and within a year added a Z80A CPU with 24 k ram, floppy disk and later a hard drive. The hard drive was interfaced via a parallel port. Long time since then.
That's quite an impressive setup for an IMSAI!
@@slithymatt I used it in 1978 and 1979 to enter my Masters paper. I hold a BSEE, MEEE in Electrical Engineering. My specialty was microprocessors. In my first job out of college, I got into C and UNIX. I worked virtually my entire career using C and UNIX and UNIX like systems. Good luck with your Z80 series.
I've been a Spectrum fan since 1982.
I'm still doing a lot of Z80 programming! My most recent sub-project was writing binary32 float routines 😎 (Part of a larger project that has 80-bit, 24-bit, and another 32-bit format, hopefully with binary64 and maybe some base-10 floats in the future)
It would be interesting to see how well a Z80 could do double-precision floating point. I know the answer will be "not very", but how bad compared to other 8-bit integer-only CPUs?
At the moment I'm faking double precision by wrapping it in the extended precision routines which are pretty decent speed-wise. On the TI-83+/84+, they are far faster than TI-OS's floats (14 digits BCD, versus ~19 digits for the extended precision floats). Multiplication is around 9500cc, so about 630 multiplication per second at 6MHz
Erp, I accidentally a sentence. I'm not sure how it compares to other systems (I know comparing clock cycles is sometimes an apples-to-oranges comparison).
@@ZedaZ80 Clock cycle comparisons are pretty good for comparisons, so it can be oranges-to-oranges, where you have different sized oranges and some of them are peeled on one side, to belabor the metaphor
The Z80 machine I lusted after back then was the Exidy Sorcerer. Never got one tho.
I mowed lawns for 3 years in order to buy an Exidy Sorcerer back in the early 80s! I wrote some machine code for it along with a lot of Basic games, including a cool graphic version of Star Trek. I'll never forget how much fun that thing was, it had RAM based fonts and by animating those fonts and managing them just right you could emulate high res graphics with it. There was a company in Australia that published a graphics engine using that trick. Man I miss that little beauty. I gave it to a friend of mine when I went off to college. Wish I could load up some of those old games one more time, it was just best. Cast a spell!
@@gnudarve Yeah, the programmable fonts was why I wanted it. I had created an integer-only version of APL on CP/M on an 8080 and wanted the ability to have the proper symbols for the language.