Собственно было бы не плохо сделать тему прилепленной
ну и первый глупый вопрос собственно от меня
какой режим IO портов AY-ка нужно выставлять по дефолту?
для большей совместимости со всякими там девайсами притуленными к AY
на ввод?
или на вывод?
Вид для печати
Собственно было бы не плохо сделать тему прилепленной
ну и первый глупый вопрос собственно от меня
какой режим IO портов AY-ка нужно выставлять по дефолту?
для большей совместимости со всякими там девайсами притуленными к AY
на ввод?
или на вывод?
Какова бы ни была аппаратура, она обычно разрабатывалась так, чтобы при сбросе системы не мешать работе бейсика, TR-DOS и прочего ПО, которое об этой аппаратуре ничего не знает. Ведь специальное ПО для инициализации AY и работы с этой аппаратурой можно было запустить только после пуска бейсика и TR-DOS. И, если бы автор схемы нарушил условие её работоспособности при сбросе - то он бы быстро это заметил и поправил.
Соответственно, после сброса инициализировать ничего не надо, а если инициализировать - то в тот же режим, который устанавливается при сбросе AY.
Подскажите, пожалуйста, какой утилитой на ZX снять образ дискетки со сбойными секторами и порушенной структурой файлов? Считать как есть, пропуская битые секторы, желательно в TRD, чтобы потом поковырять на PC. Хотел с помощью WDC, но он ругается на диск.
Это смотря какой ZX. Вот обучалово на Пентево: https://www.youtube.com/watch?v=YkA3jEqLNb8
А еще есть Floppy Disk Reaper.
Если снимать образ на PC, то вариантов побольше. Из свежайшего есть прекрансный Spectrum Archive Reader.
Кто может подсказать? Проблема вот в чём: если при написании проги не юзать страницы в коде, то у меня компиль создаёт SNA для 48. И всё бы ничего, но страницы больше не переключаются, как будто уже включена "защёлка". Приходится писать костыль типа
PAGE 1
DEFB 0
чтобы сразу создавался снапшот для 128, где состояние порта #7ffd явно указывается.
Вроде бы в буфере принтера при режиме 128 используется дополнительная системная переменная - копия порта, но там значение нормальное %00000000 (подключена страница 0, видеостраница - 5 банк, пзу - бейсик 128, и защёлка в нуле). Чего я не учёл при сохранении SNA?
А может это особенности эмуля, он ест 48 сна и автоматом выбирает 48 модель.
Я об этом не подумал, щас попробую с другим(Звучит как: Мой молодой человек такой-то и такой-то.. ааа.. щас попробую с другим))))
- - - Добавлено - - -
Нет, на эмузвине то же самое, что-то не так с форматом sna(щас попробую 48)
В сна вроде прописывается модель, тогда поведение эмулей логично в принципе.
Нет попробовл разно
- - - Добавлено - - -Код:void ZX_SNA_Saver::FillStandartRAM(ByteVector & ram, unsigned int start)
{
ram.insert(ram.end(), 6144, 0); //Данные экрана
ram.insert(ram.end(), 768, 56); //Данные атрибутов
//23296
//ram.insert(ram.end(), 256, 0); //Буфер принтера(или если 128, доп область переменных)
ram.insert(ram.end(), 89, 0); //Буфер принтера(или если 128, доп область переменных)
ram.push_back(16); // копия порта
ram.insert(ram.end(), 166, 0); //Буфер принтера(или если 128, доп область переменных)
//23388 = копия порта
//Системные переменные
Где в 48 формате это прописывается?
гдето в
mas.push_back(6); //Флаги прерываний
mas.push_back(0); //Регистр регенерации динамической памяти R?
Кто-то ведь работал плотно со снапшотами
- - - Добавлено - - -Код:void ZX_SNA_Saver::FillHeader(ByteVector & mas, unsigned int start)
{
//Заполним заголовок sna(27 байт)
mas.push_back(63); //регистр I
mas.push_back(0); //HL'
mas.push_back(0);
mas.push_back(0); //DE'
mas.push_back(0);
mas.push_back(32); //BC'
mas.push_back(23);
mas.push_back(68); //AF'
mas.push_back(0);
mas.push_back(168); //HL
mas.push_back(16);
mas.push_back(185); //DE
mas.push_back(92);
mas.push_back(0); //BC
mas.push_back(0);
mas.push_back(58); //IY
mas.push_back(92);
mas.push_back(0); //IX
mas.push_back(0);
mas.push_back(6); //Флаги прерываний
mas.push_back(0); //Регистр регенерации динамической памяти R
mas.push_back(116); //AF
mas.push_back(0);
mas.push_back((start - 2) % 256); //SP
mas.push_back((start - 2) / 256);
mas.push_back(1); //Режим прерываний
mas.push_back(7); //Цвет бордюра
}
В сна 128 порт задаётся явно, в 48 хз где, в этом и вопрос
- - - Добавлено - - -
Или 48к снапшоты изначально с заглушкой доп памяти?
- - - Добавлено - - -
Может в режиме 128 в области доп переменных ещё что-то нужно, а у меня там нули?
- - - Добавлено - - -
Пока не критично конечно, но надо исправлять
- - - Добавлено - - -
Никто не знает?(что сомнительно) или реально эмули видя 48 заглушают память? так не должнож быть
- - - Добавлено - - -
Стопудняк проблема в одном бите, но я не знаю в каком