From fca930d0db24b44dc46d959c5ffe8fae2a609129 Mon Sep 17 00:00:00 2001 From: Ilia Sharin Date: Thu, 23 Apr 2026 12:24:21 -0400 Subject: [PATCH] docs(amiga): make cross-references clickable markdown links Convert bare .md path references in 29 files to proper [name](relative/path) markdown links for GitHub navigation. --- 01_hardware/aga_a1200_a4000/aga_copper.md | 6 +++--- 01_hardware/aga_a1200_a4000/aga_registers_delta.md | 4 ++-- 01_hardware/ecs_a600_a3000/ecs_registers_delta.md | 4 ++-- 03_loader_and_exec_format/exe_load_pipeline.md | 2 +- 05_reversing/case_studies/ramdrive_device.md | 2 +- 05_reversing/dynamic/live_memory_probing.md | 6 +++--- 05_reversing/dynamic/serial_debug.md | 2 +- 05_reversing/dynamic/setfunction_patching.md | 2 +- 05_reversing/static/api_call_identification.md | 6 +++--- 05_reversing/static/library_jmp_table.md | 4 ++-- 05_reversing/static/struct_recovery.md | 4 ++-- 06_exec_os/interrupts.md | 4 ++-- 06_exec_os/library_system.md | 2 +- 06_exec_os/library_vectors.md | 6 +++--- 06_exec_os/memory_management.md | 2 +- 06_exec_os/signals.md | 2 +- 07_dos/file_io.md | 2 +- 07_dos/process_management.md | 2 +- 08_graphics/blitter_programming.md | 4 ++-- 08_graphics/copper_programming.md | 4 ++-- 09_intuition/windows.md | 2 +- 10_devices/input.md | 2 +- 12_networking/bsdsocket.md | 2 +- 12_networking/protocols.md | 4 ++-- 13_toolchain/fd_files.md | 2 +- 13_toolchain/makefiles.md | 4 ++-- 13_toolchain/pragmas.md | 2 +- 14_references/error_codes.md | 2 +- 14_references/exec_lvo_table.md | 2 +- 29 files changed, 46 insertions(+), 46 deletions(-) diff --git a/01_hardware/aga_a1200_a4000/aga_copper.md b/01_hardware/aga_a1200_a4000/aga_copper.md index b5ef894..3af0617 100644 --- a/01_hardware/aga_a1200_a4000/aga_copper.md +++ b/01_hardware/aga_a1200_a4000/aga_copper.md @@ -366,6 +366,6 @@ AGA has 256 colours but still only 32 colour registers visible at a time. To loa ## References - HRM: *Copper* chapter — authoritative register descriptions -- `08_graphics/copper.md` — graphics.library UCopList API -- `08_graphics/copper_programming.md` — additional examples -- `01_hardware/ocs_a500/copper.md` — OCS-level register reference +- [copper.md](../../08_graphics/copper.md) — graphics.library UCopList API +- [copper_programming.md](../../08_graphics/copper_programming.md) — additional examples +- [copper.md](../ocs_a500/copper.md) — OCS-level register reference diff --git a/01_hardware/aga_a1200_a4000/aga_registers_delta.md b/01_hardware/aga_a1200_a4000/aga_registers_delta.md index b2ac85f..ce9ed10 100644 --- a/01_hardware/aga_a1200_a4000/aga_registers_delta.md +++ b/01_hardware/aga_a1200_a4000/aga_registers_delta.md @@ -6,7 +6,7 @@ ### FMODE — $DFF1FC (AGA only) -DMA fetch mode — see `chipset_aga.md` for full description. +DMA fetch mode — see [chipset_aga.md](chipset_aga.md) for full description. ### BPLCON4 — $DFF10C (AGA only) @@ -63,7 +63,7 @@ bit 3: BRDSPRT — sprites visible in border ## AGA-Specific BPLCON0 Bits -See `chipset_aga.md` — bit 4 is the MSB of the bitplane count for 7/8-plane modes. +See [chipset_aga.md](chipset_aga.md) — bit 4 is the MSB of the bitplane count for 7/8-plane modes. ## Colour Register Access — Low Nibble Protocol diff --git a/01_hardware/ecs_a600_a3000/ecs_registers_delta.md b/01_hardware/ecs_a600_a3000/ecs_registers_delta.md index df288ee..39c1ecd 100644 --- a/01_hardware/ecs_a600_a3000/ecs_registers_delta.md +++ b/01_hardware/ecs_a600_a3000/ecs_registers_delta.md @@ -44,11 +44,11 @@ move.w #$0A00, $DFF1DC ; VARBEAMEN + VARVSYEN (31 kHz VGA-like) ### BPLCON3 — $DFF106 (ECS Denise only) -New bitplane/sprite control register — see `chipset_ecs.md` for full bit definition. +New bitplane/sprite control register — see [chipset_ecs.md](chipset_ecs.md) for full bit definition. ### DENISEID — $DFF07C (read only, ECS+) -Chip identification — see `chipset_ecs.md`. +Chip identification — see [chipset_ecs.md](chipset_ecs.md). ## Changed / Extended Registers diff --git a/03_loader_and_exec_format/exe_load_pipeline.md b/03_loader_and_exec_format/exe_load_pipeline.md index b3cd697..5e0fdd7 100644 --- a/03_loader_and_exec_format/exe_load_pipeline.md +++ b/03_loader_and_exec_format/exe_load_pipeline.md @@ -233,7 +233,7 @@ Complete enumeration of all hunk type codes as defined in `NDK39: dos/doshunks.h | `$3EC` | 1004 | `HUNK_RELOC32` / `HUNK_ABSRELOC32` | Both | Absolute 32-bit address fixup table | Pairs of `(num_offsets, target_hunk)` followed by *num_offsets* longword byte-offsets; terminated by `num_offsets=0` | Each patch site: `*(ULONG*)(hunk_base+offset) += target_base`. Offsets must be longword-aligned. Unlimited entries. Most common reloc type. | | `$3ED` | 1005 | `HUNK_RELOC16` / `HUNK_RELRELOC16` | Obj | PC-relative or absolute 16-bit fixup | Same structure as HUNK_RELOC32 but patches a UWORD | Rarely generated. The 68k only supports 16-bit displacements in `Bcc`/`BSR`; linkers prefer PC-relative code instead. | | `$3EE` | 1006 | `HUNK_RELOC8` / `HUNK_RELRELOC8` | Obj | 8-bit fixup | Same structure, patches a UBYTE | Extremely rare. Only useful for short-branch offsets inside a single hunk. | -| `$3EF` | 1007 | `HUNK_EXT` | Obj | External symbol table (imports + exports) | Sequence of `(type_namelen, name, value/refs)` entries; terminated by longword `$00000000` | **Not present in executables** — linker resolves all externals into HUNK_RELOC32 at link time. See EXT_DEF, EXT_REF32, EXT_COMMON sub-types in `hunk_ext_deep_dive.md`. | +| `$3EF` | 1007 | `HUNK_EXT` | Obj | External symbol table (imports + exports) | Sequence of `(type_namelen, name, value/refs)` entries; terminated by longword `$00000000` | **Not present in executables** — linker resolves all externals into HUNK_RELOC32 at link time. See EXT_DEF, EXT_REF32, EXT_COMMON sub-types in [hunk_ext_deep_dive.md](hunk_ext_deep_dive.md). | | `$3F0` | 1008 | `HUNK_SYMBOL` | Both | Local (non-exported) symbol table for debugging | Pairs of `(name_len, name, value)`; terminated by `name_len=0` | Ignored by the OS loader; used only by debuggers (MonAm, wack, IDA). Strip with `slink NODBG` or `m68k-amigaos-strip --strip-debug`. No limit on entry count. | | `$3F1` | 1009 | `HUNK_DEBUG` | Both | Arbitrary debugger data block | 1 longword = size in longs; then *size×4* bytes of opaque data | First longword is often a format tag: `$3D415053` = SAS/C stabs, `$3D474343` = GCC stabs. Ignored by loader. Can hold DWARF, stabs, or proprietary data. | | `$3F2` | 1010 | `HUNK_END` | Both | Marks the end of one logical hunk | No data — bare type longword only | **Required** after every code/data/BSS + its reloc/symbol records. Loader advances to the next segment slot when this is seen. | diff --git a/05_reversing/case_studies/ramdrive_device.md b/05_reversing/case_studies/ramdrive_device.md index 1598652..d3b14d5 100644 --- a/05_reversing/case_studies/ramdrive_device.md +++ b/05_reversing/case_studies/ramdrive_device.md @@ -124,6 +124,6 @@ After loading Kickstart ROM in IDA with M68k + HUNK/ROM loader: ## References - NDK39: `exec/devices.h`, `exec/io.h`, `devices/trackdisk.h` -- `06_exec_os/io_requests.md` — IORequest structure and dispatch +- [io_requests.md](../../06_exec_os/io_requests.md) — IORequest structure and dispatch - `10_devices/trackdisk_device.md` — TD_* command codes - Kickstart 3.1 ROM dump (required for disassembly) diff --git a/05_reversing/dynamic/live_memory_probing.md b/05_reversing/dynamic/live_memory_probing.md index e909de6..45b7738 100644 --- a/05_reversing/dynamic/live_memory_probing.md +++ b/05_reversing/dynamic/live_memory_probing.md @@ -127,6 +127,6 @@ Permit(); ## References - NDK39: `exec/execbase.h`, `exec/memory.h`, `exec/tasks.h` -- `06_exec_os/exec_base.md` — full ExecBase offset table -- `06_exec_os/memory_management.md` — MemHeader structure -- `05_reversing/dynamic/setfunction_patching.md` — Forbid/Permit patterns +- [exec_base.md](../../06_exec_os/exec_base.md) — full ExecBase offset table +- [memory_management.md](../../06_exec_os/memory_management.md) — MemHeader structure +- [setfunction_patching.md](setfunction_patching.md) — Forbid/Permit patterns diff --git a/05_reversing/dynamic/serial_debug.md b/05_reversing/dynamic/serial_debug.md index 86504ab..5f6061a 100644 --- a/05_reversing/dynamic/serial_debug.md +++ b/05_reversing/dynamic/serial_debug.md @@ -114,5 +114,5 @@ MiSTer FPGA: the UART bridge is exposed on the MiSTer IO board or via the DE10-N ## References - NDK39: `exec/execbase.h` — `RawDoFmt`, `RawPutChar` LVOs -- `01_hardware/ocs_a500/paula_serial.md` — SERPER, SERDATR, SERDATW register details +- [paula_serial.md](../../01_hardware/ocs_a500/paula_serial.md) — SERPER, SERDATR, SERDATW register details - Aminet: `debug/misc/dprintf.lha` diff --git a/05_reversing/dynamic/setfunction_patching.md b/05_reversing/dynamic/setfunction_patching.md index 39716ce..dc32bfe 100644 --- a/05_reversing/dynamic/setfunction_patching.md +++ b/05_reversing/dynamic/setfunction_patching.md @@ -126,5 +126,5 @@ atexit(remove_hook); - NDK39: `exec/execbase.h` - ADCD 2.1: `SetFunction` autodoc -- `05_reversing/dynamic/live_memory_probing.md` — SysBase structure access +- [live_memory_probing.md](live_memory_probing.md) — SysBase structure access - *Amiga ROM Kernel Reference Manual: Libraries* — SetFunction chapter diff --git a/05_reversing/static/api_call_identification.md b/05_reversing/static/api_call_identification.md index c131f77..2ab53ac 100644 --- a/05_reversing/static/api_call_identification.md +++ b/05_reversing/static/api_call_identification.md @@ -231,7 +231,7 @@ So immediately before the JSR: | −552 | 552 | `OpenLibrary` | A1=name, D0=ver | D0=base | | −558 | 558 | `CloseLibrary` | A1=lib | — | -Full tables: [`04_linking_and_libraries/lvo_table.md`](../../../04_linking_and_libraries/lvo_table.md) +Full tables: [[lvo_table.md](../../04_linking_and_libraries/lvo_table.md)](../../../04_linking_and_libraries/lvo_table.md) --- @@ -290,7 +290,7 @@ If you encounter `JSR (-N,A6)` and don't know which library A6 holds: ## References - NDK39: `fd/` directory — all library `.fd` files (plain text, open in any editor) -- `04_linking_and_libraries/lvo_table.md` — formatted LVO tables +- [lvo_table.md](../../04_linking_and_libraries/lvo_table.md) — formatted LVO tables - `static/library_jmp_table.md` — JMP table layout and IDA scripting -- `04_linking_and_libraries/fd_files.md` — `.fd` file format specification +- [fd_files.md](../../04_linking_and_libraries/fd_files.md) — `.fd` file format specification - ADCD 2.1 Autodocs online: http://amigadev.elowar.com/read/ADCD_2.1/ diff --git a/05_reversing/static/library_jmp_table.md b/05_reversing/static/library_jmp_table.md index 54440ea..0f06c62 100644 --- a/05_reversing/static/library_jmp_table.md +++ b/05_reversing/static/library_jmp_table.md @@ -126,7 +126,7 @@ In IDA, this appears as `jsr ($fffffffe2,a6)` with displacement `-30` (`$FFFFFFE ## Common Library Bases and LVO Tables -See [`../../../04_linking_and_libraries/lvo_table.md`](../../../04_linking_and_libraries/lvo_table.md) for complete LVO offset tables for: +See [`../../../[lvo_table.md](../../04_linking_and_libraries/lvo_table.md)](../../../04_linking_and_libraries/lvo_table.md) for complete LVO offset tables for: - `exec.library` - `dos.library` - `graphics.library` @@ -137,6 +137,6 @@ See [`../../../04_linking_and_libraries/lvo_table.md`](../../../04_linking_and_l ## References - NDK39: `fd/` directory — all library `.fd` files -- `04_linking_and_libraries/lvo_table.md` +- [lvo_table.md](../../04_linking_and_libraries/lvo_table.md) - ADCD 2.1: `Libraries_Manual_guide/` - IDA Pro scripting: `idc.py` reference diff --git a/05_reversing/static/struct_recovery.md b/05_reversing/static/struct_recovery.md index 8c5ba63..8963ab4 100644 --- a/05_reversing/static/struct_recovery.md +++ b/05_reversing/static/struct_recovery.md @@ -132,6 +132,6 @@ MOVEA.L (lh_Head,A0), A1 ; first lib node ## References - NDK39: `exec/execbase.h`, `exec/tasks.h`, `exec/nodes.h`, `exec/io.h` -- `06_exec_os/exec_base.md` — full ExecBase field listing -- `06_exec_os/lists_nodes.md` — MinList/List traversal +- [exec_base.md](../../06_exec_os/exec_base.md) — full ExecBase field listing +- [lists_nodes.md](../../06_exec_os/lists_nodes.md) — MinList/List traversal - IDA Pro: Structure subview, Local Types, T hotkey for struct offset diff --git a/06_exec_os/interrupts.md b/06_exec_os/interrupts.md index b53ed1b..319ac1f 100644 --- a/06_exec_os/interrupts.md +++ b/06_exec_os/interrupts.md @@ -122,5 +122,5 @@ CIA interrupts are serviced via AddIntServer on `INTB_PORTS` (level 2, CIA-A) or - NDK39: `hardware/intbits.h`, `hardware/cia.h` - ADCD 2.1: `AddIntServer`, `RemIntServer`, `SetIntVector`, `Disable`, `Forbid` -- `01_hardware/common/cia_chips.md` — CIA timer and ICR details -- `01_hardware/ocs_a500/custom_registers.md` — INTENA/INTREQ register listing +- [cia_chips.md](../01_hardware/common/cia_chips.md) — CIA timer and ICR details +- [custom_registers.md](../01_hardware/ocs_a500/custom_registers.md) — INTENA/INTREQ register listing diff --git a/06_exec_os/library_system.md b/06_exec_os/library_system.md index 041b088..9413190 100644 --- a/06_exec_os/library_system.md +++ b/06_exec_os/library_system.md @@ -94,4 +94,4 @@ if (lib) printf("Found v%d\n", lib->lib_Version); - NDK39: `exec/libraries.h` - ADCD 2.1: `OpenLibrary`, `CloseLibrary`, `FindName` -- `04_linking_and_libraries/shared_libraries_runtime.md` — expunge lifecycle +- [shared_libraries_runtime.md](../04_linking_and_libraries/shared_libraries_runtime.md) — expunge lifecycle diff --git a/06_exec_os/library_vectors.md b/06_exec_os/library_vectors.md index 2a4804c..93ffa12 100644 --- a/06_exec_os/library_vectors.md +++ b/06_exec_os/library_vectors.md @@ -91,7 +91,7 @@ APTR SetFunction(struct Library *library, LONG funcOffset, APTR newFunction); old_write = SetFunction((struct Library *)DOSBase, -48, my_write_hook); ``` -See `05_reversing/dynamic/setfunction_patching.md` for trampoline patterns. +See [setfunction_patching.md](../05_reversing/dynamic/setfunction_patching.md) for trampoline patterns. --- @@ -121,5 +121,5 @@ If `LIBF_SUMUSED` is set, exec verifies the checksum at `CloseLibrary` time. Pat - NDK39: `exec/execbase.h`, `exec/libraries.h` - ADCD 2.1: `MakeFunctions`, `MakeLibrary`, `SetFunction`, `SumLibrary` -- `05_reversing/static/library_jmp_table.md` — reconstruction workflow -- `04_linking_and_libraries/lvo_table.md` — complete LVO reference tables +- [library_jmp_table.md](../05_reversing/static/library_jmp_table.md) — reconstruction workflow +- [lvo_table.md](../04_linking_and_libraries/lvo_table.md) — complete LVO reference tables diff --git a/06_exec_os/memory_management.md b/06_exec_os/memory_management.md index 88e2168..7a1c400 100644 --- a/06_exec_os/memory_management.md +++ b/06_exec_os/memory_management.md @@ -147,5 +147,5 @@ DeletePool(pool); /* LVO -714 */ - NDK39: `exec/memory.h`, `exec/execbase.h` - ADCD 2.1: `AllocMem`, `FreeMem`, `AllocVec`, `FreeVec`, `CreatePool` -- `01_hardware/common/address_space.md` — full address map +- [address_space.md](../01_hardware/common/address_space.md) — full address map - *Amiga ROM Kernel Reference Manual: Exec* — memory management chapter diff --git a/06_exec_os/signals.md b/06_exec_os/signals.md index 347d60e..4745d1f 100644 --- a/06_exec_os/signals.md +++ b/06_exec_os/signals.md @@ -128,5 +128,5 @@ DeleteMsgPort(port); - NDK39: `exec/tasks.h`, `exec/execbase.h` - ADCD 2.1: `AllocSignal`, `FreeSignal`, `Signal`, `Wait`, `SetSignal` -- `06_exec_os/tasks_processes.md` — tc_SigAlloc, tc_SigRecvd fields +- [tasks_processes.md](tasks_processes.md) — tc_SigAlloc, tc_SigRecvd fields - *Amiga ROM Kernel Reference Manual: Exec* — signals chapter diff --git a/07_dos/file_io.md b/07_dos/file_io.md index b941fc2..bf248ef 100644 --- a/07_dos/file_io.md +++ b/07_dos/file_io.md @@ -103,5 +103,5 @@ LONG err = IoErr(); /* LVO −66 — returns last DOS error code */ ## References - NDK39: `dos/dos.h`, `dos/dosextens.h` -- `07_dos/error_handling.md` — full error code list +- [error_handling.md](error_handling.md) — full error code list - ADCD 2.1: `Open`, `Close`, `Read`, `Write`, `Seek` diff --git a/07_dos/process_management.md b/07_dos/process_management.md index 246995c..525afd4 100644 --- a/07_dos/process_management.md +++ b/07_dos/process_management.md @@ -86,4 +86,4 @@ Child processes are independent tasks. To synchronize: - NDK39: `dos/dostags.h`, `dos/dosextens.h` - ADCD 2.1: `CreateNewProc`, `SystemTagList`, `Execute` -- `06_exec_os/tasks_processes.md` — Task/Process structures +- [tasks_processes.md](../06_exec_os/tasks_processes.md) — Task/Process structures diff --git a/08_graphics/blitter_programming.md b/08_graphics/blitter_programming.md index 3fce8d7..2e81455 100644 --- a/08_graphics/blitter_programming.md +++ b/08_graphics/blitter_programming.md @@ -253,5 +253,5 @@ DisownBlitter(); /* release */ ## References - HRM: *Blitter* chapter — complete register descriptions -- `01_hardware/ocs_a500/blitter.md` — hardware reference -- `08_graphics/blitter.md` — graphics.library BltBitMap API +- [blitter.md](../01_hardware/ocs_a500/blitter.md) — hardware reference +- [blitter.md](blitter.md) — graphics.library BltBitMap API diff --git a/08_graphics/copper_programming.md b/08_graphics/copper_programming.md index 8241552..d53e1cb 100644 --- a/08_graphics/copper_programming.md +++ b/08_graphics/copper_programming.md @@ -315,5 +315,5 @@ Reposition sprites mid-frame to display more than 8 sprites: ## References - HRM: *Copper* chapter — complete instruction encoding -- `01_hardware/ocs_a500/copper.md` — register-level reference -- `08_graphics/copper.md` — graphics.library UCopList API +- [copper.md](../01_hardware/ocs_a500/copper.md) — register-level reference +- [copper.md](copper.md) — graphics.library UCopList API diff --git a/09_intuition/windows.md b/09_intuition/windows.md index bf5870b..f63e451 100644 --- a/09_intuition/windows.md +++ b/09_intuition/windows.md @@ -94,4 +94,4 @@ CloseWindow(win); - NDK39: `intuition/intuition.h` - ADCD 2.1: `OpenWindowTagList`, `CloseWindow` -- `09_intuition/idcmp.md` — IDCMP message classes +- [idcmp.md](idcmp.md) — IDCMP message classes diff --git a/10_devices/input.md b/10_devices/input.md index 555d7f4..ee0044b 100644 --- a/10_devices/input.md +++ b/10_devices/input.md @@ -38,4 +38,4 @@ ## References - NDK39: `devices/input.h` -- `09_intuition/input_events.md` — handler installation example +- [input_events.md](../09_intuition/input_events.md) — handler installation example diff --git a/12_networking/bsdsocket.md b/12_networking/bsdsocket.md index 7bf5fc1..e6f3c9d 100644 --- a/12_networking/bsdsocket.md +++ b/12_networking/bsdsocket.md @@ -90,4 +90,4 @@ CloseSocket(sock); - NDK39: `libraries/bsdsocket.h` (stack-specific) - Roadshow SDK documentation -- `12_networking/sana2.md` — network device driver layer +- [sana2.md](sana2.md) — network device driver layer diff --git a/12_networking/protocols.md b/12_networking/protocols.md index 813132b..787208d 100644 --- a/12_networking/protocols.md +++ b/12_networking/protocols.md @@ -63,5 +63,5 @@ For MiSTer/FPGA cores with custom SANA-II drivers, DHCP is handled automatically ## References -- `12_networking/bsdsocket.md` — socket API reference -- `12_networking/tcp_ip_stacks.md` — stack configuration +- [bsdsocket.md](bsdsocket.md) — socket API reference +- [tcp_ip_stacks.md](tcp_ip_stacks.md) — stack configuration diff --git a/13_toolchain/fd_files.md b/13_toolchain/fd_files.md index b19d56e..858f1f9 100644 --- a/13_toolchain/fd_files.md +++ b/13_toolchain/fd_files.md @@ -200,4 +200,4 @@ Then in IDA: File → Script command → Run `all_lvos.py` ## References - NDK39: `fd/` directory -- `05_reversing/static/api_call_identification.md` — using LVOs in RE +- [api_call_identification.md](../05_reversing/static/api_call_identification.md) — using LVOs in RE diff --git a/13_toolchain/makefiles.md b/13_toolchain/makefiles.md index b3c1311..41b7c9b 100644 --- a/13_toolchain/makefiles.md +++ b/13_toolchain/makefiles.md @@ -93,5 +93,5 @@ myapp: main.o fastblit.o ## References -- `13_toolchain/gcc_amiga.md` — GCC setup -- `13_toolchain/vasm_vlink.md` — vasm/vlink setup +- [gcc_amiga.md](gcc_amiga.md) — GCC setup +- [vasm_vlink.md](vasm_vlink.md) — vasm/vlink setup diff --git a/13_toolchain/pragmas.md b/13_toolchain/pragmas.md index 4ecee2e..fab11d3 100644 --- a/13_toolchain/pragmas.md +++ b/13_toolchain/pragmas.md @@ -80,4 +80,4 @@ extern struct ExecBase *SysBase; ## References - NDK39: `pragmas/`, `inline/`, `proto/` directories -- `13_toolchain/fd_files.md` — FD file format +- [fd_files.md](fd_files.md) — FD file format diff --git a/14_references/error_codes.md b/14_references/error_codes.md index 341194c..9c035fb 100644 --- a/14_references/error_codes.md +++ b/14_references/error_codes.md @@ -2,7 +2,7 @@ # DOS Error Codes — Complete Reference -Duplicate of `07_dos/error_handling.md` error table — see that file for the full list with descriptions. +Duplicate of [error_handling.md](../07_dos/error_handling.md) error table — see that file for the full list with descriptions. This file is kept as a quick cross-reference entry point. diff --git a/14_references/exec_lvo_table.md b/14_references/exec_lvo_table.md index 0e41845..ff82c90 100644 --- a/14_references/exec_lvo_table.md +++ b/14_references/exec_lvo_table.md @@ -139,4 +139,4 @@ ## References - NDK39: `fd/exec_lib.fd` -- Use `parse_fd.py` from `13_toolchain/fd_files.md` to regenerate +- Use `parse_fd.py` from [fd_files.md](../13_toolchain/fd_files.md) to regenerate