== E-MU Proteus 2k v1.24 flash analysis ==
==========================================

size: 2 097 152 bytes  / TH28F160 (tsop56 or ssop56, depends on mainboard revision)
Big endian (Motorola)
Swap byte to read text content correctly, as shown below
The original binary is just for education purposes (not sure if its OK, but its possible to flash another chip :)


-----------------
First boot block:
-----------------

size: 100FFh (65792 bytes)

Sub blocks:

- 0 ~ 1FF	(code 512 bytes - bootstrap?)
- 200 ~ 3FF	(zeros)
- 400 ~ 8880	(code 33921 bytes *)
- 8881 ~ FFFF	(zeros)
- 10000 ~ 100FF	(code reads "lib_CODE........CPLG ... 1.24ProteusGenericOS ...")

* this block contains some of the following:
	- error messages about bits stuck, DRAM test, G chips (U28,U15,U24) tests
	- messages with "Searching for OS", "Downloading from %" ..., "Fatal: Write to ROM" ...


--------------
Second block:
--------------

size:   8FF00h  (589568 bytes)

- 10100 ~  9213F	(main OS *, size 532544 bytes)
- 92140 ~  9FFFF	(zeros)

* Match to "p2k124.dli" binary file downloaded from WEB (532544 bytes); where the OS updates reside in memory.
	- the OS update v2.26 (.dli) has 535080 bytes - will fit the space!

-------------
Third block:
-------------


- 0A0000 ~ 0A02FF      	(reads "lib_USER ..." ... "User Setup ..." ... start of all presets ...)
- 0A0300 ~ 11C2FF	(507904 bytes: 1st preset until "default preset", total 512 presets)
- 11C300 ~ 12B183	(reads "User Setups..." "Factory Setup", etc)
- 12B184 ~ 12FFFF	(empty space)
- 130000 ~ 1EEB77	(another block "lib_USER ..." ... "User Setup ...", start of more presets ... more setups)
- 1EEB78 ~ 1FFFFF	(empty space)

* each preset has about 992 bytes (might not be correct size :)
* each setup has about 660 bytes (might not be correct size :)

eof (feb, 2021 toobias)