The vector's number goes beside its kind, not at the end of the line
Kind and Number together are what names a thing: Vector 16 and Device 32 are identifiers in a way that Vector on its own is not. Everything after them - where it lives, what it is called, where it was written - says something about it rather than naming it, so with the number at the far end a line opened with a bare kind and closed with the fact that would have told you what you were reading. Fields are now Kind, Number, Address, Name, File, Line. A label still carries a dash where its number would be, which reads as "this kind is not numbered" rather than as a field that went missing. Manual and the docs check follow. Verified with break.sh by swapping the number and the address back. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
This commit is contained in:
co-authored by
Claude Opus 5
parent
f3d8985bc4
commit
7dca141aae
@@ -430,21 +430,23 @@ Every option above that takes a \<file\> names a file the assembler WRITES, and
|
||||
| Field | Meaning |
|
||||
| -- | -- |
|
||||
| Kind | Program, Data, Vector or Device. |
|
||||
| Number | Which vector it is: the vector number, or the port for a device. A label has no number and the field is a dash. |
|
||||
| Address | Four hexadecimal digits: where the thing lives. For a label, the address it was given. For a vector, the slot in the vector table that holds its handler's address. |
|
||||
| Name | The label, or the vector's name. A device has no name of its own, so it is listed under its handler. |
|
||||
| File | The source file it was written in, named the way the assembler was given it. |
|
||||
| Line | Which line of that file, counting from one. |
|
||||
| Number | Which vector it is: the vector number, or the port for a device. A label has no number and the field is a dash. |
|
||||
|
||||
```
|
||||
Program 5000 start game.asm 31 -
|
||||
Program 670D int16add Libraries/math.asm 5 -
|
||||
Vector FC20 osPrintString services.asm 24 16
|
||||
Vector FC80 gameFrame game.asm 402 64
|
||||
Device FE40 diskDone system.asm 812 32
|
||||
Data 3000 Score game.asm 118 -
|
||||
Program - 5000 start game.asm 31
|
||||
Program - 670D int16add Libraries/math.asm 5
|
||||
Vector 16 FC20 osPrintString services.asm 24
|
||||
Vector 64 FC80 gameFrame game.asm 402
|
||||
Device 32 FE40 diskDone system.asm 812
|
||||
Data - 3000 Score game.asm 118
|
||||
```
|
||||
|
||||
The kind and the number sit together at the front because the two of them are what names the thing: Vector 16 and Device 32 are identifiers in a way that Vector on its own is not. Everything after them says something about it rather than naming it, so a line reads as a thing followed by what is known about it.
|
||||
|
||||
Tabs rather than aligned columns, so that the file is a table every ordinary tool already reads without being taught anything, and no heading line, so that nothing has to know to skip one. The file field is what makes it worth having on a big program: a name defined once and called in forty places is hard to find by searching, and this says where it was written.
|
||||
|
||||
The kind comes first because Program and Data are separate memories on this machine, so an address on its own does not say where something is. In a loadable program the two segments are usually based far enough apart that the difference is easy to overlook. In a boot image both start at 0x0000, and every address in the table appears twice.
|
||||
|
||||
Reference in New Issue
Block a user