Since the release of BinPac8x, many people have reported that they have found it quite useful on Linux and on Windows 7. However, a very few people reported some problems, which I eventually traced to Python 2.x, which has much poorer handling of arrays of bytes (the bytes() and bytearray() objects) than 3.x such as 3.1.2. Therefore, over the past two days I fixed up all the issues with Python 2.x, moving back and forth between 2.x and 3.x until BinPac8x generates a correct and valid calculator file on both Python 2.x and 3.x platforms. In addition, I added a feature to allow BinPac8x to be used as a module in larger Python programs, and an optional switch to rename the on-calc file to something other than the default (derived from the source name). Please try it out, let me know of any bugs, and enjoy. In addition, BinPac8x v1.3 will be included in the up-and-coming Doors CS 7 SDK. To finish off, the official description:

"BinPac8x v1.3 is a Python-language program that is intended to solve the problem of assembling and linking z80 programs for TI-82, TI-83+, TI-83+ Silver, TI-84+, TI-84+ Silver, TI-85, and TI-86 calculators on Windows 7 and on Linux. Previous programs such as DevPac8x were written for a 16-bit environment, and do not run on the DOS emulation of recent operating systems. BinPac8x is a cross-platform solution for Linux or Windows, requiring only Python to function properly. It takes a .bin file generated by an assembler, and turns it into a .8xp file. v1.2 adds ability to generate .82p, .83p, .85s, .86p, and .86s in addition to the existing .8xp format, while v1.3 adds Python 2.x support and optional modification of the program's on-calculator name."

Download
BinPac8x v1.3
Awsome Kerm, looks epic, also glad that I helped make this happen Smile
qazz42 wrote:
Awsome Kerm, looks epic, also glad that I helped make this happen Smile
Yes qazz, you were a great help with it! Your testing was invaluable in helping me solve all the Python 2.x issues.
I'm glad I was able to help too.

Now I should be able to use this as part of my project without any modifications (short of making it produce unprotected programs, that is).
TC01 wrote:
I'm glad I was able to help too.

Now I should be able to use this as part of my project without any modifications (short of making it produce unprotected programs, that is).
Indeed, you were very much so! For the unprotected programs, you of course already know that you just need to change that 6 to a 5. Smile
Well, it seems that ever so often my properly compiled asm program will be rendered as a Basic program on-calc x.x


It might be either brass or binpac that causes the problem
qazz42 wrote:
Well, it seems that ever so often my properly compiled asm program will be rendered as a Basic program on-calc x.x

It might be either brass or binpac that causes the problem
Did you notice if there were any error messages from BinPac? Please check for that; if there are none, then Brass is at fault (probably).
Nope no errors anywhere Sad



wow first time I am disappointed to find no error Very Happy
qazz42 wrote:
Nope no errors anywhere Sad

wow first time I am disappointed to find no error Very Happy
Haha. Smile There seems to be an error with some programs and Python 3.1.2, but luckily I succeeded in tracking it down, so I'll just need to make sure that I test the fix on 2.x before I release the next build of the SDK.
I am getting a syntax error when running the compiler, pointing to this line in the python script. (Line 51)


Code:
fho.write(bytearray(b'**TI82**'))
Shouldn't that be **TI83**?
souvik1997 wrote:
Shouldn't that be **TI83**?


That is the line the compiler points to, I changed nothing, so I don't know. :/
Sonlen wrote:
I am getting a syntax error when running the compiler, pointing to this line in the python script. (Line 51)


Code:
fho.write(bytearray(b'**TI82**'))
1) Why are you compiling for the TI-82?
2) What Python version do you have?
3) What arguments are you running BinPac8x with? [OR:]
3a) Are you using the DCS SDK?
KermMartian wrote:
Sonlen wrote:
I am getting a syntax error when running the compiler, pointing to this line in the python script. (Line 51)


Code:
fho.write(bytearray(b'**TI82**'))
1) Why are you compiling for the TI-82?
2) What Python version do you have?
3) What arguments are you running BinPac8x with? [OR:]
3a) Are you using the DCS SDK?


1) I am not, I am just following the DCS SDK's instructions for compiling.
2) The most recent one.
3) The DCS SDK files.
2) "The most recent one" doesn't help me, because there's a most-recent Python 2.x and a most-recent Python 3.x, developed sort-of simultaneously.

Can you post the full error log from between when you type/run "compile blah" through BinPac8x terminating?
KermMartian wrote:
2) "The most recent one" doesn't help me, because there's a most-recent Python 2.x and a most-recent Python 3.x, developed sort-of simultaneously.


I know for a fact I have one that runs it, I can check, but I think it is the 3.x.

Quote:
Can you post the full error log from between when you type/run "compile blah" through BinPac8x terminating?

Here it is.

Quote:
----------------------------------
Doors CS Assembler\Compiler
Version 2.0
Written by Kerm Martian
http:\\www.Cemetech.net
----------------------------------
----- Assembling hello.htm for the TI-83/84 Plus...
Brass Z80 Assembler 1.0.4.11 - Ben Ryves 2005-2006
--------------------------------------------------
Assembling...
Pass 1 complete. (132ms).
Pass 2 complete. (2ms).
Writing output file...
Errors: 0, Warnings: 0.
Writing list file...
Done!
File "C:\Users\Chris\Desktop\dcs_sdk\asm\tasm\binpac8x.py", line 51
fho.write(bytearray(b'**TI82**')) #byte 00, length
08
^
SyntaxError: invalid syntax
----- hello.htm for the TI-83/84 Plus Assembled and Compiled.
TI-83 Plus version is hello.htm.8xp
Press any key to continue . . .
You can copy-and-paste from a command window. Right-click, Mark, drag to highlight the area, and then right-click to copy.

Edit: It's pointing to "08", not the other line. Did you hit enter in the middle of a line when you were looking at the source? It looks like there's a line return before the 08 for no reason,
KermMartian wrote:
You can copy-and-paste from a command window. Right-click, Mark, drag to highlight the area, and then right-click to copy.

Edit: It's pointing to "08", not the other line. Did you hit enter in the middle of a line when you were looking at the source? It looks like there's a line return before the 08 for no reason,


No, I didn't look at the script until after I got this error the first time, and I also never edited the script either.
You must have, because here's now that's supposed to look:


Code:
      fho.write(bytearray(b'**TI82**'))            #byte 00, length 08
      fho.write(mybytearray([26,10,0]))               #byte 08, length 03
Copy pasted without a single edit:

Code:
   if calctype=="2":
      fho.write(bytearray(b'**TI82**'))            #byte 00, length 08
      fho.write(mybytearray([26,10,0]))                    #byte 08, length 03
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement