1: rti = 2
   2: /	accept
   3: /	r1 = header of where to put it
   4: /
   5: accept:
   6:         mov     r0,-(sp)
   7:         movb    $':,r0
   8:         jsr     r5,tfoput
   9:         movb    $' ,r0
  10:         jsr     r5,tfoput
  11: 2:
  12:         jsr     r5,tfiget
  13:         cmpb    r0,$'\n
  14:         beq     1f
  15:         jsr     pc,putchar
  16:         br      2b
  17: 1:
  18:         jsr     pc,putchar
  19:         jsr     r5,tfiget
  20:         cmpb    r0,$'\n
  21:         beq     1f
  22:         jsr     pc,putchar
  23:         br      2b
  24: 1:
  25:         mov     (sp)+,r0
  26:         rts     pc
  27: /
  28: /
  29: /	routine to get the last word from the string
  30: /	r1=header addr
  31: /
  32: pop:
  33:         jsr     pc,fsfile
  34:         jsr     pc,backword
  35:         bes     1f
  36:         sub     $2,w(r1)
  37: 1:
  38:         rts     pc
  39: /
  40: /
  41: /	routine to add an entry to assoc mem or curly
  42: /	r1 = header
  43: /	r0 = header of string name
  44: /	r2 = header of string
  45: /
  46: addentry:
  47:         jsr     pc,putword
  48:         mov     r2,r0
  49:         jsr     pc,putword
  50:         rts     pc
  51: /
  52: /
  53: /	routine to find the string pointed to by r0
  54: /	in either memory or curly
  55: /	r1 = where to look
  56: /
  57: /	returns error set if string not there
  58: /	returns r1 = header of string if there
  59: /
  60: getsp:
  61:         mov     r0,-(sp)
  62:         mov     r1,-(sp)
  63:         jsr     pc,rewind       /memory
  64: 3:
  65:         mov     2(sp),r1
  66:         jsr     pc,rewind       /output
  67:         mov     (sp),r1
  68:         jsr     pc,getword
  69:         bes     1f
  70:         mov     r0,r1
  71:         mov     r0,-(sp)
  72:         jsr     pc,rewind       /string
  73: 2:
  74:         mov     (sp),r1
  75:         jsr     pc,getchar
  76:         bes     2f
  77:         movb    r0,r2
  78:         mov     4(sp),r1
  79:         jsr     pc,getchar
  80:         bes     4f
  81:         cmpb    r0,r2
  82:         beq     2b
  83: 4:
  84:         tst     (sp)+
  85: 4:
  86:         mov     (sp),r1
  87:         add     $2,r(r1)
  88:         br      3b
  89: 2:
  90:         tst     (sp)+
  91:         mov     2(sp),r1
  92:         cmp     r(r1),w(r1)
  93:         bne     4b
  94:         mov     (sp)+,r1
  95:         jsr     pc,getword
  96:         tst     (sp)+
  97:         rts     pc
  98: 1:
  99:         mov     (sp)+,r1
 100:         mov     (sp)+,r0
 101:         sec
 102:         rts     pc
 103: /
 104: /
 105: /	tfoput
 106: /
 107: /	jsr	r5,tfoput
 108: /
 109: tfoput:
 110:         mov     r0,ch
 111:         mov     $1,r0
 112:         sys     write; ch; 1
 113:         rts     r5
 114: /
 115: /
 116: /	tfiget
 117: /
 118: /	jsr	r5,tfiget
 119: /
 120: tfiget:
 121:         clr     r0
 122:         sys     read; ch; 1
 123:         bes     1f
 124:         tst     r0
 125:         beq     1f
 126:         movb    ch,r0
 127:         rts     r5
 128: 1:
 129:         jsr     r5,flushb
 130:         tst     argf
 131:         beq     1f
 132:         mov     opointer,r1
 133:         jsr     pc,pop
 134: 1:
 135:         mov     $5,tflag
 136:         jmp     interrupt
 137: /
 138: /	putc
 139: /	jsr	r5,putc
 140: /
 141: putc:
 142:         mov     r1,-(sp)
 143:         mov     r2,-(sp)
 144:         mov     $rfo+2,r1
 145:         mov     r1,r2
 146:         add     (r1),r2
 147:         movb    r0,2(r2)
 148:         inc     (r1)
 149:         cmp     (r1),$512.
 150:         bge     1f
 151:         mov     (sp)+,r2
 152:         mov     (sp)+,r1
 153:         rts     r5
 154: 1:
 155:         mov     (sp)+,r2
 156:         mov     (sp)+,r1
 157: /
 158: /
 159: /	flush output buffer to output file.
 160: /
 161: flushb:
 162:         mov     r1,-(sp)
 163:         mov     r0,-(sp)
 164:         mov     $rfo,r1
 165:         mov     (r1)+,r0
 166:         mov     (r1),0f+2
 167:         beq     1f
 168:         clr     (r1)+
 169:         mov     r1,0f
 170:         sys     write; 0:..;..
 171: 1:
 172:         mov     (sp)+,r0
 173:         mov     (sp)+,r1
 174:         rts     r5
 175: relarg:
 176:         mov     $arg,r2
 177: 1:
 178:         mov     (r2)+,r1
 179:         beq     2f
 180:         jsr     pc,release
 181:         br      1b
 182: 2:
 183:         cmp     r2,$arge
 184:         blt     1b
 185:         rts     pc
 186: /
 187: relcurl:
 188:         mov     curly,r1
 189:         jsr     pc,rewind
 190: 1:
 191:         jsr     pc,getword
 192:         bes     1f
 193:         mov     r0,r1
 194:         jsr     pc,release
 195:         mov     curly,r1
 196:         br      1b
 197: 1:
 198:         jsr     pc,release
 199:         rts     pc
 200: /
 201: int:
 202:         inc     iflag
 203:         rti
 204: /
 205: interrupt:
 206:         jsr     pc,relarg
 207:         tst     opointer
 208:         beq     2f
 209: 1:
 210:         mov     opointer,r1
 211:         jsr     pc,rewind
 212: 1:
 213:         jsr     pc,getword
 214:         bes     1f
 215:         mov     r0,r1
 216:         jsr     pc,release
 217:         mov     opointer,r1
 218:         br      1b
 219: 1:
 220:         mov     opointer,r1
 221:         jsr     pc,release
 222:         tst     ipointer
 223:         beq     2f
 224:         mov     ipointer,r1
 225:         jsr     pc,release
 226:         tst     curly
 227:         beq     2f
 228:         jsr     pc,relcurl
 229:         tst     scr
 230:         beq     2f
 231:         mov     scr,r1
 232:         jsr     pc,release
 233: 2:
 234:         jsr     pc,flush
 235:         jsr     pc,whead
 236:         sys     exit
 237: letter: .=.+2
 238: arg:    .=.+20.
 239: arge:   0
 240: argf:   .=.+2
 241: switch: .=.+2
 242: curly:  .=.+2
 243: curlyf: .=.+2
 244: ch:     .=.+2
 245: opointer:       .=.+2
 246: ipointer:       .=.+2
 247: scr:    .=.+2
 248: iflag:  0
 249: tflag:  0
 250: end:

Defined functions

accept defined in line 5; never used
addentry defined in line 46; never used
arg defined in line 238; used 1 times
arge defined in line 239; used 1 times
argf defined in line 240; used 1 times
ch defined in line 244; used 4 times
curly defined in line 242; used 3 times
curlyf defined in line 243; never used
end defined in line 250; never used
flushb defined in line 161; used 1 times
getsp defined in line 60; never used
iflag defined in line 248; used 1 times
int defined in line 201; never used
interrupt defined in line 205; used 1 times
ipointer defined in line 246; used 2 times
letter defined in line 237; never used
opointer defined in line 245; used 5 times
pop defined in line 32; used 1 times
putc defined in line 141; never used
relarg defined in line 175; used 1 times
relcurl defined in line 187; used 1 times
scr defined in line 247; used 2 times
switch defined in line 241; never used
tfiget defined in line 120; used 2 times
tflag defined in line 249; used 1 times
tfoput defined in line 109; used 2 times
  • in line 8-10(2)
Last modified: 1975-05-14
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 538
Valid CSS Valid XHTML 1.0 Strict