|
|
1.1 ! root 1: /* $Header: sym.c,v 1.1 86/03/24 16:19:22 rcs Exp $ */ ! 2: /* (C) Copyright 1985 Third Eye Software, Inc. - All Rights Reserved */ ! 3: ! 4: #include "tes42.h" ! 5: ! 6: ! 7: /* I S Y M F S Y M */ ! 8: ! 9: export int IsymFSym (sym) ! 10: pSYMR sym; ! 11: { ! 12: return (sym - vrgSym); ! 13: } /* IsymFSym */ ! 14: ! 15: ! 16: /* S Y M F I S Y M */ ! 17: ! 18: export pSYMR SymFIsym (isym) ! 19: int isym; ! 20: { ! 21: return (vrgSym + isym); ! 22: } /* SymFIsym */ ! 23: ! 24: ! 25: ! 26: /* S Y M F I N S E R T */ ! 27: ! 28: export pSYMR SymFInsert () ! 29: { ! 30: register pSYMR sym; ! 31: static SYMR asymZeroes; ! 32: ! 33: if (visymMac >= visymMax) ! 34: panic ("symbol overrrun"); ! 35: visym = visymMac++; ! 36: sym = vrgSym + visym; ! 37: ! 38: *sym = asymZeroes; ! 39: ! 40: return (sym); ! 41: } /* SymFInsert */ ! 42: ! 43: ! 44: /* D E L E T E S Y M */ ! 45: ! 46: export void DeleteSym (sym) ! 47: pSYMR sym; ! 48: { ! 49: long isym; ! 50: ! 51: if (sym >= vrgSym + visymMac) ! 52: panic ("illegal symbol delete"); ! 53: ! 54: visymMac--; ! 55: for (isym = IsymFSym(sym); isym < visymMac; isym++) ! 56: vrgSym[isym] = vrgSym[isym+1]; ! 57: } /* DeleteSym */ ! 58: ! 59: ! 60: /* S Y M F G L O B A L */ ! 61: ! 62: export pSYMR SymFGlobal() ! 63: { ! 64: pSYMR sym; ! 65: static SYMR asymZeroes; ! 66: ! 67: if (visymGlMac >= visymGlMax) ! 68: panic("sym table overrun"); ! 69: ! 70: visymGlobal = visymGlMac++; ! 71: sym = vrgSymGlobal + visymGlobal; ! 72: ! 73: *sym = asymZeroes; ! 74: ! 75: return(sym); ! 76: } /* SymFGlobal */ ! 77: ! 78: ! 79: /* E X I S T I N G S Y M F S B P R O C */ ! 80: ! 81: export pSYMR ExistingSymFSbProc (iss) ! 82: register int iss; ! 83: { ! 84: register pPDR pd= vrgPd + vipd; ! 85: register pPDR pd0= vrgPd; ! 86: register pSYMR rgSym= vrgSym; ! 87: ! 88: while (pd >= pd0 && rgSym [pd->isym].iss != iss) ! 89: pd--; ! 90: ! 91: return (pd >= pd0 ? (rgSym + pd->isym) : symNil); ! 92: ! 93: } /* ExistingSymFSbProc */ ! 94: ! 95: ! 96: /* E X I S T I N G S Y M F G L O B A L */ ! 97: ! 98: export pSYMR ExistingSymFGlobal (sym) ! 99: pSYMR sym; ! 100: { ! 101: register pSYMR sym1; ! 102: ! 103: for (sym1 = vrgSymGlobal+visymGlMac; ! 104: (sym1 >= vrgSymGlobal) && (sym1->iss != sym->iss); sym1--) ! 105: ; ! 106: ! 107: return( (sym1 >= vrgSymGlobal) ? sym1 : symNil); ! 108: } /* ExistingSymFGlobal */ ! 109: ! 110: ! 111: /* E X I S T I N G F D S Y M F I S S */ ! 112: ! 113: export pSYMR ExistingFdSymFIss (iss) ! 114: register int iss; ! 115: { ! 116: register pSYMR sym1 = vrgSym + visym; ! 117: register pSYMR symFile = vsymFile; ! 118: ! 119: while ( (sym1 > symFile) && (sym1->iss != iss)) ! 120: sym1--; ! 121: ! 122: return( (sym1 > symFile) ? sym1 : symNil); ! 123: } /* ExistingFdSymFIss */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.