|
|
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.