Сообщение от
БК-0010
уже не вспомню, давно было
либо со схемы вычислил, либо из журнала прочитал
Ню-ню
Прошивка РЕ3 "D" из журнала Радиолюбитель 01-1991 (там нет ошибок!)
Код:
0000 B4 B5 B6 FF BB CB DB FF 3B 4B 5B FF 74 75 76 FF
0010 8B 9B AB FF 8B 9B AB FF 0B 1B 2B FF 4B 5B 6B FF
"CP/M Совместимая" из журнала Радиолюбитель 06-1992
Код:
0000 B4 B5 B6 FF F4 F5 F6 FF 34 35 36 FF 74 75 76 FF
0010 8B 9B AB FF CB DB EB FF 0B 1B 2B FF 4B 5B 6B FF
Младшая половина адреса экрана
Код:
SA0 <- C1
SA1 <- C2
SA2 <- C3
SA3 <- С4
SA4 <- С5
SA5 <- С10
SA6 <- С11
SA7 <- С12
Адресация ROM К155РЕ3 "D"
Код:
A0 <- C13 - A1A0 номер четверти строки
A1 <- C14 /
A2 <- C16 - A3A2 номер экрана (D1D0 биты системного порта)
A3 <- C17 /
A4 <- ADT - адресация атрибутов (0) / пикселей (1)
Старшая половина адреса экрана. Формируется, в том числе, с помощью ROM К155РЕ3 "D"
Код:
SA08 <- SYS11 (D0 РЕ3) или С7 при мультиколоре
SA09 <- SYS12 (D1 РЕ3) или С8 при мультиколоре)
/MCL <- SYS13 (D2 РЕ3) (/мультиколор (уровень 0 соответствует мультиколору).
при активном уровне сигналы C9,C8,C7 подаются на SYS14,SYS12,SYS11
(вместо сигналов РЕ3). У РЕ3 на выводах D3,D1,D0 должны быть единицы
(т.е. в прошивке в каждом байте при выключеном бите D2, биты D3,D1,D0
должны быть включены).
SA10 <- SYS14 (D3 РЕ3) или С9 при мультиколоре
SA11 <- SYS15 (D4 РЕ3)
SA12 <- SYS16 (D5 РЕ3)
SA13 <- SYS17 (D6 РЕ3)
SA14 <- SYS18 (D7 РЕ3)
SA15 <- 0 или D2 SYSREG при доработке для CP/M
Расшифровка стандартной прошивки РЕ3 "D"
Код:
ADDR SSSSS/SS / SSSS S SSS SYSREG
RE3 AAAAAMAA M AAAA A AAA D2 = 1
11111C00 C 1111 1 100 отсут.
43210L98 L 5432 1 098 без
дораб.
ZX-Spectrum =============================================
0000 B4 10110100 1 *101=5h 1=8h+ 000 5800h D800h
0001 B5 10110101 1 *101=5h 1=8h+ 001 5900h D900h
0002 B6 10110110 1 *101=5h 1=8h+ 010 5A00h DA00h
0003 FF 11111111 1 *111 1 111
0010 8B 10001011 0 *100=4h 0=0h+ ~~~ 4000h C000h
0011 9B 10011011 0 *100=4h 1=8h+ ~~~ 4800h C800h
0012 AB 10101011 0 *101=5h 0=0h+ ~~~ 5000h D000h
0013 FF 11111111 1 *111 1 111
Multicolor 4000h ========================================
0004 BB 10111011 0 *101=5h 1=8h+ ~~~ 5800h D800h
0005 CB 11001011 0 *110=6h 0=0h+ ~~~ 6000h E000h
0006 DB 11011011 0 *110=6h 1=8h+ ~~~ 6800h E800h
0007 FF 11111111 1 *111 1 111
0014 8B 10001011 0 *100=4h 0=0h+ ~~~ 4000h C000h
0015 9B 10011011 0 *100=4h 1=8h+ ~~~ 4800h C800h
0016 AB 10101011 0 *101=5h 0=0h+ ~~~ 5000h D000h
0017 FF 11111111 1 *111 1 111
Multicolor 0000h ========================================
0008 3B 00111011 0 *001=1h 1=8h+ ~~~ 1800h 9800h
0009 4B 01001011 0 *010=2h 0=0h+ ~~~ 2000h A000h
000A 5B 01011011 0 *010=2h 1=8h+ ~~~ 2800h A800h
000B FF 11111111 1 *111 1 111
0018 0B 00001011 0 *000=0h 0=0h+ ~~~ 0000h 8000h
0019 1B 00011011 0 *000=0h 1=8h+ ~~~ 0800h 8800h
001A 2B 00101011 0 *001=1h 0=0h+ ~~~ 1000h 9000h
001B FF 11111111 1 *111 1 111
Disk-Monitor ============================================
000C 74 01110100 0 *011=3h 1=8h+ 000 3800h B800h
000D 75 01110101 0 *011=3h 1=8h+ 001 3900h B900h
000E 76 01110110 0 *011=3h 1=8h+ 010 3A00h BA00h
000F FF 11111111 1 *111 1 111
001C 4B 01001011 0 *010=2h 0=0h+ ~~~ 2000h A000h
001D 5B 01011011 0 *010=2h 1=8h+ ~~~ 2800h A800h
001E 6B 01101011 0 *011=3h 0=0h+ ~~~ 3000h B000h
001F FF 11111111 1 *111 1 111
Расшифровка прошивки РЕ3 "D" для CP/M
Код:
ADDR SSSSS/SS / SSSS S SSS SYSREG SYSREG
RE3 AAAAAMAA M AAAA A AAA D2 = 0 D2 = 1
11111C00 C 1111 1 100
43210L98 L 5432 1 098
CP/M ====================================================
0004 F4 11110100 0 *111=7h 1=8h+ 000 7800h F800h
0005 F5 11110101 0 *111=7h 1=8h+ 001 7900h F900h
0006 F6 11110110 0 *111=7h 1=8h+ 010 7A00h FA00h
0007 FF 11111111 1 *111 1 111
0014 CB 11001011 0 *110=6h 0=0h+ ~~~ 6000h E000h
0015 DB 11011011 0 *110=6h 1=8h+ ~~~ 6800h E800h
0016 EB 11101011 0 *111=7h 0=0h+ ~~~ 7000h F000h
0017 FF 11111111 1 *111 1 111
Остальные "исправления" А.Гурского расшифруйте сами
Напрашивается вывод: оригинальная прошивка ПЗУ, опубликованная в журнале Радиолюбитель 01-1991 верная! И никаких грехов в ней нет. А есть 2 экрана с мультиколором. Удивительно, неужели никто не понял этого? Неужели В. Борейшо не знал этого? Не верю А. Гурский "исправил" прошивку как понял, поддавшись на "не без греха".
Но цель была достигнута - CP/M отображался правильно. А вот по адресам 08h-0Bh мог бы и не исправлять. Как вариант, можно было напаять сверху РЕ3 для CP/M и сделать выбор ее кристалла по высокому уровню на D2 SYSREG.
Итак, получаются такие таблицы:
Код:
SYSREG
DDD
210
Стандарт ========================
*00 - 4000h-5AFFh Обычный ZX-Spectrum
*01 - 4000h-6FFFh Мультиколор 4000h
*10 - 0000h-2FFFh Мультиколор 0000h
*11 - 2000h-3AFFh Обычный Disk-Monitor
CP/M версия =====================
000 - 4000h-5AFFh Обычный ZX-Spectrum
001 - 6000h-7AFFh Обычный 6000h
010 - 0000h-1AFFh Обычный 0000h
011 - 2000h-3AFFh Обычный Disk-Monitor
100 - C000h-DAFFh Обычный C000h
101 - E000h-FAFFh Обычный CP/M
110 - 8000h-9AFFh Обычный 8000h
111 - A000h-BAFFh Обычный A000h
Ищите ашипки