в 5.13fm и её потомке 6.10E глюки магика вроде бы сведены у минимуму.
в 5.13fm и её потомке 6.10E глюки магика вроде бы сведены у минимуму.
хорошо, спасибо, буду прошивать -- учту
А что сложного в доработке мэджика?
Единственное, я не помню, как определить включено или выключено прерывание. Может и нельзя было, не помню.
LD (4081),SP
LD SP, 407F
PUSH AF
LD A,I
PUSH AF
LD A,R
PUSH AF
DI
PUSH BC
PUSH DE
PUSH HL
PUSH IX
PUSH IY
CALL "save"
POP IY
POP IX
POP HL
POP DE
POP BC
POP AF
LD R,A
POP AF
CP 3F
JR Z, "im1"
IM 2
LD I,A :im1
POP AF
LD SP,(4081)
EI
RET
А потом при выгрузке разбить на удобной длины и адресации файлы.
При запуске указать в SP адрес сохранения стека.
Продолжать стек в самой "выгружаемой" программе не стоит. Можно повредить ее.
Такое "чудо" делалось мной еще на ленте. Но там еще надо было дособрать прибамбас, триггер задержки на 555ТМ2 для устранения дребезга кнопочки на вывод процессора, тоже не помно, какой.
У меня было: картинка, 2 файла по 20480, грузились с адреса 24576, а последний блок с адреса #4082, потом процедурой LDIR кидался на место, #5B00.
Затем уже запускалась реанимация мэджика.
Фактически я содрал М1 multiface, которого в глаза не видел. Немного доработал его, организовав стек на картинке.
Прошу извинить, если неясно что. Я уже давно забыл это.
Я специально исследовал этот вопрос и пришел к выводу, что можно избавится практически от всех ошибок кнопки магик в контроллере дисковода. Причем сохраняется полная совместимость со старой прошивкой tr-dos. Т.е. если вы записываете программу на новой прошивке, то её можно будет считать и на старой, но с ошибками. А на новой ячейки памяти в конце буфера принтера не будут портиться. Я даже стал писать новую прошивку, есть рабочий вариант, но там не все решено до конца.
один концептуальный нерешаемый баг: регистры сохраняются в памяти! с этим НИЧЕГО поделать нельзя. кто может это решить на стандартном железе - пусть кинет в меня камень:))) остальное все решаемое.
Эх надо в смайлики Диззика с камнем добавить. :)
Можно, хоть и не полностью. Там же ведь организуется рабочее пространство путем отгрузки 512 байтов с адреса #4000 в 10 и 11 сектора диска. На стек программы можно сохранять не все регистры, а только те, которые портятся при отгрузке сектора. Насколько я сейчас помню это DE, BC, A, может еще HL. Ежу понятно еще и R. Все остальное можно выпихивать уже в новый стек. Хотя такой вариант уже не будет совместим со старым.
А вообще говоря, коль уж решили делать новый Magic, то хотел бы вставить свои два слова. ИМХО в наше время запись снапшотов на дискету - вещь неактуальная. А вот запись скриншотов очень даже рулила бы. Если хотим снапшоты оставить, можно как в +D сделать, там после Magic'а надо еще клавишу нажимать - в зависимости от этого на диск отгрузится либо только картинка либо весь снапшот.
юзайте альтернативный magik в прошивке Хакер-2000 - там на стеке сохраняется минимум регистров, остальное сохраняется на диске. И картинку моно отдельно сохранять, но только в начале диска.
где такая прошивка?