42 lines
1.2 KiB
C
42 lines
1.2 KiB
C
// helloText.c - GS/OS app that draws text on the SHR screen via the
|
|
// real ROM Font Manager + QuickDraw DrawString. Uses the full desktop
|
|
// startup (which includes InitCursor — see feedback_drawmenubar_hang
|
|
// for why that's load-bearing) and waits for any key.
|
|
|
|
#include "iigs/toolbox.h"
|
|
#include "iigs/desktop.h"
|
|
|
|
|
|
// Pascal-counted strings (length byte + chars).
|
|
static const unsigned char line1[] = "\x13" "Hello from llvm816!";
|
|
static const unsigned char line2[] = "\x2B" "Clang-compiled C running on the Apple IIgs.";
|
|
static const unsigned char line3[] = "\x16" "Press any key to exit.";
|
|
|
|
|
|
int main(void) {
|
|
unsigned short userId = startdesk(640);
|
|
(void)userId;
|
|
|
|
paintDesktopBackdrop();
|
|
ShowCursor();
|
|
|
|
SetForeColor(0);
|
|
SetBackColor(15);
|
|
|
|
MoveTo(40, 40); DrawString((void *)line1);
|
|
MoveTo(40, 60); DrawString((void *)line2);
|
|
MoveTo(40, 80); DrawString((void *)line3);
|
|
|
|
for (volatile unsigned long s = 0; s < 400000UL; s++) { }
|
|
|
|
short evt[8];
|
|
while (1) {
|
|
if (GetNextEvent(0xFFFF, evt) && evt[0] == 3) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
SysBeep();
|
|
*(volatile unsigned char *)0x70 = 0x99;
|
|
return 0;
|
|
}
|