Commit graph

60 commits

Author SHA1 Message Date
Ilia Sharin
aa72007e48 Added ATA/ATAPI article - dramatic story as always 2026-06-02 23:48:29 -04:00
Ilia Sharin
b915524667 docs: Document CDFS architecture and handler ecosystem
- Add comprehensive cdfs.md covering ISO 9660, UDF, handlers, and hardware.
- Update relevant section indexes (07_dos, 10_devices, 02_boot_sequence) and root README.
- Expand scsi.md to link to the new CDFS coverage.
2026-06-02 22:38:38 -04:00
Ilia Sharin
36b2ea8af3 Fixed section numeration 2026-06-02 12:27:43 -04:00
Ilia Sharin
a1137ebfab Since GitHub strips any embedded - we have to use separate files 2026-06-02 12:23:37 -04:00
Ilia Sharin
4746804d8c HTML span colors replaced with embedded PNGs 2026-06-02 12:14:09 -04:00
Ilia Sharin
9b1e170439 kickstart-boot-diagnostics: HTML color swatches, 12-bit conversion table, fix dead link
- Replace emoji color squares with HTML <span> swatches using exact
  Amiga 12-bit to 24-bit RGB conversion (nibble x 17)
- Add 12-bit to 24-bit Color Conversion reference section with nibble
  lookup table, formula, and worked examples for all diagnostic colors
- Include AGA 24-bit color note (LOCT bypass, diagnostics use 12-bit)
- Remove emojis from Mermaid diagram node labels (incompatible)
- Fix dead Big Book of Amiga Hardware link -> wordpress.hertell.nu
- Add AmigaLove Boot Color Checklist as supplementary reference
2026-06-02 12:08:55 -04:00
Ilia Sharin
97b4cb26cc Kickstart boot diagnostics article added 2026-06-02 11:57:54 -04:00
Ilia Sharin
2283178f09 Add Copper ISA Complete Reference Manual
New file: 08_graphics/copper/copper_reference.md
- Full instruction set reference with opcode encoding table
- Bit-level encoding for MOVE, WAIT, SKIP (7-bit masks)
- Beam position encoding: V counter (8-bit), H counter (7-bit)
- Copper control registers (COP1LC, COP2LC, COPJMP, COPCON, DMACON)
- Copper list structure, dual lists, SKIP-based double buffering
- DMA timing budget calculations per scanline
- Register reference for all copper-writable targets
- OCS/ECS/AGA differences (AGA 24-bit color via BPLCON3 LOCT)
- Programming models: bare metal, OS-friendly UCopList, self-modifying
- Common patterns: rainbow, split screen, status bar, sprite mux
- Debugging: 8 common pitfalls with symptoms and fixes
- Mermaid fetch-execute cycle diagram

Updated files:
- 08_graphics/README.md: add copper_reference.md to index
- 08_graphics/copper/copper.md: cross-reference link, fix MOVE/WAIT
  encoding, fix UCopList CMOVE syntax
- 08_graphics/copper/copper_programming.md: cross-reference link, fix
  horizontal resolution (2 color clocks, not 4)
2026-06-01 14:39:43 -04:00
Ilia Sharin
a0fc3e05db Restructure - dedicated for copper and blitter separate subfolders to have the room to expand 2026-05-31 13:52:45 -04:00
Ilia Sharin
616add20cf Add Scoopex YouTube tutorial and Amiga Graphics Archive references to sprites.md 2026-05-13 18:23:00 -04:00
Ilia Sharin
f8f8d1c834 docs(amiga): add Tier 4 content — AHI, cross-compilation, RTG, demoscene section
- New: 11_libraries/ahi_programming.md — AHI retargetable audio API
- New: 13_toolchain/cross_compilation_guide.md — cross-compiling for Amiga
- New: 08_graphics/rtg_programming.md — RTG Picasso96/CyberGraphX programming
- New: 17_demoscene/ — full demoscene techniques section:
  - copper_effects.md (6 techniques, 10 Pouet screenshots, antipatterns)
  - sprite_techniques.md (5 techniques, antipatterns)
  - pixel_tricks.md (5 techniques, antipatterns)
  - 3d_rendering.md (fixed-point math, 4 techniques, antipatterns)
  - timing_optimization.md (7 techniques, instruction timing tables)
  - README.md (section index with Mermaid diagrams)
  - images/ (10 authentic Amiga screenshots from Pouet.net)
- New: 05_reversing/games/ (4 copper-analysis screenshots)
- Updated: README index, TODO status (30/30 complete)
- Added external references: Pouet/Demozoo links, Scoopex YouTube
  tutorial series, Amiga Graphics Archive, coppershade.org
2026-05-13 17:49:28 -04:00
Ilia Sharin
7e327e6640 docs: update TODO.md — Tiers 1-3 fully complete, 26/30 done (87%) 2026-05-13 12:14:23 -04:00
Ilia Sharin
27cad8128d docs: expand final 3 Tier 3 articles + update all README indexes
Articles expanded:
- gadgets.md: 403→804 lines — 5 antipatterns, GadTools→BOOPSI migration,
  form cookbook, historical timeline, modern analogies, 6 FAQ
- screens.md: 582→992 lines — decision guide, 5 antipatterns, screen
  flipping/borderless/PAL-NTSC cookbooks, historical comparison, 7 FAQ
- custom_loaders_and_drm.md: 152→500 lines — bootblock structure,
  6 DRM systems, 5 antipatterns, trackloader cookbook, cracking scene
  history, modern analogies, 7 FAQ

README indexes updated in 6 sections to reflect expanded content.
2026-05-12 23:02:22 -04:00
Ilia Sharin
fa8ce16936 docs(amiga): fix README navigation indexes, add missing entries, and update Tier 3 statuses 2026-05-12 22:18:43 -04:00
Ilia Sharin
7960cbdf25 docs: minor updates to zorro_bus, game_reversing, expansion 2026-05-12 22:04:26 -04:00
Ilia Sharin
9f5d9de1ed docs: expand 7 Tier 3 articles to Deep quality
- gcc_amiga.md: 101→606 lines — pipeline, Docker, platform builds, flags, antipatterns, FAQ
- trackdisk.md: 178→428 lines — MFM encoding, 16-command reference, antipatterns, FPGA impact
- console.md: 244→470 lines — decision guide, TUI/progress cookbooks, antipatterns, pitfalls
- layers.md: 224→739 lines — ClipRect engine, LVO API, backfill hooks, 4 antipatterns, optimization
- text_fonts.md: 215→708 lines — ColorFont, Compugraphic outlines, 3 cookbooks, 4 antipatterns
- windows.md: 370→778 lines — 5 antipatterns, decision guide, 3 cookbooks, modern analogies
- menus.md: 378→695 lines — render chain diagram, 5 antipatterns, lifecycle cookbook, 6 FAQ
2026-05-12 22:04:16 -04:00
Ilia Sharin
ab88118dc1 docs: change license from MIT to CC BY-SA 4.0 2026-05-12 20:42:01 -04:00
Stefan
ef65678203
Fixed frame again (#2)
* Fixed frame again

Correct vtable layout differences between GCC and StormC++.

* Fixed frame once again
2026-05-12 19:16:07 -04:00
Ilia Sharin
05e4c79762
Merge pull request #1 from polluks/patch-1
Fixed frame
2026-05-09 23:05:37 -04:00
Stefan
89a7bb6782
Fixed frame 2026-05-02 16:38:49 +02:00
Ilia Sharin
cdc18c4ae3 Bus and memory updates 2026-04-30 11:15:34 -04:00
Ilia Sharin
f11d9a2882 Video timings 2026-04-30 10:55:09 -04:00
Ilia Sharin
a83d89ce22 Sprites and DMA 2026-04-30 10:34:52 -04:00
Ilia Sharin
f19e3f16b5 Autoconfig and more details about expansion library 2026-04-30 09:00:24 -04:00
Ilia Sharin
b01763982e More interesting hot stuff! 2026-04-29 23:18:55 -04:00
Ilia Sharin
0aafceb31e More information. Especially about RE and AREXX automation 2026-04-29 21:42:28 -04:00
Ilia Sharin
05452c6c12 More information added 2026-04-27 18:34:07 -04:00
Ilia Sharin
a383d4c065 docs(amiga): Mermaid syntax fixes, 68040 FPU elaboration, Gayle trapezoid→quoted, gcc toolchain integration 2026-04-27 17:29:29 -04:00
Ilia Sharin
a59d8350b3 More content 2026-04-27 12:42:42 -04:00
Ilia Sharin
9b0dfbcf32 Timer content improved 2026-04-26 23:06:26 -04:00
Ilia Sharin
cb14c243b6 Views content update 2026-04-26 17:38:01 -04:00
Ilia Sharin
d977480a69 Audio article expanded 2026-04-26 17:14:39 -04:00
Ilia Sharin
371d3d551c FPU dramatic story added 2026-04-26 16:29:28 -04:00
Ilia Sharin
9f82b35efd Added diskfont details 2026-04-26 15:29:06 -04:00
Ilia Sharin
8133b3a6cb More content added 2026-04-26 14:46:18 -04:00
Ilia Sharin
5fac29ccd5 collapse large C2P assembly listing with <details> toggle 2026-04-25 17:36:13 -04:00
Ilia Sharin
d514ccc4e8 rename 15_cpu_and_mmu → 15_fpu_mmu_cache; elaborate why 68040/060 instructions were removed with pros/cons tradeoff table; move Software That Uses the MMU catalog before FPGA/Emulation 2026-04-25 17:29:22 -04:00
Ilia Sharin
a0e21dc366 Chunky-2-Planar article improvements 2026-04-25 16:27:10 -04:00
Ilia Sharin
2eb8321d00 Minor fixes in layout and indexing 2026-04-25 14:58:33 -04:00
Ilia Sharin
a5b49d073f Peripherals and models description improved and expanded 2026-04-25 14:51:45 -04:00
Ilia Sharin
94fb74680f memory_types: add segue to address_space.md from memory type table 2026-04-25 14:15:57 -04:00
Ilia Sharin
c4522ef2ed Add memory types article, expand blitter cookbook, update cross-references
New articles:
- 01_hardware/common/memory_types.md: comprehensive Chip/Fast/Slow RAM reference
  with DMA accessibility matrix, per-model configurations (A500-A4000),
  accelerator memory expansion (classic + modern), adaptive software behavior,
  pitfalls with impact analysis, FPGA/emulation notes
- AGENTS.md: documentation standards and methodology guidelines

Blitter programming (08_graphics/blitter_programming.md):
- Rewrote minterm truth table with narrative explanation and worked  example
- Added 7 advanced use cases with assembly/C code: shifted BOB, hardware scroll,
  area fill polygon, interleaved bitplane BOBs, double-buffered game loop,
  GUI window drag, tile map renderer
- Added Good/Bad Patterns section with 5 named antipatterns
- Added Practical Limitations table (10 constraints with workarounds)
- Expanded Common Minterms table with Description and Real-World Use Case columns

Cross-reference updates:
- Root README: added memory types to coverage, quick start, section index
- 01_hardware/README: updated common/ folder description
- address_space.md: linked to memory_types.md and chip_ram_expansion.md
- memory_management.md (exec): linked to hardware memory types reference
- bitmap.md, sprites.md, animation.md, audio.md: linked to memory_types.md
  explaining DMA Chip RAM requirement for each subsystem
- chip_ram_expansion.md: linked to comprehensive memory types article
2026-04-25 14:12:46 -04:00
Ilia Sharin
26dfed8b44 docs(amiga): fix Quartz Composer typo and add hyperlink 2026-04-24 16:19:47 -04:00
Ilia Sharin
ea2869b8b9 docs(amiga): expand animation guide with GEL architecture, hardware foundation, and historical context 2026-04-24 16:16:21 -04:00
Ilia Sharin
f61c26b542 Expand documentation suite: 30+ articles enriched with diagrams, code examples, and hardware details
Graphics: text_fonts (bitmap layout, styles), sprites (DMA, multiplexing), gfx_base (chipset detection), rastport (draw modes, clipping), ham_ehb (mermaid fixes), display_modes (HAM palettes)

Devices: scsi (per-model interfaces, Gayle limits, CD-ROM, native vs vendor drivers), console (ANSI sequences, CON:/RAW:), parallel (CIA registers, pinout), timer (resource exhaustion), gameport (quadrature, XOR state)

Libraries: workbench (WBStartup, AppWindow/Icon/MenuItem), rexxsyslib (ARexx port hosting, command parsing), diskfont (font directory, colour fonts), keymap (rawkey codes, dead keys), locale (catalogue system, date formatting), layers (ClipRect, refresh types), utility (TagItem chains), icon (DiskObject, ToolTypes), iffparse (IFF structure, ByteRun1), expansion (Zorro AutoConfig)

Networking: tcp_ip_stacks (major rewrite - Amiga vs Unix architecture, SANA-II pipeline, PPP/SLIP dial-up, Ethernet cards, MiSTer), bsdsocket (pure API ref), sana2 (buffer hooks, driver requirements), protocols (all code examples). Deduplicated overlap between the three files.

Toolchain: debugging (Enforcer patterns, SnoopDOS, GDB remote, kprintf checklist), sasc (pragma encoding, __saveds idioms), stormc (NEW - StormC IDE, C++, PowerPC)

References: error_codes (DOS, Exec, trackdisk, Intuition error tables)
Driver development: rtg_driver (Native driver analysis, P96 tuning)

All 22 README indexes updated. Root README synced with stormc.md entry.
2026-04-23 21:37:26 -04:00
Ilia Sharin
0ded078134 Phase 1 continued: serial, input devices + README indexes
10_devices:
- serial.md: expanded with DB-25 pinout, custom chip UART registers,
  baud rate calculation table, open/configure/read/write patterns,
  serial debugging (KPrintF/Sushi)
- input.md: expanded with handler chain architecture diagram,
  InputEvent struct, event classes table, qualifier bits, custom
  handler with key remapping, event consumption/blocking,
  synthetic event injection, Commodities Exchange

Updated indexes:
- 07_dos/README.md — enriched descriptions for all files
- 10_devices/README.md — enriched descriptions for all files
2026-04-23 20:28:03 -04:00
Ilia Sharin
da9e7d3b63 Phase 1: enrich 07_dos and 10_devices (highest FPGA priority)
07_dos:
- file_io.md: 108→240+ lines — buffered I/O (FRead/FWrite/SetVBuf),
  access mode comparison, FileHandle struct with offsets, standard
  handles, Printf %ld warning, FileInfoBlock, practical patterns
  (copy file, get size, load to RAM), error code table
- filesystem.md: 91→270+ lines — full disk geometry (ADF/HDF),
  all 8 DOS\x filesystem IDs, root block byte-level layout, file
  header layout with reverse-order pointer quirk, OFS vs FFS data
  blocks with efficiency numbers, bitmap blocks, extension blocks,
  checksum algorithm, Python ADF reader
- locks_examine.md: 113→270+ lines — lock semantics diagram, FileLock
  struct with handler discovery, ExAll bulk scan, practical patterns
  (atomic write, path resolution, volume info), 4 antipatterns
  (leaked locks, exclusive too long, unchecked IoErr, DupLock),
  pattern matching

10_devices:
- audio.md: 73→240+ lines — hardware architecture diagram, channel
  registers with offsets, period/frequency table, priority allocation,
  double-buffering, audio interrupts, AM/PM modulation, direct HW
- timer.md: 80→230+ lines — CIA timer hardware, all 5 units with
  decision flowchart, non-blocking delays, signal-based waiting,
  time arithmetic, ReadEClock, periodic game loop pattern, pitfalls
- trackdisk.md: 82→210+ lines — MFM encoding, track format, disk
  geometry, read/write/motor, change notification, track caching,
  direct hardware access, FPGA timing implications
- keyboard.md: 58→220+ lines — CIA-A serial handshake protocol with
  sequence diagram, bit rotation quirk, complete key code map,
  key matrix bitmap, reset sequence, FPGA notes
2026-04-23 20:23:50 -04:00
Ilia Sharin
aeaea88d75 03/exe_crunchers: expand architecture with full decrunch lifecycle
Replaced the brief 'key insight' paragraph with a comprehensive
two-phase execution model covering:
- Phase 1 (OS): what LoadSeg sees, how wrapper relocations are applied
- Phase 2 (stub): all 6 reconstruction steps with code examples:
  1. Metadata block preserving original hunk count/sizes/memflags
  2. Chip vs Fast RAM allocation (with IMPORTANT warning about
     DMA-invisible Fast RAM for bitmap/audio data)
  3. Decompression into separately allocated hunks
  4. Relocation regeneration from embedded tables
  5. BPTR segment chain construction (with C code)
  6. Wrapper cleanup and JMP to original entry
- The segment list handoff problem (double-free hazard) and the
  three solutions: pr_SegList patching, chain linking, in-place
2026-04-23 18:50:46 -04:00
Ilia Sharin
4593ff135a 03: new article — exe_crunchers.md (executable packers deep dive)
New comprehensive article on Amiga executable crunchers covering:
- Architecture: how crunched files remain valid HUNK executables
- Major crunchers: PowerPacker, Imploder, Shrinkler, ByteKiller,
  Titanics, CrunchMania, PackFire, XPK framework
- PP20 format: efficiency table, decrunch info, decrunch colours
- Shrinkler internals: 1536-context adaptive probability model,
  range coder, parity context flag, stack-based context table,
  actual 68000 decompressor source from GitHub
- LZ77/LZSS vs context-modelling+range-coding algorithms
- Relocation handling: 3 strategies (compressed relocs, delta
  table, merged single-hunk)
- Memory layout diagrams: before/during/after decompression
- Detection: magic signatures table, fake header warning,
  Python scanner script
- Tools: xfdmaster modular architecture, Ancient C++ library,
  debugger-based extraction (last resort)
- FPGA/emulation impact: timing, self-modifying code, cache

Based on web research: verified PP20 format spec, Shrinkler
source (askeksa/Shrinkler), Ancient library (temisu/ancient),
xfdmaster slave module architecture.

Updated indexes: 03/README.md, root README.md
2026-04-23 18:41:07 -04:00
Ilia Sharin
7df1f11f15 03/04: deep enrichment of loader/exec format and linking/libraries
Sections 03 and 04 augmented to bootcamp quality with targeted
enrichment based on content analysis (not just file size).

03_loader_and_exec_format:
- overlay_system.md: full rewrite — tree architecture diagram,
  HUNK_OVERLAY binary format, overlay manager runtime internals,
  worked binary example, linker support, modern alternatives
- hunk_relocation.md: full rewrite — visual before/after diagram,
  patching algorithm with code, RELOC32SHORT and DREL32 formats,
  PC-relative impact comparison table, self-referencing relocs,
  error scenarios, Python reloc scanner tool

04_linking_and_libraries:
- library_structure.md: full rewrite — ASCII memory layout diagram,
  JMP table encoding (why 6 bytes), MakeLibrary internals with both
  function array formats, complete library creation example with
  .fd file, checksum verification, lifecycle state diagram
- shared_libraries_runtime.md: full rewrite — OpenLibrary 4-step
  resolution path, ramlib disk loader internals, disk search path,
  version negotiation table (v33-v47), CloseLibrary/Expunge deep
  dive, memory-low sweep, common pitfalls table
- register_conventions.md: full rewrite — FPU register map,
  inter-library A6 save/restore pattern, small-data model with
  __saveds keyword, varargs/TagItem pattern deep dive,
  stack-based wrapper explanation, disassembly identification

Updated indexes:
- 03_loader_and_exec_format/README.md
- 04_linking_and_libraries/README.md
- Root README.md (sections 03 and 04)
2026-04-23 18:30:45 -04:00