Kevin McQuown / FolioIdeas · People · Possibilities

Teaching / Course outline

Build Your Own Computer

A computer becomes understandable when every cable, address, signal, and byte has somewhere concrete to go. Students assemble a complete 65C02-based machine and bring it to life one subsystem at a time.

A computer becomes understandable when every cable, address, signal, and byte has somewhere concrete to go. Students assemble a complete 65C02-based machine and bring it to life one subsystem at a time.

The course connects hardware integration with low-level software: schematics and datasheets lead to memory maps, device drivers, a machine monitor, and programs running on a computer the students can physically inspect.

The course in context

See both engineering courses alongside my astrophotography and the software I build with OpenAI Codex.

Review four illustrated folio studies →

What students learn

Read the machine

Use schematics, block diagrams, datasheets, and timing information as working engineering documents.

Bring up hardware

Test power, clock, reset, buses, memory, and peripherals systematically instead of guessing.

Own every byte

Write assembly and firmware with a direct understanding of where instructions and data travel.

Curriculum arc

  1. Computer engineering orientation and history

    Course setup, tools, personal-computing history, and the significance of the 6502 establish the context for building a computer from understandable parts.

  2. Electrical fundamentals

    Electricity, voltage, current, resistance, pull-up and pull-down behavior, and high-impedance states provide the foundation for reliable digital circuits.

  3. Digital logic

    NAND, AND, OR, and NOR gates, buttons, truth tables, and combination-lock circuits turn Boolean reasoning into working hardware.

  4. Breadboarding and physical construction

    Students insert chips, read physical layouts, wire and debug circuits, use breakout boards, and develop disciplined hardware-assembly habits.

  5. 65C02 processor architecture

    CPU fundamentals, the Alan One architecture, reset behavior, buses, and control signals bring the 65C02 to life at the center of the system.

  6. Memory and timing

    EEPROM, RAM, address decoding, memory maps, and timing analysis show how instructions and data are stored and reliably transferred.

  7. 6502 assembly programming

    Hex and binary, load and store operations, branching, arithmetic, status flags, stacks, subroutines, and 16-bit techniques turn the hardware into a programmable machine.

  8. Input/output peripherals

    VIA GPIO, LEDs, timers, buttons, LCDs, and Hello World output connect the processor to devices that can sense, control, and communicate.

  9. Interrupts and serial communication

    NMI, maskable interrupts, VIA interrupt handling, ACIA and RS232, and serial-to-LCD communication introduce asynchronous events and external links.

  10. Engineering practice and capstone integration

    Incremental programming challenges, systematic debugging, and the engineering lifecycle culminate in assembling and demonstrating the completed computer.

Projects

The finished computer is not a sealed product. It is a machine whose architecture remains visible, measurable, repairable, and open to extension.

A working 65C02 computer

Processor, memory, buses, clock, reset, and expansion hardware operating as one system.

A useful monitor

Low-level software for loading, inspecting, testing, and controlling the machine.

An engineering record

Schematics, memory maps, test results, and explanations that make the build reproducible.

Start a conversation

Tell me about your process, your students, or the software you want to build. We begin with goals, constraints, and timing, then agree on scope, deliverables, and fees before work begins.

Email Kevin ↗