1

zaczalem przygode z C na male Atari

program ktory chcialem skompilowac to:

#include <conio.h>
#include <stdlib.h>
int main (void)
{
 printf ("Hello world!n");
 return EXIT_SUCCESS;
}

bacik na PC (zestaw cc65 dla OS win32) ktory to kompiluje wyglada tak:

cc65 -O -t atari %1 -o %1.s
ca65 -t atari %1.s
ld65 -t atari -S $2000 -o %1.xex %1.o

compiler i linker cl65.exe nie dzialal do konca, wiec dlatego jest wszystko w tym baciku rozpisane

kompilator (cc65) kompiluje do pliku z rozszerzeniem *.s

;
; File generated by cc65 v 2.10.0
;
    .fopt        compiler,"cc65 v 2.10.0"
    .setcpu        "6502"
    .smart        on
    .autoimport    on
    .case        on
    .debuginfo    off
    .importzp    sp, sreg, regsave, regbank, tmp1, ptr1, ptr2
    .macpack    longbranch
    .import        _printf
    .export        _main

.segment    "RODATA"

L0001:
    .byte    $48,$65,$6C,$6C,$6F,$20,$77,$6F,$72,$6C,$64,$21,$9B,$00

; ---------------------------------------------------------------
; int __near__ main (void)
; ---------------------------------------------------------------

.segment    "CODE"

.proc    _main: near

.segment    "CODE"

    lda     #<(L0001)
    ldx     #>(L0001)
    jsr     pushax
    ldy     #$02
    jsr     _printf
    ldx     #$00
    txa
    rts

.endproc

makroassembler (ca65) tworzy z tego plik o rozszerzeniu *.o, ktorego struktura jest pewnie zrozumiala tylko dla linkera

no i wszystko idzie dobrze, dopoki nie nastepuje linkowanie (ld65), wtedy:

G:>ld65 -t atari -S $2000 -o G:hello.c65.xex G:hello.c65.o 

ld65.exe: Warning: [builtin config](7): Segment `EXEHDR' does not exist

ld65.exe: Warning: [builtin config](13): Segment `AUTOSTRT' does not exist

Unresolved external `_printf' referenced in:

  G:hello.c65.s(12)

Unresolved external `pushax' referenced in:

  G:hello.c65.s(32)

ld65.exe: Error: 2 unresolved external(s) found - cannot create output file

no i dupa blada, co jest nie tak ?
pewnie nie rozumiem do konca, czemu ten C wymaga az tylu programikow do szczescia, albo trzeba jaki plik konfiguracyjny stworzyc ?

moze ktos sie juz bawil cc65 na Atari i przeszedl ten etap :)?

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

2

Zdaje sie, ze ktos z ABBUC-a cos w tym mieszal,
wiec polecam zamiescic posta takze na AtariAge, jesli tego jeszcze nie zrobiles....  ;)

3

a moze brakuje bibliotek *.lib

pewnie jeszcze nikt nie napisal ich dla atari 8bit :(

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

4

A spróbuj zamiast nagłówków conio.h i stdlib.h wpakować stdio.h. Może to pomoże ?

5

niestety, nie pomoglo

jestem juz pewien ze brakuje mu plikow w katalogu LIB, znalazlem takie dla C64 (c64.lib, c64.o)  ale zaczal sie pluc ze ich wersja jest nieodpowiednia

tak wiec same klopoty z tym C dla malucha, trzeba jeszcze stworzyc biblioteka, tylko jak ?

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

6

http://www.cc65.org/ <- tutaj jest do sciągnięcia kompilator,biblioteki i dokumentacja.
Ja mam wersję do Fedory (RedHat), i dodatkowo sciągnąłem biblioteki do atari.
Weź pliki cc65-win32-2.10.0a-1.zip i cc65-atari-2.10.0-1.zip
w linkerze ld65 dodajesz wtedy jeszcze atari.lib :)

Mnie teraz już działa :D

7

:) no nareszcie dziala, thx

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

8

a moze brakuje bibliotek *.lib
pewnie jeszcze nikt nie napisal ich dla atari 8bit :(

LIB exists for Atari 8bit for sure.
BTW .... Basix demo was written in cc65 with a lot of assembler subroutines.  ;)

http://raster.atari.org

9

skonczylem Visage w jezyku C, teraz mozecie sie przekonac do czego nadaje sie cc65

http://atariarea.histeria.pl/pliki.php? … amp;id=462

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

10

Jakby ktos mial chec, to binaria dla Amigi sa tu: http://www.aminet.net/~aminet/dev/cross/cc65-bin.lha , a zrodla tu: http://www.aminet.net/~aminet/dev/cross/cc65-src.lha  :D ...

Powszechnie wiadomo, że kamień potrafi myśleć. Na tym fakcie opiera się cała elektronika.

Terry Pratchett - Równoumagicznienie