This is full description of ATM2 ports (but in russian)
http://atmturbo.nedopc.com/atmdscr.htm ATM2 paging use two potrs set: "system" port and "memory manager" ports
system port have base address 0xFF77 but it use tricks in decoding port address - some of address bus bits used as data bits (to simplify decoding circuit).
D2,D1,D0 - select video mode (you do not need this)
D3=1 - enable turbo (you do not need this)
D4-reserved
D5-enable int from vsync (you do not need this)
D6,D7 - used for pc keyboard controller (you do not need this)
A8=0 - enable memory manager (when computer powers on memory manager is disabled)
A9=0 - activate all shadow ports
A14=0 - activate palette (you do not need this)
memory manager port (base address 0xFFF7):
D5..D0 - page number (0-63) (all bits must be inverted)
D6=1 - RAM, 0 - ROM
D7=1 - use 0x7FFD in address decoding (in memory range 0xC000-0xFFFF D2-D0 used from 0x7FFD instead of memory manager)
A15..A14 - select memory bank (0..3)
0 0 - 0x0000-0x3FFF (port 0x3F77)
0 1 - 0x4000-0x7FFF (port 0x7F77)
1 0 - 0x8000-0xBFFF (port 0xBF77)
1 1 - 0xC000-0xFFFF (port 0xFF77)
All of this ports are shadowed in trdos space, you need to activate this ports via 0x3d2f entry point by writing A9=0 to system port.
PS. I look at vg93emul source code and see that it uses port 0xEF(hdd port) to load data from hdd. To adapt this to others zx clones you need to modify this code (talk to CHRV and ask him for source code of vg93emul).