[Archive] ((( A faster method for reading ROM (for 570ES PLUS or 991ES PLUS) ))) Note:
The fastest known method now output to KO pins.
As we knew, the ROM of the calculator and the emulator have some differences. Therefore we need to read the calculator ROM.
I have previously made a method that can read in regions that is not ROM window at the speed of about 2 min/byte (if you press buttons quickly).
Now that is a faster method.
the $ characters are not important, I chose $ because the calculator does not have $ symbol
cv = conversion, cs = constant
The − in − cs32 0 $ is negative symbol
$$$$$$ tan⁻¹( 5 0 $ cv24 y̅ 0 $ α D 0 $ $$$$ cv24 M 1 $ Ran# π ( π M × 0 $ $$ 00 $$ − cs32 0 $ ⅃ Ans ^( cs32 0 $ $$ − cs32 0 $ XX ∛( →M 0 $ $$$$$$ cs40 Ans cv10 →D 0 $ $$$$$$$$$$$$$$$$ M π $$$$$$$$
Approx. 5 seconds per byte, plus 3 minutes of preparation.
<You can hold the AC button>
Usage: After you have entered the expression replace XX with two bytes (in basic overflow mode) and overflow that, repeatedly press AC will show checksum correspond to XX+1, XX+2, and so on.
Note: From the emulator ROM we can deduce most of the calculator ROM. It is just misalignments.EDIT
This has some problems with the null bytes. Need to read them separately or find another method (the only other arbitrary-length copying function I can find involve changing EA, which is not easy)EDIT
Read data at null-bytes hackstring:
<48 $ bytes> 0 Ran# $$ tan⁻¹( D 0 $ YY α D 0 $ 00 $$ (-) cs32 0 $ cs24 Ran# ^ cs32 0 $ (-) cs32 0 $ XX ∛( →M 0 $ $$$$$$ × Ran# cv10 →D 0 $ $$
"(-)" is negative symbol.
Calculate checksum of segment 0 at base "00" (3030), for YY + XX bytes.
Edited by user202729, 19 August 2017 - 03:19 PM.