mirror of
https://github.com/cc65/cc65.git
synced 2024-12-27 00:29:31 +00:00
2c975d3642
Up to now static drivers were created via co65 from dynamic drivers. However there was an issue with that approach: The dynamic drivers are "o65 simple files" which obligates that they start with the 'code' segment. However dynamic drivers need to start with the module header - which is written to. For dynamic drivers this isn't more than a conceptual issue because they are always contain a 'data' segment and may therefore only be loaded into writable memory. However when dynamic drivers are converted to static drivers using co65 then that issue becomes a real problem as then the 'code' segment may end up in non-writable memory - and thus writing to the module header fails. Instead of changing the way dynamic drivers work I opted to rather make static driver creation totally independent from dynamic drivers. This allows to place the module header in the 'data' segment (see 'module.mac').
14 lines
278 B
Plaintext
14 lines
278 B
Plaintext
.ifndef DYN_DRV
|
|
DYN_DRV = 1
|
|
.endif
|
|
|
|
.macro module_header module_label
|
|
.if DYN_DRV
|
|
.segment "HEADER"
|
|
.else
|
|
.data
|
|
.export module_label
|
|
module_label:
|
|
.endif
|
|
.endmacro
|