Jump to content
IGNORED

Converting old *.COM style header to *.o header


Songbird
 Share

Recommended Posts

I have a few really old *.COM Lynx RAM-download images I made back in 90's, and they don't work on Handy. Does anyone know how to convert them to *.o images? I don't recall the *.COM header format (if any), and don't see any visual marker bytes at the start of the binaries to indicate header fields. Sample file attached (don't worry, it's nothing impressive as it's a simple title screen program :) ). Thanks for any help!

 

Slightly related observation: Handy will recognize *.o files with the BS93 marker but not BS96. Once I manually changed a *.o file I had to have the BS93 marker, it worked.

PW.zip

Link to comment
Share on other sites

Looks simple.

 

A typical header is

 

0000000 80 08 41 c0 09 a3 42 53 39 33 78 d8 a9 80 1c 01

 

your com header is

 

0000000 ff ff 00 20 24 41 78 d8 a9 80 1c 01 fd 1c 05 fd

 

The question is just what your header bytes could represent.

 

Your file size is 8497 bytes which would be $2131. The payload is $212B

 

My guess is that the load address is $2000

 

And the $4124 represent the end address of the load.

 

A small check...

 

$4124 - $2000 = $2124

 

Not quite what I was expecting. Why is the file 7 bytes too long?

 

There is actual data on the last bytes too.

0020440 a0 02 20 e6 20 20 fc 21 4c 72 23 e0 02 e1 02 00
0020460 20

A working header could be

 

80 08 20 00 21 2b 42 53 39 33

 

But instead I made a lnx file out of it. Nice intro btw.

PWfixed.zip

Edited by karri
  • Like 1
Link to comment
Share on other sites

I have a few really old *.COM Lynx RAM-download images I made back in 90's, and they don't work on Handy. Does anyone know how to convert them to *.o images? I don't recall the *.COM header format (if any), and don't see any visual marker bytes at the start of the binaries to indicate header fields. Sample file attached (don't worry, it's nothing impressive as it's a simple title screen program :) ). Thanks for any help!

 

Slightly related observation: Handy will recognize *.o files with the BS93 marker but not BS96. Once I manually changed a *.o file I had to have the BS93 marker, it worked.

 

what produces a BS96 header?

 

If I remember correctly, lynxer was able to convert both, but i never stumbled on any of these com files, thus I did not include it in lynxdir.

Link to comment
Share on other sites

Karri, thank you for the math and the fixed file! You're right, that makes sense now but I guess my brain was too tired to think about it last night. ;) It is nice to see this title loop again -- as you can see, it's from 1997 which was over a year before I published my first cartridge, SFX. So I was still in the learning phase and experimenting with the original cc65 compiler. Still, I had forgotten that it has as much animation as it does! My original plan was to make a 2D overhead space shooter, but eventually I went with the pseudo-3D cockpit style in Remnant.

 

Regarding BS93 versus BS96 -- I have no idea what version of lynxer I used but it had to be one Bastian released way back in the 90's. I just found it interesting that Handy didn't recognize it, but changing one byte made it all better. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...