C64Power Forum

Software => Programowanie => Wątek zaczęty przez: qus w 05 Lutego 2018, 15:08

Tytuł: konfiguracja ld65 dla prostego .prg
Wiadomość wysłana 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
Tytuł: Re: konfiguracja ld65 dla prostego .prg
Wiadomość wysłana przez: Raf w 05 Lutego 2018, 15:40
Zechcesz pochwalić się tym konfigiem?
Tytuł: Re: konfiguracja ld65 dla prostego .prg
Wiadomość wysłana przez: qus w 05 Lutego 2018, 16:36
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)
Tytuł: Re: konfiguracja ld65 dla prostego .prg
Wiadomość wysłana przez: Raf w 06 Lutego 2018, 19:14
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?
Tytuł: Re: konfiguracja ld65 dla prostego .prg
Wiadomość wysłana przez: qus w 06 Lutego 2018, 19:34
Na domyślnym konfigu c64. Według mnie tam powinno być 7fe, no ale skoro tak jest w domyślnym...