#ifndef INCLUDE_DEBUG_H #define INCLUDE_DEBUG_H #ifndef INCLUDE_STRING_H #include "../lib/strings.h" #endif inline fastcall void debugch( ECX) { $push eax $push ebx $mov eax,63 $mov ebx,1 $int 0x40 $pop ebx $pop eax } inline fastcall void debug( EDX) { $push eax $push ebx $push ecx $mov eax, 63 $mov ebx, 1 NEXT_CHAR: $mov ecx, DSDWORD[edx] $or cl, cl $jz DONE $int 0x40 $inc edx $jmp NEXT_CHAR DONE: $pop ecx $pop ebx $pop eax } inline fastcall void debugln( EDX) { debug( EDX); debugch(10); } inline fastcall void debugcls() { char i; for (i=0;i<70;i++) debugch(10); } :void debugval(dword text,number) { char tmpch[12]; debug(text); debug(": "); itoa_(#tmpch, number); debugln(#tmpch); } :void debug_n(dword _text, _size) { dword res_text = malloc(_size); strncpy(res_text, _text, _size-1); debugln(res_text); free(res_text); } #endif