home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / util / mer128.arc / FPMACROS < prev    next >
Encoding:
Text File  |  1993-04-15  |  2.4 KB  |  104 lines

  1. *-----------------------------------
  2. *áfLOATINGáPOINTáMACROSáANDáEQUATES
  3. *áFORáCALLINGáromáROUTINES.
  4.  
  5. ayint = $af00 ;FAC->INTEGERáINáFAC+1,FAC+4
  6. givayf = $af03 ;fLOATáSIGNEDáINTEGERáINáa,y
  7. fout = $af06 ;FACá->áASCIIáSTRINGáATá$100
  8. val = $af09 ;aSCIIáSTRINGáATátxtptrá->áFAC
  9. getadr = $af0c ;FACá->áADRSáINálinnumá($16,$17)
  10. floatc = $af0f ;fLOATáADRSá(ALREADYáASSUMEDáTO
  11. ;áBEáINáFAC+1,FAC+2.ááeNTERáWITH
  12. ;á#BITSá+á$80áINáx-REG.áái.E.,
  13. ;áx=$88áFORáONEáBYTE,á$90áFORá2)
  14.  
  15. *átHEá"t"áVERSIONSáOFáTHEáFOLLOWINGáASSUMEáTHATáTHE
  16. *áSTATUSáREGISTERáISáSETáACCORDINGáTOáFACá(FACEXP);
  17. *áTHISáCANáBEáACCOMPLISHEDáBYáldaáfacáPRIORáTOáCALLING:
  18.  
  19. fsub = $af12 ;MEM-FACá->áFAC
  20. fsubt = $af15 ;ARG-FACá->áFAC
  21. fadd = $af18 ;MEM+FACá->áFAC
  22. faddt = $af1b ;ARG-FACá->áFAC
  23. fmult = $af1e ;MEM*FACá->áFAC
  24. fmultt = $af21 ;ARG*FACá->áFAC
  25. fdiv = $af24 ;MEM/FACá->áFAC
  26. fdivt = $af27 ;ARG/FACá->áFAC
  27. log = $af2a ;LN(FAC)á->áFAC
  28. int = $af2d ;INT(FAC)á->áFAC
  29. sqr = $af30 ;SQR(FAC)á->áFAC
  30. negop = $af33 ;-FACá->áFAC
  31. fpwr = $af36 ;ARG^MEMá->áFAC
  32. fpwrt = $af39 ;ARG^FACá->áFAC
  33. exp = $af3c ;EXP(FAC)á->áFAC
  34. cos = $af3f ;COS(FAC)á->áFACá(RADIANS)
  35. sin = $af42 ;SIN(FAC)á->áFAC
  36. tan = $af45 ;TAN(FAC)á->áFAC
  37. atn = $af48 ;ARCTAN(FAC)á->áFAC
  38. round = $af4b ;ROUNDáPRECISIONáBITáINTOáFAC
  39. ;áMOSTáROUTINESáCALLáTHISáFIRST
  40. ;áSOáITáISáRARELYáNEEDED
  41. abs = $af4e ;ABS(FAC)á->áFAC
  42. sign = $af51 ;rETURNáaá=á-1,0,1áACCORDING
  43. ;áTOáSIGNáOFáFAC.áásTATUSáREG
  44. ;áISáALSOáSETáACCORDINGLY
  45. fcomp = $af54 ;rETURNáaá=á-1,0,1áASá#áPOINTED
  46. ;áTOáBYá(a,y)áISá<=>áFAC.
  47. ;ásTATUSáSETáACCORDINGáTOáa-REG
  48. rnd = $af57 ;gENERATEáNEXTárndá#áANDáPLACE
  49. ;áINáFAC.
  50.  
  51. conupk = $af5a ;uNPACKá#áATá(a,y)á->áARG
  52. movfrm = $af60 ;#áATá(a,y)áINáRAMá->áFAC
  53. movmf = $af66 ;pACKáFACá&áMOVEáTOá(x,y)
  54. movfa = $af69 ;ARGá->áFAC
  55. movaf = $af6c ;FACá->áARG
  56.  
  57. frmevl = $af96 ;eVALáFORMULAáATátxtptr
  58. linget = $af9f ;aSCIIá#áATátxtptráTOáHEXáADRS
  59. ;áINálinnum.ááaSSUMESáPREVIOUS
  60. ;áCALLáTOáchrgetáORáchrgot.
  61.  
  62. *-------------------------------------------------------
  63.  
  64. point mac ;pOINTáTOáPACKEDá#áINáram1
  65.  lda #]1
  66.  ldy #>]1
  67.  <<<
  68.  
  69. getnum mac ;mOVEáFPá#áATá?áINTOáFAC
  70.  point ]1
  71.  jsr movfrm
  72.  <<<
  73.  
  74. stfac mac ;pACKáFACá&áMOVEáTOá?
  75.  ldx #]1
  76.  ldy #>]1
  77.  jsr movmf
  78.  <<<
  79.  
  80. addto mac ;fACá+á(?)á->áFAC
  81.  point ]1
  82.  jsr fadd
  83.  <<<
  84.  
  85. subfrom mac  ;(?)á-áFACá->áFAC
  86.  point ]1
  87.  jsr fsub
  88.  <<<
  89.  
  90. divinto mac ;(?)/FACá->áFAC
  91.  point ]1
  92.  jsr fdiv
  93.  <<<
  94.  
  95. multby mac ;(?)*FACá->áFAC
  96.  point ]1
  97.  jsr fmult
  98.  <<<
  99.  
  100. compare mac ;(?)á<=>áFACáRETURNSáa=1,0,-1
  101.  point ]1
  102.  jsr fcomp
  103.  <<<
  104.