+karri Posted May 31, 2022 Share Posted May 31, 2022 Due to my desire to use larger ROM's I did change the directory and cart logic on my old cc65 compiler. In the old code the block field was 8 bit and it was followed by an unused byte that was usually $88 0r $00. In the current version the block field is 16 bits long. The high byte contains the highest address bits of the ROM. These bits are driven by the CART1 read strobe and AUDIN. Old projects need to set the content of this unused byte to 0. And it would be good to define the block field in the directory to be a .word instead of a .byte 1 Quote Link to comment Share on other sites More sharing options...
42bs Posted May 31, 2022 Share Posted May 31, 2022 Background info : $88 was the executable marker I did use past days for my LOS (Lynx Operating System). 1 Quote Link to comment Share on other sites More sharing options...
+karri Posted June 1, 2022 Author Share Posted June 1, 2022 14 hours ago, 42bs said: Background info : $88 was the executable marker I did use past days for my LOS (Lynx Operating System). Executable marker... In that case nobody will be missing it. It is gone now. Once I get my 2MB cart debugged/working I might make a pull request to update the main cc65 for 2MB carts as well. The only problem is the automatic insertion of the 2nd boot loader. If an inserted file crosses the boundary that requires flipping AUDIN I could increment the pointer to the end of the block, insert a new copy on the bootloader and then continue with the files. Quote Link to comment Share on other sites More sharing options...
OldAtAtari Posted December 2, 2022 Share Posted December 2, 2022 On 5/31/2022 at 4:40 PM, karri said: Due to my desire to use larger ROM's I did change the directory and cart logic on my old cc65 compiler. In the old code the block field was 8 bit and it was followed by an unused byte that was usually $88 0r $00. In the current version the block field is 16 bits long. The high byte contains the highest address bits of the ROM. These bits are driven by the CART1 read strobe and AUDIN. Old projects need to set the content of this unused byte to 0. And it would be good to define the block field in the directory to be a .word instead of a .byte For those of us who still (STILL! 😞 ) haven't learned the details of how these things work, can you give a dumbed-down description of how to fix our setups to work with the revised compiler? How do I go about setting the unused byte to 0 and redefining the block field to .word? What directory is it in? I'm back in the programming game now, and I've created my environment with the Karri/nop90 template, which no longer compiles into a working *.lnx file. It's my fault for being out of it the hobby for so long. As always, I'm stumbling on my own ignorance, and I'm humbled by you guys who create these systems and your patience to provide support to knuckleheads like me. Thanks! Quote Link to comment Share on other sites More sharing options...
OldAtAtari Posted December 2, 2022 Share Posted December 2, 2022 (edited) Disregard! @obschan and @MichelS helped me! In my directory.s file, I needed to make the entry macro look like this: .macro entry old_off, old_len, new_off, new_block, new_len, new_size, new_addr new_off=old_off+old_len new_block=new_off/__BLOCKSIZE__ new_len=new_size .word new_block .word (new_off & (__BLOCKSIZE__ - 1)) .word new_addr .word new_len .endmacro Edited December 2, 2022 by OldAtAtari Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.