
   xdef  FFPAFP
   xdef  FFPFPA

   section  one

FFPAFP
   moveq     #0,D7
   moveq     #0,D6
   bsr       R0004CA
   beq       lab0448
   bcs       lab042E
   cmp.b     #'-',D5
   seq       D6
   swap      D6
   bsr       R0004CA
   beq       lab0448
lab042E
   cmp.b     #'.',D5
   bne       lab043A
   bsr       R0004CA
   beq       lab04A4
lab043A
   subq.l    #1,A0
   or.b     #1,CCR
   rts       
lab0442
   bsr       R0004CA
   bne       lab049A
lab0448
   bsr       R0004AC
   bcc       lab0442
lab044C
   addq.w    #1,D6
   bsr       R0004CA
   beq       lab044C
   cmp.b     #'.',D5
   bne       lab045C
lab0458
   bsr       R0004CA
   beq       lab0458
lab045C
   cmp.b     #'E',D5
   bne       lab0492
   bsr       R0004CA
   beq       lab0476
   bcs       lab043A
   rol.l     #8,D6
   cmp.b     #'-',D5
   seq       D6
   ror.l     #8,D6
   bsr       R0004CA
   bne       lab043A
lab0476
   move.w    D5,D4
lab0478
   bsr       R0004CA
   bne       lab048A
   mulu      #$0A,D4
   cmp.w     #$07D0,D4
   bhi       lab043A
   add.w     D5,D4
   bra       lab0478
lab048A
   tst.l     D6
   bpl       lab0490
   neg.w     D4
lab0490
   add.w     D4,D6
lab0492
   subq.l    #1,A0
   jmp       FFPDBF
lab049A
   cmp.b     #'.',D5
   bne       lab045C
lab04A0
   bsr       R0004CA
   bne       lab045C
lab04A4
   bsr       R0004AC
   bcs       lab0458
   subq.w    #1,D6
   bra       lab04A0

R0004AC
   move.l    D7,D3
   lsl.l     #1,D3
   bcs       lab04C8
   lsl.l     #1,D3
   bcs       lab04C8
   lsl.l     #1,D3
   bcs       lab04C8
   add.l     D7,D3
   bcs       lab04C8
   add.l     D7,D3
   bcs       lab04C8
   add.l     D5,D3
   bcs       lab04C8
   move.l    D3,D7
lab04C8
   rts       

R0004CA
   moveq     #0,D5
   move.b    (A0)+,D5
   cmp.b     #'+',D5
   beq       lab04F0
   cmp.b     #'-',D5
   beq       lab04F0
   cmp.b     #'0',D5
   bcs       lab04F6
   cmp.b     #'9',D5
   bhi       lab04F6
   and.b     #$0F,D5
   move      #4,CCR
   rts       
lab04F0
   move      #0,CCR
   rts       
lab04F6
   move      #1,CCR
   rts       



FFPDBF
   moveq     #$20,D5
   tst.l     D7
   beq       lab0330
   bmi       lab02B6
   moveq     #$1F,D5
lab02B0
   add.l     D7,D7
   dbmi      D5,lab02B0
lab02B6
   cmp.w     #$12,D6
   bgt       lab033A
   cmp.w     #$FFE4,D6
   blt       lab0332
   move.w    D6,D4
   neg.w     D4
   muls      #6,D4
   move.l    A0,-(SP)
   lea       .wmidtable,A0
   add.w     0(A0,D4.w),D5
   move.w    D5,D6
   move.l    2(A0,D4.w),D3
   move.l    (SP),A0
   move.l    D3,(SP)
   move.w    D7,D5
   mulu      D3,D5
   clr.w     D5
   swap      D5
   moveq     #0,D4
   swap      D3
   mulu      D7,D3
   add.l     D3,D5
   addx.b    D4,D4
   swap      D7
   move.w    D7,D3
   mulu      2(SP),D3
   add.l     D3,D5
   bcc       lab0300
   addq.b    #1,D4
lab0300
   move.w    D4,D5
   swap      D5
   mulu      (SP),D7
   lea       4(SP),SP
   add.l     D5,D7
   bmi       lab0312
   add.l     D7,D7
   subq.w    #1,D6
lab0312
   add.l     #$00000080,D7
   bcc       lab031E
   roxr.l    #1,D7
   addq.w    #1,D6
lab031E
   moveq     #9,D3
   move.w    D6,D4
   asl.w     D3,D6
   bvs       lab0336
   eor.w     #$8000,D6
   lsr.l     D3,D6
   move.b    D6,D7
   beq       lab0332
lab0330
   rts       
lab0332
   moveq     #0,D7
   rts       
lab0336
   tst.w     D4
   bmi       lab0332
lab033A
   moveq     #-1,D7
   swap      D6
   roxr.b    #1,D6
   roxr.b    #1,D7
   tst.b     D7
   or.b      #2,CCR
   rts       


FFPFPA
   lea       -$0A(SP),SP
   move.l    $0A(SP),-(SP)
   move.w    #0,-(SP)
   tst.b     D7
   movem.l   D2-D6/A0/A1,-(SP)
   bne       lab0512
   moveq     #$41,D7
lab0512
   move.w    #$2B2E,$22(SP)
   move.b    D7,D6
   bpl       lab0520
   addq.b    #2,$22(SP)
lab0520
   add.b     D6,D6
   move.b    #$80,D7
   eor.b     D7,D6
   ext.w     D6
   asr.w     #1,D6
   moveq     #1,D3
   lea       .wmidtable,A0
   cmp.w     (A0),D6
   blt       lab0554
   bgt       lab0546
lab053A
   cmp.l     2(A0),D7
   bcc       lab0560
lab0540
   addq.w    #6,A0
   subq.w    #1,D3
   bra       lab0560
lab0546
   lea       -6(A0),A0
   addq.w    #1,D3
   cmp.w     (A0),D6
   bgt       lab0546
   beq       lab053A
   bra       lab0540
lab0554
   lea       6(A0),A0
   subq.w    #1,D3
   cmp.w     (A0),D6
   blt       lab0554
   beq       lab053A
lab0560
   move.l    #$452B3030,$2C(SP)
   move.w    D3,D2
   bpl       lab0572
   neg.w     D2
   addq.b    #2,$2D(SP)
lab0572
   cmp.w     #$0A,D2
   bcs       lab0580
   addq.b    #1,$2E(SP)
   sub.w     #$0A,D2
lab0580
   or.b      D2,$2F(SP)
   moveq     #7,D2
   lea       $24(SP),A1
   tst.l     D7
   bpl       lab0594
   tst.b     5(A0)
   bne       lab0596
lab0594
   clr.b     D7
lab0596
   move.w    D6,D4
   sub.w     (A0)+,D4
   move.l    (A0)+,D5
   lsr.l     D4,D5
   moveq     #9,D4
lab05A0
   sub.l     D5,D7
   dbcs      D4,lab05A0
   bcs       lab05AA
   clr.b     D4
lab05AA
   add.l     D5,D7
   sub.b     #9,D4
   neg.b     D4
   or.b      #'0',D4
   move.b    D4,(A1)+
   dbra      D2,lab0596
   move.w    D3,D7
   ext.l     D7
   movem.l   (SP)+,D2-D6/A0/A1
   addq.l    #2,SP
   rts       

   section  two,data

.wFFP10TBL
   dc.w      $40,$8AC7,$2305,$3C,$DE0B,$6B3A
   dc.w      $39,$B1A2,$BC2F,$36,$8E1B,$C9BF
   dc.w      $32,$E35F,$A932,$2F,$B5E6,$20F5
   dc.w      $2C,$9184,$E72A,$28,$E8D4,$A510
   dc.w      $25,$BA43,$B740,$22,$9502,$F900
   dc.w      $1E,$EE6B,$2800,$1B,$BEBC,$2000
   dc.w      $18,$9896,$8000,$14,$F424,0,$11
   dc.w      $C350,0,$0E,$9C40,0,$0A,$FA00
   dc.w      0,7,$C800,0,4,$A000,0
.wmidtable
   dc.w      1,$8000,0,$FFFD,$CCCC,$CCCD,$FFFA
   dc.w      $A3D7,$0A3D,$FFF7,$8312,$6E98
   dc.w      $FFF3,$D1B7,$1759,$FFF0,$A7C5
   dc.w      $AC47,$FFED,$8637,$BD06,$FFE9
   dc.w      $D6BF,$94D6,$FFE6,$ABCC,$7712
   dc.w      $FFE3,$8970,$5F41,$FFDF,$DBE6
   dc.w      $FECF,$FFDC,$AFEB,$FF0C,$FFD9
   dc.w      $8CBC,$CC09,$FFD5,$E12E,$1342
   dc.w      $FFD2,$B424,$DC35,$FFCF,$901D
   dc.w      $7CF7,$FFCB,$E695,$94BF,$FFC8
   dc.w      $B877,$AA32,$FFC5,$9392,$EE8F
   dc.w      $FFC1,$EC1E,$4A7E,$FFBE,$BCE5
   dc.w      $0865,$FFBB,$971D,$A050,$FFB7
   dc.w      $F1C9,$81,$FFB4,$C16D,$9A01,$FFB1
   dc.w      $9ABE,$14CD,$FFAD,$F796,$87AE
   dc.w      $FFAA,$C612,$0625,$FFA7,$9E74
   dc.w      $D1B8,$FFA3,$FD87,$B5F3

   end

