для версии 1.1 40120,198
для версии 1.1 40120,198
vlad-kras(23.02.2022)
Destr(03.03.2022)
Подскажи, пожалуйста, если ты видел полный текст программы -- как там осуществляется переключение с 128 бейсика на 48й? В описании сказано, что PC находится в пределах ПЗУ, значит прерывания переведены в 48й режим, но я не смог найти место в ПЗУ, позволяющее это сделать вызовом из бейсика.. (((
Поясню для тех, кому интересно почему это важно. Дело в том, что 128й бейсик (помимо того, что он гораздо медленней 48го) использует для LPRINT другой тип принтера (Epson, а не ZX), место буфера принтера при этом используется в других целях (туда направлен вектор IM2) и если его затереть бейсик будет рандомно глючить. Нюанс в том, что хотя местоположение буфера принтера можно перенести, из-за ошибки в ПЗУ бейсик всё равно затирает участок, где он находился стандартно (его местоположение берется из константы в ПЗУ) -- и важно это только при переключении из режима 128, т.к. в 48м там ненужное ему место и что там происходит неважно.
Программой в кодах так переключиться легко. И вручную тоже (просто выполнив usr 0 до загрузки программы), но вот из чистого бейсика с использованием только ПП ПЗУ у меня не вышло.. ((( Заранее спасибо!!!!!!!!!!!!! :-)
прерывания (во время игры) вообще запрещены.
второй загружаемый блок затирает адрес возврата (в 128ой бейсик) на стеке и прога работает уже только в 48ом.
и там много ещё всяких нестандартных решений.
например перенаправив каналы и потоки через PRINT можно выдавать звуки
Последний раз редактировалось goodboy; 20.03.2022 в 11:25.
Misha Pertsovsky(21.03.2022)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Misha Pertsovsky(21.03.2022)
А вот интересно как в Loxley реализован вывод графики с наложением по маске? Это выглядит подозрительно не по-бейсиковски. Вообще всё рисуется шустро. Ну фоны я ещё могу понять - зашиты в PRINT с подменённым знакогенератором вперемешку с кодами цветов. И то не уверен...
Misha Pertsovsky(21.03.2022)
вызываются подходящие куски кода из ROM
типа and (hl) : ret / xor (hl) : ret
вся игра сплошное читерство, но условие (для бейсик программы) - нет выполняемого кода в RAM - соблюдено.
почти всё делается через имитацию вывода на принтер, а буфер принтера помещается в `теневой` экран
Последний раз редактировалось goodboy; 21.03.2022 в 22:38.
Misha Pertsovsky(21.03.2022), Oleg N. Cher(21.03.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)