didn't realize but mode3 can return multiple memory bytes in a single request just by stringing them together:

Code:
F4 5C 03 01 EE 01 ED 01 00 CF > F4 59 03 00 00 87 29
since aldl request length is limited to the single length byte (0xFF - 0x52 = dec173) minus the checksum/mode/length/device bytes.

so 169 message bytes, and since they're 16 bit addresses, that's 84 bytes of memory in a single mode4 request.

it's almost as good as a mode1 request, but the request itself is way longer which slows stuff down to about 3-4ms per byte requested.

i have tested this by grabbing the entire BLM table memory from both banks in a single request, and it works.

one gigantic request but still a magnitude faster than multiple mode3 requests...

Code:
f4a203001c001d001e001f0020002100220023002400250026002700280029002a002b002c002d002e002f0030003100320033003400350036003700380039003a003b003c003d003e003f0040004180
>
f47c0380808080808080808080808080808080808080808080808080808080808080808080808080808d