![]() This is clearly fixing a bug where the wrong instruction was used because the value at location $8000 will be random and it makes much more sense to compare against a constant than a random number. I'm not familiar with the code patched in the second change, but it updates the opcode of this instruction: 00feaf9c B0B900008000 cmp.l $8000.l, d0 The patch changes the maximum expected size to 2MiB ($200000). This is the source of the bug where reset-proof RAM disks did not survive a reset on machines with more than 512kiB of Chip RAM. If the value is outside the expected range, a full reinitialisation occurs because it's assumed that execbase has become corrupted. ![]() This code reads the size of Chip RAM from execbase and checks that it is no greater than 512kiB ($80000) and no less than 256kiB ($40000). ![]() The first change is to patch this code: 00fc0196 266E003E movea.l $3e(a6), a3 ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |