Ich hab mal was angehängt (hallo_c.zip.pdf in hallo_c.zip umbenennen und dann auspacken)
GFA-Basic
'
hallo%=GEMDOS(72,100) ! Malloc, Fuer "Hallo Welt"
CHAR{hallo%}=""+CHR$(0)
'
fn$="hw.o"+CHR$(0)
fname%=V:fn$
fhandle&=GEMDOS(61,L:fname%,0) ! Fopen, Datei oeffnen
IF fhandle&>0
'
len%=GEMDOS(66,L:0,fhandle&,2) ! Fseek, laenge
~GEMDOS(66,L:0,fhandle&,0) ! ermitteln
' ~FORM_ALERT(1,"[0][ len: "+STR$(len%)+" ][ OK ]")
'
objekt%=GEMDOS(72,L:len%) ! Malloc, speicher fuer das file
~GEMDOS(63,fhandle&,L:len%,L:objekt%) ! Fread, und laden
~GEMDOS(62,fhandle&) ! Fclose, Datei schliessen
'
' asm$=MKI$(&H4E75)
' asm%=V:asm$
' ~C:asm%()
'
r%=C:objekt%(L:hallo%) ! aufrufen
~GEMDOS(73,objekt%)
hallo$=CHAR{hallo%}
'
~FORM_ALERT(1,"[0][ "+hallo$+" ][ ja Hallo ]")
ELSE
' ~FORM_ALERT(1,"[0][fhandle: "+STR$(fhandle&)+"|fn: "+fn$+"][ oh ]")
ENDIF
~FORM_ALERT(1,"[0][ Programmende ][ OK ]")
~GEMDOS(73,hallo%)
'
END
Assembler
move.l 4(sp),a1 ; Bufferadresse
lea.l hi(pc),a2 ; Stringadresse nach a2
loop:
move.b (a2)+,(a1)+ ; Byteweise kopieren
tst.b (a2) ; bis 0
bne.s loop
move.l #0,d0 ; Rueckgabewert
rts ; und ende
*********
hi: dc.b "Hallo Welt!",0