|
14 | 14 | from . import errors |
15 | 15 | from .errors import InvalidICError as InvalidIC |
16 | 16 |
|
| 17 | +from .runtime.namespace import NAMESPACE |
| 18 | + |
17 | 19 |
|
18 | 20 | # 8 bit arithmetic functions |
19 | 21 | from .__8bit import _add8, _sub8, _mul8, _divu8, _divi8, _modu8, _modi8, _neg8, _abs8 |
|
116 | 118 | RE_IX_IDX = re.compile(r'^\([ \t]*ix[ \t]*[-+][ \t]*.+\)$') |
117 | 119 |
|
118 | 120 | # Label for the program START end EXIT |
119 | | -START_LABEL = '__START_PROGRAM' |
120 | | -END_LABEL = '__END_PROGRAM' |
121 | | -CALL_BACK = '__CALL_BACK__' |
122 | | -MAIN_LABEL = '__MAIN_PROGRAM__' |
123 | | -DATA_LABEL = 'ZXBASIC_USER_DATA' |
124 | | -DATA_END_LABEL = 'ZXBASIC_USER_DATA_END' |
| 121 | +START_LABEL = f'{NAMESPACE}__START_PROGRAM' |
| 122 | +END_LABEL = f'{NAMESPACE}__END_PROGRAM' |
| 123 | +CALL_BACK = f'{NAMESPACE}__CALL_BACK__' |
| 124 | +MAIN_LABEL = f'{NAMESPACE}__MAIN_PROGRAM__' |
| 125 | +DATA_LABEL = f'{NAMESPACE}ZXBASIC_USER_DATA' |
| 126 | +DATA_END_LABEL = f'{NAMESPACE}ZXBASIC_USER_DATA_END' |
125 | 127 |
|
126 | 128 | # Whether to use the FunctionExit scheme |
127 | 129 | FLAG_use_function_exit = False |
@@ -196,9 +198,9 @@ def init(): |
196 | 198 | # Default HEAP SIZE (Dynamic memory) in bytes |
197 | 199 | OPTIONS.add_option('heap_size', int, 4768) # A bit more than 4K |
198 | 200 | # Labels for HEAP START (might not be used if not needed) |
199 | | - OPTIONS.add_option('heap_start_label', str, f'{RuntimeLabel.NAMESPACE}ZXBASIC_MEM_HEAP') |
| 201 | + OPTIONS.add_option('heap_start_label', str, f'{NAMESPACE}ZXBASIC_MEM_HEAP') |
200 | 202 | # Labels for HEAP SIZE (might not be used if not needed) |
201 | | - OPTIONS.add_option('heap_size_label', str, f'{RuntimeLabel.NAMESPACE}ZXBASIC_HEAP_SIZE') |
| 203 | + OPTIONS.add_option('heap_size_label', str, f'{NAMESPACE}ZXBASIC_HEAP_SIZE') |
202 | 204 | # Flag for headerless mode (No prologue / epilogue) |
203 | 205 | OPTIONS.add_option('headerless', bool, False) |
204 | 206 |
|
@@ -2222,16 +2224,16 @@ def emit_start(): |
2222 | 2224 | heap_init = ['%s:' % DATA_LABEL] |
2223 | 2225 | output.append('org %s' % OPTIONS.org) |
2224 | 2226 |
|
2225 | | - if REQUIRES.intersection(MEMINITS) or '__MEM_INIT' in INITS: |
| 2227 | + if REQUIRES.intersection(MEMINITS) or f'{NAMESPACE}__MEM_INIT' in INITS: |
2226 | 2228 | heap_init.append('; Defines HEAP SIZE\n' + OPTIONS.heap_size_label + ' EQU ' + |
2227 | 2229 | str(OPTIONS.heap_size)) |
2228 | 2230 | heap_init.append(OPTIONS.heap_start_label + ':') |
2229 | 2231 | heap_init.append('DEFS %s' % str(OPTIONS.heap_size)) |
2230 | 2232 |
|
2231 | 2233 | heap_init.append('; Defines USER DATA Length in bytes\n' + |
2232 | | - 'ZXBASIC_USER_DATA_LEN EQU ZXBASIC_USER_DATA_END - ZXBASIC_USER_DATA') |
2233 | | - heap_init.append('.__LABEL__.ZXBASIC_USER_DATA_LEN EQU ZXBASIC_USER_DATA_LEN') |
2234 | | - heap_init.append('.__LABEL__.ZXBASIC_USER_DATA EQU ZXBASIC_USER_DATA') |
| 2234 | + f'{NAMESPACE}ZXBASIC_USER_DATA_LEN EQU {DATA_END_LABEL} - {DATA_LABEL}') |
| 2235 | + heap_init.append(f'{NAMESPACE}.__LABEL__.ZXBASIC_USER_DATA_LEN EQU {NAMESPACE}ZXBASIC_USER_DATA_LEN') |
| 2236 | + heap_init.append(f'{NAMESPACE}.__LABEL__.ZXBASIC_USER_DATA EQU {DATA_LABEL}') |
2235 | 2237 |
|
2236 | 2238 | output.append('%s:' % START_LABEL) |
2237 | 2239 | if OPTIONS.headerless: |
|
0 commit comments