mirror of
https://github.com/cc65/cc65.git
synced 2025-01-12 17:30:50 +00:00
Interruptor support for all systems.
New HEAP segment. Both changes by Greg King. git-svn-id: svn://svn.cc65.org/cc65/trunk@3481 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
deab71739a
commit
fa3e713cc7
@ -12,6 +12,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -23,6 +24,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -12,6 +12,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -23,6 +24,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -11,6 +11,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
AUTOSTRT: load = RAM, type = ro;
|
AUTOSTRT: load = RAM, type = ro;
|
||||||
}
|
}
|
||||||
@ -23,6 +24,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -12,6 +12,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -23,6 +24,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -10,6 +10,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -21,6 +22,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -10,6 +10,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -21,7 +22,6 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
# condes functions with type 2 are called in the interrupt
|
|
||||||
CONDES: segment = RODATA,
|
CONDES: segment = RODATA,
|
||||||
type = interruptor,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
@ -10,6 +10,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -21,6 +22,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -10,6 +10,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -21,7 +22,6 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
# condes functions with type 2 are called in the interrupt
|
|
||||||
CONDES: segment = RODATA,
|
CONDES: segment = RODATA,
|
||||||
type = interruptor,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
@ -19,6 +19,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
EXTZP: load = ZP, type = rw, define = yes;
|
EXTZP: load = ZP, type = rw, define = yes;
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
EXTZP: load = ZP, type = rw, define = yes;
|
EXTZP: load = ZP, type = rw, define = yes;
|
||||||
}
|
}
|
||||||
@ -29,7 +30,6 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
# condes functions with type 2 are called in the interrupt
|
|
||||||
CONDES: segment = RODATA,
|
CONDES: segment = RODATA,
|
||||||
type = interruptor,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
@ -12,6 +12,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
EXTZP: load = ZP, type = zp;
|
EXTZP: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
@ -24,6 +25,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $400; # 1K stack
|
__STACKSIZE__ = $400; # 1K stack
|
||||||
|
@ -22,6 +22,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
FILES {
|
FILES {
|
||||||
%O: format = o65;
|
%O: format = o65;
|
||||||
|
@ -12,6 +12,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
EXTZP: load = ZP, type = zp, optional = yes;
|
EXTZP: load = ZP, type = zp, optional = yes;
|
||||||
APPZP: load = ZP, type = zp, optional = yes;
|
APPZP: load = ZP, type = zp, optional = yes;
|
||||||
|
@ -43,6 +43,7 @@ SEGMENTS {
|
|||||||
VECTORS: load = ROMV, type = rw;
|
VECTORS: load = ROMV, type = rw;
|
||||||
CHARS: load = ROM2, type = rw;
|
CHARS: load = ROM2, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes;
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,6 +56,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
|
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
|
@ -9,6 +9,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = rw;
|
RODATA: load = RAM, type = rw;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -20,6 +21,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -9,6 +9,7 @@ SEGMENTS {
|
|||||||
RODATA: load = COMBINED, type = ro;
|
RODATA: load = COMBINED, type = ro;
|
||||||
DATA: load = COMBINED, type = rw, define = yes;
|
DATA: load = COMBINED, type = rw, define = yes;
|
||||||
BSS: load = COMBINED, type = bss, define = yes;
|
BSS: load = COMBINED, type = bss, define = yes;
|
||||||
|
HEAP: load = COMBINED, type = bss, optional = yes;
|
||||||
ZEROPAGE: load = ZEROPAGE, type = zp;
|
ZEROPAGE: load = ZEROPAGE, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -20,12 +21,18 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
FILES {
|
FILES {
|
||||||
%O: format = o65;
|
%O: format = o65;
|
||||||
}
|
}
|
||||||
FORMATS {
|
FORMATS {
|
||||||
o65: os = osa65, type = small, extsym = "OSA2KERNAL", extsym = "LIB6502";
|
o65: os = osa65, type = small,
|
||||||
|
import = OSA2KERNAL,
|
||||||
|
import = LIB6502;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -10,6 +10,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -21,6 +22,10 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
__STACKSIZE__ = $800; # 2K stack
|
__STACKSIZE__ = $800; # 2K stack
|
||||||
|
@ -10,6 +10,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -21,7 +22,6 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
# condes functions with type 2 are called in the interrupt
|
|
||||||
CONDES: segment = RODATA,
|
CONDES: segment = RODATA,
|
||||||
type = interruptor,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
@ -19,6 +19,7 @@ SEGMENTS {
|
|||||||
FFF0: load = ROM, type = ro, offset = $7FF0;
|
FFF0: load = ROM, type = ro, offset = $7FF0;
|
||||||
VECTOR: load = ROM, type = ro, offset = $7FFA;
|
VECTOR: load = ROM, type = ro, offset = $7FFA;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp, define = yes;
|
ZEROPAGE: load = ZP, type = zp, define = yes;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,4 +32,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
|
@ -31,5 +31,6 @@ SEGMENTS {
|
|||||||
ZEROPAGE: load = RAM, type = bss, define = yes;
|
ZEROPAGE: load = RAM, type = bss, define = yes;
|
||||||
DATA: load = RAM, type = bss, offset = $0200, define = yes;
|
DATA: load = RAM, type = bss, offset = $0200, define = yes;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
VECTOR: load = ROM, type = ro, offset = $3FFA;
|
VECTOR: load = ROM, type = ro, offset = $3FFA;
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ SEGMENTS {
|
|||||||
FFF0: load = ROM, type = ro, offset = $3FF0;
|
FFF0: load = ROM, type = ro, offset = $3FF0;
|
||||||
VECTOR: load = ROM, type = ro, offset = $3FFA;
|
VECTOR: load = ROM, type = ro, offset = $3FFA;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp, define = yes;
|
ZEROPAGE: load = ZP, type = zp, define = yes;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -30,5 +31,9 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
|
CONDES: type = interruptor,
|
||||||
|
segment = RODATA,
|
||||||
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,5 +24,6 @@ SEGMENTS {
|
|||||||
ZEROPAGE: load = RAM, type = bss, define = yes;
|
ZEROPAGE: load = RAM, type = bss, define = yes;
|
||||||
DATA: load = RAM, type = bss, offset = $0200, define = yes;
|
DATA: load = RAM, type = bss, offset = $0200, define = yes;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
VECTOR: load = ROM, type = ro, offset = $3FFA;
|
VECTOR: load = ROM, type = ro, offset = $3FFA;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ SEGMENTS {
|
|||||||
RODATA: load = RAM, type = ro;
|
RODATA: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
HEAP: load = RAM, type = bss, optional = yes; # must sit just below stack
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
@ -21,7 +22,6 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
# condes functions with type 2 are called in the interrupt
|
|
||||||
CONDES: segment = RODATA,
|
CONDES: segment = RODATA,
|
||||||
type = interruptor,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user