📄 o65.inc
字号:
;*****************************************************************************/;* */;* o65.inc */;* */;* Definitions for the o65 file format */;* */;* */;* */;* (C) 2002 Ullrich von Bassewitz */;* Wacholderweg 14 */;* D-70597 Stuttgart */;* EMail: uz@musoftware.de */;* */;* */;* This software is provided 'as-is', without any expressed or implied */;* warranty. In no event will the authors be held liable for any damages */;* arising from the use of this software. */;* */;* Permission is granted to anyone to use this software for any purpose, */;* including commercial applications, and to alter it and redistribute it */;* freely, subject to the following restrictions: */;* */;* 1. The origin of this software must not be misrepresented; you must not */;* claim that you wrote the original software. If you use this software */;* in a product, an acknowledgment in the product documentation would be */;* appreciated but is not required. */;* 2. Altered source versions must be plainly marked as such, and must not */;* be misrepresented as being the original software. */;* 3. This notice may not be removed or altered from any source */;* distribution. */;* */;*****************************************************************************/; This files exports structures and constants to handle the o65 relocatable; file format as defined by Andre Fachat.; The o65 header structure (6502 format).struct O65_HDR MARKER .byte 2 ; Non-C64 marker: $01 $00 MAGIC .byte 3 ; o65 magic: "o65" VERSION .byte 1 ; Version number MODE .word ; Mode word TBASE .word ; Original text (code) segment address TLEN .word ; Size of text (code) segment DBASE .word ; Original data segment address DLEN .word ; Size of data segment BBASE .word ; Original bss segment address BLEN .word ; Size of bss segment ZBASE .word ; Original zp segment address ZLEN .word ; Size of zp segment STACK .word ; Stacksize needed.endstruct; Marker, magic and version numberO65_MARKER_0 = $01O65_MARKER_1 = $00O65_MAGIC_0 = $6F ; 'o'O65_MAGIC_1 = $36 ; '6'O65_MAGIC_2 = $35 ; '5'O65_VERSION = $00; Defines for the mode wordO65_CPU_65816 = $8000 ; Executable is for 65816O65_CPU_6502 = $0000 ; Executable is for the 6502O65_CPU_MASK = $8000 ; Mask to extract CPU typeO65_RELOC_PAGE = $4000 ; Page wise relocationO65_RELOC_BYTE = $0000 ; Byte wise relocationO65_RELOC_MASK = $4000 ; Mask to extract relocation typeO65_SIZE_32BIT = $2000 ; All size words are 32bitO65_SIZE_16BIT = $0000 ; All size words are 16bitO65_SIZE_MASK = $2000 ; Mask to extract sizeO65_FTYPE_OBJ = $1000 ; Object fileO65_FTYPE_EXE = $0000 ; Executable fileO65_FTYPE_MASK = $1000 ; Mask to extract typeO65_ADDR_SIMPLE = $0800 ; Simple addressingO65_ADDR_DEFAULT = $0000 ; Default addressingO65_ADDR_MASK = $0800 ; Mask to extract addressingO65_ALIGN_1 = $0000 ; Bytewise alignmentO65_ALIGN_2 = $0001 ; Align wordsO65_ALIGN_4 = $0002 ; Align longwordsO65_ALIGN_256 = $0003 ; Align pages (256 bytes)O65_ALIGN_MASK = $0003 ; Mask to extract alignment; The mode word as generated by the ld65 linkerO65_MODE_CC65 = O65_CPU_6502 | O65_RELOC_BYTE | O65_SIZE_16BIT | O65_FTYPE_EXE | O65_ADDR_SIMPLE | O65_ALIGN_1; Relocation type codesO65_RTYPE_WORD = $80O65_RTYPE_HIGH = $40O65_RTYPE_LOW = $20O65_RTYPE_SEGADDR = $C0O65_RTYPE_SEG = $A0O65_RTYPE_MASK = $E0; Segment IDsO65_SEGID_UNDEF = $00O65_SEGID_ABS = $01O65_SEGID_TEXT = $02O65_SEGID_DATA = $03O65_SEGID_BSS = $04O65_SEGID_ZP = $05O65_SEGID_MASK = $07; Option tagsO65_OPT_FILENAME = 0O65_OPT_OS = 1O65_OPT_ASM = 2O65_OPT_AUTHOR = 3O65_OPT_TIMESTAMP = 4; Operating system codes for O65_OPT_OSO65_OS_OSA65 = 1O65_OS_LUNIX = 2O65_OS_CC65 = 3O65_OS_OPENCBM = 4; Load errorsO65_LOAD_OK = 0 ; Module load successfulO65_LOAD_ERR_READ = 1 ; Read errorO65_LOAD_ERR_HDR = 2 ; Header errorO65_LOAD_ERR_OS = 3 ; Wrong OSO65_LOAD_ERR_FMT = 4 ; Data format errorO65_LOAD_ERR_MEM = 5 ; Not enough memory
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -