|
|
1.1 ! root 1: /* ! 2: / This header file defines structures used by the Macro SPITBOL compiler ! 3: / that are passed into the OS interface. ! 4: */ ! 5: ! 6: /* ! 7: / First, define the C type WORD to be the same size as a word used ! 8: / by the Macro SPITBOL compiler. The type of a WORD is a signed ! 9: / integer for now. ! 10: */ ! 11: ! 12: typedef int WORD; ! 13: ! 14: /* ! 15: / CHFCB - chain of FCBs block ! 16: / ! 17: / For every FCB created by OSINT, the compiler creates a CHFCB pointing ! 18: / to the FCB and links it onto a chain of CHFCBs. At EOJ the head of this ! 19: / CHFCB chain is passed to the interface function SYSEJ so that all files ! 20: / can be closed. ! 21: */ ! 22: ! 23: struct chfcb ! 24: { ! 25: WORD typ; /* type word */ ! 26: WORD len; /* block length */ ! 27: struct chfcb *nxt; /* pointer to next chfcb */ ! 28: struct fcblk *fcp; /* pointer to fcb */ ! 29: }; ! 30: ! 31: /* ! 32: / ICBLK - integer block ! 33: / ! 34: / Integer values are stored in ICBLKs. Field icval should be defined ! 35: / to be the appropriate type for the implementation. ! 36: */ ! 37: ! 38: struct icblk ! 39: { ! 40: WORD typ; /* type word - b$icl */ ! 41: WORD val; /* integer value */ ! 42: }; ! 43: ! 44: /* ! 45: / SCBLK - string block ! 46: / ! 47: / String values are stored in SCBLKs. Notice that the scstr field ! 48: / is defined as an array of characters of length 1. This is a slight ! 49: / kludge to side-step C's lack of support for varying length strings. ! 50: / ! 51: / The actual length of a SCBLK is 2 words + the number of words necessary ! 52: / to hold a string of length sclen. ! 53: */ ! 54: ! 55: struct scblk ! 56: { ! 57: WORD typ; /* type word - b$scl */ ! 58: WORD len; /* string length */ ! 59: char str[1]; /* string characters */ ! 60: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.