Blitz_Basic_Endian.bb

Name: Blitz_Basic_Endian.bb
Version: 1.0
Released: October 26th, 2007
Description: Functions for converting between endian formats.
Download: Download Now (1.78KB)
; ----------------------------------------------------------------------
; -- 
; -- Blitz_Basic_Endian.bb
; -- 
; -- Functions for converting between endian formats.
; -- 
; -- Author  : Phil Newton (http://www.sodaware.net/)
; -- Licence : Free to use & modify. Credit appreciated but not required.
; -- Version : 1.0
; -- 
; ----------------------------------------------------------------------

; --------------------------------------------------
; -- Quick Function Reference
; --------------------------------------------------

; Endian_ConvertShort
; Endian_ConvertLong

; --------------------------------------------------
; -- API Functions
; --------------------------------------------------

;;; Convert a short value to a different endian value.
;;; The short to change.
;;; If true, it's a signed short.
;;; The converted short.
;;; Blitz.Basic
Function Endian_ConvertShort(short, isSigned = True)
	
	short = ((short And $ff00) Shr 8) Or ((short And $ff) Shl 8)
	
	; Fix signed values
	If isSigned And short >= $8000 Then
		Return short - $10000
	Else
		Return short
	EndIf
	
End Function

;;; Convert a long value to a different endian value.
;;; The long to change.
;;; If true, it's a signed long.
;;; The converted long.
;;; Blitz.Basic
Function Endian_ConvertLong(long, isSigned = True)
	
	long = (long Shr 24) Or ((long Shl 8) And $FF0000) Or ((long Shr 8) And $ff00) Or (long Shl 24)
	
	; Fix signed values
	If isSigned And long >= $800000
		Return long - $1000000
	Else
		Return long
	End If
	
End Function