#include "defs.h" /* adjust the input file addresses */ cleanup() { STRING str; SKT sp; CHP cp; PIN pp; scanboard(sp) { if (sp->sktchp != nil(CHP)) sp->sktchp = chp(adr(sp->sktchp)+fdelta); if (sp->block && sp->block != UBLOCK) sp->block = skt(adr(sp->block)+fdelta); if (sp->pck) sp->pck = chp(adr(sp->pck)+fdelta); } scanpacks(cp) if (cp->pins) cp->pins = pin(adr(cp->pins)+fdelta); scanchips(cp) if (cp->pins) cp->pins = pin(adr(cp->pins)+fdelta); scannets(pp) if (CHAIN(pp)) pp->chain = pin(adr(CHAIN(pp))+fdelta); else pp->chain = pp; scanboard(sp) { if (sp->sktchp == 0) continue; cp = sp->sktchp; if ((cp->pins->x & UNPLAC) == 0) continue; sp->sktchp = 0; if ((cp->typid & sp->perm) == 0) { str = "permissions"; } elif (((cp->dx > sp->dx || cp->dy > sp->dy)) && (expand(sp, cp, 1))) { str = "board space"; } else { sp->sktchp = cp; pinfix(cp, sp->x - UNPLAC, sp->y - UNPLAC); if (cp->dx > sp->dx || cp->dy > sp->dy) expand(sp, cp, 0); continue; } if (eval(CHIP, adr(cp) - fdelta)) print("%E%s :", symbol->nm); print("%Ebad assignment: no %s\n", str); cp->state = FREE; } }