Author: KermMartian
Posted: 16 Oct 2012 11:15:12 pm (GMT -5)
Got it, that all makes sense. However, as I mentioned on IRC, I started implementing this, then realized I had already implemented it and removed it. Finishing the implementation would require modifying the read path for every single byte read. I'd have to make every read check: is this addr 0x0 and I am in Silicon ID mode? Then return $C2 or whatever; otherwise keep going with a normal read. Reading a byte is the most critical path in the whole emulator, since it's used both for reading instructions and instructions that read memory. Can you pretty please make a failover in GlassOS that if the read at 0x0000 equals whatever was at 0x0000 anyway, it assumes no data streaming? That's probably a good failure mode anyway.
Edit: Ahelper says: You can just block writing to the address on page 0, then the flash code will not fail.
Edit #2: Wait, what? You said that at minimum the get ID command is required. I say that it would slow things down to much to add that. Hell, I don't want to add port 28/29 handling for the same reason.
_________________
![]()
Posted: 16 Oct 2012 11:15:12 pm (GMT -5)
Got it, that all makes sense. However, as I mentioned on IRC, I started implementing this, then realized I had already implemented it and removed it. Finishing the implementation would require modifying the read path for every single byte read. I'd have to make every read check: is this addr 0x0 and I am in Silicon ID mode? Then return $C2 or whatever; otherwise keep going with a normal read. Reading a byte is the most critical path in the whole emulator, since it's used both for reading instructions and instructions that read memory. Can you pretty please make a failover in GlassOS that if the read at 0x0000 equals whatever was at 0x0000 anyway, it assumes no data streaming? That's probably a good failure mode anyway.
Edit: Ahelper says: You can just block writing to the address on page 0, then the flash code will not fail.
Edit #2: Wait, what? You said that at minimum the get ID command is required. I say that it would slow things down to much to add that. Hell, I don't want to add port 28/29 handling for the same reason.
_________________





