On 2020-08-27 13:44, groepaz_at_gmx.net wrote: > Am Donnerstag, 27. August 2020, 13:41:46 CEST schrieb groepaz_at_gmx.net: >> Am Donnerstag, 27. August 2020, 13:32:56 CEST schrieb Hans Liss: >>> Odd code. It seems to have some magic I/O at $8000/$8001, with $8001 >>> maybe producing side effects on read. >>> >>> Also, the sequence starting at $e7a0 is kinda epic. It laboriously >>> stores code, instruction by instruction, at $0400 - $041b, and then >>> jumps to $0400. I wonder why. >> that would be the typical thing to do if you eg want to bank out the ROM you >> are running from, to call code from another ROM (bank), or from RAM >> >> $400x seems to be I/O to me as well... there really must be more to this, ie >> without the schematics or knowledge of the hardware it doesnt make a lot of >> sense > this is the code at 0400 > > .C:0400 A2 FF LDX #$FF > .C:0402 A0 FF LDY #$FF > .C:0404 A9 5C LDA #$5C > .C:0406 8D 00 80 STA $8000 > .C:0409 CA DEX > .C:040a D0 F8 BNE $0404 > .C:040c 88 DEY > .C:040d D0 F5 BNE $0404 > .C:040f A9 A2 LDA #$A2 > .C:0411 CD 00 04 CMP $0400 > .C:0414 D0 03 BNE $0419 > .C:0416 4C 32 E8 JMP $E832 > .C:0419 4C 2D E8 JMP $E82D You were faster! :) It's a bit strange. It's a clear sign of self-modifying code, checking the value at $0400 like that. But I can't see anything in the ROM code that might change that value. /HansReceived on 2020-08-27 14:04:18
Archive generated by hypermail 2.3.0.