Дополнительный шаг у тебя - исключительно для случая, когда в плате турбосоунда стоит 2ой чип, но не стоит первый. И несмотря на то, что девайс формально есть (недоукомплектованный), выдастся, что его нет.Сообщение от Shiru
Дополнительный шаг у тебя - исключительно для случая, когда в плате турбосоунда стоит 2ой чип, но не стоит первый. И несмотря на то, что девайс формально есть (недоукомплектованный), выдастся, что его нет.Сообщение от Shiru
На 'формальном' девайсе 6 каналов играть нельзя? Значит, TS нет.
Плата спектрума может не поддреживать чтение из АУка вообще, тогда что - твои программы гордо пошлют нахрен юзера?Сообщение от Shiru
Всё зависит от того, кто и как собирается использовать процедуру детекта TS в своём софте. Скажем, если она обнаружит, что TS есть - можно по умолчанию включить его поддержку в опциях (если 'плата спектрума не поддерживает чтение из регистров' - юзеру придётся включить поддержку вручную, только и всего). Включать поддержку в случае, когда на плате есть только один чип (неважно, первый или второй) нет смысла.Сообщение от lvd
А если юзер сам всё включит, зачем тогда детектить? Чтобы место в коде занять?Сообщение от Shiru
Кстати, это меня тоже продолжает радовать:
Невооруженным глазом видно, что sub e:ret, а предыдущий кусок - sub c:ret nz с соотв. изменением выходных данных.cp e
jr nz,noTS
ld a,1
ret
noTS
xor a
ret
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Чтобы юзеру не пришлось включать вручную, если возможно определить автоматически.Сообщение от lvd
Я не пойму, в чём заключаются твои претензии? Если ты знаешь, 'как надо' - так давай, покажи свой пример уже. Если не нравится процедура, или не знаешь, как/зачем её применить - тебя никто не заставляет. Я пока не вижу конструктивной критики.
Собственно ТАКИЕ процедуры любой кодер, более-менее знакомый с программированием Z80 и AY, пишет не задумываясь.Сообщение от Shiru
А зря - несмотря на то, что я указывал: избыточность проверки и избыточность кода.Я пока не вижу конструктивной критики.
В чём избыточность, объясни ещё раз, и помедленнее.Сообщение от lvd
Суть процедуры - определить наличие двух чипов. Если нет любого из двух - значит, нет 6 каналов, и нет TS.
Код HTML:;Turbo-Sound checker by Himik's ZxZ/PoS-WT ;24.05.05 at work ;) ;Found: ; No ay/ym chip on board ; Single ay/ym chip on board ; Turbo-Sound port by PoS & Bitwalker (port #1F for swith) ; Turbo-Sound port by NedoPC (registors #FE-#FF selection) ORG #61A8 C_1 DI XOR A LD HL,#FE00 LD DE,#FFBF LD BC,#FFFD OUT (C),B ;SELECT TS AY0 CHRV OUT (C),A ;SELECT REG 0 LD B,E OUT (C),B ;WRITE #BF IN REG 0 AY0 CHRV INC A OUT (#1F),A ;SELECT TS AY1 POS OUT (C),C ;WRITE #FD IN REG 0 AY1 POS LD B,D OUT (C),H ;SELECT TS AY1 CHRV OUT (C),L ;SELECT REG 0 LD B,E OUT (C),H ;WRITE #FE IN REG 0 AY1 CHRV LD A,L OUT (#1F),A ;SELECT TS AY0 POS OUT (C),L ;WRITE #00 IN REG 0 AY0 POS INC A OUT (#1F),A ;SELECT TS AY1 POS LD B,D OUT (C),D ;SELECT TS AY0 CHRV OUT (C),L ;SELECT REG 0 IN A,(C) ;READ BYTE FROM REG 0 CP C ;переходим если нашли Turbo-Sound by NedoPC JR Z,TS_ENABLE_CHRV ;переходим если нашли Turbo-Sound by PoS CP #FE JR Z,TS_ENABLE_POS ;переходим если ваще нет ни какого чипа CP #FF JR Z,NO_AY C_2 ;пришли сюда если у нас всего один чип и он есть TE_DISABLE LD A,1 OUT (#FE),A RET NO_AY LD A,2 OUT (#FE),A RET TS_ENABLE_CHRV LD A,4 OUT (#FE),A RET TS_ENABLE_POS LD A,6 OUT (#FE),A RET DISPLAY /A, "Length: ",C_2-C_1
Последний раз редактировалось himik; 24.05.2005 в 12:10.
Himik's ZxZ/PoS-WT
Izhevsk. Russia. Planet 'Earth'. Sun system.
The Pusher. Crack music system.
Turbo-Sound at 1995 year.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)