# include "bi.h" /* * Block I/O routines for the Micro Decision installer */ biosread () { static char *p; static s; p = biosbuf; for (s = BIOSSTART; s < BIOSEND; s++, p += RECSIZE) { if (sio (READ, p, BIOSTRACK, s)) { fatal ("Can't read bios\n"); } } } bioswrite () { static char *p; static s; p = biosbuf; for (s = BIOSSTART; s < BIOSEND; s++, p += RECSIZE) if (sio (WRITE, p, BIOSTRACK, s, s == BIOSEND - 1)) fatal ("Can't write bios\n"); } sio (op, addr, track, sector, last) { static char selected [5] = {NO}; bios (SETDRV, drive, selected[drive]); selected[drive] = YES; bios (SETTRK, track, 0); bios (SETSEC, sector, 0); bios (SETDMA, addr, 0); if (op == READ) return bios (BIORED, 0, 0); else return bios (BIOWRT, last, 0); }