Тогда уж неплохо бы и для int и long данных процедурки добавить, а то по байту читать дюже накладно.
Профит для АТМ в архивчике - проверяйте.
void put_memw(u8 pg, u16 addr, u16 data)
u16 get_memw(u8 pg, u16 addr)
void put_meml(u8 pg, u16 addr, u32 data)
u32 get_meml(u8 pg, u16 addr)
Добавил версию для TS-Config. Дополнительно нужно добавить экспорт переменной CC_PAGE2.
В версии для TS-Config в целях ускорения п/п отказался от индексной адресации в пользу адресации через HL относительно стэка.
(Не совсем понимаю, почему в оригинале используется IX).
Проверяйте.
void put_mem(unsigned char pg, unsigned char *addr, unsigned char data)
unsigned char get_mem(unsigned char pg, unsigned char *addr)
void put_memw(unsigned char pg, unsigned int *addr, unsigned int data)
unsigned int get_memw(unsigned char pg, unsigned int addr)
void put_meml(unsigned char pg, unsigned long *addr, unsigned long data)
unsigned long get_meml(unsigned char pg, unsigned long *addr)
P.S.
В общем-то, всё это - "хак", с расчетом, что стэк и временные переменные программы не "раздуются" настолько, что вылезут из области 0xE000 - 0xC000.
P.P.S.
Пожалуй, удалю остальные свои сообщения как бесполезные. Призываю народ поступить аналогично.





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