Обратите внимание, что новости можно получать по RSS.
X
-

Демосцена, Информационные технологии, История вычислительной техники и IT

2 марта 2016, 00:27 (419 дней назад) № 9900
Кажется начинаю понимать, почему на TI-99/4a были такие проблемы с качественными играми... Вот какой у меня получился код для рисования прямоугольника с градиентом. Просто от края до края экрана (т.е. x всегда 0, ширина всегда весь экран).
Он даже не успевает отрисоваться в обратный ход луча! Понятно, что тут что-то можно соптимизировать (я первый раз пишу для TMS9900), но всё равно ситуация как-то не радует...
------------------------
def start

vdpwd equ >8C00 ; VDP RAM write data
vdpwa equ >8C02 ; VDP RAM read/write address
ws0 equ >8300 ; Workspace 0 (till 831f)
R0L equ ws0+1 ; Workspace 0 R0 low byte

start:
li r1,25 ; y coord (top left corner of the color bar)
li r6,10 ; height (lines) max. 16

; convert Y to addr

; in: r1 - y (lines)
mov r1,r0 ; store Y
sla r0,5 ; R0 *= 32
soc r1,r0 ; R0 = R0 OR y
andi r0,>ff07

ai r0,>2000 ; >2000 - Color Table start address

mov r0, r4 ; store addr

; out: r4 = VDP addr = dst addr

; calc how many lines to draw for top half of the bar

mov r4,r5
andi r5,>00ff

neg r5
ai r5,8 ; now r5 = number of lines in top half

c r6,r5 ; compare total height (r6) with top half height (r5)
jhe skip_h
mov r6,r5 ; use initial total height! (otherwise use calculated remainder)
skip_h:

li r3,32 ; blocks (32*8 = 256 = full horiz. line of blocks)

; draw TOP half

nextblock1:
clr r2

mov r4,r0 ; set VDP RAM addr (low, hi)
movb @R0L,@vdpwa
ori r0,>4000
movb r0,@vdpwa

ai r4,8 ; increase VDP RAM addr to next block

nextline_in_block1:

movb @colortbl(r2),@vdpwd
inc r2
c r2,r5 ; +height (max 8)
jne nextline_in_block1

dec r3
jne nextblock1

c r2,r6 ; if bar completed, skip it bottom half
jeq skip_bottom

; draw BOTTOM half
; r5 - top half height

neg r5
ai r5,8 ; bottom half height = 8 - top half height (r5)

s r5,r4

li r3,32 ; blocks (32*8 = 256 = full horiz. line of blocks)
mov r2,r7 ; r2 - current line (total line counter)

nextblock2:
mov r7,r2

mov r4,r0 ; set VDP RAM addr (low, hi)
movb @R0L,@vdpwa
ori r0,>4000
movb r0,@vdpwa

ai r4,8 ; increase VDP RAM addr to next block

nextline_in_block2:
movb @colortbl(r2),@vdpwd ; r2 continues

inc r2
c r2,r6 ; compare with total height
jne nextline_in_block2

dec r3
jne nextblock2

skip_bottom:
nop

done: jmp done

colortbl:
BYTE >11, >1c, >12, >13, >1f, >1f, >13, >12, >1c, >11

end start
-------
Опубликовано: Пётр Соболев
1L

Эта заметка и комментарии к ней в Facebook: ссылка
(возможно, в Facebook она не будет вам доступна - видимость ограничена)

Случайная заметка

133 дня назад, 22:2313 декабря 2016 Есть у меня старый планшет с отстёгивающейся клавиатурой - Asus TF101g (1gb ram, cortex-a9 1ghz). Asus, конечно, на него давно забил - продавался он с Android 3.0, последняя официальная версия 4.0.3 (даже Google Docs не запустить). Но, поскольку машинка очень популярная, народ под неё настрогал собственных сборок - я поставил Android 6.0.1 KatKiss. Как ни странно, после ...далее

Избранное

599 дней назад, 21:484 сентября 2015 Анонсирован CC'2016! Как обычно, состоится в последние выходные лета - 27 и 28 августа.

1495 дней назад, 00:5922 марта 2013 Прочёл тут книжку - iWoz ( ссылка ) , 2006 года. Это автобиография Стива Возняка. Похоже, что на русский её не переводили (в отличие от книг про Стива Джобса). В этой парочке, как известно, Возняк был инженером (собственно, и спроектировавшим Apple I и II), а Джобс - скорее предпринимателем. В книге есть довольно интересные ...далее

599 дней назад, 23:404 сентября 2015 Небольшое видео про CC'2015 ( версия без фоновой музыки здесь: ссылка )

967 дней назад, 03:121 сентября 2014 Мой семинар на Chaos Constructions'2014 (слайды можно в виде PDF скачать здесь: ссылка ) и несколько интервью с разными людьми: Вячеслав Славинский (svo) о Vectrex: ссылка Вячеслав Славинский (svo) о 3D Imager для Vectrex: ссылка Вячеслав Славинский (svo) о световом пере для Vectrex: ссылка ...далее