From 18781e0d2111bfa87b8224e203922a7cb6fcfc59 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Wed, 1 May 2024 15:31:33 -0400 Subject: xex(5): tweak. --- xex.rst | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'xex.rst') diff --git a/xex.rst b/xex.rst index 39d32d9..c6abda8 100644 --- a/xex.rst +++ b/xex.rst @@ -132,29 +132,29 @@ This will create a binary file that looks like this:: This is a complete (though short) XEX file, and it can be loaded from the DOS menu (or D1: prompt, if you use a command-line-based DOS). -The first 2 bytes ($FF, $FF) are the signature for the initial +The first 2 bytes (**$FF**, **$FF**) are the signature for the initial segment header. -The next 2 bytes ($00, $06) are the load address of the first segment -($0600, in 6502-style LSB-first notation). +The next 2 bytes (**$00**, **$06**) are the load address of the first segment +(**$0600**, in 6502-style LSB-first notation). -The next 2 bytes ($0A, $06) are the end address ($060A). +The next 2 bytes (**$0A**, **$06**) are the end address (**$060A**). -Since the header says to load data from $0600 to $060A, there are 11 -data bytes in the segment, beginning with $A9, $00 (the 6502 object -code for the *LDA #0* instruction), and extending to the $60 (RTS +Since the header says to load data from **$0600** to **$060A**, there are 11 +data bytes in the segment, beginning with **$A9**, **$00** (the 6502 object +code for the *LDA #0* instruction), and extending to the **$60** (*RTS* opcode) at offset 16. The data from the first segment is immediately followed by the header -of the next segment, at offset 17. A $FF, $FF signature would be allowed +of the next segment, at offset 17. A **$FF**, **$FF** signature would be allowed here, but in the example, the 2nd segment uses the 4-byte header. -At offset 17, the $E0, $02 (aka $02E0) is the load address. $E1, $02 -($02E1) is the end address. $02E0/$02E1 is known as *RUNAD* in the +At offset 17, the **$E0**, **$02** (aka **$02E0**) is the load address. **$E1**, **$02** +(**$02E1**) is the end address. **$02E0**, **$02E1** is known as *RUNAD* in the Atari world, and it's the address where DOS will find the entry point to the program when it's done being loaded. -The next (and last) 2 bytes are $00, $06 (aka $0600), which is the run +The next (and last) 2 bytes are **$00**, **$06** (aka **$0600**), which is the run address itself (to be deposited at *RUNAD*). There are no more segments, since we've reached end of file. @@ -182,12 +182,12 @@ The binary looks like this:: ff ff C5 02 C6 02 0F 00 -The file begins with $FF, $FF header, then the 2-byte load address -($C5, $02 for address $02C5), then the 2-byte end address ($C6, $02, -aka $02C6), then the 2 bytes of data to be stored there ($0F, $00). +The file begins with **$FF**, **$FF** header, then the 2-byte load address +(**$C5**, **$02** for address **$02C5**), then the 2-byte end address (**$C6**, **$02**, +aka **$02C6**), then the 2 bytes of data to be stored there (**$0F**, **$00**). -When loaded, this will store $0F at address $02C5 (aka *COLOR0*, -the text luminance in *GRAPHICS 0*) and $00 at $02C6 (*COLOR1*, the +When loaded, this will store **$0F** at address **$02C5** (aka *COLOR0*, +the text luminance in *GRAPHICS 0*) and **$00** at **$02C6** (*COLOR1*, the *GRAPHICS 0* background color). Notice that there's no run or init address. That's because no code is -- cgit v1.2.3