DIVIDE interface use external 32kB sram and 8kB rom memory(eeprom). Eeprom memory is used for system code or as system loader(from hdd). Sram is used for system data, screen backup, ect...
SRAM 32kB:
memory is present as four 8kB ram pages. Last page(3) can be used for eeprom emulation. All ram pages cen be paged form adress 8192-16383. Only page 3 can be paged from 0-8191 with write protect(eeprom emulation).
ROM 8kB:
rom memory can be set in memory 0-8191 only
DIVIDE memory automapper:
interface use automatic memory mapper at enterpoints
#0(power-on/reset/rst 0)
#8(rst 8 / errors)
#38(im 1 interrupt routine)
#66(nmi routine)
#4C6(save)
#562(load)
#3D00-#3DFF(tr-dos / betadisk)
If CPU read instruction code at adress #0,#8,#38,#66,#4C6 and #562 then next after M1 cycle will connect DIVIDE memory and next instruction byte will read from external memory(shadow rom). DIVIDE interface can with this methode detect reset, modify rst8 and im 1 routine. Use new correct NMI menu and modify load / save routines for work with IDE device/cd-rom. For disconnect DIVIDE memory(return to original rom) must CPU jump to area #1FF8-#1FFF in DIVIDE memory. CPU read first instruction byte from external memory, disconnect external memory(connect original ZX rom) and next instruction byte read from zx rom.
Automapper support also tr-dos emulation:
if CPU jump to area #3D00-#3DFF, external memory is immediately connect and CPU read instructions from external sram. This TR-DOS mapper is 100% compatible with russian betadisc. Only for exit from tr-dos you must jump to area #1FF8-#1FFF. If CPU jump from divide memory to ZX ram then divide memory is always set.
Latest version of DIVIDE interface (possible buy at http://www.divide.cz/?x=eshop&lang=en ) contain new firmware of GAL chips and contain new feature - allram mode support. This feature use 16kB memory paging in low 16kB. Sram memory is used as two 16kB pages with selectable write protect![]()




Ответить с цитированием