Если еще актуально, вечером могу набросать вариант. Рекордов скорости или размера не обещаю, но по крайней мере в эмуляторах работать будет.
Вид для печати
Если еще актуально, вечером могу набросать вариант. Рекордов скорости или размера не обещаю, но по крайней мере в эмуляторах работать будет.
если я правильно понял то вот относительно понятный кусок кода для вывода картинки
http://map.grauw.nl/resources/msxbios.php
Код:CALL #0041
DI
LD HL,#891C
LD DE,#0000
LD BC,#1800
CALL #005C
DI
LD HL,#A11C
LD DE,#2000
LD BC,#1800
CALL #005C
CALL #0044
EI
RET
вот кстати хорошее пособие по программированию
https://www.chibiakumas.com/z80/msx.php
Всем спасибо за ссылки и код! Это реально очень полезная информация для меня!
На выходных не до компьютера было, поэтому особо ничего не смотрел.
А вообще начал изучать исходники Yazzie для MSX Дениса Грачёва. Взял оттуда инициализацию компьютера и вывод на экран заставки. Собственно у меня сейчас есть готовый шаблон программы, который собирается, запускается и выводит картинку на экран. Вот это я сейчас и изучаю, подглядывая в документацию. Думаю, что скоро и заставку Exolon'a смогу вывести на экран MSX ;)
А потом думаешь взяться за порт PoP на MSX ?
Примерно так же выводится картинка и в Yazzie.
Пояснения подпрограмм:
Первым блоком переносятся пиксели (6144 байта), а вторым их цвета (6144 байта). В Yazzie заставка хранится запакованной методом RLE и эти два блока на лету распаковываются и записываются прямой записью в порт #98, а не функцией BIOS, как в примере. Но, перед этим ещё идёт включение нужного режима экрана.Код:DISSCR=$0041 // Function: Disable Screen Display
// Input: NONE
// Output: NONE
// Registers: AF, BC
// Available: MSX
LDIRVM=$005C // Function: Block Transfer From Memory To VRAM
// Input: HL = Memory Source Address, DE = VRAM Destination Address, BC = Data Length
// All Bits Of VRAM Address Are Valid
// Output: NONE
// Registers: ALL
// Available: MSX =Do Not Call SUB-ROM While Screen Modes 4..8 Are Changed
ENASCR=$0044 // Function: Enable Screen Display
// Input: NONE
// Output: NONE
// Registers: ALL
// Available: MSX
Пока не могу понять как задать свою палитру, чтобы сделать её похожей на Спектрум. Или это нельзя сделать?
https://pic.maxiol.com/images2/16351...655705.msx.png