| himik |
16th August 2008 16:02 |
Quote:
Originally Posted by Grand
(Post 147127)
Code:
LD DE,#FF07
CALL $+6
LD DE,#000D
LD BC,#FFFD
OUT (C),E
LD B,#BF
OUT (C),D
RET
|
у данной процедуры есть пара недостатков:
1. она глушит микшер и генератор огибающей, но не гасит данные остальных регистров. Задача была всех :)
2. если после отработки такой процедуры попадет что-либо в регистр микшера, то мы услышим звук, исходя из последних данных регистров тона и шума. На мой взгляд это будет не корректно.
Добавлено через 4 минуты
Quote:
Originally Posted by valeron
(Post 147189)
По поводу OUT (C),0 - откуда информация? Как тогда OUT (C),FF действует? И если нужно именно ноль вывести, то как тогда, через аккумулятор что ли? И как тогда ведут себя другие варианты, например OUT (C),1?
|
э... что-то мой мозг сразу опух в процессе вспоминания ассёмблера :)
по моему таких команд как out (c),N - нет :)
Есть одна недокументированная команда, OUT (C),0 - но она, как описано выше работает по разному на разных типах проца. И это факт, который встречался нам в жизни, в далекие 90-е... Пара игрушек с защитами русских умельцев просто не запускались, а виной всему было именно использование команды OUT (C),0 - которая у нас работала как OUT (C),#FF. Если мне память не изменяет, даже в настройках Unreal Speccy есть пунктик про эмуляцию этой команды, которая указывает, что именно делать 0 или FF. :)
А OUT (C),1 - такой команды нет ваще :)
|