:v2_thumb:
Так отож!!! Забыли люди спековкий ассемблер.
Вид для печати
Ares, если уж выкладываешь поделку на просмотр, то выкладывай так, чтоб можно было её легко посмотреть, а не «через аласм/сторм/етц» грузить..
http://mdesk.ru/images/Ares_first.gif
(C) Ares, 2012
VNN_KCS, - 'Забыли люди спековкий
ассемблер.'
AER пишет в TASM!
:v2_conf2:а как мне в свою программу музыку вставить:v2_conf2:
Буквально несколько дней назад задал такой же вопрос, и дядя Griv послал меня куда следует.
Подскажите пожалуйста Пишу:
org #6000
call #c000
ei
loop halt
call #c005
jp loop
org #c000
incbin "Ares"
Пытаюсь воспроизвести музыку.Скажите что я делаю не так ?
org 46000
call 51310 ;ин.музыки
jp start
start ld hl,inter
ld (#66ff),hl
ld a,#66
ld i,a
im 2
ei
ret
inter push hl
push de
push bc
push af
push ix
call 30005 ;воспроизведение музыки,можно
всунуть +еще индикатор или цикл.бег.строку
pop ix
pop af
pop bc
pop de
pop hl
jp #38
imoff di
ld a,63
ld i,a
im 1
ei
ret
Эта тоже не работает у меня
Ares, удаляй Alasm, переходи на Storm.
Он себе таких вольностей не позволяет.Цитата:
адресом запуска ALASM считает последний ORG
GriV, я отсюда взял http://zx.pk.ru/showthread.php?t=3472&page=3
---------- Post added at 21:12 ---------- Previous post was at 21:05 ----------
я отсюда взял http://zx.pk.ru/showthread.php?t=3472&page=3
Ares, Честно говоря по ссылкам ничего не понял. Выложи файлик твой сюда, посмотрим его.
GriV,Смотри я пишу:
org 46000
call 51310 ;ин.музыки
jp start
start ld hl,inter
ld (#66ff),hl
ld a,#66
ld i,a
im 2
ei
ret
inter push hl
push de
push bc
push af
push ix
call 30005 ;воспроизведение музыки,можно
всунуть +еще индикатор или цикл.бег.строку
pop ix
pop af
pop bc
pop de
pop hl
jp #38
imoff di
ld a,63
ld i,a
im 1
ei
ret
incbin "Ares.pt3"
и пентева зависает ни музыки не чего
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 (это я про первый кусок кода). Плюс туда же- нафига ты бездумно сваливаешь в кучу куски разного кода?
По поводу второго куска- где музыка загружается?
Vitamin, Вы меня простите я вас не игнорирую просто я не совсем пока понимаю в этих кодах .
Второй кусок мне скинул GM BIT и я не знаю где загружается музыка:(
Короче так. Первый вариант:
jp #c0005 - непонятно зачем он туда должен переходить.
screen: incb "screen" - это что вообще? Скроллер скомпилированный? Если экран, то зачем ты делаешь call screen - это всё завесит нафиг.
music: incb "music" - кстати зачем двоеточия после меток? и музыка у тебя точно под #c000 откомпилирована?
Во втором варианте Vitamin правильно говорит - где org? Надо перед музыкой org поставить, под который она откомпилирована и у собственно кода тоже.
---------- Post added at 12:54 ---------- Previous post was at 12:51 ----------
В последнем варианте чего за вызовы call 49163 call 49166 call 49169? Музыка? А она там есть вообще?
Короче не бездумно копируй, а понимай, что оно делает. Если что-то собираешься вызывать - то проверь, что это "что-то" (музыка) там есть и с плеером и откомпилирована под этот адрес.
Я не ставлю двоеточияЦитата:
incb "music" - зачем двоеточия после меток?
---------- Post added at 13:00 ---------- Previous post was at 12:59 ----------
НетЦитата:
У тебя же есть пример как грузить кодовые блоки.
нет под #c86eЦитата:
и музыка у тебя точно под #c000 откомпилирована?
ну и чего ты ожидаешь тогда увидеть? меняй все #c000 на #c86e, #c005 на #c86e+5 (или 6, не знаю чего у тебя там за плеер).
Ares, погоди, а ты вообще используешь дизассемблер (к примеру STS) после того как откомпилишь свой код в ALASMе или в любом другом асме?
Профессионалы возможно и не пользуются дизассемблером, а новичкам (таким как мы с тобой ;) ) - без него никак не обойтись!