C64Power Forum
Software => Programowanie => Wątek zaczęty przez: qus w 05 Lutego 2018, 15:08
-
Czy ktoś mógłby podać mi plik konfiguracyjny dla ld65, z minimalną liczbą segmentów, tak aby po zlinkowaniu pliku assemblerowego zawierającego segmenty:
1) dwa bajty adresu ładowania $01,$08
2) X bajtów z linią basica "SYS cośtam"
3) całej reszty
Utworzył się porządny, działający PRG, ładujący się pod $801?
Od wczoraj rwę włosy z głowy, bo konfig mam, 1) i 2) jest OK, ale kod z sekcji 3) ma zwalone adresowanie - docelowe adresy bxx są przesunięte i nie trafiają w instrukcje! :D
-
Zechcesz pochwalić się tym konfigiem?
-
SYMBOLS {
__LOADADDR__: type = import;
__EXEHDR__: type = import;
}
MEMORY {
LOADADDR: file = %O, start = $07FF, size = $0002;
HEADER: file = %O, start = $0801, size = $000C;
RAM: file = %O, define = yes, start = $080D, size = $C000;
}
SEGMENTS {
LOADADDR: load = LOADADDR, type = ro;
EXEHDR: load = HEADER, type = ro;
STARTUP: load = RAM, type = ro;
CODE: load = RAM, type = ro;
RODATA: load = RAM, type = ro;
DATA: load = RAM, type = rw;
}
a program zaczyna się tak:
.export __LOADADDR__,__EXEHDR__
.segment "LOADADDR"
__LOADADDR__=$0801
.byt <__LOADADDR__,>__LOADADDR__
.segment "EXEHDR"
__EXEHDR__:
.byt $0b,$08,$40,$00,$9e,"2060",$00,$00
.segment "CODE"
; "hello world" (test.atl @20)
-
Zastanawialem sie czemu idziesz z pamiecia od $7ff (wiem ze chodzi o adres startu ale zastanawialem sie czy nie da sie tego jakos inaczej zrobic?), robiles ten konfig od zera czy na czyms sie wzorowales?
-
Na domyślnym konfigu c64. Według mnie tam powinno być 7fe, no ale skoro tak jest w domyślnym...