# 2.11BSD#431 - /usr/src/ucb/pascal/px/30atof.s

##### Functions

    _atof             X

       1: / C library -- ascii to floating
       2:
       3: /	f = atof(p)
       4: /	char *p;
       5:
       6: ldfps = 170100^tst
       7: stfps = 170200^tst
       8:
       9: .globl  _atof
      10:
      11: .globl  csv, cret
      12:
      13: _atof:
      14:         jsr     r5,csv
      15:         stfps   -(sp)
      16:         ldfps   $200
      17:         movf    fr1,-(sp)
      18:         clr     -(sp)
      19:         clrf    fr0
      20:         clr     r2
      21:         mov     4(r5),r3
      22: 1:
      23:         movb    (r3)+,r0
      24:         cmp     $' ,r0
      25:         beq     1b
      26:         cmpb    r0,$'-
      27:         bne     2f
      28:         inc     (sp)
      29: 1:
      30:         movb    (r3)+,r0
      31: 2:
      32:         sub     $'0,r0
      33:         cmp     r0,$9.
      34:         bhi     2f
      35:         jsr     pc,digit
      36:                 br 1b
      37:         inc     r2
      38:         br      1b
      39: 2:
      40:         cmpb    r0,$'.-'0
      41:         bne     2f
      42: 1:
      43:         movb    (r3)+,r0
      44:         sub     $'0,r0
      45:         cmp     r0,$9.
      46:         bhi     2f
      47:         jsr     pc,digit
      48:                 dec r2
      49:         br      1b
      50: 2:
      51:         cmpb    r0,$'E-'0
      52:         beq     3f
      53:         cmpb    r0,$'e-'0
      54:         bne     1f
      55: 3:
      56:         clr     r4
      57:         clr     r1
      58:         cmpb    (r3),$'-
      59:         bne     3f
      60:         inc     r4
      61:         inc     r3
      62: 3:
      63:         movb    (r3)+,r0
      64:         sub     $'0,r0
      65:         cmp     r0,$9.
      66:         bhi     3f
      67:         mul     $10.,r1
      68:         add     r0,r1
      69:         br      3b
      70: 3:
      71:         tst     r4
      72:         bne     3f
      73:         neg     r1
      74: 3:
      75:         sub     r1,r2
      76: 1:
      77:         movf    $one,fr1
      78:         mov     r2,-(sp)
      79:         beq     2f
      80:         bgt     1f
      81:         neg     r2
      82: 1:
      83:         cmp     r2,$38.
      84:         blos    1f
      85:         clrf    fr0
      86:         tst     (sp)+
      87:         bmi     out
      88:         movf    $huge,fr0
      89:         br      out
      90: 1:
      91:         mulf    $ten,fr1
      92:         sob     r2,1b
      93: 2:
      94:         tst     (sp)+
      95:         bge     1f
      96:         divf    fr1,fr0
      97:         br      2f
      98: 1:
      99:         mulf    fr1,fr0
     100:         cfcc
     101:         bvc     2f
     102:         movf    $huge,fr0
     103: 2:
     104: out:
     105:         tst     (sp)+
     106:         beq     1f
     107:         negf    fr0
     108: 1:
     109:         movf    (sp)+,fr1
     110:         ldfps   (sp)+
     111:         jmp     cret
     112: /
     113: /
     114: digit:
     115:         cmpf    $big,fr0
     116:         cfcc
     117:         blt     1f
     118:         mulf    $ten,fr0
     119:         movif   r0,fr1
     120:         addf    fr1,fr0
     121:         rts     pc
     122: 1:
     123:         add     $2,(sp)
     124:         rts     pc
     125: /
     126: /
     127: one     = 40200
     128: ten     = 41040
     129: big     = 56200
     130: huge    = 77777

#### Defined functions

_atof declared in line 9; defined in line 13; used 3 times

- in line 9
- in /usr/src/ucb/pascal/px/00int.s line 11
- in /usr/src/ucb/pascal/px/30io.s line 214

big defined in line 129; used 1 times

- in line 115

digit defined in line 114; used 2 times

- in line 35, 47

huge defined in line 130; used 2 times

- in line 88, 102

one defined in line 127; used 1 times

- in line 77

out defined in line 104; used 2 times

- in line 87-89(2)

ten defined in line 128; used 2 times

- in line 91, 118

Last modified: 1981-07-10 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 958 |