Ich antworte dir mal - werde aber wahrscheinlich nicht ganz das treffen was du suchst!
C/C++ Compile müßte es sein aber VS Code weiß ich nicht was du damit meinst.
Selbst kann ich auch nicht programmieren - versuche aber gerne neues. Beste Resultate hatte ich bisher damit:
amiga-gcc
codeberg.org
Leider ist hier der offizielle Github weg - wie aktuell das ist weiß ich nicht!
Unter Windows 11 brauchte ich dafür nur noch MSys2 (kenne ich nun schon vom QEmu compilieren):
https://www.msys2.org
Danach setup-amiga-gcc.exe installieren und dann kanns eigentlich schon losgehen.
Für Amiga (SASC):
https://ftp2.grandis.nu/turran/FTP/TheZone/files/_2014/WORK_SASC.hdf [SAS-C 6.58 with latest updates - HDF].7z
Jetzt kommt der beste Teil (da dürft ihr mich gerne steinigen):
Chat GPT benutzen - klingt zwar blöd ist aber irgendwie die beste Möglichkeit gewesen und nach ein bissl einarbeitung spuckt die KI sogar ganz brauchbares Zeugs aus.
Alternative 1: Sollte ein richtiges Lebewesen mit dem von dir benötigten Wissens anwesend sein - benutz ihn

Alternative 2: Youtube kann auch helfen - aber wenn nicht gerade durch Zufall das perfekte Video gefunden wird das dann auch noch auf deutsch ist wirds schwierig
Hier mal ein kleines Beispiel was ich versucht habe (stand Januar 2025, seitdem nix mehr gemacht)(soll die SysInfos über dein Amiga System ausspucken):
- compilieren ging glaube, müßte jetzt aber lügen ob Crosscompile unter GCC oder mit SASC aufm Amiga
- starten kannst du es dann aufm Amiga
C:
#include <exec/types.h>
#include <exec/execbase.h>
#include <graphics/gfxbase.h>
#include <proto/exec.h>
#include <proto/graphics.h>
#include <stdio.h>
#include <string.h>
extern struct ExecBase *SysBase;
extern struct GfxBase *GfxBase;
// Funktion zur Erkennung der Custom Graphics Chips
void IdentifyCustomGraphicsChip(void) {
unsigned short chipID = GfxBase->ChipRevBits0; // Annahme: ChipRevBits0 repräsentiert die ID
unsigned short revision = (unsigned short)(GfxBase->ChipRevBits0 >> 8);
printf("\n--- Custom Graphics Chip ---\n");
printf("Raw ChipRevBits0: 0x%04X\n", chipID);
switch (chipID) {
case 0:
printf("Chip: OCS Denise");
break;
case 1:
printf("Chip: ECS Denise (Enhanced Chip Set)");
break;
case 2:
printf("Chip: AGA Lisa (Advanced Graphics Architecture)");
printf("\nCapability: 24-bit color mode");
break;
case 3:
printf("Chip: AAA Lisa (Advanced Amiga Architecture)");
break;
default:
printf("Chip: Unknown (ID: %d)", chipID);
}
if (chipID <= 3) {
printf(" (Revision: %d)", revision);
}
printf("\n");
}
// Funktion zur Erkennung von Prozessor-Typ, Taktfrequenz und Revision
void IdentifyCPU(void) {
printf("\n--- CPU Information ---\n");
if (SysBase->AttnFlags & AFF_68060) {
printf("CPU: Motorola 68060 / 50 MHz (Revision: 6.0)");
} else if (SysBase->AttnFlags & AFF_68040) {
printf("CPU: Motorola 68040 / 25 MHz (Revision: 4.0)");
} else if (SysBase->AttnFlags & AFF_68030) {
printf("CPU: Motorola 68030 / 25 MHz (Revision: 3.0)");
} else if (SysBase->AttnFlags & AFF_68020) {
printf("CPU: Motorola 68020 / 16 MHz (Revision: 2.0)");
} else {
printf("CPU: Motorola 68000 / 7.14 MHz (Revision: 1.0)");
}
printf("\nFPU: ");
if (SysBase->AttnFlags & AFF_68881) {
printf("Motorola 68881/68882");
} else {
printf("None");
}
printf("\nMMU: ");
if (SysBase->AttnFlags & AFF_68030) {
printf("Present");
} else {
printf("None");
}
printf("\n");
}
// Funktion zur Erkennung der AmigaOS-Kickstart-Version
void IdentifyAmigaOSVersion(void) {
unsigned short amigaOSVersion = SysBase->LibNode.lib_Version;
printf("\n--- AmigaOS Version ---\n");
printf("Detected Version: ");
switch (amigaOSVersion) {
case 27:
printf("Kickstart 0.7 (First AmigaOS version shown at CES 1985, obsolete)\n");
break;
case 29:
printf("Kickstart 0.9 (Internal, obsolete)\n");
break;
case 30:
printf("Kickstart 1.0 (Obsolete)\n");
break;
case 31:
case 32:
printf("Kickstart 1.1 (NTSC or PAL only, obsolete)\n");
break;
case 33:
printf("Kickstart 1.2 (Oldest revision)\n");
break;
case 34:
printf("Kickstart 1.3 (Includes Autoboot expansion.library)\n");
break;
case 35:
printf("Kickstart 1.3 Special (RAM-loaded version with A2024 display mode support)\n");
break;
case 36:
printf("Kickstart 2.0 (Amiga 3000)\n");
break;
case 37:
printf("Kickstart 2.04 (General Release 2)\n");
break;
case 38:
printf("Kickstart 2.1 (Amiga 600)\n");
break;
case 39:
printf("Kickstart 3.0 (Amiga 1200 and Amiga 4000)\n");
break;
case 40:
printf("Kickstart 3.1 (General Release 3)\n");
break;
case 41:
printf("Kickstart 3.1 (Japanese locale, never completed)\n");
break;
case 42:
printf("Kickstart 3.1 Alpha (Internal alpha revision)\n");
break;
case 43:
printf("Kickstart 3.2 (Amiga Walker, never completed)\n");
break;
case 44:
printf("Kickstart 3.5 (Update to Release 3)\n");
break;
case 45:
printf("Kickstart 3.9 (Update to Release 3)\n");
break;
case 46:
printf("Kickstart 3.1.4 (Update to Release 3)\n");
break;
case 47:
printf("Kickstart 3.2 (Update to Release 3)\n");
break;
case 50:
printf("Kickstart 4.0 (Developer PreRelease for AmigaOne)\n");
break;
case 51:
printf("Kickstart 4.0 (Official Release from Update 1)\n");
break;
case 52:
printf("Kickstart 4.0 (Support for PPC equipped classic Amiga models)\n");
break;
case 53:
printf("Kickstart 4.1 (Update for PPC models)\n");
break;
default:
printf("Unknown or unsupported Kickstart version (%d)\n", amigaOSVersion);
break;
}
printf("\n");
}
// Funktion zur Erkennung des RTG-Systems
void IdentifyRTGSystem(void) {
struct Library *Picasso96APIBase = NULL;
struct Library *CyberGfxBase = NULL;
printf("\n--- RTG System ---\n");
Picasso96APIBase = (struct Library *)OpenLibrary("Picasso96API.library", 0);
if (Picasso96APIBase) {
printf("RTG System: Picasso96");
CloseLibrary(Picasso96APIBase);
} else {
CyberGfxBase = (struct Library *)OpenLibrary("cybergraphics.library", 0);
if (CyberGfxBase) {
printf("RTG System: CyberGraphX");
CloseLibrary(CyberGfxBase);
} else {
printf("No RTG system detected (OCS/ECS/AGA likely active).");
}
}
printf("\n");
}
// Funktion zur Erkennung des verfügbaren Chip- und Fast-RAM
void DisplayAvailableMemory(void) {
ULONG chipMem = AvailMem(MEMF_CHIP);
ULONG fastMem = AvailMem(MEMF_FAST);
printf("\n--- Memory Information ---\n");
printf("Chip RAM: %lu Bytes\n", chipMem);
printf("Fast RAM: %lu Bytes\n", fastMem);
}
int main(void) {
IdentifyAmigaOSVersion();
IdentifyCPU();
IdentifyCustomGraphicsChip();
IdentifyRTGSystem();
DisplayAvailableMemory();
return 0;
}