Reworked and improved the SYMBOLS section. The old syntax (using symbol =
value) is now gone, attributes are used instead. The SYMBOLS section does now support imports, so the linker config can be used to force symbols (and therefore module) imports. Evaluation of start address and size for memory areas has been delayed even further, so it is now possible to use the values from one memory area in the definition of the next one. git-svn-id: svn://svn.cc65.org/cc65/trunk@4851 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# Configuration optimized for DOS 3.3 by allowing for 12KB of HIGHCODE
|
||||
|
||||
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $0803;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -4,7 +4,7 @@ FEATURES {
|
||||
STARTADDRESS: default = $0800;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -5,7 +5,7 @@ FEATURES {
|
||||
STARTADDRESS: default = $0800;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Configuration for ProDOS 8 system programs (without the header)
|
||||
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Default configuration built into ld65 (allowing for 3KB of HIGHCODE)
|
||||
|
||||
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $0803;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Configuration optimized for DOS 3.3 by allowing for 12KB of HIGHCODE
|
||||
|
||||
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $0803;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -4,7 +4,7 @@ FEATURES {
|
||||
STARTADDRESS: default = $0800;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -5,7 +5,7 @@ FEATURES {
|
||||
STARTADDRESS: default = $0800;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Configuration for ProDOS 8 system programs (without the header)
|
||||
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Default configuration built into ld65 (allowing for 3KB of HIGHCODE)
|
||||
|
||||
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $0803;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0080, size = $001A;
|
||||
|
||||
@@ -2,8 +2,8 @@ FEATURES {
|
||||
STARTADDRESS: default = $2E00;
|
||||
}
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__RESERVED_MEMORY__: value = $0000, weak = yes;
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
__RESERVED_MEMORY__: type = weak, value = $0000;
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0082, size = $007E;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $00E2, size = $001A;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0070, size = $0020;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
}
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0002, size = $001A;
|
||||
HEADER: file = %O, start = $1BFF, size = $000E;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0002, size = $001A;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0002, size = $001A;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SYMBOLS {
|
||||
# The stack starts from $FEC3 and grows towards the video ram
|
||||
__STACKSIZE__: value = $06C3, weak = yes; # ~1.5k stack
|
||||
__STACKSIZE__: type = weak, value = $06C3; # ~1.5k stack
|
||||
}
|
||||
MEMORY {
|
||||
HEADER: file = %O, start = $0001, size = $0050, fill = yes;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
HEADER: file = %O, start = $0001, size = $0050, fill = yes;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
||||
__STACKSIZE__: type = weak, value = $0400; # 1k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0058, size = $0028;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 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?)
|
||||
__HEAPSIZE__: type = weak, value = $2000; # 8k heap [temporary, until LUnix malloc() exists]
|
||||
__STACKSIZE__: type = weak, value = $0400; # 1k stack (do typical LUnix apps. need 2k?)
|
||||
}
|
||||
MEMORY {
|
||||
ZP: start = $0080, size = $0040;
|
||||
@@ -28,7 +28,7 @@ FEATURES {
|
||||
label = __DESTRUCTOR_TABLE__,
|
||||
count = __DESTRUCTOR_COUNT__;
|
||||
CONDES: segment = RODATA,
|
||||
type = interruptor,
|
||||
type = interruptor,
|
||||
label = __INTERRUPTOR_TABLE__,
|
||||
count = __INTERRUPTOR_COUNT__;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0000, size = $0100;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0300, weak = yes; # 3 pages stack
|
||||
__STACKSIZE__: type = weak, value = $0300; # 3 pages stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: start = $0002, size = $001A, type = rw, define = yes;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0000, size = $0001F;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0055, size = $001A;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0800, weak = yes; # 2k stack
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0002, size = $001A;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# ld65 --config supervision.cfg -o <prog>.bin <prog>.o
|
||||
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0100, weak = yes; # 1 page stack
|
||||
__STACKSIZE__: type = weak, value = $0100; # 1 page stack
|
||||
}
|
||||
MEMORY {
|
||||
RAM: start = $0000, size = $2000 - __STACKSIZE__;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# ld65 --config supervision16.cfg -o <prog>.bin <prog>.o
|
||||
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0100, weak = yes; # 1 page stack
|
||||
__STACKSIZE__: type = weak, value = $0100; # 1 page stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: start = $0000, size = $0100;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# ld65 --config supervision.cfg -o <prog>.bin <prog>.o
|
||||
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0100, weak = yes; # 1 page stack
|
||||
__STACKSIZE__: type = weak, value = $0100; # 1 page stack
|
||||
}
|
||||
MEMORY {
|
||||
RAM: start = $0000, size = $2000 - __STACKSIZE__;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Contributed by Stefan Haubenthal
|
||||
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
||||
__STACKSIZE__: type = weak, value = $0400; # 1k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0002, size = $001A;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SYMBOLS {
|
||||
__STACKSIZE__: value = $0400, weak = yes; # 1k stack
|
||||
__STACKSIZE__: type = weak, value = $0400; # 1k stack
|
||||
}
|
||||
MEMORY {
|
||||
ZP: define = yes, start = $0002, size = $001A;
|
||||
|
||||
Reference in New Issue
Block a user