Chris Collins

Tagged “assembly”

Exploration ·

From transistor to CPU

Start with one transistor switching an LED, wire switches into gates, gates into an adder, feedback into memory, and memory plus a clock into a tiny CPU — then watch a real 6502 run a program you can read byte by byte.

ElectronicsRetro computing

Tool ·

Interactive assembly BOM

Hand-assemble a KiCad board from its .kicad_pcb: the BOM grouped by value and footprint with placed and sourced ticks, the parts of the row you are on lit up on front and back drawings (click a part to find its row), side and DNP filters, progress kept per board, keyboard-driven, stock and bins from your Parts inventory, and a standalone HTML copy to keep with the board.

Electronics

Tool ·

Pick-and-place file fixer

Turn KiCad's position file (or the .kicad_pcb itself) and BOM into the placement file JLCPCB, PCBWay or Seeed want — the right columns, mm or inches, top/bottom naming, origin, bottom-side mirroring, an editable table of per-footprint rotation offsets, DNP left out — with a drawing of every part and its pin 1, and a JLCPCB BOM with LCSC numbers from a field or your Parts inventory.

Electronics

Tool ·

STEP and IGES viewer

Open a STEP, IGES or BREP file in the browser — the assembly tree with each part's visibility and colour, measuring (distances, CAD edge lengths, hole diameters from round edges, face areas), a section plane, an exploded view, size, volume and mass — and export STL or GLB, or hand parts to the mesh tools.

3D printingCNC and machining

Tool ·

8086 assembly playground

Write 8086 assembly in NASM syntax and step through it as a DOS .COM program: every instruction's bytes split into prefix, opcode, ModR/M, displacement and immediate with each field explained, registers and flags with changes highlighted, segment:offset addresses with the 20-bit physical address, Intel's clock count for every instruction (8086 or 8088), an 80 × 25 colour text screen at B800:0000, BIOS and DOS interrupts, and the keyboard.

Retro computingSoftware engineering

Tool ·

A chess program for the Z80

A small chess program I wrote in Z80 assembly, playing on an emulated ZX Spectrum 48K at 3.5 MHz — 0x88 board, legal moves with castling, en passant and promotion, alpha-beta search with quiescence. Watch the Z80 think (nodes, emulated time, the line it's searching, a routine profile, a debugger), check its move generator with perft, and download a .TAP for a real Spectrum.

Retro computing

Tool ·

ARM Thumb assembly playground

Write Cortex-M assembly and step through it on a simulated microcontroller: a GNU-syntax assembler for Thumb and Thumb-2 with literal pools and IT blocks, every 16- and 32-bit encoding split into its fields bit by bit, registers and NZCV with changes highlighted, memory and stack views, breakpoints, LEDs and switches on GPIO, a UART terminal, SysTick interrupts through a vector table, and Cortex-M0 or M3 cycle counts.

ElectronicsSoftware engineering

Tool ·

RISC-V assembly playground

Write RV32IM assembly and step through it: an assembler with pseudo-instructions and %hi/%lo, the machine code beside each line with every format's fields decoded bit by bit, registers with changes highlighted, memory and stack views, breakpoints, RARS-style ecalls, LEDs and switches on a memory-mapped device, and a 5-stage pipeline diagram of what ran, with stalls, forwarding and flushes.

ElectronicsSoftware engineering

Tool ·

68000 cycle counter

Paste 68000 assembly and see the clock cycles and bus reads/writes of every instruction from Motorola's timing tables, the total for a block or loop, and how much of an Amiga or Atari ST frame it takes.

AmigaAtari

Tool ·

Atari 8-bit computer: emulator, BASIC, assembler and debugger

An Atari 800, 800XL or 130XE in your browser (atari800 in WebAssembly, the free Altirra OS and BASIC) — run disks, programs, cartridges and tapes; type and save BASIC; write 6502 assembly and run it, or call it from BASIC with USR; and debug anything that runs with breakpoints, stepping, registers, memory, the ANTIC/GTIA/POKEY/PIA registers and the display list.

Atari