Ну так дизассемблируй частично! :) Прикольно ж.
Вид для печати
Ну так дизассемблируй частично! :) Прикольно ж.
daniel, но это не прокатит
если посмотришь процитированный мной кусок
то поймешь почему
Итак, сенсация!!! Не зря мне не давал покоя переделанный Лёшей когда-то Mythos. Я почти смог разобраться в его переделках и на их основе заставил-таки работать Corsarios 1.
Теперь, наверное, можно будет переделать ВСЕ оперовские игры для +2!!!
Вся соль оказалась в процедуре, которая через стек перебрасывает информацию на экран. В файле - это кодовый блок "pg", который загружается в 23-ю страницу.
Единственная загвоздка - процедура была заточена под Mythos и выводит информацию не на весь экран, а на кусок (без верхней и нижней части)
Друзья кодеры!!! Переделайте, пожалуйста, эту процедуру ПОД ВЕСЬ ЭКРАН!!! И тогда - бомбей!!!
Slider, некрасиво получится но если так хочешь вот тебе эта процедура
не тестировал :)Код:di
ld (stek_),sp
instek=#4000
outstek=#c010
dup 432
ld sp,instek
pop hl,de,bc,af
exx
pop hl,de,bc,ix
ld sp,outstek
push ix,bc,de,hl
exx
push af,bc,de,hl
instek=instek+16
outstek=outstek+16
edup
ld sp,$
stek_ equ $-2
ld bc,#7ffd
ld a,#18
jp #5b3e
попозже напишу с генератором и пооптимальнее
не пойдет :( не хватает памяти
jerri, как тебе этот вывод по скорости?
Для вывода буффера, смотрю, неплохо.
Slider, выше конечно
Блин, надо что-то делать!.. Мы на полшага от успеха!!! Обидно будет... :(
Памяти по-ходу нужно 8700 байт
Hacker VBI, это быстро но отвратительно по памяти.
---------- Post added at 10:40 ---------- Previous post was at 10:39 ----------
Slider, щас напишу непаникуй
---------- Post added at 11:42 ---------- Previous post was at 10:40 ----------
Slider, лови
сделал без генератора
просто скомпили и подставь
Код:
MACRO dropout
ld sp,instek
pop hl,de,bc,af
exx
pop hl,de,bc,ix
ld sp,instek+32768+16
push ix,bc,de,hl
exx
push af,bc,de,hl
ld sp,instek+16
pop hl,de,bc,af
exx
pop hl,de,bc,ix
ld sp,instek+16+32768+16
push ix,bc,de,hl
exx
push af,bc,de,hl
ENDM
org #db00
di
ld (stek_),sp
addr=#4000
dup 2
line=0
dup 8
disp=0
dup 8
instek=addr+disp+line
dropout
disp=disp+256
edup
line=line+32
edup
addr=addr+#800
edup
line=0
dup 4
disp=0
dup 8
instek=addr+disp+line
dropout
disp=disp+256
edup
line=line+32
edup
ld sp,data_a
ld bc,#03e0
pult0
pop hl,de
dup 31
ldi
edup
ld a,(hl)
ld (de),a
inc h
inc d
dup 31
ldd
edup
ld a,(hl)
ld (de),a
jp pe,pult0
inc h
inc d
ld bc,#0300
ld l,c
ld e,c
attr0
dup 32
ldi
edup
jp pe,attr0
ld sp,$
stek_ equ $-2
ld bc,#7ffd
ld a,#18
jp #5b3e
data_a dw #5080,#d080
dw #5280,#d280
dw #5480,#d480
dw #5680,#d680
dw #50a0,#d0a0
dw #52a0,#d2a0
dw #54a0,#d4a0
dw #56a0,#d6a0
dw #50c0,#d0c0
dw #52c0,#d2c0
dw #54c0,#d4c0
dw #56c0,#d6c0
dw #50e0,#d0e0
dw #52e0,#d2e0
dw #54e0,#d4e0
dw #56e0,#d6e0
display $