LUA
local fp = assert(io.open("bump.ini", "wb"))
fp:write(";Description of a build - up to 32 chars\r\n")
fp:write("Desc = bump\r\n")
fp:write(";Start address\r\n")
fp:write("Start = #6000\r\n")
fp:write(";SP adddress\r\n")
fp:write("Stack = 24575\r\n")
fp:write(";Resident address (16 bytes long)\r\n")
fp:write("Resident = #5B00\r\n")
fp:write(";Page at #C000 when started\r\n")
fp:write("Page3 = 0\r\n")
fp:write("; CPU clock: 0 - 3,5MHz / 1 - 7MHz / 2 - 14MHz / 3 - 14+MHz\r\n")
fp:write("Clock = 1\r\n")
fp:write("; INT: 0 - DI / 1 - EI\r\n")
fp:write("INT = 0\r\n")
fp:write(";Pager address (0 - not used)\r\n")
fp:write("Pager = 0\r\n")
fp:write("; Blocks description: address (512 multiple, #C000-#FE00), page number, filename\r\n")
fp:write("Block = #E000,5,bump.bin\r\n")
assert(fp:close())
ENDLUA
TS-Labs wrote:По нечетным незя. По четным битблит в виде сумматора есть, даже с сатурейшеном, но только в реале и только в версии с видео-цапом. В анрыл добавлю позже.
DMA_push
;кидаем данные через ДМА
;HL указатель на хвост данных
push bc,af
ld bc,DMAStatus
DMA_busy
in a,(c)
add a,a
jr c,DMA_busy
ld bc,DMADAddrX+#100
;бросаем дест
outd
outd
outd
;бросаем сорс
outd
outd
outd
;бросаем длину
ld bc,DMALen+#100
outd
;бросаем размер
ld bc,DMANum+#100
outd
;запускаем ПДП
outd
pop af,bc
ret
;-----------------------------
defb %10000100 ;флаги для запуска переброски палитры
defb #00
defb (pallete_l/2)-1
defw pallete
defb #02 ;здесь номер страницы где палитра лежит (2я )
defw #0000
dma_pal defb #00
ds $&1 ;выравниваем по четному адресу
map_pal
pallete incbin "gfx/fon.png.pal"
ds $200-($-pallete)
pallete_l equ $-pallete
Users browsing this forum: No registered users and 1 guest