mirror of
https://github.com/alfishe/amiga-bootcamp.git
synced 2026-06-12 16:16:28 +00:00
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.
This commit is contained in:
parent
551ebda2b1
commit
fca930d0db
29 changed files with 46 additions and 46 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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. |
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue