- No more HEAP segment
- RAM reduced by __STACKSIZE__ - Unified formatting git-svn-id: svn://svn.cc65.org/cc65/trunk@4633 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -3,12 +3,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0803;
|
STARTADDRESS: default = $0803;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $9600 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D000, size = $3000, define = yes;
|
LC: define = yes, start = $D000, size = $3000;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -32,11 +35,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,12 +3,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0800;
|
STARTADDRESS: default = $0800;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $BF00 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D400, size = $0C00, define = yes;
|
LC: define = yes, start = $D400, size = $0C00;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -32,11 +35,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,12 +4,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0800;
|
STARTADDRESS: default = $0800;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $BF00 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D000, size = $1000, define = yes;
|
LC: define = yes, start = $D000, size = $1000;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -33,11 +36,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
# Configuration for ProDOS 8 system programs (without the header)
|
# Configuration for ProDOS 8 system programs (without the header)
|
||||||
|
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = "";
|
HEADER: file = "", start = $0000, size = $0004;
|
||||||
RAM: start = $2000, size = $9F00, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D400, size = $0C00, define = yes;
|
LC: define = yes, start = $D400, size = $0C00;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -29,11 +32,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,12 +3,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0803;
|
STARTADDRESS: default = $0803;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $9600 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D400, size = $0C00, define = yes;
|
LC: define = yes, start = $D400, size = $0C00;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -32,11 +35,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,12 +3,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0803;
|
STARTADDRESS: default = $0803;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $9600 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D000, size = $3000, define = yes;
|
LC: define = yes, start = $D000, size = $3000;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -32,11 +35,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,12 +3,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0800;
|
STARTADDRESS: default = $0800;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $BF00 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D400, size = $0C00, define = yes;
|
LC: define = yes, start = $D400, size = $0C00;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -32,11 +35,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,12 +4,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0800;
|
STARTADDRESS: default = $0800;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $BF00 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D000, size = $1000, define = yes;
|
LC: define = yes, start = $D000, size = $1000;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -33,11 +36,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
# Configuration for ProDOS 8 system programs (without the header)
|
# Configuration for ProDOS 8 system programs (without the header)
|
||||||
|
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = "";
|
HEADER: file = "", start = $0000, size = $0004;
|
||||||
RAM: start = $2000, size = $9F00, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D400, size = $0C00, define = yes;
|
LC: define = yes, start = $D400, size = $0C00;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -29,11 +32,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,12 +3,15 @@
|
|||||||
FEATURES {
|
FEATURES {
|
||||||
STARTADDRESS: default = $0803;
|
STARTADDRESS: default = $0803;
|
||||||
}
|
}
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $001A, define = yes;
|
ZP: define = yes, start = $0080, size = $001A;
|
||||||
HEADER: start = $0000, size = $0004, file = %O;
|
HEADER: file = %O, start = $0000, size = $0004;
|
||||||
RAM: start = %S, size = $9600 - %S, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S;
|
||||||
MOVE: start = $0000, size = $FFFF, file = %O, define = yes;
|
MOVE: file = %O, define = yes, start = $0000, size = $FFFF;
|
||||||
LC: start = $D400, size = $0C00, define = yes;
|
LC: define = yes, start = $D400, size = $0C00;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
@@ -32,11 +35,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ SYMBOLS {
|
|||||||
__RESERVED_MEMORY__: value = $0000, weak = yes;
|
__RESERVED_MEMORY__: value = $0000, weak = yes;
|
||||||
}
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0082, size = $007E, type = rw, define = yes;
|
ZP: define = yes, start = $0082, size = $007E;
|
||||||
HEADER: start = $0000, size = $0006, file = %O;
|
HEADER: file = %O, start = $0000, size = $0006;
|
||||||
RAM: start = %S, size = $BC20 - __STACKSIZE__ - %S, file = %O;
|
RAM: file = %O, start = %S, size = $BC20 - __STACKSIZE__ - %S;
|
||||||
TRAILER: start = $0000, size = $0006, file = %O;
|
TRAILER: file = %O, start = $0000, size = $0006;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -21,7 +21,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss, define = yes;
|
ZPSAVE: load = RAM, type = bss, 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
|
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
EXTZP: load = ZP, type = zp, optional = yes;
|
EXTZP: load = ZP, type = zp, optional = yes;
|
||||||
AUTOSTRT: load = TRAILER, type = ro;
|
AUTOSTRT: load = TRAILER, type = ro;
|
||||||
@@ -35,8 +34,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $00E2, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $00E2, size = $001A;
|
||||||
TAPEHDR: start = $0000, size = $000E, type = ro, file = %O;
|
TAPEHDR: file = %O, type = ro, start = $0000, size = $000E;
|
||||||
RAM: start = $0500, size = $9300, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = $0500, size = $9300 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
TAPEHDR: load = TAPEHDR, type = ro;
|
TAPEHDR: load = TAPEHDR, type = ro;
|
||||||
@@ -13,7 +16,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -25,14 +27,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0070, size = $0020, type = rw, define = yes;
|
ZP: define = yes, start = $0070, size = $0020;
|
||||||
RAM: start = $0E00, size = $7200, file = %O;
|
RAM: file = %O, start = $0E00, size = $7200 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
STARTUP: load = RAM, type = ro, define = yes;
|
STARTUP: load = RAM, type = ro, define = yes;
|
||||||
@@ -10,7 +13,6 @@ 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 {
|
||||||
@@ -22,13 +24,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $0002, size = $001A;
|
||||||
HEADER: start = $1BFF, size = $000E, file = %O;
|
HEADER: file = %O, start = $1BFF, size = $000E;
|
||||||
RAM: start = $1C0D, size = $A3F3, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = $1C0D, size = $A3F3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -13,7 +16,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -30,6 +32,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $0002, size = $001A;
|
||||||
HEADER: start = $0FFF, size = $000E, file = %O;
|
HEADER: file = %O, start = $0FFF, size = $000E;
|
||||||
RAM: start = $100D, size = $6FF3, file = %O;
|
RAM: file = %O, start = $100D, size = $6FF3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -13,7 +16,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -25,11 +27,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $0002, size = $001A;
|
||||||
HEADER: start = $07FF, size = $000E, file = %O;
|
HEADER: file = %O, start = $07FF, size = $000E;
|
||||||
RAM: start = $080D, size = $C7F3, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = $080D, size = $C7F3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -13,7 +16,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -30,8 +32,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0781, weak = yes; # ~2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
HEADER: start = $0001, size = $0050, fill = yes, fillval = 0, type = rw, file = %O;
|
HEADER: file = %O, start = $0001, size = $0050, fill = yes;
|
||||||
ZP: start = $0051, size = $00AD, fill = yes, fillval = 0, type = rw, file = %O, define = yes;
|
ZP: file = %O, define = yes, start = $0051, size = $00AD, fill = yes;
|
||||||
STARTUP: start = $00FE, size = $0102, fill = yes, fillval = 0, file = %O;
|
STARTUP: file = %O, start = $00FE, size = $0102, fill = yes;
|
||||||
PAGE2: start = $0200, size = $0100, fill = yes, fillval = 0, file = %O;
|
PAGE2: file = %O, start = $0200, size = $0100, fill = yes;
|
||||||
PAGE3: start = $0300, size = $0100, fill = yes, fillval = 0, file = %O;
|
PAGE3: file = %O, start = $0300, size = $0100, fill = yes;
|
||||||
RAM: start = $0400, size = $DC00, file = %O;
|
RAM: file = %O, start = $0400, size = $DC00 - __STACKSIZE__;
|
||||||
CHARRAM: start = $E000, size = $1000, define = yes, file = "";
|
CHARRAM: file = "", define = yes, start = $E000, size = $1000;
|
||||||
VIDRAM: start = $F000, size = $0400, define = yes, file = "";
|
VIDRAM: file = "", define = yes, start = $F000, size = $0400;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = rw;
|
EXEHDR: load = HEADER, type = rw;
|
||||||
@@ -19,7 +22,6 @@ 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;
|
||||||
}
|
}
|
||||||
@@ -37,6 +39,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0781, weak = yes; # ~2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
HEADER: start = $0001, size = $0050, type = rw, fill = yes, fillval = 0, file = %O;
|
HEADER: file = %O, start = $0001, size = $0050, fill = yes;
|
||||||
ZP: start = $0051, size = $00AD, type = rw, define = yes, fill = yes, fillval = 0, file = %O;
|
ZP: file = %O, define = yes, start = $0051, size = $00AD, fill = yes;
|
||||||
STARTUP: start = $00FE, size = $0102, fill = yes, fillval = 0, file = %O;
|
STARTUP: file = %O, start = $00FE, size = $0102, fill = yes;
|
||||||
PAGE2: start = $0200, size = $0100, fill = yes, fillval = 0, file = %O;
|
PAGE2: file = %O, start = $0200, size = $0100, fill = yes;
|
||||||
PAGE3: start = $0300, size = $0100, fill = yes, fillval = 0, file = %O;
|
PAGE3: file = %O, start = $0300, size = $0100, fill = yes;
|
||||||
RAM: start = $0400, size = $FAAE, file = %O;
|
RAM: file = %O, start = $0400, size = $FAAE - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = rw;
|
EXEHDR: load = HEADER, type = rw;
|
||||||
@@ -17,7 +20,6 @@ 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;
|
||||||
}
|
}
|
||||||
@@ -35,6 +37,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0058, size = $0028, type = rw, define = yes;
|
ZP: define = yes, start = $0058, size = $0028;
|
||||||
HEADER: start = $0204, size = $01FC, file = %O;
|
HEADER: file = %O, start = $0204, size = $01FC;
|
||||||
RAM: start = $0400, size = $5C00, define = yes, file = %O;
|
RAM: file = %O, define = yes, start = $0400, size = $5C00 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
HEADER: load = HEADER, type = ro;
|
HEADER: load = HEADER, type = ro;
|
||||||
@@ -12,7 +15,6 @@ 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;
|
||||||
}
|
}
|
||||||
@@ -25,11 +27,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
# ld65 Linker-configuration for LUnix, Next Generation.
|
# ld65 Linker-configuration for LUnix, Next Generation.
|
||||||
|
|
||||||
|
SYMBOLS {
|
||||||
|
__HEAPSIZE__: value = $2000, weak = yes; # 8k heap [temporary, until LUnix malloc() exists]
|
||||||
|
__STACKSIZE__: value = $0400, weak = yes; # 1k stack (do typical LUnix apps. need 2k?)
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0080, size = $0040; # userzp buffer
|
ZP: start = $0080, size = $0040;
|
||||||
RAM: start = %S, size = $7600;
|
RAM: start = %S, size = $7600 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp, define = yes; # Pseudo-registers
|
ZEROPAGE: load = ZP, type = zp, define = yes; # Pseudo-registers
|
||||||
STARTUP: load = RAM, type = ro; # First initiation code
|
STARTUP: load = RAM, type = ro; # First initialization code
|
||||||
LOWCODE: load = RAM, type = ro, optional = yes; # Legacy from other platforms
|
LOWCODE: load = RAM, type = ro, optional = yes; # Legacy from other platforms
|
||||||
INIT: load = RAM, type = ro, define = yes, optional = yes;
|
INIT: load = RAM, type = ro, define = yes, optional = yes; # Library initialization code
|
||||||
CODE: load = RAM, type = ro; # Program
|
CODE: load = RAM, type = ro; # Program
|
||||||
RODATA: load = RAM, type = ro; # Literals, constants
|
RODATA: load = RAM, type = ro; # Literals, constants
|
||||||
DATA: load = RAM, type = rw; # Initialized variables
|
DATA: load = RAM, type = rw; # Initialized variables
|
||||||
@@ -22,8 +27,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
@@ -31,11 +36,8 @@ FILES {
|
|||||||
%O: format = o65;
|
%O: format = o65;
|
||||||
}
|
}
|
||||||
FORMATS {
|
FORMATS {
|
||||||
o65: os = lunix, type = small,
|
o65: os = lunix,
|
||||||
|
type = small,
|
||||||
export = main, # Program entry-point
|
export = main, # Program entry-point
|
||||||
import = LUNIXKERNEL; # Kernel entry-points
|
import = LUNIXKERNEL; # Kernel entry-points
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__HEAPSIZE__: value = $2000, weak = yes; # 8k heap [temporary, until LUnix malloc() exists]
|
|
||||||
__STACKSIZE__: value = $0400, weak = yes; # 1k stack (do typical LUnix apps. need 2k?)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0000, size = $0100, type = rw, define = yes;
|
ZP: define = yes, start = $0000, size = $0100;
|
||||||
HEADER: start = $0000, size = $000A, file = %O;
|
HEADER: file = %O, start = $0000, size = $000A;
|
||||||
RAM: start = $0400, size = $BC38, define = yes, file = %O;
|
RAM: file = %O, define = yes, start = $0400, size = $BC38 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -12,7 +15,6 @@ 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;
|
||||||
@@ -31,6 +33,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ FILES {
|
|||||||
%O: format = o65;
|
%O: format = o65;
|
||||||
}
|
}
|
||||||
FORMATS {
|
FORMATS {
|
||||||
o65: os = cc65, type = small;
|
o65: os = cc65,
|
||||||
|
type = small;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,21 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0300, weak = yes; # 3 pages stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
|
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
||||||
ZP: start = $02, size = $1A, type = rw, define = yes;
|
|
||||||
|
|
||||||
# INES Cartridge Header
|
# INES Cartridge Header
|
||||||
HEADER: start = $0, size = $10, file = %O ,fill = yes;
|
HEADER: start = $0000, size = $0010, file = %O, fill = yes;
|
||||||
|
|
||||||
# 2 16K ROM Banks
|
# 2 16K ROM Banks
|
||||||
# - startup
|
# - startup
|
||||||
# - code
|
# - code
|
||||||
# - rodata
|
# - rodata
|
||||||
# - data (load)
|
# - data (load)
|
||||||
ROM0: start = $8000, size = $7ff4, file = %O ,fill = yes, define = yes;
|
ROM0: start = $8000, size = $7FF4, file = %O, fill = yes, define = yes;
|
||||||
|
|
||||||
# Hardware Vectors at End of 2nd 8K ROM
|
# Hardware Vectors at End of 2nd 8K ROM
|
||||||
ROMV: start = $fff6, size = $c, file = %O, fill = yes;
|
ROMV: start = $FFF6, size = $000C, file = %O, fill = yes;
|
||||||
|
|
||||||
# 1 8k CHR Bank
|
# 1 8k CHR Bank
|
||||||
ROM2: start = $0000, size = $2000, file = %O, fill = yes;
|
ROM2: start = $0000, size = $2000, file = %O, fill = yes;
|
||||||
@@ -22,16 +24,14 @@ MEMORY {
|
|||||||
# $0100-$0200 cpu stack
|
# $0100-$0200 cpu stack
|
||||||
# $0200-$0500 3 pages for ppu memory write buffer
|
# $0200-$0500 3 pages for ppu memory write buffer
|
||||||
# $0500-$0800 3 pages for cc65 parameter stack
|
# $0500-$0800 3 pages for cc65 parameter stack
|
||||||
SRAM: start = $0500, size = $0300, define = yes;
|
SRAM: start = $0500, size = __STACKSIZE__, define = yes;
|
||||||
|
|
||||||
# additional 8K SRAM Bank
|
# additional 8K SRAM Bank
|
||||||
# - data (run)
|
# - data (run)
|
||||||
# - bss
|
# - bss
|
||||||
# - heap
|
# - heap
|
||||||
RAM: start = $6000, size = $2000, define = yes;
|
RAM: start = $6000, size = $2000, define = yes;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
HEADER: load = HEADER, type = ro;
|
HEADER: load = HEADER, type = ro;
|
||||||
STARTUP: load = ROM0, type = ro, define = yes;
|
STARTUP: load = ROM0, type = ro, define = yes;
|
||||||
@@ -43,10 +43,8 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
FEATURES {
|
FEATURES {
|
||||||
CONDES: segment = INIT,
|
CONDES: segment = INIT,
|
||||||
type = constructor,
|
type = constructor,
|
||||||
@@ -56,12 +54,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
|
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0300, weak = yes; # 3 pages stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0000, size = $0001F, type = rw, define = yes;
|
ZP: define = yes, start = $0000, size = $0001F;
|
||||||
RAM: start = %S, size = $10000, file = %O;
|
RAM: file = %O, start = %S, size = $10000 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
LOWCODE: load = RAM, type = ro, optional = yes;
|
LOWCODE: load = RAM, type = ro, optional = yes;
|
||||||
@@ -9,7 +12,6 @@ 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 {
|
||||||
@@ -21,11 +23,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0055, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $0055, size = $001A;
|
||||||
HEADER: start = $03FF, size = $000E, file = %O;
|
HEADER: file = %O, start = $03FF, size = $000E;
|
||||||
RAM: start = $040D, size = $7BF3, file = %O;
|
RAM: file = %O, start = $040D, size = $7BF3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -13,7 +16,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -25,12 +27,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $0002, size = $001A;
|
||||||
HEADER: start = $0FFF, size = $000E, file = %O;
|
HEADER: file = %O, start = $0FFF, size = $000E;
|
||||||
RAM: start = $100D, size = $ECF3, file = %O;
|
RAM: file = %O, start = $100D, size = $ECF3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -13,7 +16,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -30,6 +32,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ MEMORY {
|
|||||||
BANKROM7: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
BANKROM7: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
||||||
ROM: start = $c000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
ROM: start = $c000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
||||||
}
|
}
|
||||||
|
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
LOWCODE: load = ROM, type = ro, optional = yes;
|
LOWCODE: load = ROM, type = ro, optional = yes;
|
||||||
INIT: load = ROM, type = ro, define = yes, optional = yes;
|
INIT: load = ROM, type = ro, define = yes, optional = yes;
|
||||||
@@ -29,8 +28,7 @@ SEGMENTS {
|
|||||||
BANK6: load = BANKROM6, type = ro;
|
BANK6: load = BANKROM6, type = ro;
|
||||||
BANK7: load = BANKROM7, type = ro;
|
BANK7: load = BANKROM7, type = ro;
|
||||||
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, define = yes, offset = $0200;
|
||||||
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,7 +19,6 @@ 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 {
|
||||||
@@ -31,9 +30,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ MEMORY {
|
|||||||
BANKROM3: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
BANKROM3: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
||||||
ROM: start = $C000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
ROM: start = $C000, size = $4000, fill = yes, fillval = $FF, file = %O;
|
||||||
}
|
}
|
||||||
|
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
LOWCODE: load = ROM, type = ro, optional = yes;
|
LOWCODE: load = ROM, type = ro, optional = yes;
|
||||||
INIT: load = ROM, type = ro, define = yes, optional = yes;
|
INIT: load = ROM, type = ro, define = yes, optional = yes;
|
||||||
@@ -22,8 +21,7 @@ SEGMENTS {
|
|||||||
BANK2: load = BANKROM2, type = ro;
|
BANK2: load = BANKROM2, type = ro;
|
||||||
BANK3: load = BANKROM3, type = ro;
|
BANK3: load = BANKROM3, type = ro;
|
||||||
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, define = yes, offset = $0200;
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,8 @@ MEMORY {
|
|||||||
CPUSTACK: start = $0100, size = $0100;
|
CPUSTACK: start = $0100, size = $0100;
|
||||||
RAM: start = $0200, size = $1E00, define = yes;
|
RAM: start = $0200, size = $1E00, define = yes;
|
||||||
VRAM: start = $4000, size = $2000;
|
VRAM: start = $4000, size = $2000;
|
||||||
ROM: start = $8000, size = $8000, fill = yes, fillval = $ff, file = %O, define = yes;
|
ROM: start = $8000, size = $8000, fill = yes, fillval = $FF, file = %O, define = yes;
|
||||||
}
|
}
|
||||||
|
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
LOWCODE: load = ROM, type = ro, optional = yes;
|
LOWCODE: load = ROM, type = ro, optional = yes;
|
||||||
INIT: load = ROM, type = ro, define = yes, optional = yes;
|
INIT: load = ROM, type = ro, define = yes, optional = yes;
|
||||||
@@ -19,10 +18,8 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
FEATURES {
|
FEATURES {
|
||||||
CONDES: segment = INIT,
|
CONDES: segment = INIT,
|
||||||
type = constructor,
|
type = constructor,
|
||||||
@@ -32,8 +29,8 @@ FEATURES {
|
|||||||
type = destructor,
|
type = destructor,
|
||||||
label = __DESTRUCTOR_TABLE__,
|
label = __DESTRUCTOR_TABLE__,
|
||||||
count = __DESTRUCTOR_COUNT__;
|
count = __DESTRUCTOR_COUNT__;
|
||||||
CONDES: type = interruptor,
|
CONDES: segment = RODATA,
|
||||||
segment = RODATA,
|
type = interruptor,
|
||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
# Memory configuration for the VIC-20 with 32K RAM Cartridge
|
# Memory configuration for the VIC-20 with 32K RAM Cartridge
|
||||||
# Contributed by Stefan Haubenthal
|
# Contributed by Stefan Haubenthal
|
||||||
|
|
||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $0002, size = $001A;
|
||||||
HEADER: start = $11FF, size = $000E, file = %O;
|
HEADER: file = %O, start = $11FF, size = $000E;
|
||||||
RAM: start = $120D, size = $6DF3, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = $120D, size = $6DF3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -15,7 +19,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -32,6 +35,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
SYMBOLS {
|
||||||
|
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
||||||
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
ZP: define = yes, start = $0002, size = $001A;
|
||||||
HEADER: start = $0FFF, size = $000E, file = %O;
|
HEADER: file = %O, start = $0FFF, size = $000E;
|
||||||
RAM: start = $100D, size = $0DF3, file = %O, define = yes;
|
RAM: file = %O, define = yes, start = $100D, size = $0DF3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
@@ -13,7 +16,6 @@ SEGMENTS {
|
|||||||
DATA: load = RAM, type = rw;
|
DATA: load = RAM, type = rw;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
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 {
|
||||||
@@ -30,10 +32,3 @@ FEATURES {
|
|||||||
label = __INTERRUPTOR_TABLE__,
|
label = __INTERRUPTOR_TABLE__,
|
||||||
count = __INTERRUPTOR_COUNT__;
|
count = __INTERRUPTOR_COUNT__;
|
||||||
}
|
}
|
||||||
SYMBOLS {
|
|
||||||
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user