58 case 0x00: snprintf(buf, buflen,
"PAL_halt");
break;
59 case 0x01: snprintf(buf, buflen,
"PAL_cflush");
break;
60 case 0x02: snprintf(buf, buflen,
"PAL_draina");
break;
61 case 0x09: snprintf(buf, buflen,
"PAL_cserve");
break;
62 case 0x0a: snprintf(buf, buflen,
"PAL_swppal");
break;
63 case 0x0d: snprintf(buf, buflen,
"PAL_ipir");
break;
64 case 0x10: snprintf(buf, buflen,
"PAL_OSF1_rdmces");
break;
65 case 0x11: snprintf(buf, buflen,
"PAL_OSF1_wrmces");
break;
66 case 0x2b: snprintf(buf, buflen,
"PAL_OSF1_wrfen");
break;
67 case 0x2d: snprintf(buf, buflen,
"PAL_OSF1_wrvptptr");
break;
68 case 0x30: snprintf(buf, buflen,
"PAL_OSF1_swpctx");
break;
69 case 0x31: snprintf(buf, buflen,
"PAL_OSF1_wrval");
break;
70 case 0x32: snprintf(buf, buflen,
"PAL_OSF1_rdval");
break;
71 case 0x33: snprintf(buf, buflen,
"PAL_OSF1_tbi");
break;
72 case 0x34: snprintf(buf, buflen,
"PAL_OSF1_wrent");
break;
73 case 0x35: snprintf(buf, buflen,
"PAL_OSF1_swpipl");
break;
74 case 0x36: snprintf(buf, buflen,
"PAL_rdps");
break;
75 case 0x37: snprintf(buf, buflen,
"PAL_OSF1_wrkgp");
break;
76 case 0x38: snprintf(buf, buflen,
"PAL_OSF1_wrusp");
break;
77 case 0x39: snprintf(buf, buflen,
"PAL_OSF1_wrperfmon");
break;
78 case 0x3a: snprintf(buf, buflen,
"PAL_OSF1_rdusp");
break;
79 case 0x3c: snprintf(buf, buflen,
"PAL_whami");
break;
80 case 0x3d: snprintf(buf, buflen,
"PAL_OSF1_retsys");
break;
81 case 0x3e: snprintf(buf, buflen,
"PAL_wtint");
break;
82 case 0x3f: snprintf(buf, buflen,
"PAL_OSF1_rti");
break;
83 case 0x80: snprintf(buf, buflen,
"PAL_bpt");
break;
84 case 0x81: snprintf(buf, buflen,
"PAL_bugchk");
break;
85 case 0x83: snprintf(buf, buflen,
"PAL_OSF1_callsys");
break;
86 case 0x86: snprintf(buf, buflen,
"PAL_imb");
break;
87 case 0x92: snprintf(buf, buflen,
"PAL_OSF1_urti");
break;
88 case 0x9e: snprintf(buf, buflen,
"PAL_rdunique");
break;
89 case 0x9f: snprintf(buf, buflen,
"PAL_wrunique");
break;
90 case 0xaa: snprintf(buf, buflen,
"PAL_gentrap");
break;
91 case 0xae: snprintf(buf, buflen,
"PAL_clrfen");
break;
92 case 0x3fffffe: snprintf(buf, buflen,
"GXemul_PROM");
break;
93 default:snprintf(buf, buflen,
"UNKNOWN 0x%" PRIx32, palcode);
136 default:
fatal(
"[ Alpha PALcode: GXemul PROM getenv %i: TODO "
147 default:
fatal(
"[ Alpha PALcode: GXemul PROM call, a0=0x%" PRIx64
" ]\n",
184 palcode == 0x80 || palcode == 0x81 || palcode == 0x83 ||
185 palcode == 0xae || palcode == 0xaa || palcode == 0x86 ||
186 palcode == 0x9e || palcode == 0x92 || palcode == 0x9f)) {
188 fatal(
"[ Privileged Alpha PALcode called from user mode: TODO ]");
195 TODO: Uncomment more again, as
I progress with the emulation...
196 Make sure they are correct, as documented in the Manual.
266 uint64_t new_unique =
270 uint64_t new_decrsv0 =
272 uint64_t new_decrsv1 =
322 fatal(
"[ Alpha PALcode: PAL_OSF1_wrent: attempt to "
323 "write to non-implemented selector %i ]\n",
359 fatal(
"[ Alpha PALcode: syscall, but no syscall handler ]\n");
368 fatal(
"[ Alpha: KENTRY not set! Halting. ]");
372 fatal(
"[ Alpha PALcode: Fixup: TODO ]\n");
381 default:
fatal(
"[ Alpha PALcode 0x%x unimplemented! ]\n", palcode);