In the midst of the intense Doors CS 7 development that I've been working on for the past few weeks, I ran into a need to re-assemble Document DE 6, now to become Document DE 7 with the removal of some hacks that were necessary to work around shortcomings in Doors CS 6. Unfortunately, in order to do this, I needed to pop open DOSBox, because the linker / bin packer DevPac8x, which I have used for many a year, doesn't work under Windows 7. Today, I realized that a few hours of coding would save me (and other ASM programmers) this pain and suffering, so I wrote BinPac8x v1.0. This simple Python program takes a .bin file, as generated by TASM, NASM, Brass, or a host of other assemblers, and produces a properly-formatted .8xp file. Since it's Python, it's cross-platform, and works under at least Windows and Linux. From the official description:

"BinPac8x v1.0 is a Python-language program that is intended to solve the problem of assembling and linking z80 programs for TI-83+, TI-83+ Silver, TI-84+, and TI-84+ Silver 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."

Download
BinPac8x v1.0

Nice work Kerm Smile
elfprince13 wrote:
Nice work Kerm Smile
Thanks elfprince! I was flattered that BrandonW even praised it:
#cemetech on EfNet wrote:
[15:52:18] <+BrandonW> How about that, a useful program.
[15:52:25] <+BrandonW> Great job Kerm.
Good work. Smile When you say DevPac8x doesn't work on Windows 7, is that it doesn't work on Windows 7 (news to me) or it doesn't work with a 64-bit operating system (which goes without saying?) I run several 16-bit DOS apps on 32-bit Vista without issue. Smile
benryves wrote:
Good work. Smile When you say DevPac8x doesn't work on Windows 7, is that it doesn't work on Windows 7 (news to me) or it doesn't work with a 64-bit operating system (which goes without saying?) I run several 16-bit DOS apps on 32-bit Vista without issue. Smile
To be honest, I'm not sure, since I don't have any 32-bit machines that I need to run Windows 7 on. My desktop and tablet PC are both 64-bit machines running Win7 Enterprise x64, and all my servers, some of which are 64-bit and some of which are 32-bit, are all running various flavors of Ubuntu.
Just the 64-bit variants of Vista and later lack compatibility with 16-bit binaries.

Nice tool, although I have no particular need for it, as Brass' packer works fine for all my needs.

I took the time to cx_Freeze the script into something you Windows users should be able to use without a Python interpreter configured.
http://drop.io/binpac8x_win32
Python 2.5 under OS X errors on
Code:
fho.write(bytearray(b'**TI83F*'))
Use 2.6 (or newer? Would have to check if 3.0 would be ok with things..). The bytearray type is new in 2.6.
elfprince13 wrote:
Python 2.5 under OS X errors on
Code:
fho.write(bytearray(b'**TI83F*'))


From the readme:

readme wrote:
[...]BinPac8x requires at least Python 2.6 or 3.0 to be installed[...]


TheTari wrote:
Just the 64-bit variants of Vista and later lack compatibility with 16-bit binaries.

Nice tool, although I have no particular need for it, as Brass' packer works fine for all my needs.

I took the time to cx_Freeze the script into something you Windows users should be able to use without a Python interpreter configured.
http://drop.io/binpac8x_win32
Thanks! Would you mind if I were to pack that up with the original Python program for distribution? Smile
KermMartian wrote:
The Tari wrote:
I took the time to cx_Freeze the script into something you Windows users should be able to use without a Python interpreter configured.
http://drop.io/binpac8x_win32
Thanks! Would you mind if I were to pack that up with the original Python program for distribution? Smile

Go for it. Smile
Nice job!
So... did doc DE7 ever get finished?
yoman82 wrote:
So... did doc DE7 ever get finished?
Well, it's getting created side-by-side with Doors CS 7, and it doesn't really differ from Document DE 6 too much. In fact, I expect Doc DE 6 to work well on Doors CS 7.
Oh, alright, sounds good.
KermMartian wrote:
elfprince13 wrote:
Python 2.5 under OS X errors on
Code:
fho.write(bytearray(b'**TI83F*'))


From the readme:

readme wrote:
[...]BinPac8x requires at least Python 2.6 or 3.0 to be installed[...]


Shows how frequently I read those.
I guess I should rename it to something more eye-catching then. Razz On a more practical note, I didn't think there would be a point in me making similar programs for the 83, 85, and 86, although doing so would be fairly trivial at this point. Any thoughts or suggestions? I could also (and this would probably better) build those features into this program, make it create .8xps by default, and allow additional switches to specify the other platforms.
*bump*
I'm happy to announce that over the past two days, BinPac8x has been bumped from version 1.0 to 1.1 to 1.2. BinPac8x v1.2 adds ability to generate .82p, .83p, .85s, .86p, and .86s in addition to the existing .8xp format, while BinPac8x v1.1 fixed a minor bug relevant to TI-Connect accepting BinPac8x-generated files. For those who missed it the first time around, BinPac8x v1.2 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 .8** file.

Download
BinPac8x v1.2

You may want to update the version number in the program P:
At least from the screen shot I'm assuming you haven't.
Alex is right, actually, haha.

Also... May wanna looky at this:
Code:
c:\z80asm>binpac8x.py -x "hello.bin"
 --+=====================+--
 --|    BinPac8x v1.0    |--
 --|   by Kerm Martian   |--
 --|   www.Cemetech.net  |--
 --| admin @cemetech.net |--
 --+=====================+--
**Pass 1/1: .8xp Construction**
Warning: Input file hello.8xp exists, overwriting.
Traceback (most recent call last):
  File "C:\z80asm\binpac8x.py", line 205, in <module>
    parsefile(fnamein,fnameout,basepath,calc)
  File "C:\z80asm\binpac8x.py", line 74, in parsefile
    bincontents = bytearray([bbsize_lb,bbsize_hb]) + bincontents
TypeError: an integer or string of size 1 is required

c:\z80asm>
Hehe... uhhh... halp?

And I moved

Code:
calc = "x"
to before
Code:
if (len(sys.argv) > 1):
because I was getting errors when I didn't specify any of the arguments. (only happened occasionally, actually...)
That's weird. Swivel, do you happen to know what version of Python you're using? Could you give me hello.bin so I can see what's causing that symptom?
  
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 GMT - 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