1: / 2: / 3: 4: / a4 -- pdp-11 assembler pass 2 5: 6: oset: 7: mov r2,-(sp) 8: mov (r5)+,r1 9: mov r0,r2 10: bic $!777,r0 11: add r1,r0 12: add $6,r0 13: mov r0,(r1)+ / next slot 14: mov r1,r0 15: add $1004,r0 16: mov r0,(r1)+ / buf max 17: mov r2,(r1)+ / seek addr 18: mov (sp)+,r2 19: rts r5 20: 21: putw: 22: mov r1,-(sp) 23: mov r2,-(sp) 24: mov (r5)+,r2 25: mov (r2)+,r1 / slot 26: cmp r1,(r2) / buf max 27: bhis 1f 28: mov r0,(r1)+ 29: mov r1,-(r2) 30: br 2f 31: 1: 32: tst (r2)+ 33: mov r0,-(sp) 34: jsr r5,flush1 35: mov (sp)+,r0 36: mov r0,*(r2)+ 37: add $2,-(r2) 38: 2: 39: mov (sp)+,r2 40: mov (sp)+,r1 41: rts r5 42: 43: flush: 44: mov (r5)+,r2 45: cmp (r2)+,(r2)+ 46: flush1: 47: mov (r2)+,r1 48: mov r1,0f / seek address 49: mov fout,r0 50: sys indir; 9f 51: .data 52: 9: sys seek; 0:..; 0 53: .text 54: bic $!777,r1 55: add r2,r1 / write address 56: mov r1,0f 57: mov r2,r0 58: bis $777,-(r2) 59: inc (r2) / new seek addr 60: cmp -(r2),-(r2) 61: sub (r2),r1 62: neg r1 63: mov r1,0f+2 / count 64: mov r0,(r2) / new next slot 65: mov fout,r0 66: sys indir; 9f 67: .data 68: 9: sys write; 0:..; .. 69: .text 70: rts r5 71: 72: readop: 73: mov savop,r4 74: beq 1f 75: clr savop 76: rts pc 77: 1: 78: jsr pc,getw1 79: cmp r4,$200 80: blo 1f 81: cmp r4,$4000 82: blo 2f 83: add $usymtab-4000,r4 84: rts pc 85: 2: 86: add $symtab-1000,r4 87: 1: 88: rts pc 89: 90: getw: 91: mov savop,r4 92: beq getw1 93: clr savop 94: rts pc 95: getw1: 96: dec ibufc 97: bgt 1f 98: movb fin,r0 99: sys read; inbuf; 512. 100: bes 3f 101: asr r0 102: mov r0,ibufc 103: bne 2f 104: 3: 105: mov $4,r4 106: sev 107: rts pc 108: 2: 109: mov $inbuf,ibufp 110: 1: 111: mov *ibufp,r4 112: add $2,ibufp 113: rts pc