Коллеги, подскажите -- при запуске после начальных тестов МС-0515 выдаёт писки на динамик?
если да, то можете записать с реала?
У меня по трассировке получается, что выдаётся пять нот, вот таких (если я не напутал с вычислениями):
Код:
1798 = 6040. = 331.126 Гц ~= 329,63 Гц E 1 октавы
12b9 = 4793. = 417.275 Гц ~= 415,30 Гц G# 1 октавы
0fbf = 4031. = 496.155 Гц ~= 493,88 Гц B 1 октавы
0bcc = 3020. = 662.252 Гц ~= 659,26 Гц E 2 октавы
1798 = 6040. = 331.126 Гц ~= 329,63 Гц E 1 октавы
Хехе, у меня получилось -- там действительно мелодия из пяти звуков.
Вот процедура в ПЗУ, генерящая звук:
Код:
174550: BIC #000340, @#177604 ; таймер звука выкл, звук выкл, тон звука выкл
174556: MOVB #000266, @#177526 ; канал 2: будет загрузка младшего и старшего байта, режим 3 (генератор меандра)
174564: MOV #000140, R4 ; значение счётчика = 96.
174570: MOVB R3, @#177524 ; передаём младший байт
174574: SWAB R3 ;
174576: MOVB R3, @#177524 ; передаём старший байт
174602: BIS #000300, @#177604 ; таймер звука вкл, звук вкл
174610: MOV 174652, R0 ; значение малого счётчика = 005777
174614: SOB R0, 174614 ; ожидаем
174616: SOB R4, 174610 ; ожидаем
174620: BIC #000340, @#157706 ; таймер звука выкл, звук выкл, тон звука выкл
174626: MOV @#157706, @#177604
174634: MOV #000002, R4 ; счётчик = 2
174640: MOV 174654, R0 ; значение малого счётчика = 017777
174644: SOB R0, 174644 ; ожидаем
174646: SOB R4, 174640 ; ожидаем
174650: RETURN
174652: .WORD 005777
174654: .WORD 017777
- - - Updated - - -
shattered, у вас в MAME достаточно легко сделать звук -- нужно только правильно зарулить два бита в управляющем регистре C и связать таймер выход канала 2 с динамиком:
Код:
/*
* b7 -- sound out ?? -- *НЕВЕРНО*, это timer channel 2 gate
* b6 -- sound out gate -- *НЕВЕРНО*, это включение timer channel 2 gate output на динамик
* b5 -- sound ??
* b4 -- LED VD17
* b3 -- video resolution, 0: 320x200, 1: 640x200
* b2-0 -- overscan color
*/
WRITE8_MEMBER(ms0515_state::ms0515_portc_w)
{
- - - Updated - - -
Исправил у себя реализацию IRQ2 и IRQ11 -- получил количество прерываний.
Получается что у меня один проход выполняется за 006413 = 3339 прерываний, 3339/50 = 66.78 секунд.
У shattered тот же цикл выполняется за 475 секунд.
Очень интересно сколько же это занимает на реале.