/* * Monitor.c */ #include "Monitor.h" struct { ActionProc *a; } MonRegistration[32]; static void action_display(chars, len, type, data1, data2) char *chars; unsigned len, type, data1, data2; { char *p; unsigned size, chunk; size = data2-data1; p = (char *) data1; while (size>0) { chunk = min(size, MSGSIZE); (void) MonPutPacket(MONDISPLAY, data1, data1+chunk, p, chunk); size = size - chunk; p = p + chunk; data1 = data1+ chunk; } (void) MonPutPacket(MONDISPLAY, 0, 0, (char *) 0, 0); } static void action_dump(chars, len, type, data1, data2) char *chars; unsigned len, type, data1, data2; { unsigned i; (void) MonPutPacket(MONDUMP, data1, 0, data1, 160); } static void fill8(first, last, val) char *first, *last, val; { char *p; for (p = first; p5 || data2!=len/4) {MonPutPacket(MONCALL, 0, data1, (char *) 0, 0); return;}; proc = (unsigned (*)()) data1; for (i = 0; i