1: .title often 2: 3: ; 4: ; these are routines which get called periodically: 5: ; 6: ; xctlin once per line 7: ; xctpas once per pass 8: ; xctprg once per program 9: ; 10: 11: .ident /sept81/ 12: 13: .mcall (at)always,st.flg 14: always 15: st.flg 16: .globl xctpas, xctlin, xctprg 17: .globl objsec 18: .globl macdfn 19: 20: .globl lst.kb,ioftbl,lstchn, lst.lp 21: .globl lstflg, u.flag 22: .globl io.tty 23: .globl lstdev 24: .globl cradix,pcrcnt 25: 26: .globl defttl,chrpnt, setchr,title,endvec 27: 28: .text 29: xctprg: 30: mov #^pl impure,r0 31: 1$: clr (r0)+ 32: cmp r0,#^ph implin 33: blo 1$ 34: call fixtit 35: inc endvec+6 ;default to no end vector 36: 37: ; fall through to 38: 39: xctpas: 40: mov #^pl imppas,r0 41: 1$: clr (r0)+ 42: cmp r0,#^ph implin 43: blo 1$ 44: 45: comb objsec ;force sequence break 46: 47: mov #lst.kb*400,r0 ;set error slot 48: tstb ioftbl+lstchn ;listing device? 49: beq 2$ ; no 50: bis #lst.kb!100200,r0 ;yes, assume teletype 51: bit #io.tty,ioftbl+lstchn ;true? 52: bne 2$ ; yes 53: add #<lst.lp-lst.kb>*401,r0 ;no, upgrade to lp 54: 2$: mov r0,lstdev ;set flags 55: 56: 3$: 57: mov #8.,cradix ;init to octal radix 58: 59: clr macdfn 60: ; fall through to 61: 62: xctlin: 63: mov #^pl implin,r0 64: 1$: clr (r0)+ 65: cmp r0,#^ph implin 66: blo 1$ 67: 68: dec pcrcnt 69: return 70: 71: .globl fixtit 72: fixtit: 73: mov #defttl,chrpnt 74: call setchr 75: call title 76: return 77: .end