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

Defined functions

constn declared in line 6; defined in line 19; used 3 times
evalcon declared in line 7; defined in line 93; used 4 times
packcon defined in line 62; used 1 times
  • in line 28
Last modified: 1975-07-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 445
Valid CSS Valid XHTML 1.0 Strict