home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / clipper / nettos11.zip / MISC / SWAP.ASM < prev   
Assembly Source File  |  1992-07-09  |  2KB  |  131 lines

  1. ; File......: SWAP.ASM
  2. ; Author....: Mike Taylor, modifications by Ted Means
  3. ; CIS ID....: 73310,3013
  4. ; Date......: $Date$
  5. ; Revision..: $Revision$
  6. ; Log file..: $Logfile$
  7. ; This is an original work by Mike Taylor and is placed in the
  8. ; public domain.
  9. ;
  10. ; Modification history:
  11. ; ---------------------
  12. ;
  13. ; $Log$
  14. ;  
  15.  
  16. IDEAL
  17.  
  18. Public   FT_ISwap, FT_LSwap
  19.  
  20. Extrn    __ParNI:Far
  21. Extrn    __ParNL:Far
  22. Extrn    __RetNI:Far
  23. Extrn    __RetNL:Far
  24.  
  25. Segment  _NanFor   Word      Public    "CODE"
  26.          Assume    CS:_NanFor
  27.  
  28. ; $DOC$
  29. ; $FUNCNAME$
  30. ;    FT_ISwap()
  31. ; $CATEGORY$
  32. ;    Miscellaneous
  33. ; $ONELINER$
  34. ;    Swap the bytes in a two byte integer
  35. ; $SYNTAX$
  36. ;
  37. ;    FT_ISWAP( <nInteger> ) -> <nRevInteger>
  38. ;
  39. ; $ARGUMENTS$
  40. ;
  41. ;    <nInteger> is the integer to be converted
  42. ;
  43. ; $RETURNS$
  44. ;
  45. ;    <nRevInteger> is <nInteger> with the bytes swapped.
  46. ;
  47. ; $DESCRIPTION$
  48. ;
  49. ;    FT_ISwap() takes the passed 2 byte integer and reverses its bytes.
  50. ;
  51. ;    For example, if you pass it an integer like x0102 it will return x0201.
  52. ;
  53. ; $EXAMPLES$
  54. ;
  55. ; $SEEALSO$
  56. ;    FT_LSwap()
  57. ; $INCLUDE$
  58. ;
  59. ; $END$
  60. ;
  61. ;
  62.  
  63. Proc     FT_ISwap  Far
  64.  
  65.          Mov       AX,1                      ; Request parameter 1
  66.          Push      AX
  67.          Call      __ParNI
  68.          XChg      AH,AL
  69.          Push      AX                        ; Return int value
  70.          Call      __RetNI
  71.          Add       SP,4
  72.          Ret
  73.  
  74. Endp     FT_ISwap
  75.  
  76.  
  77. ; $DOC$
  78. ; $FUNCNAME$
  79. ;    FT_LSwap()
  80. ; $CATEGORY$
  81. ;    Miscellaneous
  82. ; $ONELINER$
  83. ;    Reverse the bytes in a 4 byte long integer.
  84. ; $SYNTAX$
  85. ;
  86. ;    FT_LSWAP( <nLong> ) -> <nRevLong>
  87. ;
  88. ; $ARGUMENTS$
  89. ;
  90. ;    <nLong> is the long integer to be converted.
  91. ;
  92. ; $RETURNS$
  93. ;
  94. ;    <nRevLong> is <nLong> with the bytes reversed.
  95. ;
  96. ; $DESCRIPTION$
  97. ;
  98. ;    FT_LSwap() takes the passed 4 byte integer and reverses its bytes.
  99. ;
  100. ;    For example, if you pass it an integer like x01020304 it will
  101. ;    return x04030201.
  102. ;
  103. ; $EXAMPLES$
  104. ;
  105. ; $SEEALSO$
  106. ;    FT_ISwap()
  107. ; $INCLUDE$
  108. ;
  109. ; $END$
  110. ;
  111. ;
  112.  
  113. Proc     FT_LSwap  Far
  114.  
  115.          Mov       AX,1                      ; Request parameter 1
  116.          Push      AX
  117.          Call      __ParNL
  118.          XChg      AH,AL                     ; Reverse bytes
  119.          XChg      DH,DL
  120.          Push      AX
  121.          Push      DX
  122.          Call      __RetNL
  123.          Add       SP,6
  124.          Ret
  125.  
  126. Endp     FT_LSwap
  127. Ends     _NanFor
  128. End
  129.  
  130.