Autor Thema: PureC asm nach AHCC portieren  (Gelesen 19055 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

guest522

  • Gast
PureC asm nach AHCC portieren
« am: Mi 18.04.2012, 15:02:11 »
Hi,

ich möchte folgenden PureC asm Code in AHCC übersetzen:
          move.w        sr,d1
          or.w         #$700,sr
Erhalte dann aber eine undefined reference.
Offensichtlich kennt AHCC den move.w für sr nicht.
Mit
          move       sr,d1
klappts, aber das or.w bekomme ich so nicht unter Kontrolle. Any ideas?

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: PureC asm nach AHCC portieren
« Antwort #1 am: Mi 18.04.2012, 15:55:33 »
Hallo, melde dich bei Henk Robbers bzw. poste im support thread bei atari-forum.com und dir wird mit sicherheit geholfen bzw. wenn's ein bug in AHCC ist - dann wird der wohl schnell behoben. Ist meine Erfahrung.

or.w         #$700,sr
derweilen könntest du auch einfach folgendes probieren:

- anstatt $700 den dezimalwert verwenden
.... moment, da fällt mir was auf - den sr kann man doch nur im super visor modus beschreiben, oder? Hast Du in den Optionen angecheckt das der code für den super visor mode ist? evt....

aber naja, warte lieber auf Henk's Antwort =)

guest522

  • Gast
Re: PureC asm nach AHCC portieren
« Antwort #2 am: Mi 18.04.2012, 20:37:23 »
Hi,

mit Henk bin ich schon in Kontakt und ja, den Supervisor mode habe ich aktiv.  ;)
Dezimal werde ich mal testen.....

Idek

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: PureC asm nach AHCC portieren
« Antwort #3 am: Mo 30.04.2012, 13:42:09 »
Was genau ist das Problem? Kannst Du Dein Assemblerunterprogramm nicht ansprechen?

Dann muss man das wie folgt formulieren:

a) Im .s file das Symbol exportieren (geht auch für Daten)

EXPORT meine_fkt

meine_fkt:
...
rts

b) Ein entsprechendes Headerfile anlegen, welches die Funktion mit Prototyp bekannt macht:

extern void meine_fkkt(void);
Ggfs Parameterübergaben müssen noch deklariert werden, dabei werden Werte als d0 und d1 allokiert, Pointer als a0 und a1 übergeben.
Rückgabewert ist d0 für Werte, a0 für Pointer.

Also z.B.

/* .h Header: */
extern long meine_addition(long a, long b);

; Assemblerqueltext .s
EXPORT meine_addition

meine_addition:
add.l d1,d0
rts
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

guest522

  • Gast
Re: PureC asm nach AHCC portieren
« Antwort #4 am: Mo 30.04.2012, 19:22:19 »
Was genau ist das Problem? Kannst Du Dein Assemblerunterprogramm nicht ansprechen?
Das Problem habe ich im ersten Post beschrieben:  AHCC akzeptiert den PureC asm Code nicht.
Den originalen Code

move.w       sr,d1
or.w      #$700,sr

kann man aber durch
move      sr,d1
ori          #$700,sr
ersetzen. Damit bekomme ich das zumindest durch den Compiler.

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: PureC asm nach AHCC portieren
« Antwort #5 am: Mo 30.04.2012, 20:47:37 »
Sorry fürs Missverständniss, dann gings wohl nur um GEnauigkeiten in der Opcodebenennung.

Hoffe, meine Ausführung oben hilft trotzdem irgendwem noch weiter.
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

guest522

  • Gast
Re: PureC asm nach AHCC portieren
« Antwort #6 am: Mo 30.04.2012, 21:55:34 »
Klar.....danke für Deine Tips, bin ja auch kein 68K asm Crack. Und so lern ich auch noch was dazu. ;)
Henk arbeitet nun daran den AHCC asm kompatibler zum PureC Compiler machen.