Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
mg_notes:apple_iic:iic_bugs [2017/11/10 02:07]
M.G. note fixed MAME
mg_notes:apple_iic:iic_bugs [2017/11/10 02:08]
M.G. fix link, not markdown
Line 50: Line 50:
 The problem is that when there is no memory expansion card installed, there is no register, and the value there is floating bus.  The only reason the code gets out of the loop is because the floating bus happens to usually have a bunch of bytes streaming by that have 0 in the low nibble. The problem is that when there is no memory expansion card installed, there is no register, and the value there is floating bus.  The only reason the code gets out of the loop is because the floating bus happens to usually have a bunch of bytes streaming by that have 0 in the low nibble.
  
-That being said, MAME before [bdcb983](https://​github.com/​mamedev/​mame/​commit/​bdcb98307822e79c242782ee67bef966bf4c25dedid not float the bus for $C0C0-$C0CF. ​ A non-floating bus results in ROM $03 hanging when the card is first accessed, and, due to changes made by Apple, a hang at boot for ROM $04 (and presumably IIc Plus ROM $05).+That being said, MAME before ​ [[https://​github.com/​mamedev/​mame/​commit/​bdcb98307822e79c242782ee67bef966bf4c25de|bdcb983]] ​did not float the bus for $C0C0-$C0CF. ​ A non-floating bus results in ROM $03 hanging when the card is first accessed, and, due to changes made by Apple, a hang at boot for ROM $04 (and presumably IIc Plus ROM $05).
  
 Another minor issue is that the code wouldn'​t find a theoretical Slinky that had only one 64K bank built into it, as the loop terminates when the bank hits 0. Another minor issue is that the code wouldn'​t find a theoretical Slinky that had only one 64K bank built into it, as the loop terminates when the bank hits 0.
Line 118: Line 118:
  
 If it was undesirable to use the stack, we overwrite sizetemp anyway when the routine exits, so we could replace the pha/pla with sta sizetemp/​lda sizetemp at the cost of 4 bytes. If it was undesirable to use the stack, we overwrite sizetemp anyway when the routine exits, so we could replace the pha/pla with sta sizetemp/​lda sizetemp at the cost of 4 bytes.
-