# 8-Bit Seminar References
1. Watch the videos [Ben Eater's](https://eater.net/8bit) build, especially:
1) [Intro](https://www.youtube.com/watch?v=AwUirxi9eBg&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=35)
2) [SR Latch](https://www.youtube.com/watch?v=KM0DdEaY5sY&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=6) ff.
3) [Bus architecture](https://www.youtube.com/watch?v=QzWW-CBugZo&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=9) and [tristate](https://www.youtube.com/watch?v=faAjse109Q8&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=10)
4) [ALU design](https://www.youtube.com/watch?v=mOVOS9AjgFs&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=15) ff.
5) [Control logic](https://www.youtube.com/watch?v=AwUirxi9eBg&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=35) ff.
6) [555 timer](https://www.youtube.com/watch?v=kRlSFm519Bo&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=2) ff.
2. Look into the book by Wakerly.
You don't have to read everything but it is a great reference.
1. Chapter 5 discusses the basic of combinational logic design and introduces several 7400 chips.
2. Chapter 7 discusses sequential logic design (every this with states, i.e. latches).
2. Chapter 3 gives foundations on electrical aspects of TTL and CMOS.
3. Appendix B for DC circuit basics, especially RC circuits.
3. Study existing builds.
4. Study existing ISAs.
# References
## 7400 series ICs and others
* [Wikipedia List](https://en.wikipedia.org/wiki/List_of_7400-series_integrated_circuits) of most 74xx chips.
If the datasheet link does not go to a PDF directly, the chances that the part is no longer available is quite high.
Some may still be available on eBay.
* [Logic Levels](https://hackaday.com/wp-content/uploads/2018/07/logic-family-voltage-table.jpg) of the different families.
* Excellent [4-part Series](https://www.nutsvolts.com/magazine/article/understanding_digital_logic_ics_part_1) on 7400 chips.
Chapter 3 is particularly relevant.
* Excellent [article](https://www.righto.com/2017/03/inside-vintage-74181-alu-chip-how-it.html) on the 74181 ALU chip.
* [ATF22V10](https://www.microchip.com/en-us/product/atf22v10c#document-table) logic device ([Mouser](https://www.mouser.de/ProductDetail/556-AF22V10C15PU))
* [Am2901](http://www.bitsavers.org/pdf/amd/ED2900A_vol1_Jan85.pdf) ALU Chip
## Textbooks
* John Wakerly. [Digital Design Principles and Practice](https://www.pearson.com/uk/educators/higher-education-educators/program/Wakerly-Digital-Design-Principles-and-Practices-4th-Edition/PGM761351.html), 4th edition, 2006.
ChapterĀ 3 is an excellent and relevant introduction to digital circuits.
There is an [appendix](http://wakerly.org/DDPP/DDPP3_pdf/elecCkts.pdf) with a review on electrical circuits basics.
* Horowitz and Hill. [The Art of Electronics](https://en.wikipedia.org/wiki/The_Art_of_Electronics), 3rd Edition.
Comprehensive text book and reference on electronics in general.
Also has a chapter on digital logic and TTL chips (Chapter 10).
* Albert Malvino. Digital Computer Electronics, 3rd edition. The text book that Ben Eater used for his build.
* The [All About Circuits](https://www.allaboutcircuits.com/textbook/) text book on electronics.
## Documentation of existing CPUs
* Intel 8080/8085
- [Assembly Language Programming Manual](https://datasheetspdf.com/pdf-file/1328906/Intel/Intel8080/1) contains ISA description.
- [User Manual](http://www.bitsavers.org/components/intel/MCS80/MCS80_85_Users_Manual_Jan83.pdf) contains description of the interrupt mechanism.
- [ISA Overview](https://www.righto.com/2013/02/8085-instruction-set-octal-table.html) in octal.
- [StackOverflow post](https://stackoverflow.com/questions/2165914/how-do-interrupts-work-on-the-intel-8080) on how interrupts work on the 8080.
Note that the 8085 has a more siphisticated interrupt facility.
- Ken Shirriff's posts on the 8085
- [ALU](https://www.righto.com/2013/07/reverse-engineering-8085s-alu-and-its.html)
- [Register file](https://www.righto.com/2013/03/register-file-8085.html)
* Zilog Z80
- [User Manual](https://www.zilog.com/docs/z80/um0080.pdf) including ISA documentation.
- Ken Shirriff's series of [blog posts](https://www.righto.com/search/label/Z-80)'s on the Z80 ĀµArch.
* WDC 6502
- [Official Documentation](https://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf) including ISA description.
- [Peripheral Interface Adapter (6521)](https://www.westerndesigncenter.com/wdc/documentation/w65c21.pdf) documentation.
Contains information about interrupt handling.
- [Video](https://www.youtube.com/watch?v=DlEa8kd7n3Q&list=PLowKtXNTBypFbtuVMUVXNR0z1mu7dp7eH&index=11) on interrupt handling
- In-depth [post](http://6502.org/tutorials/interrupts.html) on interrupts.
* Motorola 6800
- [ISA](http://www.8bit-era.cz/6800.html)
* Motorola 6809
- [ISA](https://ia802906.us.archive.org/18/items/bitsavers_motorola68_13419254/M6809PM.rev0_May83.pdf)
- [Instruction Format](https://techheap.packetizer.com/processors/6809/6809.html)
* STM8
- [ISA](https://www.st.com/resource/en/programming_manual/pm0044-stm8-cpu-programming-manual-stmicroelectronics.pdf)
* Philip Klaus Krauses f8
- [Video](https://peertube.f-si.org/videos/watch/6d3c880d-6f8f-47e0-b38b-180fe56eb9e4), [Slides](https://wiki.f-si.org/images/1/1c/F8.pdf)
- [Branch of sdcc](https://sourceforge.net/p/sdcc/code/HEAD/tree/branches/f8/) has a Verilog simulator.
## Other Builds
* [Ben Eater](https://eater.net/8bit)'s build and [video playlist](https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU) (based on the textbook by Malvino
* [derulf1](https://github.com/DerULF1/8bit-computer)'s build.
- 64kB RAM, interrupt controller, real-time clock, LCD display, SD card reader.
- The [video series](https://www.youtube.com/watch?v=yACH8p4KfyQ&list=PL5-Ar_CvItgaP27eT_C7MnCiubkyaEqF0) is very detailed and goes in-depth on many aspects.
Particularly helpful and interesting is the [video](https://www.youtube.com/watch?v=tdtGz5nVM9A&list=PL5-Ar_CvItgaP27eT_C7MnCiubkyaEqF0&index=2) on power distribution and the clock.
* [rolf-electronics](https://github.com/rolf-electronics/The-8-bit-SAP-3). Has extensive documentation that covers electronics problems.
* [scamp-cpu](https://github.com/jes/scamp-cpu). Comes with a browser-based simulator.
* [YACC1](https://cottageworker.com/) has a cool way of modularizing the components onto PCBs and connecting them with a bus.
* [nqsap](https://tomnisbet.github.io/nqsap/) by Tom Nisbet features extensive documentation, many valuable tips, and helpful links to other resources.
* The fabulous [Gigatron](https://gigatron.io/) focuses on few chips and has a primitive ISA. It is programmed by a higher-level assembler whose programs run on interpreter. Has a cool [ALU design](http://6502.org/users/dieter/a1/a1_4.htm). Features a small VGA graphics card.
* [Homecomputer Webring](https://www.homebrewcpuring.org/) with many more builds.
* [Michael Kamprath](https://www.youtube.com/watch?v=-E6FhDYj1dU&list=PLC4jDTViU38EQzCYaRsoOLeGLLW5cMN4A)
## Video / Graphics
* [Ben Eater's Videos on a VGA card](https://eater.net/vga)
* [VGA Timings](http://tinyvga.com/vga-timing)
* [VIC-II](https://en.wikipedia.org/wiki/MOS_Technology_VIC-II)
- [Reference](http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt)
- [Tutorial](https://www.retro-programming.de/programming/nachschlagewerk/vic-ii/)
## Electronics
* Various guides on debouncing: [1](http://www.ganssle.com/debouncing-pt2.htm), [2](https://www.we-online.com/web/en/index.php/download/media/07_electronic_components/download_center_1/application_notes_berichte/sn015__contact_circuit_debounce_for_switches/SN015a_EN.pdf), [3](https://www.eejournal.com/article/ultimate-guide-to-switch-debounce-part-3/) and an [EEVBlog video](https://www.youtube.com/watch?v=Nj-Q8FQxHhU).
* lordmonoxide's [lessons learned](https://www.reddit.com/r/beneater/comments/dskbug/what_i_have_learned_a_master_list_of_what_to_do/) from building an 8-bit CPU on breadboards.
* [Good advice to draw schematics](https://electronics.stackexchange.com/questions/28251/rules-and-guidelines-for-drawing-good-schematics).
* [PCB Design Tutorial](https://www.mikrocontroller.net/attachment/26687/PCBDesignTutorialRevA.pdf).
* [EEVblog](https://www.youtube.com/c/EevblogDave) has excellent tutorials on electronics, especially fundamentals videos on [DC](https://www.youtube.com/watch?v=xSRe_4TQbuo&list=PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK) and [AC](https://www.youtube.com/watch?v=rrPtvYYJ2-g). One particular [video](https://www.youtube.com/watch?v=Ht48vv0rQYk&t=277s) covers rise and fall times of TTL signals.
* Indispensable [KiCAD Shortcuts](https://shortcutworld.com/KiCAD/mac/KiCAD_Shortcuts).
## Misc
* [Verilog Library for 74xx Chips](https://github.com/TimRudy/ice-chips-verilog).
* [Chisel in Education](https://peertube.f-si.org/videos/watch/d649331f-2dd5-4e7b-8ad0-c42333725de9)
* Maybe [Logisim Evolution](https://github.com/logisim-evolution/logisim-evolution) is helpful to simulate parts of your machine.
* [customasm](https://github.com/hlorenzi/customasm) is a customizable assembler. Maybe useful for your own ISA.
* [Sail](https://www.cl.cam.ac.uk/~pes20/sail/) is a framework to describe ISAs and processor semantics.
* [minipro](https://gitlab.com/DavidGriffith/minipro) can flash EEPROMs/Flash memory. We have SST39SF010 flash in the lab. You can write this with `minipro -s -p SST39SF010 -w <filename>`
* You can use [Knoepfchen](https://github.com/shack/knoepfchen) for get some buttons/switches/clock to your breadboard easily.