1: / 2: / 3: 4: / f45 -- constant pool 5: 6: .globl constn 7: .globl evalcon 8: 9: .globl error 10: .globl perror 11: .globl code 12: .globl getcon 13: .globl setln 14: .globl getln 15: .globl xbuf 16: .globl symbuf 17: .globl negflg 18: 19: constn: 20: jsr r5,setln 21: mov $xbuf+518.,r3 / pool max pointer 22: mov $ibuf+518.,r4 / pool pointer pointer 23: 1: 24: jsr r5,getln 25: br 1f 26: cmp r0,$'c 27: bne 1b 28: jsr r5,packcon 29: mov r2,-(r4) / put p ptr in p p ptr 30: cmp r3,r4 31: blo 1b 32: jsr r5,error; 99. 33: jsr r5,perror 34: 1: 35: mov $xbuf+518.,r2 36: 1: 37: cmp r2,r3 38: bhis 1f 39: mov $ibuf+518.,r1 40: 2: 41: cmp r1,r4 42: blo 2f 43: cmp -(r1),r2 44: bne 2b 45: mov r1,r0 46: sub $ibuf+516.,r0 47: asr r0 48: neg r0 49: jsr r5,code 50: <c%d:\n\0>; .even 51: r0 52: br 2b 53: 2: 54: mov (r2)+,r0 55: jsr r5,code 56: < %o\n\0>; .even 57: r0 58: br 1b 59: 1: 60: rts r5 61: 62: packcon: 63: mov $line,r1 64: jsr r5,evalcon 65: mov r1,-(sp) 66: mov r3,-(sp) 67: sub r2,(sp) 68: asr (sp) 69: mov r2,-(sp) 70: mov $xbuf+518.,r2 71: 1: 72: mov (sp),r3 73: mov r2,r1 74: tst (r2)+ 75: mov 2(sp),r0 76: 2: 77: cmp (r1)+,(r3)+ 78: bne 1b 79: dec r0 80: bgt 2b 81: tst -(r2) 82: mov (sp)+,r3 83: asl (sp) 84: add r2,(sp) 85: cmp (sp),r3 86: blos 1f 87: mov (sp),r3 / eureka 88: 1: 89: tst (sp)+ 90: mov (sp)+,r1 91: rts r5 92: 93: evalcon: 94: cmpb efno,$5 95: bne 2f 96: movb efno+1,r0 97: mov r3,r2 98: br 1f 99: 2: 100: jsr r5,getcon 101: tst negflg 102: beq 2f 103: negf fr0 104: negf fr1 105: 2: 106: mov r3,r2 107: mov efno,r0 108: mov r0,r1 109: clrb r0 110: swab r0 111: bic $!7,r1 112: cmpb r1,$realcon 113: beq 3f 114: cmpb r1,$cplxcon 115: beq 2f 116: setl 117: movfi r0,symbuf+1 118: seti 119: mov $symbuf+5,r1 120: sub r0,r1 121: br 1f 122: 2: 123: mov $symbuf+1,r1 124: movf fr1,symbuf+1 125: cmp r0,$8 126: beq 2f 127: movf fr0,symbuf+9. 128: br 1f 129: 2: 130: movf fr0,symbuf+5 131: br 1f 132: 3: 133: movf fr0,symbuf+1 134: mov $symbuf+1,r1 135: 1: 136: movb (r1)+,(r3)+ 137: dec r0 138: bgt 1b 139: bit $1,r3 140: beq 1f 141: clrb (r3)+ 142: 1: 143: rts r5