Home Creators Posts Import Register Favorites Logout
haven't archived this post yet. have a subscription? use the importer!

Content

To support conditional jump instructions, we need a flags register that holds onto state about the result of previous instructions and serves as another input to the control logic to determine how future instructions will execute. In this video, I explain the motivation for why we need a flags register, how it will interact with the rest of the computer, and of course build it!

Files

Previews only

CPU flags register

Share your requests for future video topics here: https://www.reddit.com/r/beneater/comments/88m9jy/ben_eater_video_suggestions/ Intel x86 developers guide (4800 pages!): https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf#page=80 More 8-bit computer: https://eater.net/8bit Support me on Patreon: https://www.patreon.com/beneater ------------------ Social media: Website: https://www.eater.net Twitter: https://twitter.com/ben_eater Patreon: https://patreon.com/beneater Reddit: https://www.reddit.com/r/beneater

Comments

Rob Bruno

Excellent work, thanks so much for the knowledge transfer. I really enjoy your work.

Don Prefontaine

Superb, as usual, Ben! It's been awhile since I worked on my/your computer so I had to watch the video twice - great, just the same!

Don Prefontaine

Ben, you asked about future projects. Here's one to consider. I'm starting work on a Z80 retro project using mostly original ICs, the exception being really old hard-to-find RAM like MK4118N that some "entrepreneurs" are selling on eBay for $20 each. In those cases, they'll be replaced with modern 32K SRAM as will the original glass window EPROM with modern 32K EEPROM. Because the Z80 is a standalone CPU with no microcontroller functionality like the later Z88s, Arduino UNOs, etc., you have to engineer attachments. As you know, the Z80 comes from the 64K/8-bit world so there will be immediate limitations that can be turned into challenges. If you want video instead of just using RS232 to Terra Term or whatever, you'll most likely need 80 columns by 25 rows. That's 2k by 8 bits/character or 16KB so you've used up half your RAM. Configuring glue logic to perform bank switching may overcome that challenge; I don't know cuz I've just started looking into it. Many of us are tired of entering the machine code program via dipswitches so having the ability to store our programs in old Flash RAM devices that support 8-bit mode is a great improvement. Several folk in the netherworld take pride in posting their schematics and design blogs. Personally, I'm using your mono/a/bi-stable clock circuit to single-step my way through basic testing of the device(s) as I build the system by way of the NOP program which involves tying the data bus low (NOP = 0x00) so you can see the M1/MR/RD control signal LEDs flash in sequence as the program counter advances the address bus LEDs. Reference pages 22-27 of "Z-80 Microcomputer Design Projects by William Barden Jr.". <a href="http://www.ballyalley.com/ml/z80_docs/Z80_Design/Z-80%20Microcomputer%20Design%20Projects%20(William%20Barden%20Jr)(1980).pdf" rel="nofollow noopener" target="_blank">http://www.ballyalley.com/ml/z80_docs/Z80_Design/Z-80%20Microcomputer%20Design%20Projects%20(William%20Barden%20Jr)(1980).pdf</a>

Anonymous

Hello Ben! Thank you for this excellent series. Since you asked about suggestions for future projects, I was hoping you'd continue on to the SAP-3 from Digital Computer Electronics by Albert Paul Malvino.