Чтобы на орионе влезла вся океанская картинка 256x256 нужно четные столбцы - в одну плоскость, нечетные столбцы - в другую плоскость. Получившиеся промежутки конечно надо убрать, "собрать" вместе столбцы каждой плоскости.
Чтобы на орионе влезла вся океанская картинка 256x256 нужно четные столбцы - в одну плоскость, нечетные столбцы - в другую плоскость. Получившиеся промежутки конечно надо убрать, "собрать" вместе столбцы каждой плоскости.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну или просто переписать процедуру PaintBitmap под "Орион-128". Она довольно несложная.
Глянь здесь - https://zx-pk.ru/threads/14176-kompy...l=1#post998053
Конвертер под специалист делал, я их при выводе переворачиваю. Если нужны океанские картинки, то можно просто сохранить экранную память в файл через отладчик, приложил архив.
Я, кстати, так БКшные картинки вытаскивал из эмулятора БК, чтобы их потом в эмуляторе океана смотреть. БК с океаном почти близнецы братья по графическим возможностям, даже пиксельклоки совпадают.
Наконец-то удалось добраться до картинок. Вот что получилось на Орионе:
Не пойму, верно или нет? Какая-то "расчёска" наблюдается, прямо как при некачественной оцифровке ТВ-сигнала на писи
Использую на Орионе режим №4, никакого спец преобразования цвета не делаю, только "реверс" битов (всех) и "расфасовка" FG и BG по страницам ОЗУ.
Картинку отцентрировал, по краям полоски - это артефакты от мусора в экранном ОЗУ от родного 16-цветного режима.
Код вывода:
Скрытый текст
Код:; *** Загрузка экрана ПК "ОКЕАН-240" *** ; (C) 2019 Denn /SPb/ ; Версия: 1.0a ; Создано: 12.03.2019 ; Изменено: 12.03.2019 mode 3 ; режим трансляции (1..3) cpu 0 ; инструкции: 0=i8080, 1=z80 file LDSCR$ ; имя выходного файла page 0 ; рабочая страница ОЗУ @DEBUG:EQU 0 ; 1 - режим отладки программы BUFFER:EQU 0 B_SCR: EQU 0C800h SvBYTE:EQU 0F839h; запись байта в доп.стр. ОЗУ ORG 8000h ; а/п программы ; настройка проверки аппаратной части: HW_TYPE:EQU 0; 0 - без проверки платформы, 1 - Орион-128, 2 - Орион-ПРО HW_RAM:EQU 0; 0 - без проверки об'ема ОЗУ, 1=64, 2=128, 4=256, 8=512 Кб ОЗУ требуется ; настройка проверки версии ОС: OS_VERSION:EQU 39h; 0 - без проверки, иначе - требуемый номер версии INCL START.L ; размещается в самом начале кода! ; *** Интерфейс п/п ОС DSDOS *** INCL DSDOS.L ; консольный ввод-вывод INCL CONIO.L ; файловая система, диски INCL FILE.L ; *** Библиотеки *** if @DEBUG INCL DEBUG.L endf B_NAME:DB 'PARROTS ' ;B_NAME:DB 'SHIP1 ' REVERT: LXI D,BUFFER MVI B,40h ; 20h MVI L,0 MEMRV0: LDAX D MOV H,A XRA A DAD H RAR DAD H RAR DAD H RAR DAD H RAR DAD H RAR DAD H RAR DAD H RAR DAD H RAR STAX D INR E JNZ MEMRV0 INR D DCR B JNZ MEMRV0 RET ; *** Основной код программы *** START: LXI H,B_NAME CALL SET_FILE_NAME LXI H,BUFFER LXI B,1 CALL FILE_LOAD RC CALL REVERT CALL ShowIMG MVI A,4 OUT 0F8h JMP INPUT_KEY ShowIMG: LXI D,BUFFER LXI H,B_SCR MVI B,20h ShowFG: LDAX D MOV M,A INR E INR L JNZ ShowFG INR H INR D INR D DCR B JNZ ShowFG LXI D,BUFFER+0100h LXI H,B_SCR MVI B,20h ShowBG: LDAX D MOV C,A MVI A,1 CALL SvBYTE INR E INR L JNZ ShowBG INR H INR D INR D DCR B JNZ ShowBG RET END[свернуть]
Последний раз редактировалось Denn; 12.03.2019 в 23:35.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)