| PLEX86 | ||
Zeroing core. 2574Couple of problem with this, if your objective is to clear ALL of memory. Zeroing core. 2576 I agree is doesn't matter how it's scrubbed. I'm having problems figuring out how one can verify that the 1000 randomly set bits in the memory page... If the SP starts of FFFF the first PUSH will write to location FFFD and FFFE, leaving FFFF uninitialized. The Z80 (and 8080) stacks decrement (by two) then write sixteen bits. You want to set SP to 0000 so the first PUSH will hit FFFE and FFFF. Zeroing core. 2575 MOV -(PC), -(PC) IIRC It didn't leave zeros behind. I'm not sure what happened at address zero. Which reminds me of the... It also won't overwrite your code at 0000 to 0003 because one of your PUSHes is going to write 00 to 0003 and 0004, changing the offset in your relative jump from FC to 00. I don't recall for sure what a relative jump with offset zero did, but I *think* it's basically a multi-cycle NOP. After this, it will run through all the NOPs until it hits whatever was already in location FFFF. If whatever is there is an instruction which doesn't mess with the IP, it will wrap to 0000, NOP, then 0001, and, if the code at FFFF didn't mess with the SP, do another PUSH. If the code at FFFF didn't mess with BC, it will overwrite 0001 and 0002 with 0000, zeroing the C5 and 18 which were left from the first pbutt. It will then loop through memory continuously, executing whatever is at location FFFF on each pbutt. If you correct the intiail SP to 0000, then it will overwrite all of the relative jump, leaving C5 at 0001. The machine will run all the way around memory (64K of NOPs) and the IP wrapping to 0000. Then it will execute the NOP at 0000 and the PUSH at 0001 and overwrite 0000 and 0001 with 0000, thus getting you 64K of NOPs and the machine running in a loop through all of RAM. I also see I programmed WAY to much Z80 buttembler back in the day. - Bill
|
||||
Alt Folklore Computers from Newsgroups The #1 Usenet Provider on the Internet
|
||||