Quote:
Quote:
На "Львове" никто-никто, никогда-никгода не использвоал порт С3.
Во всех своих околомузыкальных поделках использовал порт C3. Использование обращения к C2 в случаях, когда нужно изменить его отдельный бит выглядит странным и громоздким, т.к. сначала нужно прочитать C2, установить нужное значение бита, потом записать. Вместо этого можно просто записать в С3.
Да, всё так, но поскольку это не система "разделяемого времени", а смысловая нагрузка битов порта известна, то сложилась практика, когда сразу пишут в C2. Кстати, на IPM PC в своё время была беда с использование портов видеоконтроллера: порты у EGA только на запись, лишь появившийся позже VGA позволял получить своё состояние, так что приходилось хранить в памяти "теневые значения", которые и записывались потом в нужные регистры EGA.
Quote:
Ну, в моей практике это первый раз, поэтому и впал в ступор. Знал бы, что такое бывает - обратил бы внимание, а так пришлось дизассемблировать и по чуть-чуть дебагать.
я, когда писал эмулятор, первоначально реализовал флаги в произвольном порядке. Тоже потом случайно выяснилось, что какая-то из программ переключает видеорежим примерно таким образом:
Code:
stc
.....
push psw
.....
ral
.....
pop psw
out c2
последовательность команд разумеется не дословная и явно в коде не выделялась, а получалась по ходу действия, но общий смысл такой (записать бит переноса (или чётности) в C2 для переключения видеорежима).