0 Members and 3 Guests are viewing this topic.
It's generic .NET, so it will work on C#. The library is actually written in C#.
If you are using VB.NET, you can use this library I made for just that purpose. It can convert strings to bytes or hex, and it can create 8xps, among other things.
I don't know VB.NET, but I can comment them for you later.
SaveFileDialog1.ShowDialog() TI_Developer_API.Utility.DataConverter.Save8xp(True, {1, 2, 3, 4, 5, 6}, "HELLO", SaveFileDialog1.FileName)
Dim FileBytes(1048576) As Byte Dim FileBytesCounter1 As Integer = (How many bytes you want to write. If you set file bytes to just the data you have, just set it to FileBytes.length() =P) Dim FileComment As String = (Whatever you want the comment to be) Dim FileName As String = (Whateverer you want the variable name to be. Not the actual file name. This could be eg. "MYPROG") '**TI83F* FileBytes(0) = 42 FileBytes(1) = 42 FileBytes(2) = 84 FileBytes(3) = 73 FileBytes(4) = 56 FileBytes(5) = 51 FileBytes(6) = 70 FileBytes(7) = 42 '1A,0A,00 FileBytes(8) = 26 FileBytes(9) = 10 FileBytes(10) = 0 'Comment FileComment = FileComment.PadRight(42, ChrW(0)) For x As Integer = 0 To 41 FileBytes(x + 11) = AscW(FileComment.Chars(x)) Next 'Data Size If FileBytesCounter1 + 19 > 255 Then Dim TempHex = cHex(FileBytesCounter1 + 19, 4) FileBytes(54) = cInteger(Mid(TempHex, 1, 2)) FileBytes(53) = cInteger(Mid(TempHex, 3, 2)) Else FileBytes(54) = 0 FileBytes(53) = FileBytesCounter1 + 19 End If 'Random Flag (either B or D) FileBytes(55) = 13 FileBytes(56) = 0 'Variable Size If FileBytesCounter1 + 2 > 255 Then Dim TempHex = cHex(FileBytesCounter1 + 2, 4) FileBytes(58) = cInteger(Mid(TempHex, 1, 2)) FileBytes(57) = cInteger(Mid(TempHex, 3, 2)) Else FileBytes(58) = 0 FileBytes(57) = FileBytesCounter1 + 2 End If 'Type ID FileBytes(59) = 5 'Name FileName = FileName.PadRight(8, ChrW(0)) For x As Integer = 0 To 7 FileBytes(60 + x) = AscW(FileName.Chars(x)) Next 'Version FileBytes(68) = 0 'Archived FileBytes(69) = 0 'Variable Size Again If FileBytesCounter1 + 2 > 255 Then Dim TempHex = cHex(FileBytesCounter1 + 2, 4) FileBytes(71) = cInteger(Mid(TempHex, 1, 2)) FileBytes(70) = cInteger(Mid(TempHex, 3, 2)) Else FileBytes(71) = 0 FileBytes(70) = FileBytesCounter1 + 2 End If 'Total Token Count If FileBytesCounter1 > 255 Then Dim TempHex = cHex(FileBytesCounter1, 4) FileBytes(73) = cInteger(Mid(TempHex, 1, 2)) FileBytes(72) = cInteger(Mid(TempHex, 3, 2)) Else FileBytes(73) = 0 FileBytes(72) = FileBytesCounter1 End If 'Totals data Dim Counter = 0 For x As Integer = 0 To FileBytesCounter1 + 19 Counter += FileBytes(x + 55) Next 'Lower 16 bits of data totalled together If Hex(Counter).Length > 4 Then Counter = cInteger(Mid(cHex(Counter, 4), 1, 4)) If Counter > 255 Then FileBytes(FileBytesCounter1 + 75) = cInteger(Mid(cHex(Counter, 4), 1, 2)) FileBytes(FileBytesCounter1 + 74) = cInteger(Mid(cHex(Counter, 4), 3, 2)) Else FileBytes(FileBytesCounter1 + 75) = 0 FileBytes(FileBytesCounter1 + 74) = Counter End If Dim FinalBytes(FileBytesCounter1 + 75) As Byte For x As Integer = 0 To FileBytesCounter1 + 75 FinalBytes(x) = FileBytes(x) Next File.WriteAllBytes((Where you want the file to save to), Finalbytes) (You also need these two functions) Shared Function cHex(ByVal IntValue As Integer, ByVal Length As Integer) As String Dim Int_Length As Integer = Int(Math.Log10(IntValue) / Math.Log10(16)) + 1 Dim Temp_Value As Integer Dim Hex_String As String = "" For X As Integer = Length - 1 To 0 Step -1 Temp_Value = Int(IntValue / (16 ^ X)) Hex_String += Mid("0123456789ABCDEF", Temp_Value + 1, 1) IntValue -= Temp_Value * (16 ^ X) Next Return Hex_String End Function Shared Function cInteger(ByVal HexString As String) As Integer Dim Int_Value As Integer For X As Integer = HexString.Length To 1 Step -1 Int_Value += (InStr("0123456789ABCDEF", Mid(HexString, X, 1)) - 1) * (16 ^ (HexString.Length - X)) Next Return Int_Value End Function
Notepad is actually a text editor and is built-in Windows.
Aichi: Do you have a hex editor? There are a bunch of free ones, and then you could really see what's going wrong.