#include void Bconws(char *s) { while (*s) Bconout(2, *s++); } #define LONG long #define WORD short /* * Prinl - print a long integer (32 bits) * */ void printl(val) register LONG val; { register WORD j; register WORD div_idx; register WORD first; static LONG divisors[] = { 1000000000,100000000,10000000,1000000, 100000,10000, 1000, 100, 10, 1 }; #define MAX_IDX 10 if (val == 0) { Bconout(2, '0'); return; } else if (val == -2147483648) { Bconws( "-2147483648"); return; } if (val < 0L) { Bconout(2, '-'); val = -val; } first = 0; for(div_idx = 0; div_idx < MAX_IDX; div_idx++) { if(((j = (WORD)(val / divisors[div_idx])) != 0) || first != 0) { Bconout(2, j + '0'); first = 1; } val %= divisors[div_idx]; } } main() { long size; long *buf, *first, *last = 0; while ((size = Malloc(-1L)) >= 8) { buf = Malloc(size); printl(size); Bconws("\tbytes free at "); printl(buf); Bconws("\r\n"); if (last) *last = buf; else first = buf; last = buf; *buf = 0; } /* free all those buffers */ buf = first; while (buf) { last = *buf; Mfree(buf); buf = last; } }