//------------------------------------------------------------------------------ // ZCPU CRT sourcecode (for HL-ZASM compiler) (C) 2011 by Black Phoenix // // C runtime library initialization //------------------------------------------------------------------------------ #ifdef ZCRT_EXTENDED_MODE // Initialize extended mode mov edi,&zcrtInterruptTable; //Need "&" because array is defined below mov esi,&zcrtInterruptTable; add esi,1024; @InitTable: mov #edi,zcrtErrorHandler; inc edi; mov #edi,0; inc edi; mov #edi,0; inc edi; mov #edi,32; inc edi; cmp edi,esi; jl @InitTable; lidtr zcrtInterruptTable; stef; #endif // Call main function main(); // Stop the processor execution #ifdef ZCRT_EXTENDED_MODE clef; #endif int 1; //------------------------------------------------------------------------------ // Allocate the interrupt table #ifdef ZCRT_EXTENDED_MODE float zcrtInterruptTable[1024]; char* zcrtInterruptEntrypoint; // Default interrupt handlers zcrtErrorHandler: //Execute handler if required if (zcrtInterruptEntrypoint) { float errorNo,errorCode; cpuget errorNo,28; cpuget errorCode,27; zcrtInterruptEntrypoint(errorNo,errorCode); } iret #endif
XDearDeerX