mirror of
https://github.com/alfishe/amiga-bootcamp.git
synced 2026-06-13 00:26:28 +00:00
More content added
This commit is contained in:
parent
5fac29ccd5
commit
8133b3a6cb
90 changed files with 7794 additions and 705 deletions
|
|
@ -52,7 +52,7 @@ graph LR
|
|||
| 10 | `$028` | Line-A Emulator | Unused (available for soft traps) |
|
||||
| 11 | `$02C` | Line-F Emulator | 68040/060.library FPU emulation |
|
||||
| 12–14 | `$030–$038` | Reserved | — |
|
||||
| 15 | `$03C` | Uninitialised Interrupt | Alert |
|
||||
| 15 | `$03C` | Uninitialized Interrupt | Alert |
|
||||
| 24 | `$060` | Spurious Interrupt | Ignored |
|
||||
| 25–31 | `$064–$07C` | Auto-vector interrupts 1–7 | Exec interrupt dispatcher |
|
||||
| 32–47 | `$080–$0BC` | TRAP #0–#15 | User-installable traps |
|
||||
|
|
|
|||
|
|
@ -117,9 +117,9 @@ if (!DOSBase)
|
|||
|
||||
1. **Scan `SysBase→LibList`** for a node whose `ln_Name` matches
|
||||
2. **If not found**: search the resident module list (`FindResident`)
|
||||
3. **If not resident**: search `LIBS:` assign path, `LoadSeg` the file, find RomTag, initialise
|
||||
3. **If not resident**: search `LIBS:` assign path, `LoadSeg` the file, find RomTag, initialize
|
||||
4. **Check version**: `lib_Version >= requestedVersion`?
|
||||
5. **Call library's `Open()` vector** — library-specific initialisation, `lib_OpenCnt++`
|
||||
5. **Call library's `Open()` vector** — library-specific initialization, `lib_OpenCnt++`
|
||||
6. **Return** library base pointer (or NULL on failure)
|
||||
|
||||
### Closing
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ struct Library *MakeLibrary(
|
|||
); /* LVO -84 */
|
||||
```
|
||||
|
||||
This combines allocation, JMP table construction, data initialisation, and init-function calling into one operation. Used by `RTF_AUTOINIT` modules and direct library creation.
|
||||
This combines allocation, JMP table construction, data initialization, and init-function calling into one operation. Used by `RTF_AUTOINIT` modules and direct library creation.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ struct MinList {
|
|||
|
||||
---
|
||||
|
||||
## Initialising a List
|
||||
## Initializing a List
|
||||
|
||||
```c
|
||||
struct List myList;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
## Overview
|
||||
|
||||
AmigaOS ROM and disk-resident modules (libraries, devices, resources) identify themselves via a **RomTag** structure. At boot, exec scans the Kickstart ROM and any loaded segments for RomTags and initialises every module it finds. The RomTag system is how the kernel discovers and bootstraps itself — exec.library, graphics.library, dos.library, and all ROM-resident code use this mechanism.
|
||||
AmigaOS ROM and disk-resident modules (libraries, devices, resources) identify themselves via a **RomTag** structure. At boot, exec scans the Kickstart ROM and any loaded segments for RomTags and initializes every module it finds. The RomTag system is how the kernel discovers and bootstraps itself — exec.library, graphics.library, dos.library, and all ROM-resident code use this mechanism.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ struct Resident {
|
|||
UBYTE rt_Flags; /* RTF_* flags */
|
||||
UBYTE rt_Version; /* module version number */
|
||||
UBYTE rt_Type; /* NT_LIBRARY, NT_DEVICE, NT_RESOURCE, ... */
|
||||
BYTE rt_Pri; /* initialisation priority (higher = earlier) */
|
||||
BYTE rt_Pri; /* initialization priority (higher = earlier) */
|
||||
char *rt_Name; /* module name string, e.g. "dos.library" */
|
||||
char *rt_IdString; /* human-readable ID, e.g. "dos.library 40.1" */
|
||||
APTR rt_Init; /* init function or InitTable pointer */
|
||||
|
|
@ -97,7 +97,7 @@ struct Resident {
|
|||
|
||||
---
|
||||
|
||||
## RTF_AUTOINIT — Automatic Initialisation
|
||||
## RTF_AUTOINIT — Automatic Initialization
|
||||
|
||||
When `RTF_AUTOINIT` is set, `rt_Init` points to an `InitTable`:
|
||||
|
||||
|
|
@ -143,7 +143,7 @@ UWORD dataTable[] = {
|
|||
|
||||
## ROM Scan at Boot
|
||||
|
||||
During exec initialisation:
|
||||
During exec initialization:
|
||||
|
||||
1. Walk from Kickstart base (`$F80000` for 512K ROM, `$FC0000` for 256K) upward
|
||||
2. Search for the `$4AFC` magic word at even addresses
|
||||
|
|
|
|||
|
|
@ -60,10 +60,10 @@ struct SignalSemaphore {
|
|||
|
||||
---
|
||||
|
||||
## Initialising a Semaphore
|
||||
## Initializing a Semaphore
|
||||
|
||||
```c
|
||||
/* Stack or heap — always initialise before use: */
|
||||
/* Stack or heap — always initialize before use: */
|
||||
struct SignalSemaphore sem;
|
||||
InitSemaphore(&sem); /* LVO -558 */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue