В русификации от Sunsoft/DreamTeam. И не учи дедушку кашлять, я загонял куда надо именно перед стартом игры. Именно потому и спрашиваю, что разница не заметна.
В русификации от Sunsoft/DreamTeam. И не учи дедушку кашлять, я загонял куда надо именно перед стартом игры. Именно потому и спрашиваю, что разница не заметна.
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
А, работает только 0 и любое другое число. я 0 не пробовал и ничего не менялось.
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
Не всё сразу
- - - Добавлено - - -
Смотря что считать корректным. Формально она не корректная, но фактически сложно представить реальную (а не выдуманную) ситуацию в которой она не сработает. Вряд ли кто-то будет что-то химичить с содержанием страниц, а потом, без рестарта компа решит поиграть в игру. Даже в детстве, када я грузил с мафона, было правило, что перед каждой попыткой загрузки делался reset. И мне кажется, что все так делали/делают.
Т.е. эта проверка - достаточная. Можно конечно сделать проверку "маниакальную", предельно корректную для всех случаев. Можно конечно сделать, для интереса. Правда тада не получится:
ld a,20
......
dec a ; a=19
Ибо придется делать примерно так:
1. В сжатом блоке хруста находим после 49151 какой-то байт, который равен нулю. Берём этот адрес на карандаш.
2. Грузим картинку и основной блок.
3. Переключаем на 19
4. Заносим по этому адресу "19"
5. Переключаем обратно на 16.
6. Смотрим что лежит по адресу.
7. Если там 19, то JZ на 48-ой сценарий.
8. Иначе (0) - по любому 128. И пофиг что там в каких страницах лежало до загрузки игры.
В 48-ом сценарии конечно придется перед стартом добавить
XOR A
LD адрес , A
Куплю корпус и материнку от Spectrum +2/+3
Изначально разговор шёл почему и что даёт 1, если в другой версии записывается 255.
Посмотрел фирменную версию, там понятно стало. Там нет прямой записи значений, оно косвенно идёт через тест объёма, в результате 1 записывается если в машине 128кб памяти, 0 - если 48 кб памяти. И если в 48 кб записать туда не 0, то будет висяк. Потому что в обработке прерываний проверяется значение и если оно не равно 0, то включается 3 страница памяти для воспроизведения музыки.
Вот такой ответ мог бы ты дать на вопрос "что даёт 1 в ячейке памяти", а не умничать зря.
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
Хотя и
ld a,20
......
dec a ; a=19
можно вставить.
Если перед загрузкой основного блока сделать 20 страницу,
загрузить в неё блок,
потом dec a,
переключить,
занести по адресу "19",
inc a,
переключить,
и смотреть что по адресу,
Потом правда в 128-ом сценарии непонятно. Ведь основной блок должен лежать в 16, а он будет лежать в 20
- - - Добавлено - - -
Я не умничал. Просто раз ты мне написал "проверь сам", то я тоже самое и написал тебе. И про 1 и про 0 тоже сразу же написал.
Дык у меня тоже идёт, пусть и не косвенно, а на прямую, но тоже через тест объёма ))
- - - Добавлено - - -
В фирменных версиях не было сражения за каждый байт, ибо интерес был коммерческий, а не спортивный. Работает - и ладно. А сейчас всё не так, сейчас надо в добавок к "рабочести" ещё и сжать и сократить всё что можно, а иначе не спортивно.
Куплю корпус и материнку от Spectrum +2/+3
ну и в догонку - в фирменной версии проверка как раз корректная в загрузчике:
Код:LD HL,(C000) PUSH HL LD A,55 LD (C000),A LD A,13 CALL SET_RAM_PAGE LD A,AA LD (C000),A LD A,10 CALL SET_RAM_PAGE LD A,(C000) AND 01 LD (728E),A POP HL LD (C000),HL LD A,(728E) AND A JP Z,5E5E; START LD A,13 CALL SET_RAM_PAGE LD IX,C000 LD DE,4000 CALL LOAD_BLOCK LD A,10 CALL SET_RAM_PAGE JP 5E5E; START
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)