Собственно тут я буду неспешно складывать результаты всякого тестирования и другие давно известные вещи (чтоб не терялись)
Карта памяти львова переключается битом d1 порта $С2
Код:
C2 d1 = 0 C2 d1 = 1
0000...3FFF RAM 2 mirror RAM 0
4000...7FFF VRAM RAM 1
8000...BFFF RAM 2 RAM 2
C000...FFFF ROM ROM
$C1 - Порт палитры
Битами d6,d5,d4 выбирается основной цвет (зеленый при этом инверсный)
осталные цвета задаются инвертированием компонент основного цвета
2-й цвет - битами d3,d2
3-й цвет - битом d1
4-й цвет - битом d0
d7 порта палитры ВНЕЗАПНО отвечает за включение набортного динамика
C1 d7 = 0 - набортный динамим выключен (на него всегда идет 1)
C1 d7 = 1 - набортный динамим включен (на него идет содержимео C2 d0)
Соответствие байта экрана логическим цветам палитры
Код:
0xxx0xxx - цвет 2 - d3,d2 (черный в стандартной палитре)
0xxx1xxx - цвет 4 - d0 (синий в стандартной палитре)
1xxx0xxx - цвет 1 - d6,d5,d4 (зеленый в стандартной палитре)
1xxx1xxx - цвет 3 - d1 (красный в стандартной палитре)
Таблица соответствия номеров палитры её цветам (нужно прибавлять $80 для работы звука)
в последовательности сверху вниз
0xxx0xxx - цвет 2
0xxx1xxx - цвет 4
1xxx0xxx - цвет 1
1xxx1xxx - цвет 3
При включении в порт палитры записывается $8F
Видео память занимает 16К и цепляется по адресам $4000...7FFF сбросом бита d1 порта C2
экран линейный слева направо сверху вниз 256х256 пикселей (64х256 байта)
01yy yyyy yyxx xxxx
1 байт видео памяти описывает 4 пикселя
Строение байта
Код:
----T---T---T---T---T---T---T---¬
¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦ Байт экранного ОЗУ
L-T-+-T-+-T-+-T-+-T-+-T-+-T-+-T--
¦ ¦ ¦ L---+---+---+---*
¦ ¦ L-------+---+---* ¦
¦ L-----------+---* ¦ ¦
L---------------* ¦ ¦ ¦
¦ ¦ ¦ ¦
--+-T-+-T-+-T-+-¬
¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ Пикселы на экране
Соответствие битов каждого цвета логическим цветам палитры
0xxx0xxx - цвет 2
0xxx1xxx - цвет 4
1xxx0xxx - цвет 1
1xxx1xxx - цвет 3
Бипер и магнитофонный выход
Код:
С1 d7 C2 d0
0 0 BEEP TAPE B=1 T=1
0 1 BEEP .... B=1 T=0
1 0 .... TAPE B=0 T=1
1 1 BEEP .... B=1 T=0
можно пищать как чисто магнитофоном
сбросив d7 порта C1 в 0
Код:
С1 d7 C2 d0
0 0 BEEP TAPE B=1 T=1
0 1 BEEP .... B=1 T=0
так и чисто бипером по отдельности
сбросив d0 порта C2 в 0 и дрыгая d7 порта C1
Код:
С1 d7 C2 d0
0 0 BEEP TAPE B=1 T=1
1 0 .... TAPE B=0 T=1
а можно пищать и тем и тем одновременно
установив d7 порта С1 в 1 и дрыгая d0 порта С2
Код:
С1 d7 C2 d0
1 0 .... TAPE B=0 T=1
1 1 BEEP .... B=1 T=0