[Coco] Assembly .BIN -> .CCC/.ROM = SOLVED!
Arthur Flexser
flexser at fiu.edu
Mon Sep 8 01:14:45 EDT 2014
A useful accompanying utility to this one would be one that does the same
for tokenized Basic programs. Should be pretty easy to write--I recall
years ago writing something similar that ran a Basic program contained in a
Rompack. You just attach a loader to block move the file to where it would
normally be loaded in and then execute the ML equivalent of the RUN command.
That way, the big EPROM could contain both ML and Basic programs, as
desired.
Art
On Wed, Sep 3, 2014 at 10:47 PM, Chad H <chadbh74 at hotmail.com> wrote:
> Ahh... when I was looking in the Rainbow IDE HELP > 6809 refernce at the
> opcode table and saw the DECD, I failed to see the note that '*'
> represented
> a 6309 code...oops. Anywhoo, I FINALLY got this bugger going perfectly!!
> :)
> Thanks to William Astle, Johann Klasek and Tormod Volden, you guys all made
> points that helped me debug this ..umm..bugger.
>
> Since I only have a CoCo 2 64K, which I believe can only access 16K of
> cartridge ROM at a time, I decided to load the maximum size .BIN file I
> could find that would still fit into 16K. I chose FLTSIM.BIN as it is just
> over 15K. The Assembly loader is 33 bytes with the .BIN copied into the
> .CCC image just after that. I wrote a quick and dirty .NET application
> that
> will prompt the user for the source .BIN, destination .CCC/.ROM file, then
> write out the 33 bytes and combine in the .BIN file data automatically.
> All
> you have to do then is load the resulting file in M.E.S.S. as a rom pak and
> it loaded the Flight Simulator I instantly :) I have a few 27128 EPROM's
> so
> I'll be flashing this to one of those to confirm. I know from examining
> the
> .BIN data for FLTSIM.BIN that it was many segments but it DOES work :)
>
> Anyone can use this to convert a 16k or less .BIN to a ROM Pak Image (32K
> on
> CoCo 3????) I'll put up the small .NET executable that makes the process
> simple if anyone wants it. Here is the final Assembly listing, thanks
> again!! ....
>
>
> *.BIN single/multisegment bootloader for ROM Pak
>
> org 49152 CoCo and compatibles map in ROM Paks here
>
> * LOADER
> BININ LDX #BINLOD INIT XFER DATA ADDRESS OFFSET
> CHKBLK LDA ,X+ GET BLOCK TYPE BYTE (00 = PREAMBLE,
> 255=POSTAMBLE)
> BNE ENDBIN IF <>0 THEN MUST BE END OF .BIN DATA
> (POSTAMBLE)
> LDU ,X++ GET BLOCK LENGTH(U)
> LDY ,X++ GET BLOCK START ADDRESS(Y)
> XFER LDA ,X+ GET SOURCE BYTE(A) FROM X
> STA ,Y+ PUT BYTE(A) AT Y
> LEAU -1,U MOVED BLOCK?
> CMPU #0
> BNE XFER NO
> JMP CHKBLK CHECK NEXT BLOCK
> ENDBIN LDU ,X++ GET BLOCK LENGTH (0000)
> LDU ,X++ GET EXECUTION ADDRESS(U)
> JMP [,U]
> BINLOD FCB 255
>
>
> -----Original Message-----
> From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of William
> Astle
> Sent: Wednesday, September 03, 2014 7:21 PM
> To: coco at maltedmedia.com
> Subject: Re: [Coco] Assembly Help
>
> On 14-09-03 04:18 PM, Chad H wrote:
> > DECD was in my 6809 manual and compiled in Rainbow IDE utilizing CCASM
> without error. DECU however failed and wasn't on the 6809 chart...I will
> look at using the LEAU and see what happens. Thanks guys!
>
> DECD is most definitely NOT a 6809 opcode. (It's not listed in the 6809
> datasheet and none of the undefined operation codes has that effect.) It is
> a 6309 opcode, though. If I recall correctly, CCASM supports 6309 opcodes
> so
> that would be why it assembled. It won't run as expected on a 6809, though.
>
> Of course, since you were already clobbering D with the use of A in the
> loop, it wouldn't work on either processor.
>
>
>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>
More information about the Coco
mailing list