home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d101 / psintrp.lha / PsIntrp / ffpa.a < prev    next >
Text File  |  1987-09-05  |  6KB  |  328 lines

  1.  
  2.    xdef  FFPAFP
  3.    xdef  FFPFPA
  4.  
  5.    section  one
  6.  
  7. FFPAFP
  8.    moveq     #0,D7
  9.    moveq     #0,D6
  10.    bsr       R0004CA
  11.    beq       lab0448
  12.    bcs       lab042E
  13.    cmp.b     #'-',D5
  14.    seq       D6
  15.    swap      D6
  16.    bsr       R0004CA
  17.    beq       lab0448
  18. lab042E
  19.    cmp.b     #'.',D5
  20.    bne       lab043A
  21.    bsr       R0004CA
  22.    beq       lab04A4
  23. lab043A
  24.    subq.l    #1,A0
  25.    or.b     #1,CCR
  26.    rts       
  27. lab0442
  28.    bsr       R0004CA
  29.    bne       lab049A
  30. lab0448
  31.    bsr       R0004AC
  32.    bcc       lab0442
  33. lab044C
  34.    addq.w    #1,D6
  35.    bsr       R0004CA
  36.    beq       lab044C
  37.    cmp.b     #'.',D5
  38.    bne       lab045C
  39. lab0458
  40.    bsr       R0004CA
  41.    beq       lab0458
  42. lab045C
  43.    cmp.b     #'E',D5
  44.    bne       lab0492
  45.    bsr       R0004CA
  46.    beq       lab0476
  47.    bcs       lab043A
  48.    rol.l     #8,D6
  49.    cmp.b     #'-',D5
  50.    seq       D6
  51.    ror.l     #8,D6
  52.    bsr       R0004CA
  53.    bne       lab043A
  54. lab0476
  55.    move.w    D5,D4
  56. lab0478
  57.    bsr       R0004CA
  58.    bne       lab048A
  59.    mulu      #$0A,D4
  60.    cmp.w     #$07D0,D4
  61.    bhi       lab043A
  62.    add.w     D5,D4
  63.    bra       lab0478
  64. lab048A
  65.    tst.l     D6
  66.    bpl       lab0490
  67.    neg.w     D4
  68. lab0490
  69.    add.w     D4,D6
  70. lab0492
  71.    subq.l    #1,A0
  72.    jmp       FFPDBF
  73. lab049A
  74.    cmp.b     #'.',D5
  75.    bne       lab045C
  76. lab04A0
  77.    bsr       R0004CA
  78.    bne       lab045C
  79. lab04A4
  80.    bsr       R0004AC
  81.    bcs       lab0458
  82.    subq.w    #1,D6
  83.    bra       lab04A0
  84.  
  85. R0004AC
  86.    move.l    D7,D3
  87.    lsl.l     #1,D3
  88.    bcs       lab04C8
  89.    lsl.l     #1,D3
  90.    bcs       lab04C8
  91.    lsl.l     #1,D3
  92.    bcs       lab04C8
  93.    add.l     D7,D3
  94.    bcs       lab04C8
  95.    add.l     D7,D3
  96.    bcs       lab04C8
  97.    add.l     D5,D3
  98.    bcs       lab04C8
  99.    move.l    D3,D7
  100. lab04C8
  101.    rts       
  102.  
  103. R0004CA
  104.    moveq     #0,D5
  105.    move.b    (A0)+,D5
  106.    cmp.b     #'+',D5
  107.    beq       lab04F0
  108.    cmp.b     #'-',D5
  109.    beq       lab04F0
  110.    cmp.b     #'0',D5
  111.    bcs       lab04F6
  112.    cmp.b     #'9',D5
  113.    bhi       lab04F6
  114.    and.b     #$0F,D5
  115.    move      #4,CCR
  116.    rts       
  117. lab04F0
  118.    move      #0,CCR
  119.    rts       
  120. lab04F6
  121.    move      #1,CCR
  122.    rts       
  123.  
  124.  
  125.  
  126. FFPDBF
  127.    moveq     #$20,D5
  128.    tst.l     D7
  129.    beq       lab0330
  130.    bmi       lab02B6
  131.    moveq     #$1F,D5
  132. lab02B0
  133.    add.l     D7,D7
  134.    dbmi      D5,lab02B0
  135. lab02B6
  136.    cmp.w     #$12,D6
  137.    bgt       lab033A
  138.    cmp.w     #$FFE4,D6
  139.    blt       lab0332
  140.    move.w    D6,D4
  141.    neg.w     D4
  142.    muls      #6,D4
  143.    move.l    A0,-(SP)
  144.    lea       .wmidtable,A0
  145.    add.w     0(A0,D4.w),D5
  146.    move.w    D5,D6
  147.    move.l    2(A0,D4.w),D3
  148.    move.l    (SP),A0
  149.    move.l    D3,(SP)
  150.    move.w    D7,D5
  151.    mulu      D3,D5
  152.    clr.w     D5
  153.    swap      D5
  154.    moveq     #0,D4
  155.    swap      D3
  156.    mulu      D7,D3
  157.    add.l     D3,D5
  158.    addx.b    D4,D4
  159.    swap      D7
  160.    move.w    D7,D3
  161.    mulu      2(SP),D3
  162.    add.l     D3,D5
  163.    bcc       lab0300
  164.    addq.b    #1,D4
  165. lab0300
  166.    move.w    D4,D5
  167.    swap      D5
  168.    mulu      (SP),D7
  169.    lea       4(SP),SP
  170.    add.l     D5,D7
  171.    bmi       lab0312
  172.    add.l     D7,D7
  173.    subq.w    #1,D6
  174. lab0312
  175.    add.l     #$00000080,D7
  176.    bcc       lab031E
  177.    roxr.l    #1,D7
  178.    addq.w    #1,D6
  179. lab031E
  180.    moveq     #9,D3
  181.    move.w    D6,D4
  182.    asl.w     D3,D6
  183.    bvs       lab0336
  184.    eor.w     #$8000,D6
  185.    lsr.l     D3,D6
  186.    move.b    D6,D7
  187.    beq       lab0332
  188. lab0330
  189.    rts       
  190. lab0332
  191.    moveq     #0,D7
  192.    rts       
  193. lab0336
  194.    tst.w     D4
  195.    bmi       lab0332
  196. lab033A
  197.    moveq     #-1,D7
  198.    swap      D6
  199.    roxr.b    #1,D6
  200.    roxr.b    #1,D7
  201.    tst.b     D7
  202.    or.b      #2,CCR
  203.    rts       
  204.  
  205.  
  206. FFPFPA
  207.    lea       -$0A(SP),SP
  208.    move.l    $0A(SP),-(SP)
  209.    move.w    #0,-(SP)
  210.    tst.b     D7
  211.    movem.l   D2-D6/A0/A1,-(SP)
  212.    bne       lab0512
  213.    moveq     #$41,D7
  214. lab0512
  215.    move.w    #$2B2E,$22(SP)
  216.    move.b    D7,D6
  217.    bpl       lab0520
  218.    addq.b    #2,$22(SP)
  219. lab0520
  220.    add.b     D6,D6
  221.    move.b    #$80,D7
  222.    eor.b     D7,D6
  223.    ext.w     D6
  224.    asr.w     #1,D6
  225.    moveq     #1,D3
  226.    lea       .wmidtable,A0
  227.    cmp.w     (A0),D6
  228.    blt       lab0554
  229.    bgt       lab0546
  230. lab053A
  231.    cmp.l     2(A0),D7
  232.    bcc       lab0560
  233. lab0540
  234.    addq.w    #6,A0
  235.    subq.w    #1,D3
  236.    bra       lab0560
  237. lab0546
  238.    lea       -6(A0),A0
  239.    addq.w    #1,D3
  240.    cmp.w     (A0),D6
  241.    bgt       lab0546
  242.    beq       lab053A
  243.    bra       lab0540
  244. lab0554
  245.    lea       6(A0),A0
  246.    subq.w    #1,D3
  247.    cmp.w     (A0),D6
  248.    blt       lab0554
  249.    beq       lab053A
  250. lab0560
  251.    move.l    #$452B3030,$2C(SP)
  252.    move.w    D3,D2
  253.    bpl       lab0572
  254.    neg.w     D2
  255.    addq.b    #2,$2D(SP)
  256. lab0572
  257.    cmp.w     #$0A,D2
  258.    bcs       lab0580
  259.    addq.b    #1,$2E(SP)
  260.    sub.w     #$0A,D2
  261. lab0580
  262.    or.b      D2,$2F(SP)
  263.    moveq     #7,D2
  264.    lea       $24(SP),A1
  265.    tst.l     D7
  266.    bpl       lab0594
  267.    tst.b     5(A0)
  268.    bne       lab0596
  269. lab0594
  270.    clr.b     D7
  271. lab0596
  272.    move.w    D6,D4
  273.    sub.w     (A0)+,D4
  274.    move.l    (A0)+,D5
  275.    lsr.l     D4,D5
  276.    moveq     #9,D4
  277. lab05A0
  278.    sub.l     D5,D7
  279.    dbcs      D4,lab05A0
  280.    bcs       lab05AA
  281.    clr.b     D4
  282. lab05AA
  283.    add.l     D5,D7
  284.    sub.b     #9,D4
  285.    neg.b     D4
  286.    or.b      #'0',D4
  287.    move.b    D4,(A1)+
  288.    dbra      D2,lab0596
  289.    move.w    D3,D7
  290.    ext.l     D7
  291.    movem.l   (SP)+,D2-D6/A0/A1
  292.    addq.l    #2,SP
  293.    rts       
  294.  
  295.    section  two,data
  296.  
  297. .wFFP10TBL
  298.    dc.w      $40,$8AC7,$2305,$3C,$DE0B,$6B3A
  299.    dc.w      $39,$B1A2,$BC2F,$36,$8E1B,$C9BF
  300.    dc.w      $32,$E35F,$A932,$2F,$B5E6,$20F5
  301.    dc.w      $2C,$9184,$E72A,$28,$E8D4,$A510
  302.    dc.w      $25,$BA43,$B740,$22,$9502,$F900
  303.    dc.w      $1E,$EE6B,$2800,$1B,$BEBC,$2000
  304.    dc.w      $18,$9896,$8000,$14,$F424,0,$11
  305.    dc.w      $C350,0,$0E,$9C40,0,$0A,$FA00
  306.    dc.w      0,7,$C800,0,4,$A000,0
  307. .wmidtable
  308.    dc.w      1,$8000,0,$FFFD,$CCCC,$CCCD,$FFFA
  309.    dc.w      $A3D7,$0A3D,$FFF7,$8312,$6E98
  310.    dc.w      $FFF3,$D1B7,$1759,$FFF0,$A7C5
  311.    dc.w      $AC47,$FFED,$8637,$BD06,$FFE9
  312.    dc.w      $D6BF,$94D6,$FFE6,$ABCC,$7712
  313.    dc.w      $FFE3,$8970,$5F41,$FFDF,$DBE6
  314.    dc.w      $FECF,$FFDC,$AFEB,$FF0C,$FFD9
  315.    dc.w      $8CBC,$CC09,$FFD5,$E12E,$1342
  316.    dc.w      $FFD2,$B424,$DC35,$FFCF,$901D
  317.    dc.w      $7CF7,$FFCB,$E695,$94BF,$FFC8
  318.    dc.w      $B877,$AA32,$FFC5,$9392,$EE8F
  319.    dc.w      $FFC1,$EC1E,$4A7E,$FFBE,$BCE5
  320.    dc.w      $0865,$FFBB,$971D,$A050,$FFB7
  321.    dc.w      $F1C9,$81,$FFB4,$C16D,$9A01,$FFB1
  322.    dc.w      $9ABE,$14CD,$FFAD,$F796,$87AE
  323.    dc.w      $FFAA,$C612,$0625,$FFA7,$9E74
  324.    dc.w      $D1B8,$FFA3,$FD87,$B5F3
  325.  
  326.    end
  327.  
  328.