1: ; Copyright (c) 1981 Harvard-Radcliffe Student Timesharing System 2: ; Science Center, Harvard University 3: 4: .page 5: .title early data 6: ;this file is the data segment of pdp-11 lisp 7: ;it contains the sharable and non-sharable data 8: ; 9: ; forrest w howard, jr. 10: ; 11: ;Version 7 conditional code added 3/4/81 by s. dyer harvard science center 12: 13: .mcall $exit,$fork,$read,$write,$open,$create,$exec,$break,$seek 14: .mcall $indir,$close,$wait,$sig,$stty,$gtty 15: 16: .psect dsubr con 17: 18: 19: starbc=. 20: .if ne,multiseg 21: firpage=. 22: .endc 23: 24: 25: .psect ddtpr con 26: .if eq,multiseg 27: firpage=. 28: .endc 29: frstdtpr=. 30: 31: .psect datom con 32: frstatom=. 33: 34: oblist=anil ;initial oblist assignment 35: i=0 36: .rept hash 37: defobl \i 38: i=i+1 39: .endr 40: ;this is for nil=0 hack 41: .if ne,nilas0 42: .psect nil 43: anil=0 44: .if ne,multiseg 45: anil 46: anil 47: .endc 48: anil 49: .asclc nil 50: .even 51: .iff 52: anil=atmnil 53: .endc 54: 55: .psect usbydat con 56: char: .byte 0 57: nsext: .byte 0 ;non zero if we're using nstk reserve 58: intflg: .byte 0 ;non zero if we've been interpupted 59: noint: .byte 0 ;1 if cannot do panic inter 60: tracflg:.byte 0 ;1 if traceing stuff 61: keybin: .byte 0 ;1 if getting user input 62: .if ne,fpsim 63: sign: .byte 0 ;sign indicator 64: .endc 65: 66: 67: 68: .psect uswddat con 69: 70: 71: where: .word init ;where to jump to 72: prompt: .word eprompt ;-> or4 <- 73: bprompt:.word beprompt ;:> of <: 74: .if ne,xfer 75: readh: .word elist ;use the list approach 76: .iff 77: readh: .word readr ;readr or evalquote 78: .endc 79: protocell: .word 0 ;for protocol 80: rbktf: .word 0 ;for right bracket 81: gcolf: .word 0 ;if non zero, gcol in process 82: fltdmp: .word 0,0 ;for floating point stuff 83: gennum: .word 0,177777 ;for gensym 84: .word 0 ;top of pidsav 85: pidsav: .word 0 ;for process id 86: brkl: .word 0,0 ;break level 87: ;itop: .word lastiloc+2 ;for imem management 88: .if ne,jcbms 89: frmptr: .word 0 ;for spaghetti stacks 90: .endc 91: .if ne,fpsim 92: fpstuf: .word 0,0,0 93: .globl sign,fpstuf 94: .endc 95: 96: ;system indirect call setups 97: 98: $$seek: $seek 99: .word 0,0 100: .if ne, version7 ; i.e. V7 seek ## s. dyer. 3/4/81 101: .word 0 ; has three in-line words 102: .endc 103: 104: $$break: $break 105: .word <^ph datom> ; datom has 2 added to end, to prevent 106: ; stack colission!! 107: 108: $$open: $open 109: .word 0,0 110: $$create: $create 111: .word 0,755 112: $$read: $read 113: .word 0 114: .word 0 115: 116: $$write: $write 117: .word 0,0 118: $$sig: $sig 119: .word 0,0 120: 121: saveloc:.word 0 ;for temporary storage 122: nptop: .word 0 ;top of name stack 123: nplength: .word nplen ;lenth of namestack 124: npbottom: 125: cptop: .word 0 ;highest loc in cstk, lowest in nstk 126: npres: .word 0 ;where overflow nstk starts 127: ltop: .word 0 ;for recursive func calls 128: 129: 130: 131: frdtpr: ;free lists 132: fdtpr: anil 133: mfdtpr: ^d50 ;minimum from gcol return 134: mfnumb: ^d50 135: cnumber:.word 0 ;count used by gcol 136: cdtpr: .word 0 137: fratom: 138: fatom: onlyatom 139: frnumber: 140: fnumber: anil 141: fbcd: 142: frbcd: anil 143: 144: 145: 146: 147: 148: 149: .psect uswdda 150: 151: nplim: .word 0 ;used by nstk overflow 152: lnleng: .word ^d67 ;initial length of line 153: 154: .psect usbydat con 155: .even 156: strbuf: .blkb strlen 157: strbend: .blkb 30 158: .even 159: tib: .blkb tblen ;tty input buffer 160: .even 161: .word 0 ;allow for slight overflow 162: tob: .blkb tblen ;tty output buffer 163: .even 164: .word 0 165: eob: .blkb ^d22 ;standard error output buffer 166: .word 0 167: qmap: .blkb ^d256 ;store types of pages 168: 169: .psect usport con 170: piport: .word 0,tib,tib,0,tblen 171: poport: .word 202,tob,tob,tblen,tblen 172: erport: .word 204,eob,eob,^d20,^d20 173: .rept nports-3 174: .blkw 5 175: .endr 176: 177: 178: 179: .psect usbydat con 180: supcol: .byte 0 ;in system, used to tell whether full collection on 181: 182: 183: 184: .psect shrwdda con 185: 186: master: .asciz ?/usr/new/lib/lisp11/? 187: erf: .ascii ?/usr/new/lib/lisp11/? 188: .if ne,xfer 189: terf: .asciz ?xlisp.err? 190: .iff 191: terf: .asciz ?lisp.err? 192: .endc 193: eprompt: .byte 12 194: .asciz /-> / 195: beprompt: .asciz /:> / 196: eqprompt: .byte 12 197: .asciz /<- / 198: beqprompt: .asciz /<: / 199: linefeed: .byte 12,0 200: genstr: .asciz /gensym/ 201: protostr: .asciz /lisp.protocol/ 202: .if ne,multiseg 203: .globl lispbin 204: lispbin: .asciz ?./lisp.out? 205: .endc 206: broken: .asciz <12>/breaking / 207: sportsym: .asciz /port/ 208: sbcdout: .ascii /binary#/ 209: savenm: .asciz /code/ 210: sspc: .asciz / / 211: spersda: .asciz /. / 212: dq: .asciz /"/ 213: 214: 215: 216: .if df,gctrace 217: .globl gcex,gcem 218: 219: 220: gcex: .asciz <12>/leaving gcol/<12> 221: gcem: .asciz <12>/entering gcol/<12> 222: 223: .endc 224: .if ne,xfer 225: .psect shrwdda 226: 227: .globl xprog,xfile,xvect,xbcdm 228: 229: xprog: .asciz ?/sys/lisp/bin/xprog? 230: xbcdm: .asciz ?/sys/lisp/bin/bcdmap? 231: .even 232: xvect: .word xprog,xfile,0 233: 234: .psect usbyda 235: 236: xfile: .asciz /******/ 237: 238: .endc