Просмотр полной версии : Документация на ПК 11/16
Имеется компьютер. На верхней крышке только надпись ПК 11/16. Прежний хозяин говорит, что рабочий. Но вскрыл и обнаружил, что блок питания отсутствует. Теперь хочется запустить и посмотреть что это за чудо (на задней панели есть даже разъём промаркированный НЖМД:v2_conf2:). Может подскажете, уважаемые, где найти доки по етому ПК 11/16.
CodeMaster
19.01.2011, 08:33
Если это Союз-Неон ПК-11/16 (http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%8E%D0%B7-%D0%9D%D0%B5%D0%BE%D0%BD_%D0%9F%D0%9A-11/16), то это охрененный раритет, и врядли ты что на него найдёшь, но попроси модератора перести тему в раздел "ДВК, УКНЦ" там быстрей может найтись.
... но попроси модератора перести тему в раздел "ДВК, УКНЦ" там быстрей может найтись.
А как его попросить?
А как его попросить?
Написать ему в Личные Сообщения.
В приложении - файл "Архитектура Микро-ЭВМ ПК-11".
1. АРХИТЕКТУРА 4
1.1. ПРОЦЕССОР И РЕЖИМЫ ЕГО РАБОТЫ 4
1.1.1. ИЗМЕНЕНИЕ PS ПРИ ПРЕРЫВАНИЯХ 4
1.1.2. ИЗМЕНЕНИЕ PS ПРИ ВЫПОЛНЕНИИ ИНСТРУКЦИЙ 5
1.1.3. ДОПОЛНИТЕЛЬНЫЕ ИНСТРУКЦИИ РЕЖИМА HALT 5
1.1.4. НЕКОТОРЫЕ ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ 5
1.1.5. ВРЕМЕНА ВЫПОЛНЕНИЯ ОСНОВНЫХ ТИПОВ
КОМАНД 6
1.1.6. УПРАВЛЯЮЩИЕ РЕГИСТРЫ 6
1.2. ПАМЯТЬ, ЕЕ ОРГАНИЗАЦИЯ И УПРАВЛЕНИЕ 7
1.3. ВИДЕОКОНТРОЛЛЕР 8
1.4. УПРАВЛЕНИЕ КЛАВИАТУРОЙ 10
1.5. ЭМУЛЯЦИЯ КОНСОЛЬНОГО ТЕРМИНАЛА 10
1.6. ТАЙМЕР 11
1.7. ПРОГРАММИРУЕМЫЙ ЗВУКОГЕНЕРАТОР 11
1.8. ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ 11
1.9. ИНТЕРФЕЙС КАССЕТНОГО МАГНИТОФОНА 12
1.10. ПРОГРАММИРУЕМЫЙ ПАРАЛЛЕЛЬНЫЙ ИНТЕРФЕЙС 12
1.11. ОРИЕНТИРОВОЧНЫЕ ТРЕБОВАНИЯ К ОБ'ЕМУ ПЗУ 13
Имеется компьютер. На верхней крышке только надпись ПК 11/16... Может подскажете, уважаемые, где найти доки по етому ПК 11/16.
Пару месяцев назад пришел ко мне на отв. хранение Союз-Неон ПК-11/16 и с десяток дискет для него.
Здесь можно скачать образ дискеты RT-11 с ТО платы вычислителя и ВПО (встроенного программного обеспечения) ПК-11/16. (https://yadi.sk/d/_QMGjw3ZdDUGm)
Вытащил с образа тексты с документацией. Все файлы в кодировке DOS, кроме файла TO.txt, он в какой-то странной кодировке типа ISO, но псевдографику увидеть не удалось.
Документация с диска (http://sderni.ru/253208)
А можно поклянчить распиновку блока питания?
Точнее какое питание куда на материнку приходит.
Sergei Frolov
08.12.2014, 10:47
to.dos
В файле START.COM на образе обнаружен PRUN )))
SET TT SCOPE
SET SL ON
PRUN MDC.PRC
INS MD
LO MD
PRUN
WM.PRC
GT.PRC/GRAF-DISPLAY
NPUL.PRC
LPC.PRC/LP___PRINTER
^C
PRUN SY:CLK.PRC
LO LD
INST LP
INST LG
ASS LD DK
DATTIM
to.dos
А псевдографика-то испорчена)
Titus, скоро увидит свет эмулятор Союза? :)
Titus, скоро увидит свет эмулятор Союза? :)
Не ко мне) УКНЦ-бы сделать)
Пару месяцев назад пришел ко мне на отв. хранение Союз-Неон ПК-11/16 и с десяток дискет для него.
Господа Хранители \ Коллекционэры )))
Есть ли шанс у простых тружеников увидеть софт для этих редких машин,
хотя бы и те самые десяток дискет, есть ли причина не публиковать эти образы?
Поскольку машинка всё же PDP - очень интересно!
обнаружен PRUN
их оказывается тьма это ПРУНов(кроме того, который form для УК-НЦ написал), FRUN и SRUN в ФОДОСe - описаны как запуск основго задания и системного ??? В общем что то штатное и явно избыточное?
Господа Хранители \ Коллекционэры )))
Есть ли шанс у простых тружеников увидеть софт для этих редких машин,
хотя бы и те самые десяток дискет, есть ли причина не публиковать эти образы?
Поскольку машинка всё же PDP - очень интересно!
Всех с наступающим Новым годом! :)
:v2_dizzy_christmas:
SOUZ-NEON_INSTALL_.IMG (https://yadi.sk/d/u-G_z6OTdcmYb)
TheGWBV, Красиво! )
Image : SOUZ-NEON_INSTALL_.dsk
Format : DSK
Size : 800 Kb
Volume ID: RT11A
Owner :
File Blocks Date Bytes
---------- ------ ----------- ----------
TT .SYS 2 02-Mar-1991 1'024
HD .SYS 3 02-Mar-1991 1'536
FD .SYS 3 02-Mar-1991 1'536
LD .SYS 8 02-Mar-1991 4'096
LP .SYS 2 02-Mar-1991 1'024
SD .SYS 21 02-Mar-1991 10'752
MD .SYS 3 02-Mar-1991 1'536
SN .SYS 2 02-Mar-1991 1'024
SL .SYS 10 02-Mar-1991 5'120
SWAP .SYS 29 02-Mar-1991 14'848
RT11SJ.SYS 80 02-Mar-1991 40'960
LPC .PRC 2 27-Feb-1991 1'024
WM .PRC 16 12-Oct-1990 8'192
MSC .PRC 4 04-Oct-1990 2'048
SNC .PRC 4 24-Jun-1989 2'048
DBG .PRC 4 24-Oct-1989 2'048
GT .PRC 19 05-Jan-1990 9'728
CALC .PRC 79 11-Jun-1990 40'448
CNS .PRC 12 07-Jan-1990 6'144
CLK .PRC 5 12-Sep-1990 2'560
PUL .PRC 13 25-Feb-1991 6'656
FIL .PRC 35 27-Feb-1991 17'920
DLC .PRC 3 27-Feb-1991 1'536
MDC .PRC 4 24-Feb-1991 2'048
MSXC .PRC 4 26-Feb-1990 2'048
MSCR .PRC 4 01-Apr-1991 2'048
START2.COM 1 06-Mar-1989 512
HDINIT.COM 1 01-Sep-1991 512
STAMEM.COM 1 01-Jan-1989 512
INIT .COM 1 02-Oct-1991 512
START1.COM 2 02-Oct-1991 1'024
MOUSE .COM 1 29-Oct-1991 512
SED .COM 1 29-May-1990 512
PEP .COM 1 29-Oct-1991 512
COPIR .COM 1 03-Jan-1989 512
COPI .COM 1 03-Jan-1989 512
STARTS.COM 1 24-Apr-1992 512
READ .ME 2 01-Sep-1991 1'024
END .ME 1 02-Oct-1991 512
DIR .SAV 20 01-Oct-1987 10'240
DUP .SAV 47 01-Oct-1987 24'064
HARD .SAV 34 04-Apr-1990 17'408
DUMP .SAV 9 14-Apr-1988 4'608
PIP .SAV 30 27-Jun-1989 15'360
PRUN .SAV 6 18-Jun-1990 3'072
S6X7 .FON 6 01-Mar-1989 3'072
BOLD .FON 7 06-Mar-1989 3'584
STAND .FON 7 06-Mar-1989 3'584
SED5X8.FON 6 01-Mar-1989 3'072
KEY100.SAV 2 21-Mar-1990 1'024
KILL .SAV 2 13-Feb-1989 1'024
FLOAD .SAV 3 26-Feb-1991 1'536
MEM .SAV 3 31-May-1990 1'536
PS .SAV 4 31-May-1990 2'048
FLOP .SAV 6 02-Oct-1991 3'072
PATCH .SAV 10 01-Nov-1988 5'120
UCL .SAV 4 08-Apr-1988 2'048
DATTIM.SAV 2 01-Jul-1988 1'024
CLS .SAV 2 11-Dec-1988 1'024
KED .SAV 82 17-Dec-1989 41'984
RESORC.SAV 25 01-Nov-1988 12'800
MACRO .SAV 61 01-Aug-1989 31'232
BINCOM.SAV 24 14-Apr-1988 12'288
EDIT .SAV 19 14-Apr-1988 9'728
XDIR .SAV 7 08-Apr-1988 3'584
SRCCOM.SAV 26 11-Nov-1989 13'312
VTSET .SAV 5 12-Nov-1990 2'560
LIBR .SAV 24 14-Apr-1988 12'288
LINK .SAV 49 14-Apr-1988 25'088
FM .SAV 3 05-Jun-1990 1'536
FD7 .SAV 3 22-Oct-1989 1'536
FD .SAV 3 12-Nov-1990 1'536
HELP .SAV 132 14-Apr-1988 67'584
FILKEY.KEY 1 27-Jun-1990 512
FILMEN.MEN 1 17-Apr-1991 512
SYSMAC.SML 61 12-Apr-1988 31'232
SYSLIB.OBJ 187 01-Dec-1989 95'744
UCL .DAT 3 28-Oct-1988 1'536
FILMAC.MAC 5 25-Sep-1990 2'560
P16MAC.MAC 34 06-Sep-1990 17'408
GM .MAC 8 09-Mar-1989 4'096
WDC .MAC 20 09-Oct-1990 10'240
HARD .225 3 17-Jul-1990 1'536
READ1 .ME 1 14-Feb-1992 512
HARD .MNU 8 21-Feb-1990 4'096
ARCRE .SAV 2 03-Sep-1990 1'024
NPUL .PRC 18 10-Dec-1992 9'216
< UNUSED > 175 89'600
---------- ------ ----------- ----------
87 Files, 1411 Blocks
175 Free blocks
---------- Post added at 20:51 ---------- Previous post was at 20:48 ----------
TheGWBV, я правильно понял, что проблем "считать" дискеты у вас как бы нет?
Огромная благодарность за системную дискеты, буду рад, если остальные образы
так-же со временем появятся на форуме и конечно в общедоступном архиве (см. мою подпись). Будем смотреть, изучать, а машинка действительно довольно редкая.
И вас с Наступающими ! )
---------- Post added at 22:10 ---------- Previous post was at 20:51 ----------
Не ко мне) УКНЦ-бы сделать)
А машинка на ВМ2 и системная дискета теперь есть, (http://zx-pk.ru/showpost.php?p=765122&postcount=15) там кстати по умолчанию и ЖД драйвер и всё всё всё http://i.smiles2k.net/cristmas_smiles/1126969124.gif
TheGWBV, я правильно понял, что проблем "считать" дискеты у вас как бы нет?
За это спасибо Woland -- обзавелась в 2013 году его репликой SMK-64 для БК0010/11М, его же наводкой на утилиты для считывания/записи образов дискет 800КБ на х86 РС (http://files.pk-fpga.ru/storage/images/FDD_HDD_SERVICE.rar).
Процесс выглядит следующим образом:
1) Дискета 5.25" 800 КБ преобразуется в образ логического диска на жесткий диск БК-ашки путем считывания на дисководе МС5313, подключенном к БК0011М.
2) Затем этот образ пишется на дискету 3.5" 1.44МБ (с заклееным окном плотности 720КБ) путем копирования образа с НЖМД БК на дисковод MITSUMI D353M3 (вытащенный из раб.станции SUN), подключенный к БК0011М.
3) Полученная без ошибок считывания и записи, дискета 3.5" 800КБ используется для создания образа на х86 РС под управлением Windows XP (с драйвером fdrawcmd.sys (http://simonowen.com/fdrawcmd/)), при помощи выше указанных утилит. Причем, в БИОС х86 РС для floppy выставляется тип дисковода 1.2МБ (хотя реально используется дисковод 1.44МБ).
А машинка на ВМ2 и системная дискета теперь есть, (http://zx-pk.ru/showpost.php?p=765122&postcount=15)
Какая машинка на ВМ2?
Какая машинка на ВМ2?
В заголовке темы
В заголовке темы
Какой от этого толк, если нет эмуля и софта (почти).
Ну дык кто эмули то пишет ? hobot и просит написать эмуль, я присоединяюсь.
На МС 0515 тоже всего 2 дискеты есть, но есть и эмуль.
TheGWBV, для эмуля нужны еще считанные ПЗУ.
Ну дык кто эмули то пишет ? hobot и просит написать эмуль, я присоединяюсь.
На МС 0515 тоже всего 2 дискеты есть, но есть и эмуль.
TheGWBV, для эмуля нужны еще считанные ПЗУ.
МС 0515 все же попроще)
Да, без ПЗУ об эмуле даже речи не может идти.
TheGWBV, для эмуля нужны еще считанные ПЗУ.
Я пока опасаюсь включать машинку (кстати, она на процессоре Н1806ВМ2). К тому же, в отличие от УКНЦ у неё, похоже, нет выведенного на разъем для подключения монитора композитного видеосигнала.
Вопрос: судя по ТО, можно ли её подключить к SCART по RGBs (как БК0011М) ? или таки нужен монитор-динозавр?
Посмотреть на плату вычислителя ПК-11/16 можно на видео №1 (https://yadi.sk/i/Wz4v_xAAdcvtL) (Размер: 179,3 МБ) и видео №2 (https://yadi.sk/i/zA2cyDIkdcwXN) (Размер: 237 МБ), а также на фото...
SOUZ-NEON_MB_IMG_2269.JPG (https://yadi.sk/i/vgkaCiEOdd2rF) SOUZ-NEON_CPU2_IMG_2266.JPG (https://yadi.sk/i/phJLetwwdd2wv) SOUZ-NEON_MB2_IMG_2272.JPG (https://yadi.sk/i/k2jZg1YJdd3md) SOUZ-NEON_MB3_IMG_2270.JPG (https://yadi.sk/i/c6yxXvB9dd3us)
---------- Post added at 23:21 ---------- Previous post was at 23:11 ----------
Да, без ПЗУ об эмуле даже речи не может идти.
Для начала мне нужно подключить СОЮЗ-НЕОН к некоему видеомонитору :v2_dizzy_snowball2:
затем подключить к нему хотя бы 1 привод НГМД (с которого нужно будет запустить программу, которая считает ПЗУ и запишет на ГМД)...
Для начала мне нужно подключить СОЮЗ-НЕОН к некоему видеомонитору :v2_dizzy_snowball2:
затем подключить к нему хотя бы 1 привод НГМД (с которого нужно будет запустить программу, которая считает ПЗУ и запишет на ГМД)...
А вытащить микрухи из панелек и считать в программаторе (у себя или доброго друга)?
---------- Post added at 00:51 ---------- Previous post was at 00:49 ----------
Или стоп! Они же впаянные (судя по видео).
А нет, вру - на панельках. Впаянные - РТ2, хотя их тоже надо считать.
Titus, а скопи пастить вм2 из Эмо ) Пол компа уже сделано!
Есть системная дискета! Там опреативки огого сколько ) Вот только
видео местное мне совсем не ведомо. Я машинки эти живьём 1 раз только видел, это при том, что их в моём городе штамповали!
Процесс выглядит следующим образом:
Как то муторно по описанию, но я не знаю точный формат дискет для НЕОНа, но если это обычные 80дор. 800кб дискета с файловой системой RT-11 можно попробовать сразу UKDSKP (http://zx-pk.ru/showpost.php?p=373374&postcount=7)считать - дискеты для БК11 она читает на ура (работает в консоли WinXP). Но естественно речь (в случае БКдискет) о ОСБК не АНДОС! И нужно 5" к ПИСИ подключать, а
в программе (UKDSKP) принудительно выставлять скорость на 300 (вместо 250 по умолчанию - есть там такой параметр). Мне (но это только моё мнение) само участие в процессе ANDOS как системы
слегка напрягает ) И весь этот прогон через БКашку - жуть.
Но результат есть = так что схема работает ) В любом случае, ещё раз спасибо, что не поленились и сделали образ системной
дискеты. http://i.smiles2k.net/aiwan_smiles/yes.gif
Собираетесь остальные считать, есть ли там игры, есть ли там какие то
шпаргальные подписи на дискетах, сам НЕОН врубается - работает,
я бы (вот пристал да?) очень попросил машинку сфоткать, но разумеется
всё это не к спеху (семейные праздники всёж никто не отменял наверное).
---------- Post added at 00:43 ---------- Previous post was at 00:40 ----------
без ПЗУ об эмуле даже речи не может идти.
А вот ты господина Фролова дёрни попробуй, что он тебе как доктору ответит?
http://zx-pk.ru/customprofilepics/profilepic7838_1.gif
---------- Post added at 00:44 ---------- Previous post was at 00:43 ----------
Пока печатал вы уже видео выложили, я проглядел, про фотки отмена тогда! )
Пока печатал вы уже видео выложили, я прогладел, про фотки отмена тогда! )
Фотки в хорошем разрешении нужны, на видео плохо видно номиналы элементов и вообще.
Строгая технология - прокладки "бумажные" между памятью )
Вторая увиденная плата и та же картина )))
---------- Post added at 00:50 ---------- Previous post was at 00:48 ----------
Фотки в хорошем разрешении нужны
И снова рискну вас доктор к господину Фролову отправить ("смайл огромный и ехидный")
кстати, она на процессоре Н1806ВМ2
Я основываюсь на доке вот этой писал :
<<< АРХИТЕКТУРА МИКРО-ЭВМ ПК-11 >>>
СОДЕРЖАНИЕ
АННОТАЦИЯ 2
1. АРХИТЕКТУРА 4
1.1. ПРОЦЕССОР И РЕЖИМЫ ЕГО РАБОТЫ 4
1.1.1. ИЗМЕНЕНИЕ PS ПРИ ПРЕРЫВАНИЯХ 4
1.1.2. ИЗМЕНЕНИЕ PS ПРИ ВЫПОЛНЕНИИ ИНСТРУКЦИЙ 5
1.1.3. ДОПОЛНИТЕЛЬНЫЕ ИНСТРУКЦИИ РЕЖИМА HALT 5
1.1.4. НЕКОТОРЫЕ ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ 5
1.1.5. ВРЕМЕНА ВЫПОЛНЕНИЯ ОСНОВНЫХ ТИПОВ
КОМАНД 6
1.1.6. УПРАВЛЯЮЩИЕ РЕГИСТРЫ 6
1.2. ПАМЯТЬ, ЕЕ ОРГАНИЗАЦИЯ И УПРАВЛЕНИЕ 7
1.3. ВИДЕОКОНТРОЛЛЕР 8
1.4. УПРАВЛЕНИЕ КЛАВИАТУРОЙ 10
1.5. ЭМУЛЯЦИЯ КОНСОЛЬНОГО ТЕРМИНАЛА 10
1.6. ТАЙМЕР 11
1.7. ПРОГРАММИРУЕМЫЙ ЗВУКОГЕНЕРАТОР 11
1.8. ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ 11
1.9. ИНТЕРФЕЙС КАССЕТНОГО МАГНИТОФОНА 12
1.10. ПРОГРАММИРУЕМЫЙ ПАРАЛЛЕЛЬНЫЙ ИНТЕРФЕЙС 12
1.11. ОРИЕНТИРОВОЧНЫЕ ТРЕБОВАНИЯ К ОБ'ЕМУ ПЗУ 13
- 4 -
1. АРХИТЕКТУРА
ОПИСАНИЕ АРХИТЕКТУРЫ ПЕРСОНАЛЬНОЙ УЧЕБНОЙ МИКРО-ЭВМ
ИМЕЕТ СЛЕДУЮЩУЮ СТРУКТУРУ:
- ПРОЦЕССОР И РЕЖИМЫ ЕГО РАБОТЫ;
- ПАМЯТЬ, ЕЕ ОРГАНИЗАЦИЯ И УПРАВЛЕНИЕ;
- ВИДЕОКОНТРОЛЛЕР;
- УПРАВЛЕНИЕ КЛАВИАТУРОЙ;
- ЭМУЛЯЦИЯ КОНСОЛЬНОГО ТЕРМИНАЛА;
- ТАЙМЕР;
- ПРОГРАММИРУЕМЫЙ ЗВУКОГЕНЕРАТОР;
- ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ;
- ИНТЕРФЕЙС КАССЕТНОГО МАГНИТОФОНА;
- ПАРАЛЛЕЛЬНЫЙ ИНТЕРФЕЙС.
ОПИСАНИЕ КАЖДОЙ ИЗ КОМПОНЕНТ АРХИТЕКТУРЫ ВКЛЮЧАЕТ
ОПИСАНИЕ СООТВЕТСТВУЮЩИХ УПРАВЛЯЮЩИХ РЕГИСТРОВ.
1.1. ПРОЦЕССОР И РЕЖИМЫ ЕГО РАБОТЫ
В КАЧЕСТВЕ ПРОЦЕССОРА ИСПОЛЬЗУЕТСЯ БИС К1801ВМ2.
ТАКТОВАЯ ЧАСТОТА 9.25 МГЦ. ПРОЦЕССОР ПОЗВОЛЯЕТ ОРГАНИЗО-
ВАТЬ РАБОТУ В ДВУХ РЕЖИМАХ USER И HALT В НЕЗАВИСИМЫХ
АДРЕСНЫХ ПРОСТРАНСТВАХ.
Или это какой-то другой ПК-11 ? )
Собираетесь остальные считать, есть ли там игры, есть ли там какие то
шпаргальные подписи на дискетах, сам НЕОН врубается - работает,
я бы (вот пристал да?) очень попросил машинку сфоткать, но разумеется
всё это не к спеху (семейные праздники всёж никто не отменял наверное).
На БК-ашке всё это делается в MKDOS v3.15. У меня только МС5313 из проверенных 5.25" и всегда использовался только с БК (и быстро умершим УКНЦ).
К сожалению, за RT-11 работать практически не довелось. После универа сразу усадили за i386 и MS DOS (а через полгода уже Win 3.1 и Win 95), а любовь к БК-ашке и её ассемблеру осталась :)
Фото СОЮЗ-НЕОН (внешний вид)...
1) Вид сверху (https://yadi.sk/i/l_0qkn62dd57b)
2) Вид на панель разъемов (https://yadi.sk/i/sEKQNWoTdd5BF)
3) Вид снизу и на шильдик (https://yadi.sk/i/zH55WTgDdd5Ek)
Поглядел видео. Он настолько далёк от семейки УК-НЦ\ДВК\БКашечно-Квантовой )
Совсем другая машинка ) Совсем-совсем )
Охлаждение очевидно для SIM-ов прокручено.
Или это какой-то другой ПК-11 ? )
Видимо, это самое первое (предпроектное) описание ПК-11/16, или у меня не СОЮЗ-НЕОН, а СОЮЗ-ИОН (именно так его называет предыдущий Хранитель, который в 90-е торговал ими и УКНЦ). А скорее всего, в указанном в вашем сообщении описании некоего ПК-11 речь идет о машине, которая вообще не пошла в производство, и была изначально нацелена на учебные заведения, а ПК-11/16(К), судя по ТО, предназначается для профессионального использования, на замену ДВК (и как мне думается, это была попытка конкурентной борьбы с иноземными раб. станциями на i386, но успели сделать только опытные партии)...
В любом случае, ТО на образах дискет соответствует по тексту прилагаемому бумажному носителю. Правда, на последней странице есть пометки карандашом (https://yadi.sk/i/qaR_GQ0odeJir)...
и быстро умершим УКНЦ
Это легко поправить )
всё это делается в MKDOS v3.15
Я не знаю что это за система, у меня БК10-01 с магнитофоном! )
Вот такие дискеты UKDSKP читает на ура! http://archive.pdp-11.org.ru/BKGAMES/OSBK41/
Но это RT-11 = ДВКашным MY80 и УК-НЦшным MZ80 дискетам.
У меня только МС5313 из проверенных 5.25"
Для UKDSKP есть новенькие 5" для подключения к PC, это я к тому, что для работы под WIN с указанной программой подойдёт любой (лучше новый) 5" дисковод (с этим то же проблем как бы нет).
Если будет у вас желание УК-НЦ вернуть в личное пользование, дайте знать в ЛС.
Интересно почему же он "быстро умер"?
С UKDSKP получается много меньше возни (кроме подключения 5" к ПИСИ с WINXP),
но при условии совпадения формата дискет (что более чем вероятно).
Интересно почему же он "быстро умер"?
Не могу знать :) Пропал видеосигнал, из ремонта вернулся с неполной цветностью видеосигнала. Потом уже и не помню в каком состоянии он был убран в коробку и чулан. Но от него остался МС5313 и для БК-ашки был куплен у магазина Электроника контроллер НГМД+16КБайт ОЗУ. Так и закончилась эра БК+Магнитофон для меня :)
Посмотреть на плату вычислителя ПК-11/16 можно на видео №1 (https://yadi.sk/i/Wz4v_xAAdcvtL) (Размер: 179,3 МБ) и видео №2 (https://yadi.sk/i/zA2cyDIkdcwXN) (Размер: 237 МБ), а также на фото...
А можно попросить крупно фото блока питания и места где кабель от БП к материнке. У меня такой комп есть, но без БП.
А можно попросить крупно фото блока питания и места где кабель от БП к материнке. У меня такой комп есть, но без БП.
Как на счет считать ПЗУ'шки? )
А можно попросить крупно фото блока питания и места где кабель от БП к материнке. У меня такой комп есть, но без БП.
Фото блока питания ПК-11/16К...
SOUZ-NEON_PS_IMG_2283.JPG (https://yadi.sk/i/fP67-deAdfxjx)
SOUZ-NEON_PS_BS_IMG_2278.JPG (https://yadi.sk/i/iliRTxRbdfyXF)
и видео...
SOUZ-NEON_PS_MVI_2284.AVI (https://yadi.sk/i/reIIowstdfyDs) (Размер: 311,2 МБ)
dk_spb, попробую в ближайшую неделю очистить плату спиртом, включить питание и измерить уровни напряжения на шине питания платы вычислителя. Интересно, на вашем экземпляре ПК-11/16 на задней стенке есть маркировка разъемов? (на моем, похоже, информационная полоска отклеелась и потерялась ещё у предыдущего Хранителя)...
А можно поклянчить распиновку блока питания?
Точнее какое питание куда на материнку приходит.
Распиновка шины питания ПК-11/16К...
8 -- +12 В (туда же припаян красный провод вентилятора охлаждения) (13.7 В)
7 -- -12 В (-13.6 В по результатам измерений)
6 -- Общий
5 -- 5 В (4.9 В)
4 -- Общий
3 -- 5 В (4.9 В)
2 -- Общий
1 -- пусто (на плате вычислителя контакт отсутствует)
к -- физический ключ (зуб)
Я ещё не вчитывался плотно в документацию, а вот установочную дискету поизучал.
1. Она либо не эталонная - либо не полная.
(на ней не все описанные в текстовых README исполняемые файлы присутствуют)
скорее всего должна быть доп. дискета DK именно к этой системе
2. Там вполне себе современная 5.4 версия SJ-монитора, но вот "особенная" она. (кстати вряд ли патченая на момент дат современных!)
"Особенность" выражается в том, что при попытке принудительной загрузки с неё УК-НЦ (притянув за уши MZ-драйвер) получается чехарда (https://fotki.yandex.ru/next/users/mihtimak/album/187325/view/636625?page=1) из символов вместо загрузки
http://pic.pdp-11.ru/images/screenshot000zlz.png
Я аккуратно предполагаю что система команд местной эмуляции терминала отличается сильно (или сама версия (семейство\подсемейство) терм.) - на
примере местного CLS.SAV - в котором есть привычно-знакомые АР2+H и
АР2+J, но экран УК-НЦ она не чистит )
http://pic.pdp-11.ru/images/clssav1.png
это по ошибке вместо DESS открыл CLS.SAV Нысом )
http://pic.pdp-11.ru/images/clssav2.png
Ещё 1 замечание по поводу инстал. дискеты - там привязка к вполне
конкретному драйверу HD и даже конкретным разделам! Тут наверное
только бывший владелец, что то пояснить смог мы.
Есть и просто куча невыясненного назначения программ, загрузчик шрифтов местный какой-то и 4 типа файлов со шрифтами к нему.
Но ещё раз повторюсь - дискета не полная, а выглядит как кусочек.
(!) Местный MACRO.SAV версию не кажет, а LINK.SAV не кажет и вылетает ) (*значит исходники MACRO всё таки у кого то есть?)
http://pic.pdp-11.ru/images/20141228205626671.png
Интересная машинка = интересное ПО.
:redface:
Ещё 1 замечание по поводу инстал. дискеты - там привязка к вполне
конкретному драйверу HD и даже конкретным разделам! Тут наверное
только бывший владелец, что то пояснить смог мы.
Есть и просто куча невыясненного назначения программ, загрузчик шрифтов местный какой-то и 4 типа файлов со шрифтами к нему.
Но ещё раз повторюсь - дискета не полная, а выглядит как кусочек.
Хм... а что вот на этой дискете (помечена как Демо)?
SOUZ-NEON_DEMO_.IMG (https://yadi.sk/d/FcYX_wUHdgF3J)
Не забываем, что ну просто необходимейше считать ПЗУ!
Хм... а что вот на этой дискете (помечена как Демо)?
Принято к изучению.
Я кстати попутно готовлю оформить все публикации из этой темы к архиву.
Надо самому немного в описание машинки углубиться, тогда возможно многие
моменты прояснятся.
+ насколько я понял "справочник по УК-НЦ" = книга, ещё не полностью отсканен,
он так же в библиОтеку пойдёт.
http://i.smiles2k.net/cristmas_smiles/1126968937.gif
---------- Post added at 00:41 ---------- Previous post was at 00:39 ----------
содержимое второй дискеты (http://zx-pk.ru/showthread.php?p=766121#post766121)
Image : SOUZ-NEON_DEMO_.DSK
Format : DSK
Size : 800 Kb
Volume ID: RT11
Owner :
File Blocks Date Bytes
---------- ------ ----------- ----------
TT .SYS 2 01-Sep-1991 1'024
HD .SYS 3 01-Sep-1991 1'536
FD .SYS 3 01-Sep-1991 1'536
LD .SYS 8 01-Sep-1991 4'096
LP .SYS 2 01-Sep-1991 1'024
MD .SYS 3 01-Sep-1991 1'536
SN .SYS 2 01-Sep-1991 1'024
SL .SYS 10 01-Sep-1991 5'120
LPC .PRC 2 01-Sep-1991 1'024
WM .PRC 16 01-Sep-1991 8'192
MSC .PRC 4 01-Sep-1991 2'048
SNC .PRC 4 01-Sep-1991 2'048
CNS .PRC 12 01-Sep-1991 6'144
CLK .PRC 5 01-Sep-1991 2'560
PUL .PRC 13 01-Sep-1991 6'656
DLC .PRC 3 01-Sep-1991 1'536
MDC .PRC 4 01-Sep-1991 2'048
MSXC .PRC 4 01-Sep-1991 2'048
KEY100.SAV 2 01-Sep-1991 1'024
PIP .SAV 30 01-Sep-1991 15'360
DIR .SAV 20 01-Sep-1991 10'240
DUP .SAV 47 01-Sep-1991 24'064
KILL .SAV 2 01-Sep-1991 1'024
FLOAD .SAV 3 01-Sep-1991 1'536
MEM .SAV 3 01-Sep-1991 1'536
PS .SAV 4 01-Sep-1991 2'048
KED .SAV 82 01-Sep-1991 41'984
PRUN .SAV 6 01-Sep-1991 3'072
FLOP .SAV 6 01-Sep-1991 3'072
DEMO .SAV 57 01-Sep-1991 29'184
ELIZY .SND 6 01-Sep-1991 3'072
TURCA .SND 8 01-Sep-1991 4'096
POLCA .SND 3 01-Sep-1991 1'536
PIC4 .ATR 63 01-Sep-1991 32'256
PIC2 .ATR 63 01-Sep-1991 32'256
PIC1 .ATR 63 01-Sep-1991 32'256
PIC3 .ATR 63 01-Sep-1991 32'256
DEM .COM 1 01-Sep-1991 512
RESORC.SAV 25 01-Sep-1991 12'800
STARTS.COM 1 01-Sep-1991 512
READ .ME 1 01-Sep-1991 512
PIC5 .ATR 63 09-Apr-1989 32'256
SWAP .SYS 29 01-Sep-1991 14'848
RT11SJ.SYS 80 01-Sep-1991 40'960
PEPSON.HLP 5 22-Jun-1989 2'560
SED .HLP 46 27-Feb-1990 23'552
SED1 .HLP 46 27-Feb-1990 23'552
------------- End of Image -------------
< UNUSED > 698 357'376
---------- ------ ----------- ----------
47 Files, 928 Blocks
698 Free blocks
---------- Post added at 00:49 ---------- Previous post was at 00:41 ----------
TheGWBV, судя по образам UKDSKP под WINXP должен неоновские дискеты
читать на ура! Ссылку на эту утилиту я выше давал.
---------- Post added at 01:28 ---------- Previous post was at 00:49 ----------
Ну к примеру сразу : присутствует описание текстового редактора SED (он же кед наверное "смайл") но файла SED.SAV нету, а есть честный(наверное) KED.SAV )))
Первый контакт ЗЕМЛЯНЕ vs ПК-11
(первое непонимание устранено, символ "Ю" это местное CSI приглашение
монитора (на УК-НЦ выглядит так конечно не на родном железе!!!), вот
так переговорили пока со второй дискетой (ПО там строго специфичное!
Надо на родном железе смотреть, демо - это что то звуковое!!!)
http://pic.pdp-11.ru/images/20141228221931968.png
http://smayls.ru/data/smiles/smayliki-prishelcy-46.gif
Наконец то вспомнил нашёл, это на дискетах Titusa было,
а (как он сам говорил) УК-НЦ ему отдал тов. который раздобыл ИОН.
Значит какое-то время он их сравнивал? И дока где указан обычный ВМ2
с того же диска. Я же на сам это выдумал, но как показало "вскрытие"
процессор стоит таинственный.
http://zx-pk.ru/showpost.php?p=646865&postcount=277
---------- Post added at 00:51 ---------- Previous post was at 00:49 ----------
По ссылке лог прогона теста на НЕОНЕ и УК-НЦ (были на одной дискете УК-НЦшной),
в принципе они там и лежат среди дискет Titusa )
Интересная машинка = интересное ПО.
Да, машинка то Макинтошу на пятки наступала :)
SOUZ-NEON_ASPEKT_OS_p0-2_p7-9_p74_.pdf (https://yadi.sk/i/kWbPPBIfdhYJ3)
SOUZ-NEON_ASPEKT_DOC_.IMG (https://yadi.sk/d/nMX6bQIKdhYUw)
SOUZ-NEON_ASPEKT_OS_p0-2_p7-9_p74_.pdf (https://yadi.sk/i/kWbPPBIfdhYJ3)
А где остальные странички?
---------- Post added at 03:52 ---------- Previous post was at 03:42 ----------
Судя по докам на диске, операционная система 'Аспект' весьма навороченная и оконная штучка.
---------- Post added at 03:52 ---------- Previous post was at 03:52 ----------
Отсюда мораль - еще важнее считать ПЗУ'шки этой машинки)
А где остальные странички?
Думаю, что до конца февраля я и их осилю, и от книги по УКНЦ :rolleyes:
На образе дискеты (https://yadi.sk/d/nMX6bQIKdhYUw) возможно есть этот же документ в том же формате, что и ТО на ПК-11/16 (файл типа .DOC)...
Где-то в тырнете нашел, давно, сейчас нашел у себя на диске.
yushi: Тень минувшегоПишет Yuriy Al. Shirokov (yushi)
@ 2003-08-16 00:53:00
Метки данной записи:Компы
Тень минувшего
А я сегодня работал на настоящем ПК 11-16К Союз-Неон. Последний советский
компьютер... их успели выпустить всего 200.
Эмоции сложные. Восхищение - машинка сделана красиво и хитро - 12 мегагерц, мег
оперативки, а сколько умеет! Удивление - руки напрочь забыли jcuken-раскладку,
приходилось глядеть на истёртые клавиши. Глухая злоба - идиотам, угробившим
завод "Квант", не мешало бы оторвать, например, руки. И, конечно, ностальгия.
Больше всего, пожалуй, ностальгии.
Вентилятор установлен над памятью - разработанный для установки на боевых
самолётах процессор работает при невообразимых температурах. Вся машинка
помещается в корпус от УКНЦ (был такой, если кто не помнит, клон PDP-11,
довольно убогий). Аппаратная многозадачность! Поддержка винтов до 80 мегабайт.
Многоголосный звук. Графика 56000 цветов. Прошитая в ПЗУ многооконность.
А ведь я под него писал. Даже что-то такое всё из себя threaded... Ни черта не
помню.
RT11 оказалась вполне пригодной для работы системой. Лучше DOS =) Помню,
поставив на свою ДВК ОС "ДЕМОС", я восхищался "вот, мол, настоящий Unix, а RT -
не пойми что". Маленький я был и глупый...
Теперь мечтаю разыскать и реанимировать ДВК-4 aka МС0507.
(Добавить комментарий)
lvk_
2003-08-15 10:51 pm UTC (ссылка)
Корпус от УК-НЦ? То есть "одна большая клавиатура" наподобие Спектрумов
всяких, да? ты ничего не путаешь?
(Ответить) (Ветвь дискуссии)
Корпус от УК-НЦ
yushi
2003-08-16 03:21 am UTC (ссылка)
Да!
Причём машинка меньше УКНЦ - остаётся место для, например, трёхдюймового
дисковода (кстати, 1.7 мегабайта - нигде больше не видел такой странной
ёмкости). Вообще, все детали на удивление маленькие - процессор, например,
размером с ноготь большого пальца, не больше.
Оч-чень забавная штуковина, вообще - ряд вещей, кажется, больше нигде не
были реализованы . Например, сразу после включения питания на экране
появляется отдельное окно, в котором отображаются номер опрашиваемого
сейчас устройства (if any), дорожка на этом устройстве и коды нажимаемых
клавиш.
Несмотря на номинальную однозадачность RT-11, в любой момент в отдельном
окне можно вызвать hex-редактор или менюшку управления окнами (масштаб,
палитра, размер шрифта, размер окна etc.), а программы (правда, не любые,
а только использующие специальные возможности этой машины) могут
открываться в отдельном окне, освобождая консоль.
(Ответить) (Уровень выше) (Ветвь дискуссии)
Re: Корпус от УК-НЦ
lvk_
2003-08-16 03:55 am UTC (ссылка)
А вот про "номинальную однозадачность RT-11" --- я бы попросил!
Действительно, самым распространенным был SJ-монитор (от Single Job), но
были еще и FB ("двухзадачный", от Foreground/Background) и даже, кажется,
что-то ещё более продвинутое!
Всё пишу по памяти, так что могу что-то переврать (но вроде не).
На образе дискеты (https://yadi.sk/d/nMX6bQIKdhYUw) возможно есть этот же документ в том же формате, что и ТО на ПК-11/16 (файл типа .DOC)...
Да, есть.
Вот еще, может уже здесь пробегала, но прикреплю
Вот еще, может уже здесь пробегала, но прикреплю
Да, пробегала)
Вот щас бы ПЗУшки от него -- как раз каникулы. Эмуляторщик внутри меня потирает ручки и подпрыгивает на табуретке.
Вот щас бы ПЗУшки от него -- как раз каникулы. Эмуляторщик внутри меня потирает ручки и подпрыгивает на табуретке.
Во мне тоже)
Но, ПЗУ'шек нам пока не дають)
nzeemin,
Titus, допустим были бы ПЗУшки, но ведь процессор совершенно таинственный,
ни одной характеристики не известно ! Как это будет, снова наугад время выполнения команд и задержки?
---------- Post added at 23:58 ---------- Previous post was at 23:58 ----------
Или подпихивать УК-НЦшный и делать вид, что так и бЫло )
nzeemin,
Titus, допустим были бы ПЗУшки, но ведь процессор совершенно таинственный,
ни одной характеристики не известно ! Как это будет, снова наугад время выполнения команд и задержки?
---------- Post added at 23:58 ---------- Previous post was at 23:58 ----------
Или подпихивать УК-НЦшный и делать вид, что так и бЫло )
Ваще-та процессор 1801ВМ2, а в некоторых моделях 1806ВМ2. На сколько я понимаю. Т.е. процессор совсем наш, УКНЦ'шный.
Про конкурентность с западными персоналками я уже писал где, что мне сказал на это ветеран производства
с 386 должны были конкурировать более навороченные КВАНТЫ
вот этот НЕОН - у него был дома и его называли "бухгалтерским".
Вот такая инфа у меня.
---------- Post added at 00:02 ---------- Previous post was at 00:01 ----------
а в некоторых моделях 1806ВМ2.
То есть у нас тут ещё и милитаристский вариант на форуме ) Чудненько! )
К слову сказать, я почти отказался от идеи писать эмуляторы не имея точных (дотактовых) док по железу. Сейчас, например, исследуем чипы от УКНЦ, чтобы ТОЧНО понимать принципы их работы и тайминги. А то пишешь-пишешь эмуль, а на деле машина работает несколько иначе. Это не кошерно и не аутентично.
Titus, смотри ведь рано или поздно машинку кто то из Хранителей свой экз.
стартанёт и если там есть RT-11, есть же куча тестов твоих, штатных и от Patrona.
Так что пингануть этими тестами 1806ВМ2 - уже некий задел. Слишком мало этих
машин, 200 штук - это ж капля в море. Я просил Д.В. (это сотрудник бывший) среди
своих дать клич, так вот - ни у кого даже УК-НЦ не осталось в Зеленограде, а что уж про такой "редкостный" комп. говорить. Как пример, все мои УК-НЦшки пришли ко мне с разных концов нашей родины и ни одной местной ))) Из сельских школ в основном, ещё удивляюсь откуда в Питере столько Зеленоградского железа (всегда удивлялся).
(а Кванта конвейер - процы и прочее - в опр. момент вывозили фурами в неизвестном направлении, хозяева новые, печалька),
СЭМЗ (http://semzz.ru/node/3) же так опустили, что ниже только плинтус, снова печалька.
Titus, смотри ведь рано или поздно машинку кто то из Хранителей свой экз.
стартанёт и если там есть RT-11, есть же куча тестов твоих, штатных и от Patrona.
Так что пингануть этими тестами 1806ВМ2 - уже некий задел.
Все эти тесты годятся для достаточно простых устройств, коим УКНЦ никак не является. Они лишь позволяют приблизится к истине, но не узнать ее доподлинно. Настоящие, правильные тесты можно написать уже после того, как досконально известно железо.
Ага, и поэтапное уточнение эмулятора это как раз путь
ещё удивляюсь откуда в Питере столько Зеленоградского железа (всегда удивлялся).
Нууу... были люди, возили, плюс школы, еще магазин "электроника"
Ага, и поэтапное уточнение эмулятора это как раз путь
Если в начальную концепцию заложены ресурсы для данного уточнения.
Поясню на примере.
Если эмулятор, скажем, предполагает, что выполнение команд процессора реализовано с покомандной дискретностью, т.е. команда выполняется за заданное число тактов, в процессе выполнения которой активность других устройств системы не эмулируется, то сменить подобную парадигму на потактовую эмуляцию команд, тем более на дробно-тактовую можно только переписав добрую (а то и злую) половину эмулятора.
У меня, например, в EmuStudio изначально закладывалась потактовая эмуляция ВМ2, однако я не знал в точности, как работают внутренние узлы процессора, и делал эту потактовую разбивку методом отсебятины. Кроме того, я не знал таймингов других чипов УКНЦ, коих великое множество (несколько штук). Словом, сперва реверс чипов, ВМ2, а уж потом можно задумываться мне или Никите Зимину, или еще кому о действительно точном эмуляторе УКНЦ.
Если эмулятор, скажем, предполагает, что выполнение команд процессора реализовано с покомандной дискретностью, т.е. команда выполняется за заданное число тактов, в процессе выполнения которой активность других устройств системы не эмулируется, то сменить подобную парадигму на потактовую эмуляцию команд, тем более на дробно-тактовую можно только переписав добрую (а то и злую) половину эмулятора.На практике такое не всегда требуется.
Например, движок наносекундной синхронизации в эмуляторе ДВК просто не позволяет произойти событию, которое назначено на более позднюю наносекунду, чем текущая эмулируемая наносекунда. При этом источником виртуального времени является процессор ( если процессоров на шине несколько - то первый, зарегистрировавшийся на шине ). Процессор выполняет команду и если в процессе выполнения команды не было обращения к устройствам, то хотя процессор и считает виртуальное время максимально подробно, отдельно учитывая продлжительность всех микро-событий при выполнении команды - барьер синхронизации просто сдвигается сразу на столько виртуальных наносекунд, сколько заняло выполнение всей команды целиком. Если какие-то ожидавшие события при этом вышли за барьер - они все выполнятся до следующей команды процессора в порядке ожидавшегося ими виртуального времени. Если же в ходе выполнения команды на каком-то этапе происходит обращение к регистру устройства - процессор передаёт управление эмулятору устройства дважды - перед обращением и после обращения, при этом виртуальное время учитывает все микро-события произошедшие в процессоре по ходу выполнения текущей команды.
Такой подход в подавляющем большинстве случаев ( когда в одном такте больше 100 наносекунд ) на два порядка точнее потактового и практически не добавляет накладных расходов.
SOUZ-NEON_ASPEKT_DOC_- на этой дискете файловый менеджер WIND(старый знакомый! подишь ты!) под КЦГД )
Либо данный "демо диск" на кванте(в смысле компьютера(!) не завода(!)) готовили, либо я не знаю что ещё либо...
http://pic.pdp-11.ru/images/screenshot001czc.png
Кстати куча звук. файлов которые на дискетах Титуса на УК-НЦ играли,
и наверное это часть наработок пошла на сабж. аппарат, местные уже на УК-НЦ
не играют )
Например, движок наносекундной синхронизации в эмуляторе ДВК просто не позволяет произойти событию, которое назначено на более позднюю наносекунду, чем текущая эмулируемая наносекунда.
В вашей эмуляции выполнение команды процессором делится ли на составные части, такие как, например: чтение кода (со всеми составляющими - запрос к шине, ожидание), чтение данных, выполнение, запись результатов? Причем, во время каждой стадии другое устройство тоже может запросить доступ к разделяемому ресурсу (например, шине), и не одно устройство (другой процессор, контроллер ПДП и т.д.).
во время каждой стадии другое устройство тоже может запросить доступ к разделяемому ресурсуПри покомандной абстрактной эмуляции такое невозможно, но в принципе, если не стоит задача эмулировать состояние отдельных линий шины - абстрактный подход позволяет решать любые проблемы не хуже потактового, но с гораздо большей точностью и скоростью.
Причина здесь в том, что изменение состояния устройства в промежутке между взаимодействиями с другими устройствами ( включая суммарную задерку ) в принципе может быть вычислено в любой момент не только пошаговым "инкрементным" методом, но и "одним махом". В таком случае заметно сложнее вычисления, но зато гораздо выше точность и итоговая скорость.
Поскольку наиболее "мелким" масштабом взаимодействия устройств в реальных архитектурах PDP-11 является цикл доступа к шине - ничто не мешает сделать вместо покомандной - "поцикловую" абстрактную эмуляцию. Снижение быстродействия эмуляции при этом будет невелико, но сохранятся все преимущества абстрактного подхода.
При покомандной абстрактной эмуляции такое невозможно, но в принципе, если не стоит задача эмулировать состояние отдельных линий шины - абстрактный подход позволяет решать любые проблемы не хуже потактового, но с гораздо большей точностью и скоростью.
Возможно, в однопроцессорном ДВК покомандной абстрактной эмуляцией решаются все задачи 100% совместимости (возможно), но в УКНЦ такое не пройдет ввиду двухпроцессорности, ПДП видеоконтроллера и т.д.
Если потактовый эмулятор 100% совместим с оригиналом, то не может быть точность 'гораздо большая', чем у него) Есть или 100% точность, или эмулятор не точный. Это как со свежестью осетрины, или она первой свежести, или уже тухлая)
Цитата:
Сообщение от nzeemin Посмотреть сообщение
Вот щас бы ПЗУшки от него -- как раз каникулы. Эмуляторщик внутри меня потирает ручки и подпрыгивает на табуретке.
Во мне тоже)
Но, ПЗУ'шек нам пока не дають)
Теоретически это может произойти до Рождества... только у меня нет программатора :v2_dizzy_snowball2:
Теоретически это может произойти до Рождества... только у меня нет программатора :v2_dizzy_snowball2:
Теоретически с этим могут подсобить многие спектрумисты и ретрокомпьютерщики из Москвы.
Возможно, в однопроцессорном ДВК покомандной абстрактной эмуляцией решаются все задачи 100% совместимости (возможно), но в УКНЦ такое не пройдет ввиду двухпроцессорности, ПДП видеоконтроллера и т.д.Теоретически при "поцикловой" эмуляции шины - никаких проблем быть не может, значит все указанные задачи могут быть решены чисто абстрактно.
Если потактовый эмулятор 100% совместим с оригиналом, то не может быть точность 'гораздо большая', чем у негоДля всех асинхронных событий при чистом потактовом подходе точность падает то такта, в результате у любых периодических событий, не кратных такту - появляется нарастающая ошибка эмуляции.
Абстрактная наносекундная эмуляция даёт на два порядка большую точность.
Цитата:
Сообщение от TheGWBV Посмотреть сообщение
Теоретически это может произойти до Рождества... только у меня нет программатора
Теоретически с этим могут подсобить многие спектрумисты и ретрокомпьютерщики из Москвы.
Разыскивается доброволец для считывания ППЗУ-шек ПК-11/16К (https://yadi.sk/i/phJLetwwdd2wv).
Желательно, чтобы это произошло 3-4.01.2015 г. :)
Помимо реального ПК-11/16К добровольца посетят БК-ашница и её муж (оба айти-шники)... Пишите в ЛС :v2_rolley
Разыскивается доброволец для считывания ППЗУ-шек ПК-11/16К (https://yadi.sk/i/phJLetwwdd2wv).
Желательно, чтобы это произошло 3-4.01.2015 г. :)
Помимо реального ПК-11/16К добровольца посетят БК-ашница и её муж (оба айти-шники)... Пишите в ЛС :v2_rolley
Если Вы только про 1801РР1 - я сделаю до 4-го января и выложу.
Если Вы только про 1801РР1 - я сделаю до 4-го января и выложу.
Да уж хотя бы. Хотя, в идеале - считать все ПЗУподобные микрухи, но их надо выпаивать тогда.
Если Вы только про 1801РР1 - я сделаю до 4-го января и выложу.
Да, речь шла пока только о них... если уж паять-выпаивать, то и декапить все БМК надо :)
А схема ПК 11/16 где-нибудь проскакивала или нет?
perestoronin
31.12.2014, 16:07
Разыскивается доброволец для считывания ППЗУ-шек ПК-11/16К.
Программатор для считывания 1801* имеется - Стерх7. Приехать можно в любое удобное время.
Любые ПЗУ могу прочитать и прошить., для этого имеются в наличии Стерх7 и ЧипПрог48.
До 12 января дома.
м. Юго-Западная, далее 15 минут пешком.
Могу и сам приехать за ПЗУшками и отвезти их обратно.
Или еще лучше - могу приехать с ноутбуком и программатором и на месте прочитать.
Программатор для считывания 1801* имеется - Стерх7. Приехать можно в любое удобное время.
До 12 января дома.
м. Юго-Западная, далее 15 минут пешком.
Могу и сам приехать за ПЗУшками и отвезти их обратно.
Или еще лучше - могу приехать с ноутбуком и программатором и на месте прочитать.
Круто) А если сделаете и вы, и dk_spb, будет вдвойне точнее, т.к. погрешности считывания друг другом самопроверятся)
Почитал PK11.txt -- отличный документ.
Интересно про эмуляцию терминала на регистрах 177560-177566. Поскольку процессор тоже один, это очень похоже на то что было в Немиге -- машина сама для себя терминал. Самое интересное будет в реализации обработчика HALT -- там же нужно определять почему в этот раз его вызвали -- команда HALT или сигнал HALT или приход символа для отображения.
---------- Post added at 19:52 ---------- Previous post was at 19:12 ----------
А вот видеогенератор довольно сложный.
Разрешения от 246 x 288 x 4bpp до 984 x 576 x 1bpp. По горизонтали -- 246 / 328 / 492 / 984.
По вертикали либо прогрессивная 288 строк либо черезстрочная 576 строк.
Таблица описателей строк из 576 элементов.
Количество бит на пиксел (bpp) задаётся для всего экрана -- 4 / 3 / 2 / 1.
Точки группируются по 3 / 4 / 6 / 12 точек (в зависимости от bpp), на каждую группу выбирается одна из восьми палитр, цвет точки выбирается уже из этой палитры.
Зачем-то сделано аппаратное мерцание, оно задаётся на группу и это забирает каждый 16-й бит.
А схема ПК 11/16 где-нибудь проскакивала или нет?
Увы, среди отсортированной части бумажных носителей не встречалась, а та что есть, присутствует и на образах дискет.
Из новостей -- образ пятой дискеты...
SOUZ-NEON_ASPEKT_GAMES_.IMG (https://yadi.sk/d/RmXReYvhdjCC5) :)
Почитал PK11.txt -- отличный документ.
Интересно про эмуляцию терминала на регистрах 177560-177566. Поскольку процессор тоже один, это очень похоже на то что было в Немиге -- машина сама для себя терминал. Самое интересное будет в реализации обработчика HALT -- там же нужно определять почему в этот раз его вызвали -- команда HALT или сигнал HALT или приход символа для отображения.
Без схемы и всех прошивок это грозит только самой примерной эмуляцией, на 'посмотреть', что это за машинка.
Образы выложенных здесь дискет соответствуют обычному формату RT-11, в частности моя утилита RT11DSK их разбирает.
Похоже, Союз-Неон использовал "Основную кодировку" -- в такой кодировке лежат файлы READ.ME на дискетах.
https://ru.wikipedia.org/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F_% D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0 %B0
https://ru.wikipedia.org/wiki/ISO_8859-5
Дискета SOUZ-NEON_INSTALL_ явно предназначена для подготовки винчестера этой машинки:
************************************************** **************************
****************** СИСТЕМНАЯ ИНСТАЛЛЯЦИОННАЯ ДИСКЕТА *********************
************************************************** **************************
Ш А Г 1: Для форматирования и инициализации НЖМД наберите команду:
@HDinit
Ш А Г 2: Для формирования устройства HD1: на НЖМД наберите команду:
@HD1
Ш А Г 3: Для формирования устройства HD2: на НЖМД наберите команду:
@HD2
Для п о л н о г о форматирования, инициализации и формирования НЖМД
(включая шаги 1, 2 и 3) наберите команду:
@INIT
************************************************** **************************
**************************** КОНЕЦ ИНСТАЛЛЯЦИИ *************************
************************************************** **************************
Теперь можно вынуть дистрибутивную дискету
и
перезапустить компьютер:
а) набрав комбинацию клавиш <УПР>+<ФИКС>+<del> или
б) выключить и включить питание.
Образы выложенных здесь дискет соответствуют обычному формату RT-11, в частности моя утилита RT11DSK их разбирает.
Похоже, Союз-Неон использовал "Основную кодировку" -- в такой кодировке лежат файлы READ.ME на дискетах.
За исключением псевдографики. Она у них какая-то своя.
А, нет, вроде полностью соответствует "Основной кодировке".
Не нашёл перекодировщика из Основной кодировки -- набил руками.
В аттаче Gost.exe -- принимает первым параметром файл в Основной кодировке, выдаёт файл с тем же названием и расширением .txt в кодировке UTF-16.
Для примера приложил TO.txt раскодированный из TO.DOC.
Я тоже вчера озадачился перекодировкой из Основной кодировки, но не в UTF, а в DOS (мне удобнее, когда на один символ приходится один байт).
После написания перекодировщика и анализа текстов, понял, что в кодировке, использующейся на ПК11 перепутаны символы с кодами 0xF8 и 0xF9 (стрелочка вверх и стрелочка вниз). Пришлось все доки конвертить заново. В итоге систематизировал и перевел всю документацию с дисков TheGWBV.
Документация на ПК-11 (http://sderni.ru/256095)
p.s.: Документ 'Архитектура микро-ЭВМ ПК-11.txt' в формате Win-1251, т.к. он ходил по сети ранее.
Не знаю, заметили вы или нет интересный момент -- часть разработчиков ОС "Аспект" -- это ребята из "ASP Corp.", известной несколькими качественными играми для БК/ДВК/УКНЦ.
║ Операционная система "АСПЕКТ" ║
║ Гречишкин Александр, Коломейцев Артём, Сапронов Максим, Мейнгардт Павел ║
http://www.old-games.ru/articles/53651.html
[А.Гречишкин] Мы принимали участие в разработке еще одного детища советского аппаратостроения - Союз-Неон. Для него мы написали ОС "Аспект". Первая графическая мультизадачная ОС для советских компьютеров. За основу был взят интерфейс Mac OS, с которой мы познакомились в 1986 году в Троицке, в лаборатории одного из ядерных институтов.
[П.Успенский] Сейчас уже трудно вспомнить детали, но я до сих пор горжусь тем, что мы участвовали в создании первых советских персоналок. Недавно посмотрел фильм “Micro Men” про историю создания английских персоналок - напомнило то, что было у нас. Многие сейчас знают про Sinclair, Commodore и Amstrad, но в Зеленограде в те же самые годы были компьютеры не хуже. И сейчас трудно поверить, но в них не было ни одного импортного компонента, ни одной строчки кода, написанной не в Союзе.
Не знаю, заметили вы или нет интересный момент -- часть разработчиков ОС "Аспект" -- это ребята из "ASP Corp.", известной несколькими качественными играми для БК/ДВК/УКНЦ.
Как не заметить)
---------- Post added at 23:36 ---------- Previous post was at 23:32 ----------
Многие сейчас знают про Sinclair, Commodore и Amstrad, но в Зеленограде в те же самые годы были компьютеры не хуже. И сейчас трудно поверить, но в них не было ни одного импортного компонента, ни одной строчки кода, написанной не в Союзе.
Только процессоры работающие по буржуйским лекалам (Z80, 8080, ВМ1, ВМ2 и т.д.), да операционная система RT-11. Уж не говоря о том, что большая часть парка отечественных микросхем логики и не только - это клоны буржуйских аналогов.
---------- Post added 02.01.2015 at 00:21 ---------- Previous post was 01.01.2015 at 23:36 ----------
Интересно, кто-нибудь заметил, что архитектура ПК11/16, описанная в документах с дисков TheGWBV, и архитектура ПК11, гуляющая по сети ранее - разительно отличаются. Возможно, ПК11 - это некий ранний прототип ПК11/16?
---------- Post added at 00:25 ---------- Previous post was at 00:21 ----------
А вот видеогенератор довольно сложный.
Разрешения от 246 x 288 x 4bpp до 984 x 576 x 1bpp. По горизонтали -- 246 / 328 / 492 / 984.
По вертикали либо прогрессивная 288 строк либо черезстрочная 576 строк.
Таблица описателей строк из 576 элементов.
Никита, обрати внимание, что это не Союз-Неон) Не напиши по этой доке случайно эмулятор)))
---------- Post added at 00:53 ---------- Previous post was at 00:25 ----------
Прошелся по доке. Достаточно скудная информация. Т.е. база есть, но для понимания точной работы этого маловато.
---------- Post added at 01:14 ---------- Previous post was at 00:53 ----------
В любом случае, ТО на образах дискет соответствует по тексту прилагаемому бумажному носителю. Правда, на последней странице есть пометки карандашом (https://yadi.sk/i/qaR_GQ0odeJir)...
Как там на счет странички с пометками карандашом?
Интересно, кто-нибудь заметил, что архитектура ПК11/16, описанная в документах с дисков TheGWBV, и архитектура ПК11, гуляющая по сети ранее - разительно отличаются. Возможно, ПК11 - это некий ранний прототип ПК11/16?
Никита, обрати внимание, что это не Союз-Неон) Не напиши по этой доке случайно эмулятор)))
Да, я тоже увидел что различия довольно существенные.
В частности, видео стало ещё сложнее -- строки стали наборами видео-отрезков, очевидно для поддержки оконной системы.
---------- Post added at 02:31 ---------- Previous post was at 02:15 ----------
На диске SOUZ-NEON_ASPEKT_DOC_.IMG исполняемый файл CIRPK.SAV это редактор электрических схем. PKRAM.SCM по-видимому одна из таких схем, упоминаются микросхемы 565RU7.
Насчет различий в ПК11/хх - после разработки УКНЦ были сделаны прототипы нескольких машинок в похожих корпусах, но с разным обвесом ( с минимумом БМК ) - типа кооператоры старались ( точнее, то, что было до кооператоров - центры "припудривания моска и обналички" - НТТМ ). Подробности надо узнавать у тех, кто тогда был в Зеленограде на руководящих позициях - например, уважаемый Юрий Леонидович Отрохов и некотрые др. господа.
CodeMaster
02.01.2015, 09:34
но с разным обвесом ( с минимумом БМК )
Да я вот тоже заменил, но в 11/16 нет БМК, только РТшки и т.п. Чем была вызвана такая резкая смена курса после УК-НЦ?
Как там обстоит процесс с праздничным считыванием ПЗУ'шки от ПК-11/16? )
---------- Post added at 15:08 ---------- Previous post was at 15:01 ----------
Да, и у кого-нибудь из владельцев ПК-11/16 он включается? Это на предмет сделать фотки рабочего экрана.
perestoronin
02.01.2015, 14:40
процесс с праздничным считыванием
Ко мне никто не обращался. Ноутбук и программатор Стерх-007 (http://www.sterh.com/st-007.html) приготовил ;)
Мое расположение м. Юго-Западная. До 12 января у меня есть время на хобби, подъеду на место сам.
У меня тоже есть Стерх, если что.
Да, и у кого-нибудь из владельцев ПК-11/16 он включается? Это на предмет сделать фотки рабочего экрана.
Вот тут есть некий ЛёхаБашой, возможно у него машинка рабочая: http://bk0010.org/forum/?id=3013
И что Вы такие нетерпеливые?? Мне вот за два года никто распайку БП так и не дал....
На отсутствующем на фото шильдики разъемы подписаны (начиная с DB-9):
мышь_принтер_монитор_НГМД/НЖМД_RS-232C
Кстати, если верить легенде, то фото экземпляра в этой теме (серийник 197) - фото чуть ли не последнего (из 200) экземпляра. У меня серийник более чем на сотню меньше.
Я так понимаю что БП дает 5, 12 и -12. Вторые два с большой долей вероятности для RS232. Соответственно комп должен работать и от одного питающего.
И что Вы такие нетерпеливые?? Мне вот за два года никто распайку БП так и не дал....
Спасибище)
Теперь для проверки абсолютной правильности, хорошо бы, чтобы TheGWBV считала свои ПЗУ у Пересторонина.
Мой комп не запустился. Я взял G с 7-го пина, синхру с 9-го и землю с8-го.
Замешал G и синхру через резистор и подал на телевизор. Что-то показывает, но картинка неустойчивая (и вертикальные полосы в левой половине экрана). Дальше особо разбираться пока некогда
http://oldpc.su/12/DSC_0212.JPG
http://oldpc.su/12/DSC_0214.JPG
Интересно, что в ROM'e от dk_spb есть всго лишь одна осмысленная текстовая строчка и она гласит... 'PK11/12'.
Интересно, что в ROM'e от dk_spb есть всго лишь одна осмысленная текстовая строчка и она гласит... 'PK11/12'.
ЭЭЭ. Так это оно у Вас как программатор видит.
Вот тут в нормальном виде, но строк вообще нет.....
ЭЭЭ. Так это оно у Вас как программатор видит.
Вот тут в нормальном виде, но строк вообще нет.....
Да нет, как раз это в инверсном, а первое было в нормальном.
Titus, Для всех РЕ2 чтобы увидеть содержимое (как проц) надо было проинвертить по адресу и по данным. Думаете тут не так?
Titus, Для всех РЕ2 чтобы увидеть содержимое (как проц) надо было проинвертить по адресу и по данным. Думаете тут не так?
Не знаю, как для всех, но в этой есть совершенно осмысленная строка длиной 10 символов: 'PK11/12 _>' какие могут быть перепутки? Да и таблица векторов нормальная по нижним адресам проглядывается.
Если младший файл проинвертировать только по адресам, то в конце тоже получается строка ЖДИ (с чередованием через 0xE2, что вполне может быть атрибутом). так что поиск строк - это дело такое ;-)
Titus, Для всех РЕ2 чтобы увидеть содержимое (как проц) надо было проинвертить по адресу и по данным. Думаете тут не так?
Да вот и не так. То что вы выложили в формате программатора, как раз самое нормальное. В ROM0.RR1 осмысленный код, видны вектора HALT-режима, есть эмулятор FIS. Но так только до адреса 011640 включительно, далее белиберда, такое ощущение, что код упакован и куда-то распаковывается. Такая же ситуация с ROM1.RR1. Естественно, сложно представить, что такую крутую систему упаковали всего в 16 Кбайт. Наверное сжали.
Да вот и не так. То что вы выложили в формате программатора, как раз самое нормальное. В ROM0.RR1 осмысленный код, видны вектора HALT-режима, есть эмулятор FIS. Но так только до адреса 011640 включительно, далее белиберда, такое ощущение, что код упакован и куда-то распаковывается. Такая же ситуация с ROM1.RR1. Естественно, сложно представить, что такую крутую систему упаковали всего в 16 Кбайт. Наверное сжали.
Логично, что упаковали, ибо нет никаких строк текста, кроме PK11/12, а так же никакой графики от шрифтов.
Могу ещё сказать, что прошивку компилировали в виде обычного SAV-файла, его же и прошивали. По смещению 040 находится 1 - файл без точки старта, по смещению 050 число 037714 - конечный адрес, а в ячейках 0360 и 0362 заполнена битовая маска на 32 блока, а это как раз 16 Кбайт.
А с какого адреса стартует ПЗУ?
Может еще и по картинке будут какие-нибудь мысли?
А с какого адреса стартует ПЗУ?
Стартовый адрес ПЗУ равен нулю. А в ячейках 0 и 2 содержится вектор начального пуска - 0500 и 0600. Так что при включении питания начинается исполнение с адреса 0500. Исполнение начинается в HALT-режиме с запрещёнными прерываниями.
Вот только байт-коды у ПЗУ какие-то странные.
Вот только байт-коды у ПЗУ какие-то странные.
Чем странные?
Чем странные?
Они у обеих ПЗУ одинаковые - 0xFF 0xFF. А должны быть разные, ведь они сидят по разным адресам.
Они у обеих ПЗУ одинаковые - 0xFF 0xFF. А должны быть разные, ведь они сидят по разным адресам.
А где эти байт-коды прописаны?
А где эти байт-коды прописаны?
В самом конце файла два последних байта.
С байткодами известный косяк стерха. У младшей ПЗУ он 00, у второй - 01
С байткодами известный косяк стерха. У младшей ПЗУ он 00, у второй - 01
Т.е. получается одна сидит на адресе 0160000, а вторая - на 0140000?
Т.е. получается одна сидит на адресе 0160000, а вторая - на 0140000?
Судя по ТО пзу сидят с 0 по 40000
Судя по ТО пзу сидят с 0 по 40000
Судя по ТО в Союз-Неон используется весьма много микросхем 580-й серии, а они работают с прямыми адресами и данными, а не с инверсными, как в МПИ. Также, судя по ТО, их программирование осуществляется прямо, а не инверсно. Исходя из этого, я делаю вывод, что на шине адрес-данные присутствуют двунаправленные шинные усилители с инверсией сигнала.
Да, ПЗУ настроены на адреса 0140000 и 0160000, при инверсии соответственно получается 020000 и 0.
Alex_K, Спасибо за разъяснения!!!
Теперь, когда ПЗУ'шки есть, Никита, наверное, уже написал эмулятор. Но почему-то не выкладывает, и не дает поиграть в тамошние игрушки (
Теперь, когда ПЗУ'шки есть, Никита, наверное, уже написал эмулятор. Но почему-то не выкладывает, и не дает поиграть в тамошние игрушки (
Так вроде сперва в EmuStudio появляется.
Помните сколько всех нас мурыжили с эмулятором УКНЦ, а потом выложили, а затем появилось и КЦГД, и КСМ+КГД, и 15-ИЭ-00-013... Отдельной веткой был сделан МС-0515.
Так что ждём.
Теперь, когда ПЗУ'шки есть, Никита, наверное, уже написал эмулятор. Но почему-то не выкладывает, и не дает поиграть в тамошние игрушки (
Не, я только успел с ПЗУшками повозиться и тоже пришёл к выводу что их надо использовать как есть.
Начал делать проект эмулятора -- BKBTL как основа "материнка + один процессор", плюс заменил процессор, взяв его из UKNCBTL.
На очереди поправить код маппинга памяти чтобы хотя бы ПЗУ правильно было видно.
Так вроде сперва в EmuStudio появляется.
Помните сколько всех нас мурыжили с эмулятором УКНЦ, а потом выложили, а затем появилось и КЦГД, и КСМ+КГД, и 15-ИЭ-00-013... Отдельной веткой был сделан МС-0515.
Так что ждём.
EmuStudio - это так, побаловаться. Пока это не серьезная система. Нету всяких менюшков, сервисов, настроек.
С УКНЦ я не мурыжил, а жадничал. Потом решил не жадничать и все сразу отдавал.
p.s.: Еще там Немига и Э-85. А так же Spectrum. Словом, смесь хорька, барсука и штопора.
---------- Post added at 23:23 ---------- Previous post was at 23:22 ----------
На очереди поправить код маппинга памяти чтобы хотя бы ПЗУ правильно было видно.
Хуже, всего, что, похоже, нет никаких док на этот ихний контроллер гибких (и жестких) дисков.
Хуже, всего, что, похоже, нет никаких док на этот ихний контроллер гибких (и жестких) дисков.
Так вроде в ТО прописаны порты ВГ7 и ВГ72?
И в файлике VPFDHD.TXT про всё расписано
В аттаче версия 1.0.1 -- сделана только ради режима отладки, в котором можно смотреть ПЗУ и прошагать первые шаги.
Смаплено ПЗУ в режиме HALT, больше пока ничего.
Конечно, загрузить что-либо в этой версии пока не получится.
В отладчике вижу как проходится тест памяти...
---------- Post added 03.01.2015 at 00:20 ---------- Previous post was 02.01.2015 at 23:44 ----------
Результат свёртки трассы выполнения на начальном этапе -- по цикл проверки памяти включительно.
То есть эмулятором я записал трассу -- дизасм каждой команды перед её выполнением, потом sort + uniq на этой трассе.
Выполнение начинается с адреса 0500.
000207 BR 000465
000465 CMPB @(R0)+, (R3)
000467 BICB @167013(R0), (R3)
000473 MOV -(R0), (R3)
000500 MOV #000120, R0
000504 MOV (R0)+, R1
000506 MOV (R0)+, R5
000510 MOVB (R1)+, R4
000512 MOVB (R1)+, R2
000514 MOV R2, (R5)
000516 SOB R4, 000512
000520 TST (R0)
000522 BMI 000506
000524 MOV #011642, R0
000530 MOV #060000, R1
000534 MOV #160000, SP
000540 MOV (R0), (R1)
000542 ROL (R1)
000544 ROL (R1)
000546 ROL (R1)
000550 ROL (R1)
000552 ROL (R1)
000554 ROL (R1)
000556 ROL (R1)
000560 ROL (R1)
000562 ROLB (R1)
000564 SWAB (R1)
000566 SUB (R0)+, (R1)+
000570 BNE 000632
000572 TST R1
000574 BPL 000540
000576 SUB #020000, R0
000602 SUB #020000, R1
000606 TST (R5)
000610 BNE 000616
000612 CALL @#007236
000616 CALL @#000676
000622 CMP #001740, (R5)
000626 BHIS 000540
000630 BR 000734
000676 MOV R0, -(SP)
000700 MOV (R5), R0
000702 ADD #000040, R0
000706 MOV R0, (R5)
000710 ASH R0, #177776
000714 BPL 000722
000716 SUB #163000, R0
000722 JSR R5, @#010104
000730 MOV (SP)+, R0
000732 RETURN
000734 MOV #001074, @#100066
000742 MOV #123456, R0
000746 CLR R2
000750 MOV R2, (R1)+
000752 MOV R2, (R1)+
000754 MOV R2, (R1)+
000756 MOV R2, (R1)+
000760 TST R1
000762 BPL 000750
000764 SUB #020000, R1
000770 MOV (R5), R4
000772 CALL @#000676
000776 BIT #037740, (R5)
001002 BEQ 001074
001004 MOV R0, (R1)
001006 CMP R0, (R1)
001010 BNE 001074
001012 COM R0
001014 COM (R1)
001016 CMP R0, (R1)
001020 BNE 001074
001022 COM R0
001024 BIT #017700, (R5)
001030 BEQ 001056
001032 CMP @#000300, @#040000
001040 BEQ 000750
001042 MOV #117740, (R5)
001046 TST @#161204
001052 BEQ 000750
001056 MOV #020000, @#161204
001064 MOV @#000300, @#040000
001072 BR 000750
001074 MOV R4, @#100002
001100 MOV #000636, R0
001104 MOV #161200, R1
001110 MOV #000020, R2
001114 MOV (R0)+, (R1)+
001116 SOB R2, 001114
001120 CALL @#011070
002160 MOV (R0)+, R3
002162 BEQ 002264
002164 BMI 002300
002166 CALL (R3)
002170 BR 002340
002214 MOV #100066, R0
002220 BR 002160
002340 MOV @#100016, SP
002344 MOV @#100022, R1
002350 ADD #000020, R1
002354 CMP SP, R1
002356 BEQ 002570
002360 ADD @#100574, 000060(SP)
002366 ADC 000062(SP)
007236 MOV #007704, @#154100
007244 MOV #007724, @#154102
007252 MOV #010010, @#154104
007260 MOV #000300, R2
007264 MOV #140000, R3
007270 MOV (R2)+, (R3)+
007272 MOV (R2)+, (R3)+
007274 CMP (R3)+, (R3)+
007276 MOV (R2)+, (R3)+
007300 CMP (R3)+, (R3)+
007302 MOV (R2)+, (R3)+
007304 ADD #000100, R3
007310 MOV #000011, R4
007314 MOV (R2)+, (R3)+
007316 CLR (R3)+
007320 SOB R4, 007314
007322 MOV #142300, R3
007326 MOV #000007, R4
007332 CLR (R3)+
007334 MOV #137020, (R3)+
007340 MOV (R2)+, (R3)+
007342 MOV #001000, (R3)+
007346 SOB R4, 007332
007350 MOV #000017, R4
007354 MOVB @#000015, R3
007360 CALL @#007372
007364 DEC R4
007366 MOVB @#000014, R3
007372 MOV R4, -(SP)
007374 ASL R4
007376 NEG R4
007400 ADD #142440, R4
007404 CLR (R4)
007406 CLR 000050(R4)
007412 CLR 000120(R4)
007416 CLR 000170(R4)
007422 CLR 000240(R4)
007426 CLR 000310(R4)
007432 CLR 000360(R4)
007436 BIT #000100, R3
007442 BEQ 007450
007444 MOV #177740, (R4)
007450 BIT #000002, R3
007454 BEQ 007464
007456 MOV #037770, 000170(R4)
007464 BIT #000040, R3
007470 BEQ 007500
007472 MOV #007776, 000360(R4)
007500 BIT #000004, R3
007504 BEQ 007514
007514 BIT #000010, R3
007520 BEQ 007550
007522 BIS #000140, (R4)
007526 BIS #000140, 000050(R4)
007534 BIS #000060, 000120(R4)
007542 BIS #000030, 000170(R4)
007550 BIT #000200, R3
007554 BEQ 007604
007556 BIS #140000, (R4)
007562 BIS #140000, 000050(R4)
007570 BIS #060000, 000120(R4)
007576 BIS #030000, 000170(R4)
007604 BIT #000020, R3
007610 BEQ 007642
007612 BIS #000030, 000170(R4)
007620 BIS #000030, 000240(R4)
007626 BIS #000014, 000310(R4)
007634 BIS #000006, 000360(R4)
007642 BIT #000001, R3
007646 BEQ 007700
007650 BIS #030000, 000170(R4)
007656 BIS #030000, 000240(R4)
007664 BIS #014000, 000310(R4)
007672 BIS #006000, 000360(R4)
007700 MOV (SP)+, R4
007702 RETURN
010024 MOV R0, R1
010026 MOV R0, R4
010030 BIC #177760, R4
010034 CLRB R1
010036 SWAB R1
010040 ASH R0, #177774
010044 BIC #177760, R0
010050 BNE 010056
010056 BEQ 010070
010060 CLR R2
010062 DIV R2, R1
010064 MOVB 000100(R3), R3
010070 CALL @#007372
010074 INC R4
010076 MOV R2, R3
010100 SOB R0, 010056
010102 RETURN
010104 MOV R1, -(SP)
010106 MOV R2, -(SP)
010110 MOV R3, -(SP)
010112 MOV R4, -(SP)
010114 MOV R0, R3
010116 MOV (R5)+, R0
010120 CALL @#010024
010124 MOV (SP)+, R4
010126 MOV (SP)+, R3
010130 MOV (SP)+, R2
010132 MOV (SP)+, R1
010134 RTS R5
011070 MOV #000001, @#137776
011076 MOV #011642, R5
011102 MOV #011574, R0
011106 MOV #000020, R1
011112 CALL (R0)
011114 MOV R2, R3
011116 ASL R3
011120 ADD #040000, R3
011124 MOV R3, -(SP)
011126 CALL (R0)
011130 ASL R2
011132 SUB R2, R3
011134 MOV R3, -(SP)
011136 CMP R3, 000002(SP)
011142 BHIS 011506
011144 MOV #000001, R1
011150 MOV R1, R4
011152 CALL (R0)
011154 BNE 011300
011156 CALL (R0)
011160 BNE 011170
011162 MOV #000020, R1
011166 BR 011200
011170 CALL (R0)
011172 BNE 011206
011174 MOV #000015, R1
011200 CALL (R0)
011202 MOV R2, (R3)+
011204 BR 011136
011206 CALL (R0)
011210 BEQ 011276
011212 MOV #000003, R1
011216 CALL (R0)
011220 ADD R2, R4
011222 INC R4
011224 CMP #000007, R4
011230 BHIS 011276
011232 BIC #177776, R2
011236 INC R1
011240 CALL @#011576
011244 MOV R2, R4
011246 ADD #000011, R4
011252 CMP #000044, R4
011256 BHIS 011300
011260 BIC #177774, R2
011264 CALL @#011576
011270 MOV R2, R4
011272 ADD #000044, R4
011276 INC R4
011300 MOV R4, -(SP)
011302 MOV #000003, R1
011306 CALL (R0)
011310 MOV R2, R4
011312 ASH R4, #000002
011316 ADD #011346, R4
011322 MOV (R4)+, R1
011324 CALL (R0)
011326 ADD (R4), R2
011330 COM R2
011332 ASL R2
011334 ADD R3, R2
011336 MOV (SP)+, R4
011340 MOV (R2)+, (R3)+
011342 SOB R4, 011340
011344 BR 011136
011406 MOV R4, -(SP)
011410 MOV #000003, R1
011414 CALL (R0)
011416 MOV R2, R4
011420 SUB #000004, R4
011424 BMI 011460
011460 CLC
011462 MOV (SP)+, R4
011464 RETURN
011506 MOV #040000, R4
011512 MOV (SP)+, R3
011514 CALL @#011406
011520 BLO 011536
011522 TST R2
011524 BEQ 011532
011532 INC R2
011534 BR 011560
011560 CLR (R4)+
011562 SOB R2, 011560
011574 CLR R2
011576 MOV R1, -(SP)
011600 MOV R0, -(SP)
011602 ASL R2
011604 BIT @#137776, (R5)
011610 BEQ 011614
011612 INC R2
011614 ASL @#137776
011620 BHIS 011630
011622 TST (R5)+
011624 INC @#137776
011630 SOB R1, 011602
011632 MOV (SP)+, R0
011634 MOV (SP)+, R1
011636 TST R2
011640 RETURN
В аттаче версия 1.0.1 -- сделана только ради режима отладки, в котором можно смотреть ПЗУ и прошагать первые шаги.
Я тогда не буду спешить с эмулем, а то еще забросишь свой)
Исходники сразу коммичу сюда:
https://code.google.com/p/neonbtl/source/list
---------- Post added at 00:31 ---------- Previous post was at 00:30 ----------
Я тогда не буду спешить с эмулем, а то еще забросишь свой)
Да я скорее по времени ограничен -- 12 января на работу, ну и про семью не стоит забывать.
Да я скорее по времени ограничен -- 12 января на работу, ну и про семью не стоит забывать.
А у меня работа, реверс ХМ2-001, ремонт и куча еще всякой всячины.
Вообщем достал я осцил с полочки. У моего неончика похоже не стартует проц - на ПЗУшных ногах никакого шевеления. Соответственно и синхросигнал кривой.
Убираю в долгий ящик, откуда сегодня его, по многочисленным просьбам, достал.
... У моего неончика похоже не стартует проц ...
А что наблюдается на ногах ACLO и DCLO?
Alex_K, Для этого требуется более глубокая разборка, на которую пока нет ни времени ни места. И сначала буду см1425 (тоже проц не стартует) оживлять. На неё бы время найти
Denkixot
02.01.2015, 23:55
" p.s.: Еще там Немига и Э-85. А так же Spectrum. Словом, смесь хорька, барсука и штопора."
Раз там эмуляция Э85 есть (нормально работает?), дайте ссылку, откуда скачать?
" p.s.: Еще там Немига и Э-85. А так же Spectrum. Словом, смесь хорька, барсука и штопора."
Раз там эмуляция Э85 есть (нормально работает?), дайте ссылку, откуда скачать?
Нет, это не полноценный Э-85, а просто режим совместимости для программ от электроники, которые под RT-11. Иными словами, rt-шные проги от Э-85 можно запускать под EmuStudio-УКНЦ (я запускал игры).
Занятно. Вот кусок трассы:
002214 MOV #100066, R0
002220 BR 002160
002160 MOV (R0)+, R3
002162 BEQ 002264
002264 MOV #100076, R0
002270 MOV (R0)+, R3
002272 BNE 002164
002164 BMI 002300
002166 CALL (R3) ; Здесь реально происходит переход на нечётный адрес 010233
010232 CLR (R5)
Не понял пока намеренно так сделано или результат ошибки.
Инициализация портов при старте машины:
177612 -> (161036) PPIP -- код 0212 для инициализации параллельного порта
177740 -> (161030) PPIA
000015 -> (161034) PPIC -- вкл часы/календарь
000126 -> (161016) SNDСSR
000015 -> (161012) SNDC1R
000000 -> (161062) DLCSR
000000 -> (161062) DLCSR
000000 -> (161062) DLCSR
000100 -> (161062) DLCSR
177716 -> (161062) DLCSR
000005 -> (161062) DLCSR
000014 -> (161066) KBDBUF
000050 -> (161066) KBDBUF
177723 -> (161066) KBDBUF
177740 -> (161066) KBDBUF
177740 -> (161066) KBDBUF
000022 -> (161000) ???
Дальше пока уходим в вечный цикл с опросом портов 161060 и 161062 -- разбираюсь почему так.
Разобрался почему выходили не туда -- при инициализации портов была попытка занести данные в несуществующий порт и это приводило к каким-то процедурам обработки такой ошибки.
Всего выявилось три неописанных в спеках порта -- 161000, 161002 и 161412.
Полностью начальная инициализация портов выглядит так:
177612 -> (161036) PPIP -- код 0212 для инициализации параллельного порта
177740 -> (161030) PPIA
000015 -> (161034) PPIC -- вкл часы/календарь
000126 -> (161016) SNDСSR
000015 -> (161012) SNDC1R
000000 -> (161062) DLCSR
000000 -> (161062) DLCSR
000000 -> (161062) DLCSR
000100 -> (161062) DLCSR
177716 -> (161062) DLCSR
000005 -> (161062) DLCSR
000014 -> (161066) KBDBUF
000050 -> (161066) KBDBUF
177723 -> (161066) KBDBUF
177740 -> (161066) KBDBUF
177740 -> (161066) KBDBUF
000022 -> (161000) ??? неописанный порт
000000 -> (161002) ??? неописанный порт
177777 -> (161002) ??? неописанный порт
000064 -> (161026) SNLСSR
000164 -> (161026) SNLСSR
177664 -> (161026) SNLСSR
000014 -> (161034) PPIC
000052 -> (161412) ??? неописанный порт
000016 -> (161412) ??? неописанный порт
000015 -> (161034) PPIC
000000 -> (161214) HR6
000040 -> (161210) HR4
000000 -> (161204) HR2
000000 -> (161206) HR3
Не, ну как это не описан??? Это контроллер прерываний.
SNDCSR = 161000
PICMR = 161002
А второй неописанный порт 161412 и 161413 (да, да, обрати внимание, идет СЛОВНАЯ запись по нечетному адресу) - это скорее всего часы-календарь 512ВИ1, т.к. перед данной записью и после выключаются и включаются часы.
да, обрати внимание, идет СЛОВНАЯ запись по нечетному адресу
А как это должно отрабатывать?
А как это должно отрабатывать?Линия A0 в Q-Bus на адрес не влияет. Она используется только в единственном случае, при записи байта, и то не для передачи младшего бита адреса, а для передачи смещения к записываемому байту в передаваемом слове данных.
А как это должно отрабатывать?
Пока что не знаю. Подозреваю (в теории), т.к. не смотрел код дальше, что на ПК-11 не используется байтовая запись в регистры железа, а когда надо записать байт, пишут слово по нечетному адресу.
Пока что не знаю. Подозреваю (в теории), т.к. не смотрел код дальше, что на ПК-11 не используется байтовая запись в регистры железа, а когда надо записать байт, пишут слово по нечетному адресу.Это как раз потому, что при байтовых операциях на Q-Bus всегда выставляется слово, но если A0 == 1 - передаваемый байт содержится в старшем байте этого слова.
Если же на шине сидит настоящее байтовое устройство, которое понимает значение A0, не как смещение в слове, а как адрес байта - записать байт в байтовый регистр с нечётным адресом у такого устройства можно только обсуждаемым способом.
А как это должно отрабатывать?
Так же, как и обычно. Просто на шину выставляется нечетный адрес. В качестве примера параллельной порт в УКНЦ, сама микросхема из 580-й серии, 8-разрядная. Схемотехники сделали так, что она откликается на адреса 177100, 177101, 177102, 177103. В данном случае обязательно нужно обращаться словной командой по нечетному адресу, в противном случае байт передавался бы в старших разрядах при нечетном адресе.
Так же, как и обычно. Просто на шину выставляется нечетный адрес. В качестве примера параллельной порт в УКНЦ, сама микросхема из 580-й серии, 8-разрядная. Схемотехники сделали так, что она откликается на адреса 177100, 177101, 177102, 177103. В данном случае обязательно нужно обращаться словной командой по нечетному адресу, в противном случае байт передавался бы в старших разрядах при нечетном адресе.
Так чем в итоге на УКНЦ отличается байтовая запись по нечетному адресу от словной по нечетному? И почему нельзя обойтись байтовой?
почему нельзя обойтись байтовой?Потому что при байтовой записи всё равно на шину выставляется слово, но если при этом A0 == 1, то записываемый байт передаётся не по линиям D0-D7, а по линиям D8-D15.
Байтовое устройство не анализирует линии D8-D15, поэтому чтобы записать байт в регистр такого устройства с нечётным адресом - нужно писать слово по нечётному адресу.
Тогда передаваемый байт будет на линиях D0-D7, что и требуется.
Так чем в итоге на УКНЦ отличается байтовая запись по нечетному адресу от словной по нечетному? И почему нельзя обойтись байтовой?
Так вроде уже объяснили. Ещё раз. При словной записи на шину выставляется сам нечетный адрес, а после записываемое слово, при этом младший байт будет в младших разрядах, а старший байт в старших разрядах, как все и надо. Но 580-я серия 8-разрядная, потому она старший байт игнорирует. А вот при байтовой записи по нечетному адресу записываемый байт будет в старших разрядах, а в младших будет ноль (во всяком случае для 1801ВМ2), потому 580-я серия получит в качестве данных ноль.
в младших будет ноль (во всяком случае для 1801ВМ2)В этом, кстати - есть некоторые сомнения.
Зачем тогда 1801ВМ2 выполняет MOVB в цикле DATIOB вместо цикла DATOB, если не для того, чтобы в "ненужной половине слова" был не ноль, а исходное значение, прочитанное в первой фазе цикла DATIOB.
В этом, кстати - есть некоторые сомнения.
Зачем тогда 1801ВМ2 выполняет MOVB в цикле DATIOB вместо цикла DATOB, если не для того, чтобы в "ненужной половине слова" был не ноль, а исходное значение, прочитанное в первой фазе цикла DATIOB.
Я эти сомнения уже развеял для себя. В УКНЦ куча регистров, которые игнорируют сигнал WTBT. Есть регистры адреса планов, 16-разрядные, все разряды доступны и по записи и по чтению. При байтовой записи по четному адресу записывался младший байт, а старший очищался, при байтовой записи по нечетному адресу наоборот - записываемый байт записывался в старшую часть, а младшая обнулялась.
Еще пример -1801ВП1-065. Сама микросхема сигнал WTBT не обрабатывает. При записи в регистр данных передатчика по нечетному адресу передавался ноль, а если бы MOVB посылал младшую часть, то передавался бы вектор прерывания, который читается из регистра данных передатчика.
В общем тест памяти у меня прошёлся и вроде как без ошибок.
При этом на экране должно что-то выводиться -- так что можно заняться экраном.
; Старт машины
; Цикл инициализации портов ввода-вывода
000500 MOV #000120, R0
000504 MOV (R0)+, R1
000506 MOV (R0)+, R5
000510 MOVB (R1)+, R4
000512 MOVB (R1)+, R2
000514 MOV R2, (R5)
000516 SOB R4, 000512
000520 TST (R0)
000522 BMI 000506
; Начало теста памяти
; R5 = 161206 -- регистр HR3 -- был последний при инициализации
000524 MOV #011642, R0 ; Адрес начала области в 8 КБ из которой будем брать образцы
000530 MOV #060000, R1 ; Адрес начала блока HR3
000534 MOV #160000, SP ; Адрес стека на границу доступной памяти, выше уже регистры
000540 MOV (R0), (R1) ; Помещаем образец в ячейку памяти
000542 ROL (R1)
000544 ROL (R1)
000546 ROL (R1)
000550 ROL (R1)
000552 ROL (R1)
000554 ROL (R1)
000556 ROL (R1)
000560 ROL (R1)
000562 ROLB (R1)
000564 SWAB (R1)
000566 SUB (R0)+, (R1)+ ; проверяем результат
000570 BNE 000632 ; Найдена ошибка памяти?
000572 TST R1 ; R1 < 0100000 ? т.е. ещё не конец блока HR3?
000574 BPL 000540 ; Тогда продолжаем проверять
000576 SUB #020000, R0 ; Возвращаем указатель на образцы
000602 SUB #020000, R1 ; Возвращаем указатель на начало блока HR3
000606 TST (R5)
000610 BNE 000616
000612 CALL @#007236
000616 CALL @#000676 ; Переход к следующему 8 КБ блоку
000622 CMP #001740, (R5)
000626 BHIS 000540 ; Продолжаем тест памяти
000630 BR 000734 ; Конец теста памяти
; Найдена ошибка памяти по адресу R1
000632
Не, ну как это не описан??? Это контроллер прерываний.
SNDCSR = 161000
PICMR = 161002
Ой, они с названиями в ТО облажались)
На самом деле регистры называются:
piccsr == 161000 // Контроллер прерываний 8259
picmr == 161002
---------- Post added at 03:02 ---------- Previous post was at 01:08 ----------
Уже построил изображение по таблице, что строится подпрограммой по адресу @#007236?
У меня уже экранчик работает:
http://s019.radikal.ru/i601/1501/56/0dbb21eae49b.png
Можно посмотреть, как компьютер сперва тестит медленно и тщательно первые 256Кб памяти, а потом остальные 4Мб уже по-быстренькому.
А более ничего не написал пока)
p.s.: Никита, подтягивайся ;-)
Скачать ТУТ (http://sderni.ru/256388)
Нашел после распаковки ПЗУ интересную строчку)
PC Window-system
из переписки которую я выкладывал, написано что поддержка окошек в ПЗУ сделана
И вот такой у ПК-11 интересный шрифтик:
http://s017.radikal.ru/i437/1501/33/757a04e05830.png
Как ранее я говорил - стрелки 'вверх' и 'вниз' относительно 'Основной кодировки' перепутаны.
---------- Post added at 19:31 ---------- Previous post was at 18:29 ----------
из переписки которую я выкладывал, написано что поддержка окошек в ПЗУ сделана
Что за переписка?
Что за переписка?
http://zx-pk.ru/showpost.php?p=766508&postcount=47
Цитата:
"Аппаратная многозадачность! Поддержка винтов до 80 мегабайт.
Многоголосный звук. Графика 56000 цветов. Прошитая в ПЗУ многооконность."
Дошел до интересного места, скорее всего это менеджер переключения процессов.
Там делается так: устанавливаются биты VIRQ и IHLT, затем очищаются регистры HR0, HR1, и затем дается команда STEP. Что эта команда должна в подобном случае сделать?
А до этого еще и стек устанавливается на 0x0000.
Вообще-то 65536 цветов.
переписка не моя, за что купил за то и отдаю :)
Переписка отсюда http://lj.rossia.org/users/yushi/56072.html
Только чтоб открыть её получаешь болт. :mad_std:
Есть сохранённая копия http://webcache.googleusercontent.com/search?q=cache:ZP-yiq1ArXAJ:lj.rossia.org/users/yushi/56072.html%3Fthread%3D220680+&cd=2&hl=ru&ct=clnk&gl=ru
Комментарии http://webcache.googleusercontent.com/search?q=cache:hA8i9KUCMwYJ:lj.rossia.org/users/yushi/56072.html+&cd=1&hl=ru&ct=clnk&gl=ru
Р.S На такой машинке уже можно Super Mario повторить. :)
Там делается так: устанавливаются биты VIRQ и IHLT, затем очищаются регистры HR0, HR1, и затем дается команда STEP. Что эта команда должна в подобном случае сделать?
Перед STEP должны устанавливаться регистры CPC и CPSW соответственно командами WCPC и WCPS. Установку этих регистров я видел в открытой части ПЗУ, ставятся на CPC=040040 и CPSW=0.
А так STEP выполняет одну команду с запретом всех прерываний. Т.е. команда 100% исполнится, а далее уже будут обрабатываться прерывания, ну если есть. Если же прерываний нет, то исполнение пойдет дальше.
Дошел до интересного места, скорее всего это менеджер переключения процессов.
Там делается так: устанавливаются биты VIRQ и IHLT, затем очищаются регистры HR0, HR1, и затем дается команда STEP. Что эта команда должна в подобном случае сделать?
А до этого еще и стек устанавливается на 0x0000.
Небольшая поправка - VIRQ и IHLT уже и так были установлены с начала старта ПЗУ. Т.е. в данном месте ключевой является именно команда STEP.
---------- Post added at 20:13 ---------- Previous post was at 20:12 ----------
Перед STEP должны устанавливаться регистры CPC и CPSW соответственно командами WCPC и WCPS. Установку этих регистров я видел в открытой части ПЗУ, ставятся на CPC=040040 и CPSW=0.
А так STEP выполняет одну команду с запретом всех прерываний. Т.е. команда 100% исполнится, а далее уже будут обрабатываться прерывания, ну если есть. Если же прерываний нет, то исполнение пойдет дальше.
Да, PC' устанавливается на 0x0200, а PSW' на 0x0000.
---------- Post added at 20:15 ---------- Previous post was at 20:13 ----------
Дело в том, что пока что у меня STEP вообще не написана для ВМ2 (в УКНЦ она не понадобилась мне).
Да, PC' устанавливается на 0x0200, а PSW' на 0x0000.
Titus, моя твоя не понимай, используйте пожалуйста для PDP-11 восьмеричную систему. Значит CPC=01000, а CPSW=0. Переходим в режим USER по адресу 01000, первая команда 100% исполняется.
Titus, моя твоя не понимай, используйте пожалуйста для PDP-11 восьмеричную систему. Значит CPC=01000, а CPSW=0. Переходим в режим USER по адресу 01000, первая команда 100% исполняется.
А когда происходит обратный возврат в HALT-режим на команду идущую после STEP? Или он вообще не происходит?
Дело в том, что пока что у меня STEP вообще не написана для ВМ2 (в УКНЦ она не понадобилась мне).
Ну в УКНЦ она используется в пультовом отладчике. А так я как-то выкладывал своё описание 1801ВМ2, которое составил по опыту работы, там система команд весьма подробно описана со всякими тонкостями.
---------- Post added at 19:23 ---------- Previous post was at 19:20 ----------
А когда происходит обратный возврат в HALT-режим на команду идущую после STEP? Или он вообще не происходит?
Если мы в режиме USER, то возврат в HALT произойдет только по прерыванию - исключению (двойное зависание, ошибка приема адреса вектора прерывания), активна нога HALT процессора, ну или по команде HALT.
Titus, моя твоя не понимай, используйте пожалуйста для PDP-11 восьмеричную систему. Значит CPC=01000, а CPSW=0. Переходим в режим USER по адресу 01000, первая команда 100% исполняется.
Да, по этому адресу в ОЗУ лежит осмысленный код. И первой командой он делает запись числа 3 по адресу 174152. Наверное, это какой-то эмулируемый регистр, запись в который должна перехватываться.
---------- Post added at 20:35 ---------- Previous post was at 20:33 ----------
Да, 174152 - это регистр SETPRI в разделе запросов ВПО.
---------- Post added at 20:36 ---------- Previous post was at 20:35 ----------
А вот и его описание в исходниках:
;---------------------------------------------------------
; setpriority to current process
; setpriority (pri)
; pri - r5 - new priority
.macro setpri n
mov n,@#^o174152
nop
.endm
---------- Post added at 20:37 ---------- Previous post was at 20:36 ----------
Интересно, зачем в макросах после обращения к эмулируемым регистрам стоят NOP'ы? Ведь всякие RT-шные программы будут к этим же регистрам обращаться безо всяких NOP'ов.
Интересно, зачем в макросах после обращения к эмулируемым регистрам стоят NOP'ы? Ведь всякие RT-шные программы будут к этим же регистрам обращаться безо всяких NOP'ов.
Нормальная программа использует макросы и системные запросы, а не лезет напрямую к регистрам. А NOP наверное нужен для того, что после обращения к регистру появится сигнал HALT, но прерывание произойдет после исполнения следующей команды. Это как при исполнении BIS #100,@#177564 прерывание по вектору 64 произойдет не после неё, а после следующей команды.
---------- Post added at 19:49 ---------- Previous post was at 19:46 ----------
Нашел после распаковки ПЗУ интересную строчку)
А распакованным кодом не поделитесь? И куда он распаковывается? Каков размер после распаковки?
А распакованным кодом не поделитесь? И куда он распаковывается? Каков размер после распаковки?
Распаковывается в разные области ОЗУ. Размер затрудняюсь сказать.
Вот (http://sderni.ru/256445) дамп всех 4Мб ОЗУ после распаковки данных.
Замечу, что первые 24Кб занимает таблица экрана и всякая всячина, а уже с адреса 0x6000 идет страница, которая проецируется по адресу 0x0000 ОЗУ режима USER.
---------- Post added at 21:38 ---------- Previous post was at 21:02 ----------
Подозреваю, что таймер:
К580ВИ53 (161020─161026)
SNLC0R ═ 161020
SNLC1R ═ 161022
SNLC2R ═ 161024
SNLCSR ═ 161026
используется в качестве какого-то системного таймера, т.к. при обработки исключения HALT (эмуляции регистров ввода-вывода), его данные активно считываются и куда-то к системным переменным приплюсовываются.
p.s.: Никита, подтягивайся ;-)
У меня пока не так всё радостно -- нечто выводится, но не совсем как надо:
https://img-fotki.yandex.ru/get/16189/7448436.8/0_94b05_74581c9d_orig.png (https://fotki.yandex.ru/users/nzeemin/view/609029)
Не разобрался пока в устройстве экрана.
В частности, не понял как определяется количество "видео-отрезков" в строке.
Не разобрался пока в устройстве экрана.
В частности, не понял как определяется количество "видео-отрезков" в строке.
Строка состоит из 26 столбцов. Например, в режиме с разрешением 832 пикселя, каждый столбец - это 832/26 = 32 пикселя.
Все видеоотрезки выравнены на границу столбцов, и имеют ширину, исчиляемую столбцами.
Видеоотрезков в строке столько, сколько умещается в ширину экрана. Т.е. если описан всего один видеоотрезок с длиной, скажем 30 столбцов, то отображено будет 26 столбцов и все.
Словом, пока вся ширина экрана не заполнена информацией, будут выбираться из памяти все новые и новые видеоотрезки.
Кстати, замечу, что целесообразно вести исчисление не в столбцах, а полустолбцах, т.к. каждый новый отрезок, кроме крайнего левого в первом послустолбце имеет 3 цвета относящиеся к рисованию бордюра (аппаратная реализация оконной системы).
---------- Post added at 05:00 ---------- Previous post was at 04:58 ----------
А я пока застрял на многозадачности.
Очень навороченная штука совмещенная с эмуляцией регистров различных устройств.
Пока не разберусь в точности, как работает система прерываний, и какую роль в этом играет таймер - дальше не продвинуться.
Пока без бордюров и палитр, но всё же получил изображение:
https://img-fotki.yandex.ru/get/16143/7448436.8/0_94b20_de2cd24a_orig.png (https://fotki.yandex.ru/users/nzeemin/view/609056)
Пока без бордюров и палитр, но всё же получил изображение
Если ты возьмешь мой скриншот и задерешь гамму в каком-нибудь вьювере, то увидишь перед надписью 3d4096 красный квадрат - это и есть фоновой бордюр цвета палитры-0 (т.е. общий бордюр для всего экрана).
А я пока застрял на многозадачности.
Очень навороченная штука совмещенная с эмуляцией регистров различных устройств.
Наверное 1806 всётаки отличается от 1801
http://lj.rossia.org/users/yushi/56072.html
"1806 именно. Аппаратная многозадачность там за счет
1) home-made MMU
2) еще там очень странная (но очень полезная) фича - возможность на часть страницы внешних устройств вешать свои обрабочики в halt-режиме для обращений к ним - что позволяет эмулировать устройства."
http://www.vak.ru/doku.php/proj/bk/1801vm-series
"Отличия от 1806ВМ2
Выход запроса окна-один; адреса окна: 160000-163777; вход прерывания от окна отсутствует"
У 1806 два окна:160000-163777 и 164000-167777 (стр. 9 http://www.npofizika.ru/pdf/1806vm2.pdf), и ног у 1806 на две больше чем у 1801
Vamos, эта информация ничего нового не дает) И все эти особенности с обработчиками по HALT описаны в ТО.
Да, в общем, это даже понятно, как сделано. Не понятны пока что некоторые неописанные нюансы, с которыми пытаюсь разобраться, а так же, как описывал ранее, роль таймера и контроллера прерываний в диспетчере переключения задач.
Не понятны пока что некоторые неописанные нюансы, с которыми пытаюсь разобраться, а так же, как описывал ранее, роль таймера и контроллера прерываний в диспетчере переключения задач.
Ну с контроллером прерываний вроде ясно. Он из 580-й серии, поддерживает восемь запросов. При любом запросе выставляет сигнал HALT для процессора.
Вот только как с него потом прочитывают команду CALL и адрес вызова? А ведь в адресе содержится вектор. При инициализации контроллер программируется на одну штуку с интервалом 8 байт и адресом=0. Потом вроде бы все входы маскируются.
роль таймера и контроллера прерываний в диспетчере переключения задач
А в wibdows как многозадачность сделана?
"лишние" ноги на 1806, одна - еще один WRQ и вторая - WIR (вход сигнала "запрос на радиальное прерывание")
А в wibdows как многозадачность сделана?
"лишние" ноги на 1806, одна - еще один WRQ и вторая - WIR (вход сигнала "запрос на радиальное прерывание")
Эти ноги используются для запросов к "окну", вектор - 250, как при MMU. Но в ПК-11/16 все "регистры" эмулируемых устройств содержаться с адреса 0170000, и к "окну" это никакого отношения не имеет. Надо схему, может "окно" и не используется.
Дописал корректное обращение к регистрам железа через всякие чтение-модификация-запись и запись/чтение в режиме USER, и появилось вот что (замечу, прерывания и таймеры так и не реализованы, а многозадачность и многооконность уже работает):
http://s014.radikal.ru/i327/1501/5f/361dc5fbfb0b.png
Кстати, буковка L после 4096 означает (вероятнее всего) попытку загрузки с диска, т.к. она появляется когда программа начинает обращаться к регистрам контроллера FDD.
На самом деле, весьма интересно делать эмуль машинки, которую в рабочем состоянии никто (или почти никто) в глаза не видел, а кто видел, тот не имеет фоток, чтобы показать. При этом имеешь лишь ПЗУ и ТО (написанное кратенько, но пока что достаточно, чтобы понимать, что к чему). И в итоге на экране проявляется и расшифровывается загадка)
Кстати, к текущему моменту реально работает многооконность и многозадачность (запущена куча процессов с разными приоритетами). Только многозадачность как бы замерла, ввиду отсутствия механизмов (таймера/прерываний) переключающих процессы. Сам удивлен, что при таких недоработках это еще и работает.
Возник такой вопрос - если режим эмуляции (прерывание HALT при обращении к адресам 170000-177777) и контроллер прерываний ВН59A сидят на одной и той же линии HALT, как происходит выбор приоритета между ними двоими?
Например, в ситуации, когда только что выполнилась команда обратившаяся к адресу > 170000, и одновременно контроллер прерываний ВН59А дал запрос на какое-то прерывание от одного из своих 8 устройств. Какое будет в приоритете?
Думаю, что приоритет будет одинаков, и линии запроса прерывания HALT от этих устройств обьединены по OR.
С прерываниями, если что, разобрался. С таймерами пока нет)
С прерываниями, если что, разобрался. С таймерами пока нет)
Ну и что там с ними?
Ну и что там с ними?
Как оформится в виде стабильной системы - опишу)
Упрощенно говоря - все прерывания - от эмулятора устройств, от контроллера ВТ59, от команды HALT (и, возможно, и еще от чего-то) вызывают один и тот же обработчик, а он уже по куче разных флагов, таблиц и т.д. разруливает эту ситуацию.
Как оформится в виде стабильной системы - опишу)
Упрощенно говоря - все прерывания - от эмулятора устройств, от контроллера ВТ59, от команды HALT (и, возможно, и еще от чего-то) вызывают один и тот же обработчик, а он уже по куче разных флагов, таблиц и т.д. разруливает эту ситуацию.
Ну это-то понятно, что вектор один - SEL170. А вот интересна работа с ВТ59, он же по идее 580-му процессору передает команду CALL с адресом, а здесь-то как сделали?
Ну это-то понятно, что вектор один - SEL170. А вот интересна работа с ВТ59, он же по идее 580-му процессору передает команду CALL с адресом, а здесь-то как сделали?
Это с 8259 передает как CALL, а 8259A передает как обычный номер вектора.
Это с 8259 передает как CALL, а 8259A передает как обычный номер вектора.
Ну прямым аналогом 8259A у нас был 1810ВН59А. А этот чип инициализируется как обычный 8259.
Таки каким же образом передается вектор, ну или узнается по какой линии прерывание?
Ну прямым аналогом 8259A у нас был 1810ВН59А. А этот чип инициализируется как обычный 8259.
Таки каким же образом передается вектор, ну или узнается по какой линии прерывание?
Может и инициализируется, как обычный, но по факту - это 59A.
Как и на IBM PC XT (где такой же чип), читается с него номер вектора прерывания, а потом программно уже обрабатывается в зависимости от ситуации.
Сейчас вожусь с клавиатурой. Что-то она мне подозрительной кажется та, что расписана ТО.
Когда нажимаешь клавиши, в верхнем правом углу экрана (в строке служебной информации) отображаются коды клавиш в формате типа A- 73, или C- 3 (т.е. буква и три цифры).
Сделал один ряд клавиш (там где цифровые клавиши), пробую нажимать, уж слишком разношерстные коды в окошке отображаются. Может так и надо, а может и нет.
---------- Post added at 20:30 ---------- Previous post was at 20:09 ----------
Что это вообще в ТО за нумерация битов такая? Это и не номер бита, и не вес, а сборная солянка какая-то)
Разряд 1 2 3 4 5 6 10 20 40 100 200
---------- Post added at 20:40 ---------- Previous post was at 20:30 ----------
А вот что про индикатор клавиш и коды написано в описании ВПО:
Состояние клавиатуры и коды нажимаемых клавиш отображаются на
16-значном "индикаторе", высвечиваемым на экране в верхнем правом
углу. Коды символов высвечиваются в восьмеричном виде в правой
части индикатора. Следующие две позиции индикатора показывают
режим ввода букв кириллицы/латыни (L) и "фиксированного" ввода
"больших" или "малых" букв (с).
Клавиша "АЛФ" переключает режим ввода большихемалых букв по
умолчанию (аналогично Caps Lock). Ввод малых букв по умолчанию
отображается на индикаторе с помощью "с".
Клавиша "SHIFT", нажимаемая одновременно с клавишей символа
временно отменяет текущий режим ввода по умолчанию (т.е. если по
умолчанию вводятся большие буквы, то "SHIFT" позволяет вводить
малые буквы, и наоборот).
Одновременное нажатие "SHIFT" + "АЛФ" переключает режим ввода
латыньекириллица.
Клавиша "ГРАФ" и комбинация "SHIFT" + "ГРАФ" позволяют вво-
дить коды графических символов в соответствии с таблицей, пред-
ставленной ниже (приводятся 16-ричные и 8-ричные коды).
---------- Post added at 21:45 ---------- Previous post was at 20:40 ----------
Разряд 1 2 3 4 5 6 10 20 40 100 200
Разобрался с клавой)
Ну и накрутили)
Оказывается - это не вес и не разряд, а маска нажатой клавиши.
Похоже, без загрузки системы с дискеты, дальше синего экрана и показывалки кодов клавиш в верхнем правом углу, не продвинешься.
Никита, ты свой эмуль забросил? Есть какие наработки?
Интересно, что контроллер HDD и FDD дейсвительно совмещен, и буферное ОЗУ для сектора используется не только для HDD, но и для FDD. Т.е. при загрузки с дискеты быстродействие системы практически не тратится.
Т.е. при загрузки с дискеты быстродействие системы практически не тратится.
Многозадачный флоппик? )
Открылся файл PKRAM.SCM с образа SOUZ-NEON_ASPEKT_DOC_.dsk
УК-НЦшной версией редактора CIR
http://pic.pdp-11.ru/images/ciruknc.png
:redface:
Многозадачный флоппик? )
Многозадачная операционная система. Причем, весьма неплохо (судя по всему) написана.
p.s.: Интересно, в который раз я ругаюсь на твои нечитаемые скриншоты? )
Причем, весьма неплохо (судя по всему) написана.
Если ещё и целиком на ассемблере - ха! удаляем все компиляторы Си )
p.s.: Интересно
Скрин так и выглядит в редакторе, открой в эмуляторе сам - заодно оценишь с форматом и редактором этим можно сотрудничать?
Редактор я запускал с системной дискеты (http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/POLYSS_CIR_WRITER/readme.txt)
потом переназначил DK на образ SOUZ-NEON_ASPEKT_DOC_.dsk
и ввёл имя файла PKRAM.SCM на запрос после выбора "Загрузить(Прочитать)" в редакторе.
Если ещё и целиком на ассемблере - ха! удаляем все компиляторы Си )
Скрин так и выглядит в редакторе, открой в эмуляторе сам - заодно оценишь с форматом и редактором этим можно сотрудничать?
Разумеется на ассемблере, какие нафиг Си)
Причем очень оптимизириванный ассемблер. Ребята (не знаю, кто писал) весьма крутые программеры.
Намек N2: Твой скриншот имеет разрешение 400px × 288px, что делает иформацию на нем совершенно непригодной к распознаванию.
Намек N2: Твой скриншот имеет разрешение 400px × 288px, что делает иформацию на нем совершенно непригодной к распознаванию.
Там действительно редактор даёт изображение на котором ничего не видно. И непонятно как увеличить.
https://img-fotki.yandex.ru/get/15527/7448436.8/0_94e48_4efe0413_orig.png
Там действительно редактор даёт изображение на котором ничего не видно. И непонятно как увеличить.
А я уж по традиции на Hobot'a грешу) Извиняюсь)
Как у тебя с эмулем ПК-11 обстоит?
Хотя вот командой Edit/Window/2 удалось увеличить, но не понял как подвинуть фрагмент.
https://img-fotki.yandex.ru/get/16129/7448436.8/0_94e49_e0e49e5f_orig.png[/url]
---------- Post added at 15:15 ---------- Previous post was at 15:14 ----------
По эмулятору пока как было -- дошёл до рисования экрана.
Интересно, что там за схемы? Может и схемы ПК-11 найдутся?
---------- Post added at 15:23 ---------- Previous post was at 15:15 ----------
По эмулятору пока как было -- дошёл до рисования экрана.
Я пока застрял на загрузке с диска.
Приходится дизассемблировать и анализировать значительный фрагмент ядра системы (многозадачность и т.д.), чтобы понять нюансы работы, без которых оно не работает, ибо документация на железо весьма примерная, и для эмуляции совершенно неизвестного компа недостаточная.
эх, это же самое интересное ;)
эх, это же самое интересное ;)
Да, весьма интересно)
Но когда нацелен на результат (посмотреть, как это работает), долгое топтание на месте немножко выматывает.
А в данном случае, пока не напишешь значительную часть железа компа, никакой загрузки даже близко не увидишь.
---------- Post added at 16:41 ---------- Previous post was at 16:06 ----------
Ну вот, допустил простейшую ошибку при чтении из определенной области памяти, и чтобы ее найти понадобилось 2 дня и дизассемблирование доброй (или злой) половины ядра системы)
---------- Post added at 17:28 ---------- Previous post was at 16:41 ----------
Наткнулся на загадочную (на фоне 1801ВМ2) команду MFPТ (чтение модели процессора?). Что должен на это отвечать 1806ВМ2? По коду сравнивается, ответил ли он числом 4 или другим числом, или TRAP'ом. Т.е. одна ветка - число 4, другая - TRAP и все остальные числа. Исходя из этого, можно предположить, что 1806 имеет код 4.
---------- Post added at 17:35 ---------- Previous post was at 17:28 ----------
Хотя, не факт, что 4. Далее проверяются так же числа 3 и 5.
Наткнулся на загадочную (на фоне 1801ВМ2) команду MFPТ (чтение модели процессора?). Что должен на это отвечать 1806ВМ2?
Это которая с кодом 7? Уж не знаю как там в 1806ВМ2, а у 1801ВМ2 будет TRAP10. Притом этот TRAP10 стопроцентно переключается в режим USER, ну а в HALT возвратиться можно по RTI, если только сохраненный PC >= 0160000.
Вот тут (http://compgroups.net/comp.sys.dec/pdp-11-values-from-mfpt/2617577) есть такая информация:
MFPT Value Hardware
1 PDP-11/44
3 PDP-11/24 (should be 2)
3 PDP-11/23
4 SBC-11/21
5 All J11 chips including 11/73, 11/83, 11/93
Но к 1806ВМ2 это явно не относится...
Но к 1806ВМ2 это явно не относится...
В общем, что будет давать 1806ВМ2 - пока остается под вопросом.
Но у меня в эмуле 1801ВМ2.
p.s.: Интересно, зачем эта дурацкая RT-11 в загрузчике имеет хренову тучу тестов деления, четной адресации, нереализованных команд и т.д.? Чуть ли не килобайт на это тратится.
p.s.: Интересно, зачем эта дурацкая RT-11 в загрузчике имеет хренову тучу тестов деления, четной адресации, нереализованных команд и т.д.? Чуть ли не килобайт на это тратится.
Так ведь RT-11 работает не только на ДВК с УКНЦ, но в первую очередь на компьютерах линейки PDP-11, а линейка эта довольно обширная. Вот и проверяется этими тестами тип используемого процессора, т.к. имеют некоторые различия между ними.
Так команда MFPT где присутствует - в загрузчике RT-11 или в ВПО ПК-11/16?
Так команда MFPT где присутствует - в загрузчике RT-11 или в ВПО ПК-11/16?
В загрузчике RT-11.
Там же присутствуют команды: 76600 (FPU?) и 76052 (FPU?). Как на них правильно должен реагировать 1801ВМ2?
Судя по всему - это обычный TRAP по адресу 8, однако в моей версии 1801ВМ2 почему-то я написал такой алгоритм: Если SEL[7] = 1, то TRAP по адресу 8, иначе принудительно установить режим HALT и тоже TRAP по адресу 8. Интересно, зачем я так мог сделать?
В загрузчике RT-11.
Там же присутствуют команды: 76600 (FPU?) и 76052 (FPU?). Как на них правильно должен реагировать 1801ВМ2?
Ох как далеко мы продвинулись!!! Искренне поздравляю!!!
Это уже с диска даже вторичный загрузчик прочли.
А реагировать 1806ВМ2 на эти команды должен также, как и 1801ВМ2, т.е. прерывание TRAP10.
А коды 76600 и 76052 это не FPP, а CIS. FPP начинаются со 170000.
---------- Post added at 19:41 ---------- Previous post was at 19:37 ----------
Судя по всему - это обычный TRAP по адресу 8, однако в моей версии 1801ВМ2 почему-то я написал такой алгоритм: Если SEL[7] = 1, то TRAP по адресу 8, иначе принудительно установить режим HALT и тоже TRAP по адресу 8. Интересно, зачем я так мог сделать?
Судя по всему навеяно алгоритмом исполнения команд FIS.
Это уже с диска даже вторичный загрузчик прочли.
Да уж это я в курсе) Семь потов сошло, пока все подводные камни сошлифовал)
---------- Post added at 20:49 ---------- Previous post was at 20:48 ----------
Судя по всему навеяно алгоритмом исполнения команд FIS.
И все же, как мне правильно такие коды обрабатывать, и различается реакция в режимах User и Halt?
Интересно, что там за схемы? Может и схемы ПК-11 найдутся?
SCM-файлов очень мало -- на дисках Союз-Неон только один PKRAM.SCM, других нет.
Есть ещё несколько схем на диске с самим CIR, и вроде как всё.
И все же, как мне правильно такие коды обрабатывать, и различается реакция в режимах User и Halt?
Собственно я выкладывал своё описание 1801ВМ2, там всё подробно описано.
А так опишу ещё раз. Все резервные коды, а также команды режима HALT в режиме USER вызывают прерывание по вектору 010. Это прерывание USER-режима. Сперва в PSW сбрасывается бит 8, процессор переводится в режим USER, при этом копирования PSW в CPSW не происходит. В стек заносятся значения CPSW и CPC, именно копии, а не сами регистры. Значение SP всегда уменьшается на 4, даже если не удалось занести в стек. Если в стек занести не удалось, то прерывание по вектору 4 (TRAP4). После успешного занесения в стек читаются новые значения PC и PSW из вектора прерывания, при этом в PSW заносятся только младшие 8 разрядов, разряд 8 остаётся в нуле, т.е. режим USER.
И все же, как мне правильно такие коды обрабатывать, и различается реакция в режимах User и Halt?В любом случае реакция на команды 076052 = CMPN и 076600 = MED6X одна - прерывание по резервному коду Trap_to_010 с переходом в режим USER.
---------- Post added at 20:20 ---------- Previous post was at 20:15 ----------
В стек заносятся значения CPSW и CPC, именно копии, а не сами регистры.А что находится при этом в CPSW и CPС и когда находящиеся там значения туда попадают ?
А что находится при этом в CPSW и CPС и когда находящиеся там значения туда попадают ?
В CPC и CPSW копируются значения PC и PSW при их изменении, если какой-либо из разрядов 7 или 8 PSW находится в сброшенном состоянии. В CPSW копируется значение PSW при изменении его младшего байта. Если разряды 7 и 8 PSW установлены, то CPC и CPSW "замораживаются".
В CPC и CPSW копируются значения PC и PSW при их изменении, если какой-либо из разрядов 7 или 8 PSW находится в сброшенном состоянии. В CPSW копируется значение PSW при изменении его младшего байта. Если разряды 7 и 8 PSW установлены, то CPC и CPSW "замораживаются".Правильно ли я понял, что на вопрос: когда записываемые в стек значения CPSW и CPC попадают в сами эти регистры, - правильный ответ следующий: в CPSW и CPC ( а потом и в стек ) попадают те значения PC и PSW, которые были в регистрах PC и PSW при начале обработки внешнего прерывания ( в режимах HALT и USER ), а при обработке внутреннего прерывания в режиме HALT, при установленных битах 7 и 8 PSW - те значения PC и PSW, которые были в регистрах PC и PSW в момент установки битов 7 и 8 PSW.
А что это за системный регистр 177572?
Правильно ли я понял, что на вопрос: когда записываемые в стек значения CPSW и CPC попадают в сами эти регистры, - правильный ответ следующий: в CPSW и CPC ( а потом и в стек ) попадают те значения PC и PSW, которые были в регистрах PC и PSW при начале обработки внешнего прерывания ( в режимах HALT и USER ), а при обработке внутреннего прерывания в режиме HALT, при установленных битах 7 и 8 PSW - те значения PC и PSW, которые были в регистрах PC и PSW в момент установки битов 7 и 8 PSW.
Нет понятия внешнего и внутреннего прерывания для данного случая, есть прерывания режима HALT и прерывания режима USER. Прерывания режима USER всегда переключают процессор в режим USER для обработки. При этом в стек кладутся именно CPC и CPSW, т.к. в начале обработки сбрасывается бит 8 в PSW, а в CPSW он может остаться установленным. Поэтому если сброшены бит 7 или 8 в PSW (т.е. мы в режиме USER или в режиме HALT с разрешенными прерываниями), то можно считать, что в стек кладутся текущие значения PC и PSW. Если же мы в HALT с запрещенными прерываниями, то здесь нельзя однозначно сказать, что в стек положатся значения PC и PSW, бывшие до установки обеих битов 7 и 8 в PSW, т.к. значения CPC и CPSW можно изменить командами WCPC и WCPS.
Если же мы в HALT с запрещенными прерываниями, то здесь нельзя однозначно сказать, что в стек положатся значения PC и PSW, бывшие до установки обеих битов 7 и 8 в PSW, т.к. значения CPC и CPSW можно изменить командами WCPC и WCPS.Проще говоря - если в режиме HALT при запрещённых прерываниях происходит Trap_to_010, то в стек попадут последние значения CPSW и CPC, в принципе никак не связанные с текущими значениями PC и PSW режима HALT на момент выполнения резервного кода.
Проще говоря - если в режиме HALT при запрещённых прерываниях происходит Trap_to_010, то в стек попадут последние значения CPSW и CPC, в принципе никак не связанные с текущими значениями PC и PSW режима HALT на момент выполнения резервного кода.
Да. И так при исполнении любого прерывания режима USER, а это не только векторные по VIRQ, но и по сигналу EVNT(0100), по обратному фронту ACLO (024), а также TRAP10(010), трассировка по биту T в PSW (014), ну а также команды BPT(014), IOT(020), EMT(030), TRAP(034).
---------- Post added at 21:32 ---------- Previous post was at 21:30 ----------
А что это за системный регистр 177572?
Это регистр SR0 MMU.
И так при исполнении любого прерывания режима USER, а это не только векторные по VIRQ, но и по сигналу EVNT(0100), по обратному фронту ACLO (024)В режиме HALT запрещение прерываний битом 7 PSW блокирует HALT, ACLO, EVNT и VIRQ, поэтому если ситуация такова, что эти прерывания могут произойти - в стек попадут значения PC и PSW, имевшие место непосредственно перед запуском блока прерываний.
В режиме HALT запрещение прерываний битом 7 PSW блокирует HALT, ACLO, EVNT и VIRQ, поэтому если ситуация такова, что эти прерывания могут произойти - в стек попадут значения PC и PSW, имевшие место непосредственно перед запуском блока прерываний.
В режиме HALT с запрещенными прерываниями естественно все внешние прерывания блокируются и произойти не смогут, и если дать команду WAIT, то процессор подвиснет. А блок обработки прерываний никаким образом не связан с CPC и CPSW, тут надо уяснить, что в 1801ВМ2 в стек кладутся не PC и PSW, а CPC и CPSW.
Это регистр SR0 MMU.
В каких системах? Загрузчик RT-11 его опрашивает, но в ПК-11 его явно нет.
В каких системах? Загрузчик RT-11 его опрашивает, но в ПК-11 его явно нет.
В процессорах с защитой памяти, например наш 1801ВМ3.
В процессорах с защитой памяти, например наш 1801ВМ3.
В общем, я так понял, что загрузчик в RT-11 вещь такая универсальная, что должна работать на всех системах от простейших ВМ1 до всяких навороченных и многоразрядных.
В общем, я так понял, что загрузчик в RT-11 вещь такая универсальная, что должна работать на всех системах от простейших ВМ1 до всяких навороченных и многоразрядных.
Вот, а я об этом сказал несколькими постами ранее. Правда о 1801ВМ1 разработчики RT-11 и не догадывались.
Еще вопрос (чтобы потом не попасть с этим в просак, пока не забыл). При старте загрузчик сканирует память на чтение с адреса 0 до 170000 с шагом 4000. Очевидно, он хочет упереться в регистры и определить таким образом вершину памяти?
При старте загрузчик сканирует память на чтение с адреса 0 до 170000 с шагом 4000. Очевидно, он хочет упереться в регистры и определить таким образом вершину памяти?Именно так - до упора в пустоту или в ПЗУ.
---------- Post added at 22:04 ---------- Previous post was at 22:01 ----------
надо уяснить, что в 1801ВМ2 в стек кладутся не PC и PSW, а CPC и CPSW.Единственный не вполне понятный момент - какие значения будут в CPSW и CPC после выполнения команды RTI, устанавливающей биты 7 и 8 в PSW ..
Единственный не вполне понятный момент - какие значения будут в CPSW и CPC после выполнения команды RTI, устанавливающей биты 7 и 8 в PSW ..
Из моего описания 1801ВМ2, алгоритм команды RTI:
------------------------------------------------------------
Алгоритм: PC := (SP)+; IF (PC>=160000(8)) THEN PSW[8:0] := (SP)+ ELSE PSW[7:0] := (SP)+
Описание: Новые содержимые PC и PSW загружаются из стека. Если новое значение PC больше или равно 160000(8), то из стека загружается и 8-й разряд PSW (H/U), в ином случае он остается неизменным. Данная особенность даёт возможность возвратиться из режима USER в режим HALT, если прерывание USER было вызвано из режима HALT. Если при загрузке нового PSW устанавливается бит T в PSW, то отладочное прерывание будет вызвано до исполнения первой команды нового процесса. Если перед исполнением RTI был установлен T-бит, а при загрузке нового PSW он очищается, то в этом случае всё равно будет вызвано отладочное прерывание, но в стеке сохранится уже новое PSW без установленного бита T. Если во время первой выборки из стека происходит зависание, то второй выборки не происходит и процессор прерывается (т.е. указатель стека SP увеличивается на 2, а не на 4). Загрузка новых значений PC и PSW происходит из того же адресного пространства, из которого выполняется команда RTI. Если возврат происходит из режима USER или режима HALT с разрешёнными прерываниями в режим HALT с запрещёнными прерываниями, то после загрузки нового значения PC изменяется и CPC, т.к. в данный момент ещё регистры копий разблокированы, а CPSW остаётся неизменным, т.к. новое значение PSW блокирует изменение копий, т.е. в данном случае значение CPC равно новому значению PC, а CPSW равно значению PSW до исполнения команды RTI.
Признаки: N, Z, V, C – загружаются из стека.
---------------------------------------------------------------------
Интересно, в 1806 тоже в цикле записи байта выдается цикл R-M-W как и у 1801? Или уже без глюка, обычный цикл W?
Если так, то использование 1801ВМ2 в ПК11 может привести к неоднозначным последствиям.
Интересно, в 1806 тоже в цикле записи байта выдается цикл R-M-W как и у 1801? Или уже без глюка, обычный цикл W?Ответ ЗДЕСЬ (http://zx-pk.ru/showthread.php?postid=608999).
Ответ ЗДЕСЬ (http://zx-pk.ru/showthread.php?postid=608999).
Значит глюк остался) Это радует)
---------- Post added at 02:18 ---------- Previous post was at 01:45 ----------
Пока что совершенно не понятно, откуда берется вектор для векторного прерывания VIRQ на ПК-11.
А, кажется нашел)
Да уж... с этими векторными прерываниями фантастика)
3.2. Векторные прерывания
В ПЭВМ отсутствуют векторные прерывания. Однако они
необходимы для правильной эмуляции "стандартных устройств", без
которых не может обойтись ДОС. Поэтому предусмотрены
соответствующие аппаратно-программные средства, позволяющие
эмулировать векторные прерывания. ВПО содержит специальную
таблицу-список, в которой хранится информация о всех векторных
прерываниях, "выставленных" эмуляторами. Эмулятор выставляет
"запрос на прерывание" специальным запросом ВПО - SETINT. Снятие
запроса на прерывание выполняется запросом RESINT.
Эмуляция векторных прерываний происходит только для одного
процесса. Этот единственный процесс должен содержать в слове
P.MASK своего дескриптора установленный в 1 разряда в соответствии
смаской V.VRQ. Этим единственным процессом является процесс
дисковой ОС.
Действительно, у одного из процессов, процесса ОС установлен флаг M.VRQ. И в один прекрасный момент, при загрузке системы USER-процесс загрузчика обращается к регистру 177130 (работа с диском) с установленным младшим битом (т.е. хочет ответ от дисковой системы получить посредством прерывания). Дисковый процесс считывает данные и просит у ВПО SETINT. В этом SETINT в таблице векторов ВПО (которая находится по адресу 100146, устанавливаются какие-то значения, причем, не очень похожие на реальные вектора). Вот тут-то начинается самое интересное. Системой сбрасывается бит VIRQ регистра PPIC (что означает разрешение векторных прерываний), и по идее процессор в USER режиме должен на это прерывание перейти. Все хорошо, только откуда брать вектор - совершенно не понятно. Может быть есть какой-то хитрый аппаратный контроллер, который вынет этот вектор из той таблицы в ОЗУ по адресу 100146 и подаст на шину?
Я так понял, что ни у кого идей нет, как получает USER-процесс этот вектор прерываний)
У меня пока два рабочих варианта:
1) Ядро HALT-процесса видит, что для процесса установлен флаг VIRQ и эмулирует векторное прерывание программно, используя таблицу векторов, которая лежит в его ОЗУ.
Доводы против этой теории:
Нигде (пока что) не нашел кода, который обращается к этой таблице, нет кода в ядре, который опрашивает флаг VIRQ.
2) Существует хардварный контроллер VIRQ прерываний, который в качестве таблицы векторов лазает в специальную часть ОЗУ HALT-процесса, извлекая оттуда вектор.
Доводы против этой теории:
Таблица векторов в ОЗУ HALT-процесса лежит не по ровному адресу (100146), не имеет информации о векторах в стандартном виде.
CodeMaster
10.01.2015, 14:40
У меня пока два рабочих варианта:
Это уже не написание эмулятора, а реверс-инженеринг самой идеи ;-)
Это уже не написание эмулятора, а реверс-инженеринг самой идеи ;-)
А без этого никак, ибо некоторые хардварные особенности остаются в тени, и только реверс логики работы системного ПО позволяет понять, как они работают)
Нашел странную привязку некой HALT-подпрограммы ВПО к вектору, находящемуся по адресу 60. В нем записаны два числа 1414, 10104. Первое число указывает на нашу подпрограмму. Что бы мог значить вектор с адресом 60 в HALT-режиме? Когда на него процессор может передать управление?
Причем, при попадании в эту подпрограмму в памяти по адресу R0 дожен быть адрес векторного прерывания VIRQ, a в R1 тоже какие-то данные.
---------- Post added at 20:59 ---------- Previous post was at 19:12 ----------
Все, перерыв весь код, и поняв, что обработчика VIRQ в нем НЕТУ, а так же еще раз внимательно прочитав фразу про VIRQ - 'аппаратно-программные средства', и так же поняв, что эмулировать программно несколько одновременных векторных запросов у ВПО никак бы не получилось, утвердился в мысли, что контроллер VIRQ аппаратный)
Вопрос к RT-шникам, какой регистр находится в памяти по адресу 177776?
ПК-11 эмулирует регистр, находящийся по этому адресу.
---------- Post added at 04:17 ---------- Previous post was at 02:34 ----------
Разбираясь с зависанием при обращении RT-11 к регистру 177776, нашел СУПЕР-МЕГА-ГЛЮК ВПО!
(А может и мой мегаглюк)
Итак, нулевая 8-килобайтовая страничка ОЗУ (0..17776) используется как таблица для эмуляции обращения к регистрам 170000-177776. Причем первые 4Кб - это хранилище самих значений записанных в эмулируемые регистры, а вторые 4Кб - это собственно адреса хендлеров (обработчиков) обращений к этим регистрам. На месте отсутствующих регистров, соответственно, записан нулевой адрес хендлера.
Итак! Внимание! При вызове распаковщика кода из ПЗУ в ОЗУ (в самом начале старта ПК-11) стек устанавливается по адресу 20000, и, таким образом, пишет мусор в верхние 8-10 эмулируемых регистров с адресами 177756-177776. Таким образом, любое обращение к этим регистрам приведет к НЕПРЕДСКАЗУЕМЫМ последствиям.
Что я и встретил, при обращении при загрузке RT-11 по адресу 177776.
какой регистр находится в памяти по адресу 177776?У многих процессоров DEC ( а также у 1801ВМ3 ) по этому адресу видно содержимое PSW.
У многих процессоров DEC ( а также у 1801ВМ3 ) по этому адресу видно содержимое PSW.
Может быть в ПК-11/16К эмулируется работа процессора 1801ВМ3 ? :v2_conf2:
Товарищ GID недавно выложил таблицу регистров процессоров и внешних устройств (http://gid.pdp-11.ru/f/portaddr.rar) -- в ней указано, что в ВМ3 это PSW...
У многих процессоров DEC ( а также у 1801ВМ3 ) по этому адресу видно содержимое PSW.
Ну, у 1806ВМ2-то там явно ничего не должно быть, ибо он практически 1801ВМ2)
---------- Post added at 14:36 ---------- Previous post was at 14:35 ----------
Может быть в ПК-11/16К эмулируется работа процессора 1801ВМ3 ? :v2_conf2:
Вы уже любезно считали свою версию ПЗУ? (ибо, вдруг у вас другая версия, и более правильная, например).
---------- Post added at 15:06 ---------- Previous post was at 14:36 ----------
У многих процессоров DEC ( а также у 1801ВМ3 ) по этому адресу видно содержимое PSW.
В другой ветке мне подсказали так:
Регистр состояния процессора на всех машинах где есть MMU.
Замечу, что пока эта проблема не будет выяснена, эмулятор ПК-11 дальше не двинется)
В другой ветке мне подсказали такТам другими словами говорится то же самое ( т.к. PSW - это регистр состояния процессора ).
...
Там другими словами говорится то же самое ( т.к. PSW - это регистр состояния процессора ).
...
Да, но сперва я подумал, что это может быть какой-то дополнительный регистр состояния, например, отвечающий за ту же MMU.
Вопрос к Никите - посмотри, что у тебя в ОЗУ по абсолютному адресу 17776, после того, как проходит тест и подпрограммы ВПО распаковываются из ПЗУ в ОЗУ.
---------- Post added at 15:29 ---------- Previous post was at 15:23 ----------
Пока что я спотыкаюсь на такой конструкции (в самом начале загрузчика RT-11), понять бы, что он в ней хочет проверить:
(числа в командах перевел в восьмиричный вид, для восьмиричников, адреса команд и коды команд не переводил):
02DE 0BDF FFFE TST (#177776)
02E2 00A0 NOP
02E4 4460 BIC (R1)+,-(R0)
02E6 0BDF FF66 TST (#177546)
02EA 00A0 NOP
02EC 5448 OR (R1)+,(R0)
02EE 0203 BNE $02F6
02F0 0BDF 0001 TST (#000001)
02F4 00A0 NOP
02F6 5448 OR (R1)+,(R0)
02F8 F000 NOP *
02FA 5448 OR (R1)+,(R0)
02FC 0BDF F560 TST (#172540)
0300 00A0 NOP
0302 5448 OR (R1)+,(R0)
понять бы, что он в ней хочет проверитьВ оригинале ( см. BSTRAP.MAC из RT11v5.0 ) это выглядит так:
TST @#PS
NOP
BIC (R1)+,-(R0)
TST @#LKCS
NOP
BIS (R1)+,@R0
BNE 1$
TST @#1
NOP
1$: BIS (R1)+,@R0
CFCC
BIS (R1)+,@R0
TST @#172540
NOP
BIS (R1)+,@R0
Проще говоря - если разработчикам не хочется проверять выполнение процессором кода CFCC - для правильной конфигурации RT-11 там вместо NOP должно быть CLR (R1).
...
В эмуляторе ДВК это место выполняется так:
001374 [000000] TST @#177546 ; 177546:
################
Trap to 004 = Чтение по пустому адресу: 177546
################
; PSW :000000 -> 000774:000000
; PC :001400 -> 000772:001370
; 000004:003410 -> PC
; 000006: 000 -> PSW
003410 [000000] CLR (R1) ; 003664:020000
003412 [000004] ADD #0, (SP) ; 003414:000000 -> 000772:001400
003416 [000000] RTI ; 000772:001400 -> PC
; 000774: 000 -> PSW
001400 [000000] NOP
001402 [000000] BIS (R1)+, (R0) ; 003664:000000 -> 003660:004000
001404 [000000] BNE 001414
001414 [000000] BIS (R1)+, (R0) ; 003666:100000 -> 003660:004000
001416 [000010] 170000 - Команда не опознана.
################
Trap to 010
################
; PSW :000010 -> 000774:000000
; PC :001420 -> 000772:001400
; 000010:003410 -> PC
; 000012: 000 -> PSW
003410 [000000] CLR (R1) ; 003670:000100
003412 [000004] ADD #0, (SP) ; 003414:000000 -> 000772:001420
003416 [000000] RTI ; 000772:001420 -> PC
; 000774: 010 -> PSW
001420 [000010] BIS (R1)+, (R0) ; 003670:000000 -> 003660:104000
001422 [000010] TST @#172540 ; 172540:
################
Trap to 004 = Чтение по пустому адресу: 172540
################
; PSW :000010 -> 000774:000010
; PC :001426 -> 000772:001420
; 000004:003410 -> PC
; 000006: 000 -> PSW
003410 [000000] CLR (R1) ; 003672:040000
003412 [000004] ADD #0, (SP) ; 003414:000000 -> 000772:001426
003416 [000000] RTI ; 000772:001426 -> PC
; 000774: 010 -> PSW
001426 [000010] NOP
001430 [000010] BIS (R1)+, (R0) ; 003672:000000 -> 003660:104000
TST @#SR0
NOP
BIS @R1,@R0
Какое SR0? Если монитор собирается без поддержки MMU, то этих команд в BSTRAP нет.
Какое SR0? Если монитор собирается без поддержки MMU, то этих команд в BSTRAP нет.Исправил.
Итак, нулевая 8-килобайтовая страничка ОЗУ (0..17776) используется как таблица для эмуляции обращения к регистрам 170000-177776.
Я бы поправил эту фразу - для эмуляции обращения к несуществующим регистрам. А поскольку обычно в верхней области нет несуществующих регистров (либо по этим адресам никто никогда не обращается), то верхняя часть этой таблички вполне может использоваться как стек. Регистр по адресу 177776, отражающий значение PSW, я так думаю, всегда существует.
Я бы поправил эту фразу - для эмуляции обращения к несуществующим регистрам. А поскольку обычно в верхней области нет несуществующих регистров (либо по этим адресам никто никогда не обращается), то верхняя часть этой таблички вполне может использоваться как стек. Регистр по адресу 177776, отражающий значение PSW, я так думаю, всегда существует.
Нет, не верно. Достаточно много регистров в верхних 16 байтах памяти (это видно во время тестов загрузчика RT11). Т.е. не только 177776 в загрузчике RT11 попадает под раздачу, а еще и 177746 и 177760 (но с ними, возможно, ситуация не такая критичная и это прокатывает).
Кроме того, нигде не указано в доках, что у 1806ВМ2 реализован PSW по адресу 177776.
Правильно ли я понимаю, что когда процессоры ВМ1 и ВМ2 выполняют команду TST @#1 - на шину в цикле чтения слова выставляется адрес 000001, но контроллер ОЗУ при чтении слова игнорирует младший бит адреса и поэтому в фазе данных выдаёт на шину содержимое адреса 000000 ?
Правильно ли я понимаю, что когда процессоры ВМ1 и ВМ2 выполняют команду TST @#1 - на шину в цикле чтения слова выставляется адрес 000001, но контроллер ОЗУ при чтении слова игнорирует младший бит адреса и поэтому в фазе данных выдаёт на шину содержимое адреса 000000 ?
Да, правильно.
Временно залочив заплаткой проблему с 177776 (принудительно трапая проц, если идет доступ в этот регистр), удалось чуть дальше продвинуться в загрузке RT-11.
Она использует загрузку с прерываниями, т.е. отдает команду регистру HFBUF (177130), а он ей отвечает по вектору FDVEC ═ 234. И еще там используется эмулируемый регистр 177546, я так понял, что это управление сетевым таймером на RT-11 системах?
еще там используется эмулируемый регистр 177546, я так понял, что это управление сетевым таймером на RT-11 системах?
http://s7.hostingkartinok.com/uploads/images/2015/01/07e7c98520ae42c26e6a8ae63b43236c.jpg
Я так понял, RT-11 может работать с этим таймером, и без таймера. Тогда какие улучшения она от этого таймера претерпевает?
И еще вопрос, когда я попытался загрузить дискеты с ПК-11 на УКНЦ, они все вылетали при обращению к регистру HFBUF (177130) (если я правильно помню). Получается, эта версия скомпилирована специально под его использование?
И еще вопрос, когда я попытался загрузить дискеты с ПК-11 на УКНЦ, они все вылетали при обращению к регистру HFBUF (177130) (если я правильно помню). Получается, эта версия скомпилирована специально под его использование?
А вы прямо их грузили или всё-таки копировали туда MZ.SYS и копировали его загрузчик командой COPY/BOOT?
А вы прямо их грузили или всё-таки копировали туда MZ.SYS и копировали его загрузчик командой COPY/BOOT?
Нет, ничего не копировал) Но из вашей фразы понял, что на системе для УКНЦ должен быть загрузчик MZ.SYS специально предназначенный для УКНЦ. Тогда, получается, что РТ-11 не имеет универсальных методов загрузки, чтобы грузиться на любой машине?
Тогда, получается, что РТ-11 не имеет универсальных методов загрузки, чтобы грузиться на любой машине?Типа, без драйвера системного устройства - такое ни одна операционка не может.
Разница между всеми существующими в природе операционками лишь в том, что у одних операционок все используемые драйвера надо компилировать в ядро, а у других - используемые драйвера находятся в отдельных файлах.
Тогда, получается, что РТ-11 не имеет универсальных методов загрузки, чтобы грузиться на любой машине?
А как она может загрузится на любой машине? Искуственного интеллекта ещё не изобрели, а тогда и тем более. Если бы в PDP-11 было понятие BIOS-а, а код записи/чтения системного устройства находился бы на странице ввода/вывода в ПЗУ, то тогда можно было бы об этом говорить. Естественно разработчики RT-11 могли бы зашить все драйвера в одну систему, но это бы были драйвера только для DEC-овских систем. Кстати в RT-11 до 4-й версии так и делалось, она собиралась с зашитым драйвером системного устройства, поэтому были файлы мониторов под DX, RK и т.д. и т.п.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot