sup8pdct #1 Posted May 25, 2008 Have finally dissembled the rom code for the 8040 processor in the xf551 Have done both the 1st version (as far as i know) that would only work on NTSC atari's and the 2nd version that would work on all atari's This is 1st version: 0250: 00 NOP 0251: 00 NOP 0252: 00 NOP 0253: 00 NOP 0254: 00 NOP etc this is 2nd version: 0250: 44 EE JMP 2EE 0252: 00 NOP 0253: 00 NOP 0254: 00 NOP extra code in here 02EE: 44 53 JMP 253 The 8040 has it's jump instruction set so the lowest 3 bits of the instruction is the high order address and the 2nd byte as the low order address. each jmp instruction is 2 bytes and takes 2 cycles to complete. each nop is 1 cycle. For the cycle counters out there, you can see 1 extra cycle is added to fix the sio speed. the 8040 must bitbang each byte. Not sure if above code is for send or receive but both are same in regards to cycles counted. Extra code is also added to receive the command frame but it done in a different way. James Quote Share this post Link to post Share on other sites
puppetmark #2 Posted May 26, 2008 Have finally dissembled the rom code for the 8040 processor in the xf551Have done both the 1st version (as far as i know) that would only work on NTSC atari's and the 2nd version that would work on all atari's This is 1st version: 0250: 00 NOP 0251: 00 NOP 0252: 00 NOP 0253: 00 NOP 0254: 00 NOP etc this is 2nd version: 0250: 44 EE JMP 2EE 0252: 00 NOP 0253: 00 NOP 0254: 00 NOP extra code in here 02EE: 44 53 JMP 253 The 8040 has it's jump instruction set so the lowest 3 bits of the instruction is the high order address and the 2nd byte as the low order address. each jmp instruction is 2 bytes and takes 2 cycles to complete. each nop is 1 cycle. For the cycle counters out there, you can see 1 extra cycle is added to fix the sio speed. the 8040 must bitbang each byte. Not sure if above code is for send or receive but both are same in regards to cycles counted. Extra code is also added to receive the command frame but it done in a different way. James Nice Work. I always wondered what they did differently. That's great info. Quote Share this post Link to post Share on other sites
sup8pdct #3 Posted May 26, 2008 Have finally dissembled the rom code for the 8040 processor in the xf551Have done both the 1st version (as far as i know) that would only work on NTSC atari's and the 2nd version that would work on all atari's This is 1st version: 0250: 00 NOP 0251: 00 NOP 0252: 00 NOP 0253: 00 NOP 0254: 00 NOP etc this is 2nd version: 0250: 44 EE JMP 2EE 0252: 00 NOP 0253: 00 NOP 0254: 00 NOP extra code in here 02EE: 44 53 JMP 253 The 8040 has it's jump instruction set so the lowest 3 bits of the instruction is the high order address and the 2nd byte as the low order address. each jmp instruction is 2 bytes and takes 2 cycles to complete. each nop is 1 cycle. For the cycle counters out there, you can see 1 extra cycle is added to fix the sio speed. the 8040 must bitbang each byte. Not sure if above code is for send or receive but both are same in regards to cycles counted. Extra code is also added to receive the command frame but it done in a different way. James Nice Work. I always wondered what they did differently. That's great info. I have always wanted to know since the late 80's when I saw the first XF with this problem. I also had to alert Bob Puff about it as well because his first version of the duel drive upgrade wouldn't work on PAL computers. The mod that bob wooly did also had to be changed as well. Now to make the listing readable with data statements (how ever that is done) and comments provided i can make sense of it. James Quote Share this post Link to post Share on other sites