Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

17 окт 2024 Чт Встраивание VIDAC в верилятор

Наконец-то мне удалось совместить 8088 с видеоускорителем, и я смог нарисовать первую линию. Надо еще проверять и тестировать, но вроде получается и это хорошо. Используется разделяемая память, когда контроллер работает, выставлен статус BSY, то тогда невозможно ничего прочитать или записать в память $A0000...$CFFFF как минимум (192К). Это потому что видеоускоритель занимает адреса и использует их сам для записи.
Планируемый функционал.
  • Рисование линии. Выполнено, но не проверено до конца.
  • Прямоугольники — как закрашенные, так и не закрашенные (контурные)
  • Круг — не закрашенный и закрашенный
  • Текстурированный прямоугольник с прозрачностью (в том числе спрайты)
  • Закрашенный треугольник
  • Трехмерный текстурированный треугольник
  • Рисование тайловой сетки
Это большая работа и мне придется ее делать очень долго и много. Сегодня по крайней мере я смог сделать рисование линии, полигональных линии и закрашенного и не закрашенного прямоугольника и вроде все работает нормально.
1
2        include "app/macro.asm"
3        org     100h
4
5        screen  13
6        mov     ax, $C000
7        mov     es, ax
8        mov     si, draw
9        xor     di, di
10        mov     cx, size
11        rep     movsb
12        mov     dx, $300
13        out     dx, al
14        hlt
15
16draw:   vidacline   160,10,300,150,2
17        vidacpoly   100,100,3
18        vidacpoly   160,10,4
19        vidacrect   20,20,30,25,5
20        vidacfill   40,40,70,50,6
21        db 0
22size    = $ - draw
Рисуется треугольник и всякая дребеда.
Теги: 8088, Видак