BYTEMAN, http://zx.pk.ru/showthread.php?t=3472&page=3 пишет Enigmatic
Вид для печати
BYTEMAN, http://zx.pk.ru/showthread.php?t=3472&page=3 пишет Enigmatic
Ares, по твоим же ссылкам выше, не так давно приводился отличный пример, как правильно повесить музыку с плеером на прерывания:
http://zx.pk.ru/showpost.php?p=480205&postcount=38
Offtopic - а вышел ли Storm с поддержкой более 128к ? В свое время клевый асм был...
А обязательно писать 500 команд чтобы пустить бегучку с музыкой?
Не пудрите человеку голову, пусть начинает с простого!!!!!
Ares попробуй не заморачиваться с im 2, а сделать по следующему алгоритму
org
ei
call mus_init
loop halt
call play_mus
call scroll
jr loop
Хотя с твоей бегучкой хрен его знает за сколько rst 16 выводит букву, если больше одного прерывания то музыка будет хромать
+1, а ещё лучше в basic проверить музыку на исправность.
Вот простейшая бегучка (без использования ПЗУ) + играние музыки
Код:org 25000
start
ei
xor a
out (254),a
call 49163
loop halt
call 49166
call scroll
ld a,127
in a,(254)
rra
jr c,loop
call 49169
ret
scroll ld a,1
dec a
and 7
ld (scroll+1),a
jr nz,s_left
new_let ld hl,text
ld a,(hl)
inc hl
ld (new_let+1),hl
or a
jr nz,not_end
ld hl,text
jr new_let+3
not_end ld l,a
ld h,0
add hl,hl
add hl,hl
add hl,hl
ld de,#3c00
add hl,de
ld de,buff
ld b,8
loop2 ld a,(hl)
rrca
or (hl)
ld (de),a
inc l
inc de
djnz loop2
s_left ld hl,16384+31
ld de,buff
ld b,8
loop1 ld a,(de)
rlca
ld (de),a
inc de
push hl
dup 31
rl (hl)
dec l
edup
pop hl
inc h
djnz loop1
ret
buff ds 8
text db "AAA BEST CODER !!!!!!!!!!! "
db 0
Вообще если хочешь делать графику изучи строения экрана
Да и Vitamin все правильно сказал - представляешь себя процессором и шагаешь по своей программе
Почитай
http://zx.pk.ru/showthread.php?t=104...ght=scroll.txt
http://zx.pk.ru/showthread.php?t=858...ight=aaa+coder
Много лишнего, но для начала может пригодится
Я написал:
Тоже не помоглоКод:org #6000
xor a
out (254),a
call screen
call music
loop ei
halt
call #c005
di
ld a,254
in a,(254)
and 1
jr nz, loop
jp #c0005
screen: incb "screen"
org #c000
music: incb "music"
Не получилось
Потом написал :
imtab equ #be00 //таблица вектора прерываний (257 байт)
int_jump equ #bdbd //обработчик
start
di:ld sp,#6000
xor a:out (#fe),a
// прерывания
ld hl,imtab:ld a,h,i,a
ld a,low int_jump
ld (hl),a:inc l:jr nz,$-2
inc h:ld (hl),a
ld hl,obrab,e,a,d,a,bc,obrab_len:ldir
im 2
call music // init music
ei
loop
halt
jr loop
obrab //обработчик прерываний (работает с адреса #bdbd)
push af,hl,bc,de,ix,iy
exx
push hl,de,bc
ex af,af'
push af
call music+5
pop af
ex af,af'
pop bc,de,hl
exx
pop iy,ix,de,bc,hl,af
ei
ret
obrab_len equ $-obrab
music incbin "music.cod" //пт3-модуль с плеером
Ну и написал :
И тоже не получилосьКод:org 25000
start
ei
xor a
out (254),a
call 49163
loop halt
call 49166
call scroll
ld a,127
in a,(254)
rra
jr c,loop
call 49169
ret
scroll ld a,1
dec a
and 7
ld (scroll+1),a
jr nz,s_left
new_let ld hl,text
ld a,(hl)
inc hl
ld (new_let+1),hl
or a
jr nz,not_end
ld hl,text
jr new_let+3
not_end ld l,a
ld h,0
add hl,hl
add hl,hl
add hl,hl
ld de,#3c00
add hl,de
ld de,buff
ld b,8
loop2 ld a,(hl)
rrca
or (hl)
ld (de),a
inc l
inc de
djnz loop2
s_left ld hl,16384+31
ld de,buff
ld b,8
loop1 ld a,(de)
rlca
ld (de),a
inc de
push hl
dup 31
rl (hl)
dec l
edup
pop hl
inc h
djnz loop1
ret
buff ds 8
text db "AAA BEST CODER !!!!!!!!!!! "
db 0
Подскажите что я делаю не так
Когда пишешь код - пиши в [ code ] [/ code ] (без пробелов), а то тебя читать невозможно.
Ares, ты в который раз игнорируешь замечание по поводу org (это я про первый кусок кода). Плюс туда же- нафига ты бездумно сваливаешь в кучу куски разного кода?
По поводу второго куска- где музыка загружается?