diff --git a/Forms/Form1.frm b/Forms/Form1.frm index d677b31..87e4615 100644 --- a/Forms/Form1.frm +++ b/Forms/Form1.frm @@ -4,11 +4,19 @@ Begin VB.Form Form1 ClientHeight = 8655 ClientLeft = 120 ClientTop = 465 - ClientWidth = 13320 + ClientWidth = 13455 LinkTopic = "Form1" ScaleHeight = 8655 - ScaleWidth = 13320 + ScaleWidth = 13455 StartUpPosition = 3 'Windows-Standard + Begin VB.CommandButton Command8 + Caption = "Conversion 16-32-64" + Height = 375 + Left = 11520 + TabIndex = 8 + Top = 120 + Width = 1815 + End Begin VB.CommandButton Command7 Caption = "Command7" Height = 375 @@ -186,18 +194,18 @@ Private Sub Command6_Click() If Not MUnsigned.UInt16_TryParse(sVal, i, 16) Then Exit Sub s = s & "s: " & sVal & " = v: " & MUnsigned.UInt16_ToStr(i) & vbCrLf - Dim L As Long + Dim l As Long sVal = "10101010101010101010101010101010" - If Not MUnsigned.UInt32_TryParse(sVal, L, 2) Then Exit Sub - s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(L) & vbCrLf + If Not MUnsigned.UInt32_TryParse(sVal, l, 2) Then Exit Sub + s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(l) & vbCrLf sVal = "1234567890" - If Not MUnsigned.UInt32_TryParse(sVal, L, 10) Then Exit Sub - s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(L) & vbCrLf + If Not MUnsigned.UInt32_TryParse(sVal, l, 10) Then Exit Sub + s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(l) & vbCrLf sVal = "ABCDEF98" - If Not MUnsigned.UInt32_TryParse(sVal, L, 16) Then Exit Sub - s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(L) & vbCrLf + If Not MUnsigned.UInt32_TryParse(sVal, l, 16) Then Exit Sub + s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(l) & vbCrLf Text1.Text = s End Sub @@ -219,16 +227,65 @@ Catch: MsgBox "Error: " & Err.Number & vbCrLf & Err.LastDllError & vbCrLf & Err.Description End Sub +Private Sub Command8_Click() + Dim i As Integer + Dim l As Long + Dim c As Currency + Dim s As String + i = 12345: + s = s & "i = " & i & vbCrLf + + l = MUnsigned.UInt16_ToUInt32(i) + s = s & "l = MUnsigned.UInt16_ToUInt32(i)" & vbCrLf + s = s & "l = " & l & vbCrLf + + c = MUnsigned.UInt16_ToUInt64(i) + s = s & "c = MUnsigned.UInt16_ToUInt64(i)" & vbCrLf + s = s & "c = " & c & vbCrLf + + + i = 0: c = 0 + l = 12345 + s = s & "l = " & l & vbCrLf + + i = MUnsigned.UInt32_ToUInt16(l) + s = s & "i = MUnsigned.UInt32_ToUInt16(l)" & vbCrLf + s = s & "i = " & i & vbCrLf + + l = 123456789 + s = s & "l = " & l & vbCrLf + c = MUnsigned.UInt32_ToUInt64(l) + s = s & "c = MUnsigned.UInt32_ToUInt64(l)" & vbCrLf + s = s & "c = " & c & vbCrLf + + + i = 0 + l = 0 + c = 1.2345 + s = s & "c = " & c & vbCrLf + i = MUnsigned.UInt64_ToUInt16(c) + s = s & "i = MUnsigned.UInt64_ToUInt16(c)" & vbCrLf + s = s & "i = " & i & vbCrLf + + c = 123.4567 + s = s & "c = " & c & vbCrLf + l = MUnsigned.UInt64_ToUInt32(c) + s = s & "l = MUnsigned.UInt64_ToUInt32(c)" & vbCrLf + s = s & "l = " & l & vbCrLf + + Text1.Text = s +End Sub + Private Sub Form_Load() - Me.Caption = "Unsigned operations on signed Int32+Int64 - v" & App.Major & "." & App.Minor & "." & App.Revision + Me.Caption = "Unsigned operations on signed In16+Int32+Int64 - v" & App.Major & "." & App.Minor & "." & App.Revision End Sub Private Sub Form_Resize() - Dim L As Single: L = 0 + Dim l As Single: l = 0 Dim t As Single: t = Text1.Top Dim W As Single: W = Me.ScaleWidth Dim H As Single: H = Me.ScaleHeight - t - If W > 0 And H > 0 Then Text1.Move L, t, W, H + If W > 0 And H > 0 Then Text1.Move l, t, W, H End Sub Private Sub Command1_Click() @@ -246,125 +303,125 @@ Sub Debug_Print(ByVal s As String) End Sub Sub TestDll() - Dim V1 As Long - Dim V2 As Long + Dim v1 As Long + Dim v2 As Long Dim lret As Long Dim cret As Currency Dim s As String - V1 = 123 - V2 = 32 + v1 = 123 + v2 = 32 - lret = UInt32_Add_ref(V1, V2) + lret = UInt32_Add_ref(v1, v2) Debug_Print lret '155 - lret = UInt32_Add(V1, V2) + lret = UInt32_Add(v1, v2) Debug_Print lret '155 - lret = UInt32_Sub(V1, V2) + lret = UInt32_Sub(v1, v2) Debug_Print lret '91 - lret = UInt32_Mul(V1, V2) + lret = UInt32_Mul(v1, v2) Debug_Print lret '3936 - V1 = 2147483647 - V2 = 100 - cret = UInt32_Mul(V1, V2) + v1 = 2147483647 + v2 = 100 + cret = UInt32_Mul(v1, v2) Debug_Print cret '21474836,4700 - V1 = 123456789 - V2 = 33 - lret = UInt32_Div(V1, V2) + v1 = 123456789 + v2 = 33 + lret = UInt32_Div(v1, v2) Debug_Print lret '3741114 - V1 = &HCAFE& - lret = UInt32_Shl(V1, 8) - Debug_Print "Shl(" & Hex(V1) & ", 8) = " & Hex(lret) + v1 = &HCAFE& + lret = UInt32_Shl(v1, 8) + Debug_Print "Shl(" & Hex(v1) & ", 8) = " & Hex(lret) - V1 = UInt32_Shr(lret, 8) - Debug_Print "Shr(" & Hex(lret) & ", 8) = " & Hex(V1) + v1 = UInt32_Shr(lret, 8) + Debug_Print "Shr(" & Hex(lret) & ", 8) = " & Hex(v1) - V1 = -V1 - lret = UInt32_Sar(V1, 8) - Debug_Print "Sar(" & Hex(V1) & ", 8) = " & Hex(lret) + v1 = -v1 + lret = UInt32_Sar(v1, 8) + Debug_Print "Sar(" & Hex(v1) & ", 8) = " & Hex(lret) - V1 = &HCAFEBABE - lret = UInt32_Rol(V1, 8) - Debug_Print "Rol(" & Hex(V1) & ", 8) = " & Hex(lret) + v1 = &HCAFEBABE + lret = UInt32_Rol(v1, 8) + Debug_Print "Rol(" & Hex(v1) & ", 8) = " & Hex(lret) - V1 = &HCAFEBABE - lret = UInt32_Ror(V1, 8) - Debug_Print "Ror(" & Hex(V1) & ", 8) = " & Hex(lret) + v1 = &HCAFEBABE + lret = UInt32_Ror(v1, 8) + Debug_Print "Ror(" & Hex(v1) & ", 8) = " & Hex(lret) - V1 = &HCAFE& - lret = UInt32_Rcl(V1, 12) - Debug_Print "Rcl(" & Hex(V1) & ", 12) = " & Hex(lret) + v1 = &HCAFE& + lret = UInt32_Rcl(v1, 12) + Debug_Print "Rcl(" & Hex(v1) & ", 12) = " & Hex(lret) - V1 = &HCAFE0000 - lret = UInt32_Rcr(V1, 12) - Debug_Print "Rcr(" & Hex(V1) & ", 12) = " & Hex(lret) + v1 = &HCAFE0000 + lret = UInt32_Rcr(v1, 12) + Debug_Print "Rcr(" & Hex(v1) & ", 12) = " & Hex(lret) - V1 = &HCAFEBABE - V2 = &HB000& - lret = UInt32_And(V1, V2) - Debug_Print "And(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret) + v1 = &HCAFEBABE + v2 = &HB000& + lret = UInt32_And(v1, v2) + Debug_Print "And(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret) - V1 = &HCAFE0ABE - V2 = &HB000& - lret = UInt32_Or(V1, V2) - Debug_Print "Or(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret) + v1 = &HCAFE0ABE + v2 = &HB000& + lret = UInt32_Or(v1, v2) + Debug_Print "Or(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret) - V1 = &H35014541 - lret = UInt32_Not(V1) - Debug_Print "Not(" & Hex(V1) & ") = " & Hex(lret) + v1 = &H35014541 + lret = UInt32_Not(v1) + Debug_Print "Not(" & Hex(v1) & ") = " & Hex(lret) - V1 = &HCAFE0ABE - V2 = &HCAFEB000 - lret = UInt32_XOr(V1, V2) - Debug_Print "XOr(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret) + v1 = &HCAFE0ABE + v2 = &HCAFEB000 + lret = UInt32_XOr(v1, v2) + Debug_Print "XOr(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret) - V1 = &HCAFE0ABE - V2 = &HCAFEB000 - lret = UInt32_XNOr(V1, V2) - Debug_Print "XNOr(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret) + v1 = &HCAFE0ABE + v2 = &HCAFEB000 + lret = UInt32_XNOr(v1, v2) + Debug_Print "XNOr(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret) - V1 = &HCAFE0ABE - V2 = &HCAFEB000 - lret = UInt32_NOr(V1, V2) - Debug_Print "NOr(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret) + v1 = &HCAFE0ABE + v2 = &HCAFEB000 + lret = UInt32_NOr(v1, v2) + Debug_Print "NOr(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret) - V1 = &HCAFE0ABE - V2 = &HCAFEB000 - lret = UInt32_NAnd(V1, V2) - Debug_Print "NAnd(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret) + v1 = &HCAFE0ABE + v2 = &HCAFEB000 + lret = UInt32_NAnd(v1, v2) + Debug_Print "NAnd(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret) - V1 = -1 + v1 = -1 's = Space(10) - s = UInt32_ToStr(V1) ', StrPtr(s) + s = UInt32_ToStr(v1) ', StrPtr(s) Debug_Print s 'Trim0(s) '4294967295 - V1 = -1 + v1 = -1 's = Space(8) - s = UInt32_ToHex(V1) ', StrPtr(s) + s = UInt32_ToHex(v1) ', StrPtr(s) Debug_Print s 'Trim0(s) '4294967295 - V1 = -1 + v1 = -1 's = Space(32) - s = UInt32_ToBin(V1) '1, StrPtr(s) + s = UInt32_ToBin(v1) '1, StrPtr(s) Debug_Print s 'Trim0(s) '4294967295 - V1 = 32 - V2 = 65 + v1 = 32 + v2 = 65 - lret = U4Add(U4Sub(100, U4Mul(2, U4Div(V1, 4))), U4Div(V2, U4Add(6, 7))) + lret = U4Add(U4Sub(100, U4Mul(2, U4Div(v1, 4))), U4Div(v2, U4Add(6, 7))) 's = Space(10): UInt32_ToStr lret, StrPtr(s) s = UInt32_ToStr(lret) Debug_Print s - lret = (100 - (2 * V1 / 4)) + (V2 / (6 + 7)) + lret = (100 - (2 * v1 / 4)) + (v2 / (6 + 7)) 's = Space(10): UInt32_ToStr lret, StrPtr(s) s = UInt32_ToStr(lret) Debug_Print s @@ -385,8 +442,8 @@ Sub TestDll() s = UInt64_ToStr(cret) ', StrPtr(s) Debug_Print s '7223372036854775805 - V1 = &HCAFEBABE - Dim d: d = UInt32_ToDec(V1) + v1 = &HCAFEBABE + Dim d: d = UInt32_ToDec(v1) Debug_Print VarType(d) & " " & CStr(d) '& " " & Hex(d) '14 3405691582 c1 = 12345.6789 @@ -457,41 +514,41 @@ Sub Test_ToStr() Dim r As Long 'radix - Dim L As Long + Dim l As Long v = 14021970 r = 10 - L = LogN(v, r) + 1 - s = Space$(L) + l = LogN(v, r) + 1 + s = Space$(l) ret = Int32_ToStrR(v, StrPtr(s), r) Debug_Print s - If ret <> L * 2 Then - Debug_Print "error r<>l: r=" & r & "; l=" & L + If ret <> l * 2 Then + Debug_Print "error r<>l: r=" & r & "; l=" & l End If v = &H1CAFEBAB r = 16 - L = Ceiling(LogN(v, r)) - s = Space$(L) + l = Ceiling(LogN(v, r)) + s = Space$(l) ret = Int32_ToStrR(v, StrPtr(s), r) Debug_Print s - If ret <> L * 2 Then - Debug_Print "error r<>l: r=" & r & "; l=" & L + If ret <> l * 2 Then + Debug_Print "error r<>l: r=" & r & "; l=" & l End If v = 987654321 r = 10 - L = Ceiling(LogN(v, r)) - s = Space$(L) + l = Ceiling(LogN(v, r)) + s = Space$(l) ret = Int32_ToStrR(v, StrPtr(s), r) Debug_Print s - If ret <> L * 2 Then - Debug_Print "error r<>l: r=" & r & "; l=" & L * 2 + If ret <> l * 2 Then + Debug_Print "error r<>l: r=" & r & "; l=" & l * 2 End If End Sub diff --git a/Modules/MUnsigned.bas b/Modules/MUnsigned.bas index 6d9b473..95b972d 100644 --- a/Modules/MUnsigned.bas +++ b/Modules/MUnsigned.bas @@ -97,12 +97,20 @@ Public Declare Function U4DivB Lib "UnsignedOps" Alias "UInt32_Div" (ByVal v1 As Public Declare Sub UInt64_Test Lib "UnsignedOps" (ByRef Dec_out As Variant) 'As Decimal Public Declare Function UInt32_Add_ref Lib "UnsignedOps" (ByRef pV1 As Long, ByRef pV2 As Long) As Long +' CONVERT functions +Public Declare Function UInt16_ToUInt32 Lib "UnsignedOps" (ByVal Value As Integer) As Long +Public Declare Function UInt16_ToUInt64 Lib "UnsignedOps" (ByVal Value As Integer) As Currency +Public Declare Function UInt32_ToUInt16 Lib "UnsignedOps" (ByVal Value As Long) As Integer +Public Declare Function UInt32_ToUInt64 Lib "UnsignedOps" (ByVal Value As Long) As Currency +Public Declare Function UInt64_ToUInt16 Lib "UnsignedOps" (ByVal Value As Currency) As Integer +Public Declare Function UInt64_ToUInt32 Lib "UnsignedOps" (ByVal Value As Currency) As Long + ' --------~~~~~~~~========++++++++######## ' Unsigned Int16 input/output functions ' ########++++++++========~~~~~~~~-------- ' -Public Function UInt16_ToUInt32(ByVal Value As Integer) As Long - Dim t2i As T2Int: t2i.Value0 = Value - Dim tl As TLng: LSet tl = t2i - UInt16_ToUInt32 = tl.Value -End Function +'Public Function UInt16_ToUInt32(ByVal Value As Integer) As Long +' Dim t2i As T2Int: t2i.Value0 = Value +' Dim tl As TLng: LSet tl = t2i +' UInt16_ToUInt32 = tl.Value +'End Function Public Function UInt16_ToStr(ByVal Value As Integer) As String UInt16_ToStr = Space(5) & vbNullChar UInt16ToStr UInt16_ToUInt32(Value), StrPtr(UInt16_ToStr) @@ -147,11 +155,11 @@ Catch: End Function ' --------~~~~~~~~========++++++++######## ' Unsigned Int32 input/output functions ' ########++++++++========~~~~~~~~-------- ' -Public Function UInt32_ToUInt64(ByVal Value As Long) As Currency - Dim t2l As T2Lng: t2l.Value0 = Value - Dim tc As TCur: LSet tc = t2l - UInt32_ToUInt64 = tc.Value -End Function +'Public Function UInt32_ToUInt64(ByVal Value As Long) As Currency +' Dim t2l As T2Lng: t2l.Value0 = Value +' Dim tc As TCur: LSet tc = t2l +' UInt32_ToUInt64 = tc.Value +'End Function Public Function UInt32_ToStr(ByVal Value As Long) As String UInt32_ToStr = Space(10) UInt32ToStr Value, StrPtr(UInt32_ToStr) diff --git a/README.md b/README.md index 11472de..7cc1aad 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Asm_Unsigned -## Unsigned arithmetic, boolean and shifting operations for VB using VB.Long, VB.Currency and VB.Decimal +## Unsigned arithmetic, boolean and shifting operations for VB using VB.Integer, VB.Long, VB.Currency and VB.Decimal [![GitHub](https://img.shields.io/github/license/OlimilO1402/Asm_Unsigned?style=plastic)](https://github.com/OlimilO1402/Asm_Unsigned/blob/master/LICENSE) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/OlimilO1402/Asm_Unsigned?style=plastic)](https://github.com/OlimilO1402/Asm_Unsigned/releases/latest) -[![Github All Releases](https://img.shields.io/github/downloads/OlimilO1402/Asm_Unsigned/total.svg)](https://github.com/OlimilO1402/Asm_Unsigned/releases/download/v2.3.4/UnsignedOps_v2.3.4.zip) -[![Follow](https://img.shields.io/github/followers/OlimilO1402.svg?style=social&label=Follow&maxAge=2592000)](https://github.com/OlimilO1402/Asm_Unsigned/watchers) +[![Github All Releases](https://img.shields.io/github/downloads/OlimilO1402/Asm_Unsigned/total.svg)](https://github.com/OlimilO1402/Asm_Unsigned/releases/download/v2023.3.5/UnsignedOps_v2023.3.5.zip) +![GitHub followers](https://img.shields.io/github/followers/OlimilO1402?style=social) Project started in january 2022. Except for the datatype Byte, VB does not have any other intrinsic unsigned datatypes. diff --git a/UnsignedOps.vbp b/UnsignedOps.vbp index 6a9e7af..fc93c91 100644 --- a/UnsignedOps.vbp +++ b/UnsignedOps.vbp @@ -17,13 +17,13 @@ Command32="" Name="PUnsignedOps" HelpContextID="0" CompatibleMode="0" -MajorVer=2 +MajorVer=2023 MinorVer=3 -RevisionVer=6 -AutoIncrementVer=1 +RevisionVer=5 +AutoIncrementVer=0 ServerSupportFiles=0 VersionCompanyName="MBO-Ing.com" -VersionFileDescription="Unsigned 32+64 bit operations using signed VB.Long (Int32) and signed VB.Currency (=like Int64 with fixed decimal point), arithmetic: "+-*/", boolean: "And, Or, XOr, Not, NAnd, NOr, XNor", bit: Shl, Shld, Shr, Shrd, Sar, Rol, Ror, Rcl, Rcr;" +VersionFileDescription="Unsigned 16-, 32- & 64-bit operations using signed VB.Integer, VB.Long (Int32) and signed VB.Currency (=like Int64 with fixed decimal point), arithmetic: "+-*/", boolean: "And, Or, XOr, Not, NAnd, NOr, XNor", bit: Shl, Shld, Shr, Shrd, Sar, Rol, Ror, Rcl, Rcr;" VersionLegalCopyright="MBO-Ing.com" VersionProductName="Unsigned operations" CompilationType=0 diff --git a/UnsignedOpsDll/UnsignedOps.asm b/UnsignedOpsDll/UnsignedOps.asm index 6ea386e..9ecb8e3 100644 --- a/UnsignedOpsDll/UnsignedOps.asm +++ b/UnsignedOpsDll/UnsignedOps.asm @@ -85,7 +85,6 @@ UInt16_Div proc UInt16_Div endp - ; --------======== Unsigned Int32 operations ========-------- ;page 605 @@ -438,9 +437,68 @@ UInt64_Test proc UInt64_Test endp +; CONVERSION functions +; ------====== Unsigned Int16 conversion functions ======------ +UInt16_ToUInt32 proc + + xor eax, eax ; xor: null all ones in register eax if there is one + mov ax, [esp+4] ; copy the first uint16 value from stack to the output register AX + + ret 4 ; return to caller, remove 4 bytes from stack (->stdcall) + +UInt16_ToUInt32 endp + +UInt16_ToUInt64 proc + + xor eax, eax ; xor: null all ones in register eax if there is one + xor edx, edx ; xor: null all ones in register edx if there is one + mov ax, [esp+4] ; copy the first uint16 value from stack to the output register AX + + ret 4 ; return to caller, remove 4 bytes from stack (->stdcall) + +UInt16_ToUInt64 endp + + +; ------====== Unsigned Int32 conversion functions ======------ +UInt32_ToUInt16 proc + + xor eax, eax ; xor: null all ones in register eax if there is one + mov ax, [esp+4] ; copy the first uint16 value from stack to the output register AX + + ret 4 ; return to caller, remove 4 bytes from stack (->stdcall) + +UInt32_ToUInt16 endp + +UInt32_ToUInt64 proc + + xor eax, eax ; xor: null all ones in register eax if there is one + xor edx, edx ; xor: null all ones in register edx if there is one + mov eax, [esp+4] ; copy the first uint32 value from stack to the output register EAX + + ret 4 ; return to caller, remove 4 bytes from stack (->stdcall) + +UInt32_ToUInt64 endp +; ------====== Unsigned Int64 conversion functions ======------ +UInt64_ToUInt16 proc + + ;xor eax, eax ; xor: null all ones in register eax if there is one + mov ax, [esp+4] ; copy the first uint16 value from stack to the output register AX + + ret 8 ; return to caller, remove 8 bytes from stack (->stdcall) + +UInt64_ToUInt16 endp +UInt64_ToUInt32 proc + + ;xor eax, eax ; xor: null all ones in register eax if there is one + ;xor edx, edx ; xor: null all ones in register edx if there is one + mov eax, [esp+4] ; copy the first uint32 value from stack to the output register EAX + + ret 8 ; return to caller, remove 4 bytes from stack (->stdcall) + +UInt64_ToUInt32 endp ; ADDITIONAL Operations diff --git a/UnsignedOpsDll/UnsignedOps.def b/UnsignedOpsDll/UnsignedOps.def index 230d354..98eb5b0 100644 --- a/UnsignedOpsDll/UnsignedOps.def +++ b/UnsignedOpsDll/UnsignedOps.def @@ -6,7 +6,7 @@ LIBRARY UnsignedOps EXPORTS UInt16_Sub ; EXPORTS UInt16_Mul ; EXPORTS UInt16_Div ; - + ; ------====== Unsigned Int32 arithmetic operations ======------ EXPORTS UInt32_Add ; EXPORTS UInt32_Sub ; @@ -64,7 +64,18 @@ LIBRARY UnsignedOps EXPORTS UInt32_ToDec ; EXPORTS UInt64_Parse ; +; CONVERT functions + ; ------====== Unsigned Int16 convert functions ======------ + EXPORTS UInt16_ToUInt32 ; + EXPORTS UInt16_ToUInt64 ; + + ; ------====== Unsigned Int32 convert functions ======------ + EXPORTS UInt32_ToUInt16 ; + EXPORTS UInt32_ToUInt64 ; + ; ------====== Unsigned Int64 convert functions ======------ + EXPORTS UInt64_ToUInt16 ; + EXPORTS UInt64_ToUInt32 ; ;EXPORTS UInt64_Test ;