atari-home.de - Foren

Software => Coding => Thema gestartet von: tuxie am Di 25.10.2016, 20:10:07

Titel: Testcode Port
Beitrag von: tuxie am Di 25.10.2016, 20:10:07
Hallo,

leider stecke ich nicht so tief im C Coden drin, bräuchte aber ein Stück Codeschnipsel umgesetzt so das es unter TOS ausführbar ist. Gibt es jemand der das für mich machen könnte ?


// Define I/O Port Address for HC
#define HcDataPort 0x290
#define HcCmdPort 0x292

zu


// Define I/O Port Address for HC
#define HcDataPort 0xFEFF0000
#define HcCmdPort 0xFEFF0040

Abändern

Im Anhang die PDF Datei ab Seite 27 ist der Code Block
Titel: Re: Testcode Port
Beitrag von: mfro am Mi 26.10.2016, 07:46:55
eigentlich brauchst Du nur das da zusätzlich (oben nach den includes einfügen):

#define HcDataPort  0xfeff0000
#define HcCmdPort   0xfeff0040

static short swpw(short w)
{
    return (w << 8) | (w >> 8);
}

static void outport(unsigned long port, short value)
{
    * (volatile short *) port = swpw(value);
}

static short inport(unsigned long port)
{
    return swpw(* (volatile short *) port);
}

inport() und outport() rufen jeweils noch swpw() um von little endian auf big endian (bzw. umgekehrt) zu wandeln. Die includes für dos.h und conio.h nimmst Du raus (die werden nicht gebraucht). Auf dem ST wird das ganze Geraffel wahrscheinlich im Supervisor-Mode laufen müssen, das mußt Du noch irgendwo einbauen.

Dann mit Pure-C (oder gcc mit -mshort) übersetzen und es müsste funktionieren.