PDA

Просмотр полной версии : Документация на ПК 11/16



Страницы : [1] 2 3 4

лю
19.01.2011, 07:24
Имеется компьютер. На верхней крышке только надпись ПК 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), то это охрененный раритет, и врядли ты что на него найдёшь, но попроси модератора перести тему в раздел "ДВК, УКНЦ" там быстрей может найтись.

лю
19.01.2011, 17:56
... но попроси модератора перести тему в раздел "ДВК, УКНЦ" там быстрей может найтись.
А как его попросить?

BYTEMAN
19.01.2011, 19:08
А как его попросить?
Написать ему в Личные Сообщения.

Patron
27.01.2011, 23:32
В приложении - файл "Архитектура Микро-ЭВМ ПК-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

TheGWBV
08.12.2014, 01:16
Имеется компьютер. На верхней крышке только надпись ПК 11/16... Может подскажете, уважаемые, где найти доки по етому ПК 11/16.

Пару месяцев назад пришел ко мне на отв. хранение Союз-Неон ПК-11/16 и с десяток дискет для него.

Здесь можно скачать образ дискеты RT-11 с ТО платы вычислителя и ВПО (встроенного программного обеспечения) ПК-11/16. (https://yadi.sk/d/_QMGjw3ZdDUGm)

Titus
08.12.2014, 03:24
Вытащил с образа тексты с документацией. Все файлы в кодировке DOS, кроме файла TO.txt, он в какой-то странной кодировке типа ISO, но псевдографику увидеть не удалось.

Документация с диска (http://sderni.ru/253208)

dk_spb
08.12.2014, 08:41
А можно поклянчить распиновку блока питания?
Точнее какое питание куда на материнку приходит.

Sergei Frolov
08.12.2014, 10:47
to.dos

hobot
08.12.2014, 11:50
В файле 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

Titus
08.12.2014, 13:38
to.dos

А псевдографика-то испорчена)

BYTEMAN
16.12.2014, 19:44
Titus, скоро увидит свет эмулятор Союза? :)

Titus
16.12.2014, 22:51
Titus, скоро увидит свет эмулятор Союза? :)

Не ко мне) УКНЦ-бы сделать)

hobot
21.12.2014, 01:28
Пару месяцев назад пришел ко мне на отв. хранение Союз-Неон ПК-11/16 и с десяток дискет для него.
Господа Хранители \ Коллекционэры )))
Есть ли шанс у простых тружеников увидеть софт для этих редких машин,
хотя бы и те самые десяток дискет, есть ли причина не публиковать эти образы?
Поскольку машинка всё же PDP - очень интересно!



обнаружен PRUN
их оказывается тьма это ПРУНов(кроме того, который form для УК-НЦ написал), FRUN и SRUN в ФОДОСe - описаны как запуск основго задания и системного ??? В общем что то штатное и явно избыточное?

TheGWBV
25.12.2014, 20:45
Господа Хранители \ Коллекционэры )))
Есть ли шанс у простых тружеников увидеть софт для этих редких машин,
хотя бы и те самые десяток дискет, есть ли причина не публиковать эти образы?
Поскольку машинка всё же PDP - очень интересно!


Всех с наступающим Новым годом! :)
:v2_dizzy_christmas:
SOUZ-NEON_INSTALL_.IMG (https://yadi.sk/d/u-G_z6OTdcmYb)

hobot
25.12.2014, 22:10
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
25.12.2014, 22:18
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МБ).

Titus
25.12.2014, 22:25
А машинка на ВМ2 и системная дискета теперь есть, (http://zx-pk.ru/showpost.php?p=765122&postcount=15)
Какая машинка на ВМ2?

Vamos
25.12.2014, 22:38
Какая машинка на ВМ2?
В заголовке темы

Titus
25.12.2014, 22:46
В заголовке темы

Какой от этого толк, если нет эмуля и софта (почти).

Vamos
25.12.2014, 22:55
Ну дык кто эмули то пишет ? hobot и просит написать эмуль, я присоединяюсь.
На МС 0515 тоже всего 2 дискеты есть, но есть и эмуль.


TheGWBV, для эмуля нужны еще считанные ПЗУ.

Titus
25.12.2014, 23:02
Ну дык кто эмули то пишет ? hobot и просит написать эмуль, я присоединяюсь.
На МС 0515 тоже всего 2 дискеты есть, но есть и эмуль.


TheGWBV, для эмуля нужны еще считанные ПЗУ.

МС 0515 все же попроще)

Да, без ПЗУ об эмуле даже речи не может идти.

TheGWBV
25.12.2014, 23:21
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 привод НГМД (с которого нужно будет запустить программу, которая считает ПЗУ и запишет на ГМД)...

Titus
25.12.2014, 23:51
Для начала мне нужно подключить СОЮЗ-НЕОН к некоему видеомонитору :v2_dizzy_snowball2:
затем подключить к нему хотя бы 1 привод НГМД (с которого нужно будет запустить программу, которая считает ПЗУ и запишет на ГМД)...

А вытащить микрухи из панелек и считать в программаторе (у себя или доброго друга)?

---------- Post added at 00:51 ---------- Previous post was at 00:49 ----------

Или стоп! Они же впаянные (судя по видео).

А нет, вру - на панельках. Впаянные - РТ2, хотя их тоже надо считать.

hobot
26.12.2014, 00:44
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 ----------

Пока печатал вы уже видео выложили, я проглядел, про фотки отмена тогда! )

Titus
26.12.2014, 00:46
Пока печатал вы уже видео выложили, я прогладел, про фотки отмена тогда! )

Фотки в хорошем разрешении нужны, на видео плохо видно номиналы элементов и вообще.

hobot
26.12.2014, 00:50
Строгая технология - прокладки "бумажные" между памятью )
Вторая увиденная плата и та же картина )))

---------- Post added at 00:50 ---------- Previous post was at 00:48 ----------


Фотки в хорошем разрешении нужны
И снова рискну вас доктор к господину Фролову отправить ("смайл огромный и ехидный")

hobot
26.12.2014, 01:03
кстати, она на процессоре Н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 ? )

TheGWBV
26.12.2014, 01:20
Собираетесь остальные считать, есть ли там игры, есть ли там какие то
шпаргальные подписи на дискетах, сам НЕОН врубается - работает,
я бы (вот пристал да?) очень попросил машинку сфоткать, но разумеется
всё это не к спеху (семейные праздники всёж никто не отменял наверное).

На БК-ашке всё это делается в 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)

hobot
26.12.2014, 01:28
Поглядел видео. Он настолько далёк от семейки УК-НЦ\ДВК\БКашечно-Квантовой )
Совсем другая машинка ) Совсем-совсем )

Охлаждение очевидно для SIM-ов прокручено.

TheGWBV
26.12.2014, 01:37
Или это какой-то другой ПК-11 ? )
Видимо, это самое первое (предпроектное) описание ПК-11/16, или у меня не СОЮЗ-НЕОН, а СОЮЗ-ИОН (именно так его называет предыдущий Хранитель, который в 90-е торговал ими и УКНЦ). А скорее всего, в указанном в вашем сообщении описании некоего ПК-11 речь идет о машине, которая вообще не пошла в производство, и была изначально нацелена на учебные заведения, а ПК-11/16(К), судя по ТО, предназначается для профессионального использования, на замену ДВК (и как мне думается, это была попытка конкурентной борьбы с иноземными раб. станциями на i386, но успели сделать только опытные партии)...

В любом случае, ТО на образах дискет соответствует по тексту прилагаемому бумажному носителю. Правда, на последней странице есть пометки карандашом (https://yadi.sk/i/qaR_GQ0odeJir)...

hobot
26.12.2014, 01:49
и быстро умершим УКНЦ
Это легко поправить )


всё это делается в 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),
но при условии совпадения формата дискет (что более чем вероятно).

TheGWBV
26.12.2014, 02:08
Интересно почему же он "быстро умер"?
Не могу знать :) Пропал видеосигнал, из ремонта вернулся с неполной цветностью видеосигнала. Потом уже и не помню в каком состоянии он был убран в коробку и чулан. Но от него остался МС5313 и для БК-ашки был куплен у магазина Электроника контроллер НГМД+16КБайт ОЗУ. Так и закончилась эра БК+Магнитофон для меня :)

dk_spb
26.12.2014, 15:52
Посмотреть на плату вычислителя ПК-11/16 можно на видео №1 (https://yadi.sk/i/Wz4v_xAAdcvtL) (Размер: 179,3 МБ) и видео №2 (https://yadi.sk/i/zA2cyDIkdcwXN) (Размер: 237 МБ), а также на фото...

А можно попросить крупно фото блока питания и места где кабель от БП к материнке. У меня такой комп есть, но без БП.

Titus
26.12.2014, 15:54
А можно попросить крупно фото блока питания и места где кабель от БП к материнке. У меня такой комп есть, но без БП.

Как на счет считать ПЗУ'шки? )

TheGWBV
26.12.2014, 18:11
А можно попросить крупно фото блока питания и места где кабель от БП к материнке. У меня такой комп есть, но без БП.

Фото блока питания ПК-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 на задней стенке есть маркировка разъемов? (на моем, похоже, информационная полоска отклеелась и потерялась ещё у предыдущего Хранителя)...

TheGWBV
28.12.2014, 22:58
А можно поклянчить распиновку блока питания?
Точнее какое питание куда на материнку приходит.

Распиновка шины питания ПК-11/16К...

8 -- +12 В (туда же припаян красный провод вентилятора охлаждения) (13.7 В)
7 -- -12 В (-13.6 В по результатам измерений)
6 -- Общий
5 -- 5 В (4.9 В)
4 -- Общий
3 -- 5 В (4.9 В)
2 -- Общий
1 -- пусто (на плате вычислителя контакт отсутствует)
к -- физический ключ (зуб)

hobot
29.12.2014, 00:04
Я ещё не вчитывался плотно в документацию, а вот установочную дискету поизучал.
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:

TheGWBV
29.12.2014, 00:21
Ещё 1 замечание по поводу инстал. дискеты - там привязка к вполне
конкретному драйверу HD и даже конкретным разделам! Тут наверное
только бывший владелец, что то пояснить смог мы.

Есть и просто куча невыясненного назначения программ, загрузчик шрифтов местный какой-то и 4 типа файлов со шрифтами к нему.
Но ещё раз повторюсь - дискета не полная, а выглядит как кусочек.

Хм... а что вот на этой дискете (помечена как Демо)?
SOUZ-NEON_DEMO_.IMG (https://yadi.sk/d/FcYX_wUHdgF3J)

Titus
29.12.2014, 00:25
Не забываем, что ну просто необходимейше считать ПЗУ!

hobot
29.12.2014, 01:28
Хм... а что вот на этой дискете (помечена как Демо)?
Принято к изучению.
Я кстати попутно готовлю оформить все публикации из этой темы к архиву.
Надо самому немного в описание машинки углубиться, тогда возможно многие
моменты прояснятся.

+ насколько я понял "справочник по УК-НЦ" = книга, ещё не полностью отсканен,
он так же в библиОтеку пойдёт.

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

hobot
30.12.2014, 00:51
Наконец то вспомнил нашёл, это на дискетах Titusa было,
а (как он сам говорил) УК-НЦ ему отдал тов. который раздобыл ИОН.
Значит какое-то время он их сравнивал? И дока где указан обычный ВМ2
с того же диска. Я же на сам это выдумал, но как показало "вскрытие"
процессор стоит таинственный.

http://zx-pk.ru/showpost.php?p=646865&postcount=277


---------- Post added at 00:51 ---------- Previous post was at 00:49 ----------

По ссылке лог прогона теста на НЕОНЕ и УК-НЦ (были на одной дискете УК-НЦшной),
в принципе они там и лежат среди дискет Titusa )

TheGWBV
30.12.2014, 02:39
Интересная машинка = интересное ПО.

Да, машинка то Макинтошу на пятки наступала :)
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)

Titus
30.12.2014, 02:52
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 ----------

Отсюда мораль - еще важнее считать ПЗУ'шки этой машинки)

TheGWBV
30.12.2014, 02:56
А где остальные странички?

Думаю, что до конца февраля я и их осилю, и от книги по УКНЦ :rolleyes:
На образе дискеты (https://yadi.sk/d/nMX6bQIKdhYUw) возможно есть этот же документ в том же формате, что и ТО на ПК-11/16 (файл типа .DOC)...

Vamos
30.12.2014, 03:07
Где-то в тырнете нашел, давно, сейчас нашел у себя на диске.

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) и даже, кажется,
что-то ещё более продвинутое!

Всё пишу по памяти, так что могу что-то переврать (но вроде не).

Titus
30.12.2014, 03:15
На образе дискеты (https://yadi.sk/d/nMX6bQIKdhYUw) возможно есть этот же документ в том же формате, что и ТО на ПК-11/16 (файл типа .DOC)...
Да, есть.

Vamos
30.12.2014, 03:20
Вот еще, может уже здесь пробегала, но прикреплю

Titus
30.12.2014, 04:45
Вот еще, может уже здесь пробегала, но прикреплю

Да, пробегала)

nzeemin
30.12.2014, 21:19
Вот щас бы ПЗУшки от него -- как раз каникулы. Эмуляторщик внутри меня потирает ручки и подпрыгивает на табуретке.

Titus
30.12.2014, 22:34
Вот щас бы ПЗУшки от него -- как раз каникулы. Эмуляторщик внутри меня потирает ручки и подпрыгивает на табуретке.

Во мне тоже)

Но, ПЗУ'шек нам пока не дають)

hobot
30.12.2014, 23:58
nzeemin,
Titus, допустим были бы ПЗУшки, но ведь процессор совершенно таинственный,
ни одной характеристики не известно ! Как это будет, снова наугад время выполнения команд и задержки?

---------- Post added at 23:58 ---------- Previous post was at 23:58 ----------

Или подпихивать УК-НЦшный и делать вид, что так и бЫло )

Titus
31.12.2014, 00:00
nzeemin,
Titus, допустим были бы ПЗУшки, но ведь процессор совершенно таинственный,
ни одной характеристики не известно ! Как это будет, снова наугад время выполнения команд и задержки?

---------- Post added at 23:58 ---------- Previous post was at 23:58 ----------

Или подпихивать УК-НЦшный и делать вид, что так и бЫло )

Ваще-та процессор 1801ВМ2, а в некоторых моделях 1806ВМ2. На сколько я понимаю. Т.е. процессор совсем наш, УКНЦ'шный.

hobot
31.12.2014, 00:02
Про конкурентность с западными персоналками я уже писал где, что мне сказал на это ветеран производства
с 386 должны были конкурировать более навороченные КВАНТЫ
вот этот НЕОН - у него был дома и его называли "бухгалтерским".

Вот такая инфа у меня.

---------- Post added at 00:02 ---------- Previous post was at 00:01 ----------


а в некоторых моделях 1806ВМ2.
То есть у нас тут ещё и милитаристский вариант на форуме ) Чудненько! )

Titus
31.12.2014, 00:07
К слову сказать, я почти отказался от идеи писать эмуляторы не имея точных (дотактовых) док по железу. Сейчас, например, исследуем чипы от УКНЦ, чтобы ТОЧНО понимать принципы их работы и тайминги. А то пишешь-пишешь эмуль, а на деле машина работает несколько иначе. Это не кошерно и не аутентично.

hobot
31.12.2014, 00:19
Titus, смотри ведь рано или поздно машинку кто то из Хранителей свой экз.
стартанёт и если там есть RT-11, есть же куча тестов твоих, штатных и от Patrona.
Так что пингануть этими тестами 1806ВМ2 - уже некий задел. Слишком мало этих
машин, 200 штук - это ж капля в море. Я просил Д.В. (это сотрудник бывший) среди
своих дать клич, так вот - ни у кого даже УК-НЦ не осталось в Зеленограде, а что уж про такой "редкостный" комп. говорить. Как пример, все мои УК-НЦшки пришли ко мне с разных концов нашей родины и ни одной местной ))) Из сельских школ в основном, ещё удивляюсь откуда в Питере столько Зеленоградского железа (всегда удивлялся).

(а Кванта конвейер - процы и прочее - в опр. момент вывозили фурами в неизвестном направлении, хозяева новые, печалька),
СЭМЗ (http://semzz.ru/node/3) же так опустили, что ниже только плинтус, снова печалька.

Titus
31.12.2014, 00:27
Titus, смотри ведь рано или поздно машинку кто то из Хранителей свой экз.
стартанёт и если там есть RT-11, есть же куча тестов твоих, штатных и от Patrona.
Так что пингануть этими тестами 1806ВМ2 - уже некий задел.

Все эти тесты годятся для достаточно простых устройств, коим УКНЦ никак не является. Они лишь позволяют приблизится к истине, но не узнать ее доподлинно. Настоящие, правильные тесты можно написать уже после того, как досконально известно железо.

esl
31.12.2014, 00:40
Ага, и поэтапное уточнение эмулятора это как раз путь

Vamos
31.12.2014, 01:21
ещё удивляюсь откуда в Питере столько Зеленоградского железа (всегда удивлялся).
Нууу... были люди, возили, плюс школы, еще магазин "электроника"

Titus
31.12.2014, 01:47
Ага, и поэтапное уточнение эмулятора это как раз путь
Если в начальную концепцию заложены ресурсы для данного уточнения.
Поясню на примере.
Если эмулятор, скажем, предполагает, что выполнение команд процессора реализовано с покомандной дискретностью, т.е. команда выполняется за заданное число тактов, в процессе выполнения которой активность других устройств системы не эмулируется, то сменить подобную парадигму на потактовую эмуляцию команд, тем более на дробно-тактовую можно только переписав добрую (а то и злую) половину эмулятора.

У меня, например, в EmuStudio изначально закладывалась потактовая эмуляция ВМ2, однако я не знал в точности, как работают внутренние узлы процессора, и делал эту потактовую разбивку методом отсебятины. Кроме того, я не знал таймингов других чипов УКНЦ, коих великое множество (несколько штук). Словом, сперва реверс чипов, ВМ2, а уж потом можно задумываться мне или Никите Зимину, или еще кому о действительно точном эмуляторе УКНЦ.

Patron
31.12.2014, 02:54
Если эмулятор, скажем, предполагает, что выполнение команд процессора реализовано с покомандной дискретностью, т.е. команда выполняется за заданное число тактов, в процессе выполнения которой активность других устройств системы не эмулируется, то сменить подобную парадигму на потактовую эмуляцию команд, тем более на дробно-тактовую можно только переписав добрую (а то и злую) половину эмулятора.На практике такое не всегда требуется.

Например, движок наносекундной синхронизации в эмуляторе ДВК просто не позволяет произойти событию, которое назначено на более позднюю наносекунду, чем текущая эмулируемая наносекунда. При этом источником виртуального времени является процессор ( если процессоров на шине несколько - то первый, зарегистрировавшийся на шине ). Процессор выполняет команду и если в процессе выполнения команды не было обращения к устройствам, то хотя процессор и считает виртуальное время максимально подробно, отдельно учитывая продлжительность всех микро-событий при выполнении команды - барьер синхронизации просто сдвигается сразу на столько виртуальных наносекунд, сколько заняло выполнение всей команды целиком. Если какие-то ожидавшие события при этом вышли за барьер - они все выполнятся до следующей команды процессора в порядке ожидавшегося ими виртуального времени. Если же в ходе выполнения команды на каком-то этапе происходит обращение к регистру устройства - процессор передаёт управление эмулятору устройства дважды - перед обращением и после обращения, при этом виртуальное время учитывает все микро-события произошедшие в процессоре по ходу выполнения текущей команды.

Такой подход в подавляющем большинстве случаев ( когда в одном такте больше 100 наносекунд ) на два порядка точнее потактового и практически не добавляет накладных расходов.

hobot
31.12.2014, 04:33
SOUZ-NEON_ASPEKT_DOC_- на этой дискете файловый менеджер WIND(старый знакомый! подишь ты!) под КЦГД )
Либо данный "демо диск" на кванте(в смысле компьютера(!) не завода(!)) готовили, либо я не знаю что ещё либо...


http://pic.pdp-11.ru/images/screenshot001czc.png


Кстати куча звук. файлов которые на дискетах Титуса на УК-НЦ играли,
и наверное это часть наработок пошла на сабж. аппарат, местные уже на УК-НЦ
не играют )

Titus
31.12.2014, 08:17
Например, движок наносекундной синхронизации в эмуляторе ДВК просто не позволяет произойти событию, которое назначено на более позднюю наносекунду, чем текущая эмулируемая наносекунда.
В вашей эмуляции выполнение команды процессором делится ли на составные части, такие как, например: чтение кода (со всеми составляющими - запрос к шине, ожидание), чтение данных, выполнение, запись результатов? Причем, во время каждой стадии другое устройство тоже может запросить доступ к разделяемому ресурсу (например, шине), и не одно устройство (другой процессор, контроллер ПДП и т.д.).

Patron
31.12.2014, 10:49
во время каждой стадии другое устройство тоже может запросить доступ к разделяемому ресурсуПри покомандной абстрактной эмуляции такое невозможно, но в принципе, если не стоит задача эмулировать состояние отдельных линий шины - абстрактный подход позволяет решать любые проблемы не хуже потактового, но с гораздо большей точностью и скоростью.

Причина здесь в том, что изменение состояния устройства в промежутке между взаимодействиями с другими устройствами ( включая суммарную задерку ) в принципе может быть вычислено в любой момент не только пошаговым "инкрементным" методом, но и "одним махом". В таком случае заметно сложнее вычисления, но зато гораздо выше точность и итоговая скорость.

Поскольку наиболее "мелким" масштабом взаимодействия устройств в реальных архитектурах PDP-11 является цикл доступа к шине - ничто не мешает сделать вместо покомандной - "поцикловую" абстрактную эмуляцию. Снижение быстродействия эмуляции при этом будет невелико, но сохранятся все преимущества абстрактного подхода.

Titus
31.12.2014, 14:23
При покомандной абстрактной эмуляции такое невозможно, но в принципе, если не стоит задача эмулировать состояние отдельных линий шины - абстрактный подход позволяет решать любые проблемы не хуже потактового, но с гораздо большей точностью и скоростью.

Возможно, в однопроцессорном ДВК покомандной абстрактной эмуляцией решаются все задачи 100% совместимости (возможно), но в УКНЦ такое не пройдет ввиду двухпроцессорности, ПДП видеоконтроллера и т.д.

Если потактовый эмулятор 100% совместим с оригиналом, то не может быть точность 'гораздо большая', чем у него) Есть или 100% точность, или эмулятор не точный. Это как со свежестью осетрины, или она первой свежести, или уже тухлая)

TheGWBV
31.12.2014, 14:57
Цитата:
Сообщение от nzeemin Посмотреть сообщение
Вот щас бы ПЗУшки от него -- как раз каникулы. Эмуляторщик внутри меня потирает ручки и подпрыгивает на табуретке.
Во мне тоже)

Но, ПЗУ'шек нам пока не дають)

Теоретически это может произойти до Рождества... только у меня нет программатора :v2_dizzy_snowball2:

Titus
31.12.2014, 15:04
Теоретически это может произойти до Рождества... только у меня нет программатора :v2_dizzy_snowball2:

Теоретически с этим могут подсобить многие спектрумисты и ретрокомпьютерщики из Москвы.

Patron
31.12.2014, 15:31
Возможно, в однопроцессорном ДВК покомандной абстрактной эмуляцией решаются все задачи 100% совместимости (возможно), но в УКНЦ такое не пройдет ввиду двухпроцессорности, ПДП видеоконтроллера и т.д.Теоретически при "поцикловой" эмуляции шины - никаких проблем быть не может, значит все указанные задачи могут быть решены чисто абстрактно.



Если потактовый эмулятор 100% совместим с оригиналом, то не может быть точность 'гораздо большая', чем у негоДля всех асинхронных событий при чистом потактовом подходе точность падает то такта, в результате у любых периодических событий, не кратных такту - появляется нарастающая ошибка эмуляции.

Абстрактная наносекундная эмуляция даёт на два порядка большую точность.

TheGWBV
31.12.2014, 15:31
Цитата:
Сообщение от TheGWBV Посмотреть сообщение
Теоретически это может произойти до Рождества... только у меня нет программатора
Теоретически с этим могут подсобить многие спектрумисты и ретрокомпьютерщики из Москвы.

Разыскивается доброволец для считывания ППЗУ-шек ПК-11/16К (https://yadi.sk/i/phJLetwwdd2wv).
Желательно, чтобы это произошло 3-4.01.2015 г. :)
Помимо реального ПК-11/16К добровольца посетят БК-ашница и её муж (оба айти-шники)... Пишите в ЛС :v2_rolley

dk_spb
31.12.2014, 15:34
Разыскивается доброволец для считывания ППЗУ-шек ПК-11/16К (https://yadi.sk/i/phJLetwwdd2wv).
Желательно, чтобы это произошло 3-4.01.2015 г. :)
Помимо реального ПК-11/16К добровольца посетят БК-ашница и её муж (оба айти-шники)... Пишите в ЛС :v2_rolley

Если Вы только про 1801РР1 - я сделаю до 4-го января и выложу.

Titus
31.12.2014, 15:39
Если Вы только про 1801РР1 - я сделаю до 4-го января и выложу.

Да уж хотя бы. Хотя, в идеале - считать все ПЗУподобные микрухи, но их надо выпаивать тогда.

TheGWBV
31.12.2014, 15:44
Если Вы только про 1801РР1 - я сделаю до 4-го января и выложу.

Да, речь шла пока только о них... если уж паять-выпаивать, то и декапить все БМК надо :)

Titus
31.12.2014, 15:53
А схема ПК 11/16 где-нибудь проскакивала или нет?

perestoronin
31.12.2014, 16:07
Разыскивается доброволец для считывания ППЗУ-шек ПК-11/16К.
Программатор для считывания 1801* имеется - Стерх7. Приехать можно в любое удобное время.
Любые ПЗУ могу прочитать и прошить., для этого имеются в наличии Стерх7 и ЧипПрог48.
До 12 января дома.
м. Юго-Западная, далее 15 минут пешком.
Могу и сам приехать за ПЗУшками и отвезти их обратно.
Или еще лучше - могу приехать с ноутбуком и программатором и на месте прочитать.

Titus
31.12.2014, 16:11
Программатор для считывания 1801* имеется - Стерх7. Приехать можно в любое удобное время.
До 12 января дома.
м. Юго-Западная, далее 15 минут пешком.
Могу и сам приехать за ПЗУшками и отвезти их обратно.
Или еще лучше - могу приехать с ноутбуком и программатором и на месте прочитать.

Круто) А если сделаете и вы, и dk_spb, будет вдвойне точнее, т.к. погрешности считывания друг другом самопроверятся)

nzeemin
31.12.2014, 18:52
Почитал 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-й бит.

TheGWBV
31.12.2014, 19:20
А схема ПК 11/16 где-нибудь проскакивала или нет?

Увы, среди отсортированной части бумажных носителей не встречалась, а та что есть, присутствует и на образах дискет.

Из новостей -- образ пятой дискеты...
SOUZ-NEON_ASPEKT_GAMES_.IMG (https://yadi.sk/d/RmXReYvhdjCC5) :)

Titus
31.12.2014, 19:23
Почитал PK11.txt -- отличный документ.
Интересно про эмуляцию терминала на регистрах 177560-177566. Поскольку процессор тоже один, это очень похоже на то что было в Немиге -- машина сама для себя терминал. Самое интересное будет в реализации обработчика HALT -- там же нужно определять почему в этот раз его вызвали -- команда HALT или сигнал HALT или приход символа для отображения.

Без схемы и всех прошивок это грозит только самой примерной эмуляцией, на 'посмотреть', что это за машинка.

nzeemin
31.12.2014, 20:14
Образы выложенных здесь дискет соответствуют обычному формату 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> или
б) выключить и включить питание.

Titus
31.12.2014, 20:37
Образы выложенных здесь дискет соответствуют обычному формату RT-11, в частности моя утилита RT11DSK их разбирает.

Похоже, Союз-Неон использовал "Основную кодировку" -- в такой кодировке лежат файлы READ.ME на дискетах.

За исключением псевдографики. Она у них какая-то своя.

А, нет, вроде полностью соответствует "Основной кодировке".

nzeemin
01.01.2015, 15:44
Не нашёл перекодировщика из Основной кодировки -- набил руками.
В аттаче Gost.exe -- принимает первым параметром файл в Основной кодировке, выдаёт файл с тем же названием и расширением .txt в кодировке UTF-16.
Для примера приложил TO.txt раскодированный из TO.DOC.

Titus
01.01.2015, 19:08
Я тоже вчера озадачился перекодировкой из Основной кодировки, но не в UTF, а в DOS (мне удобнее, когда на один символ приходится один байт).
После написания перекодировщика и анализа текстов, понял, что в кодировке, использующейся на ПК11 перепутаны символы с кодами 0xF8 и 0xF9 (стрелочка вверх и стрелочка вниз). Пришлось все доки конвертить заново. В итоге систематизировал и перевел всю документацию с дисков TheGWBV.

Документация на ПК-11 (http://sderni.ru/256095)

p.s.: Документ 'Архитектура микро-ЭВМ ПК-11.txt' в формате Win-1251, т.к. он ходил по сети ранее.

nzeemin
01.01.2015, 22:31
Не знаю, заметили вы или нет интересный момент -- часть разработчиков ОС "Аспект" -- это ребята из "ASP Corp.", известной несколькими качественными играми для БК/ДВК/УКНЦ.


║ Операционная система "АСПЕКТ" ║
║ Гречишкин Александр, Коломейцев Артём, Сапронов Максим, Мейнгардт Павел ║


http://www.old-games.ru/articles/53651.html


[А.Гречишкин] Мы принимали участие в разработке еще одного детища советского аппаратостроения - Союз-Неон. Для него мы написали ОС "Аспект". Первая графическая мультизадачная ОС для советских компьютеров. За основу был взят интерфейс Mac OS, с которой мы познакомились в 1986 году в Троицке, в лаборатории одного из ядерных институтов.

[П.Успенский] Сейчас уже трудно вспомнить детали, но я до сих пор горжусь тем, что мы участвовали в создании первых советских персоналок. Недавно посмотрел фильм “Micro Men” про историю создания английских персоналок - напомнило то, что было у нас. Многие сейчас знают про Sinclair, Commodore и Amstrad, но в Зеленограде в те же самые годы были компьютеры не хуже. И сейчас трудно поверить, но в них не было ни одного импортного компонента, ни одной строчки кода, написанной не в Союзе.

Titus
02.01.2015, 00:14
Не знаю, заметили вы или нет интересный момент -- часть разработчиков ОС "Аспект" -- это ребята из "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)...

Как там на счет странички с пометками карандашом?

nzeemin
02.01.2015, 01:31
Интересно, кто-нибудь заметил, что архитектура ПК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.

MM
02.01.2015, 01:39
Насчет различий в ПК11/хх - после разработки УКНЦ были сделаны прототипы нескольких машинок в похожих корпусах, но с разным обвесом ( с минимумом БМК ) - типа кооператоры старались ( точнее, то, что было до кооператоров - центры "припудривания моска и обналички" - НТТМ ). Подробности надо узнавать у тех, кто тогда был в Зеленограде на руководящих позициях - например, уважаемый Юрий Леонидович Отрохов и некотрые др. господа.

CodeMaster
02.01.2015, 09:34
но с разным обвесом ( с минимумом БМК )

Да я вот тоже заменил, но в 11/16 нет БМК, только РТшки и т.п. Чем была вызвана такая резкая смена курса после УК-НЦ?

Titus
02.01.2015, 14:08
Как там обстоит процесс с праздничным считыванием ПЗУ'шки от ПК-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 января у меня есть время на хобби, подъеду на место сам.

MiX
02.01.2015, 15:32
У меня тоже есть Стерх, если что.

nzeemin
02.01.2015, 16:05
Да, и у кого-нибудь из владельцев ПК-11/16 он включается? Это на предмет сделать фотки рабочего экрана.

Вот тут есть некий ЛёхаБашой, возможно у него машинка рабочая: http://bk0010.org/forum/?id=3013

dk_spb
02.01.2015, 18:23
И что Вы такие нетерпеливые?? Мне вот за два года никто распайку БП так и не дал....

На отсутствующем на фото шильдики разъемы подписаны (начиная с DB-9):
мышь_принтер_монитор_НГМД/НЖМД_RS-232C

dk_spb
02.01.2015, 18:45
Кстати, если верить легенде, то фото экземпляра в этой теме (серийник 197) - фото чуть ли не последнего (из 200) экземпляра. У меня серийник более чем на сотню меньше.
Я так понимаю что БП дает 5, 12 и -12. Вторые два с большой долей вероятности для RS232. Соответственно комп должен работать и от одного питающего.

Titus
02.01.2015, 19:08
И что Вы такие нетерпеливые?? Мне вот за два года никто распайку БП так и не дал....

Спасибище)
Теперь для проверки абсолютной правильности, хорошо бы, чтобы TheGWBV считала свои ПЗУ у Пересторонина.

dk_spb
02.01.2015, 19:46
Мой комп не запустился. Я взял G с 7-го пина, синхру с 9-го и землю с8-го.
Замешал G и синхру через резистор и подал на телевизор. Что-то показывает, но картинка неустойчивая (и вертикальные полосы в левой половине экрана). Дальше особо разбираться пока некогда
http://oldpc.su/12/DSC_0212.JPG
http://oldpc.su/12/DSC_0214.JPG

Titus
02.01.2015, 19:59
Интересно, что в ROM'e от dk_spb есть всго лишь одна осмысленная текстовая строчка и она гласит... 'PK11/12'.

dk_spb
02.01.2015, 20:07
Интересно, что в ROM'e от dk_spb есть всго лишь одна осмысленная текстовая строчка и она гласит... 'PK11/12'.
ЭЭЭ. Так это оно у Вас как программатор видит.
Вот тут в нормальном виде, но строк вообще нет.....

Titus
02.01.2015, 20:19
ЭЭЭ. Так это оно у Вас как программатор видит.
Вот тут в нормальном виде, но строк вообще нет.....

Да нет, как раз это в инверсном, а первое было в нормальном.

dk_spb
02.01.2015, 20:26
Titus, Для всех РЕ2 чтобы увидеть содержимое (как проц) надо было проинвертить по адресу и по данным. Думаете тут не так?

Titus
02.01.2015, 20:30
Titus, Для всех РЕ2 чтобы увидеть содержимое (как проц) надо было проинвертить по адресу и по данным. Думаете тут не так?

Не знаю, как для всех, но в этой есть совершенно осмысленная строка длиной 10 символов: 'PK11/12 _>' какие могут быть перепутки? Да и таблица векторов нормальная по нижним адресам проглядывается.

dk_spb
02.01.2015, 20:36
Если младший файл проинвертировать только по адресам, то в конце тоже получается строка ЖДИ (с чередованием через 0xE2, что вполне может быть атрибутом). так что поиск строк - это дело такое ;-)

Alex_K
02.01.2015, 20:49
Titus, Для всех РЕ2 чтобы увидеть содержимое (как проц) надо было проинвертить по адресу и по данным. Думаете тут не так?
Да вот и не так. То что вы выложили в формате программатора, как раз самое нормальное. В ROM0.RR1 осмысленный код, видны вектора HALT-режима, есть эмулятор FIS. Но так только до адреса 011640 включительно, далее белиберда, такое ощущение, что код упакован и куда-то распаковывается. Такая же ситуация с ROM1.RR1. Естественно, сложно представить, что такую крутую систему упаковали всего в 16 Кбайт. Наверное сжали.

dk_spb
02.01.2015, 21:00
Как скажете ;-)

Titus
02.01.2015, 21:00
Да вот и не так. То что вы выложили в формате программатора, как раз самое нормальное. В ROM0.RR1 осмысленный код, видны вектора HALT-режима, есть эмулятор FIS. Но так только до адреса 011640 включительно, далее белиберда, такое ощущение, что код упакован и куда-то распаковывается. Такая же ситуация с ROM1.RR1. Естественно, сложно представить, что такую крутую систему упаковали всего в 16 Кбайт. Наверное сжали.

Логично, что упаковали, ибо нет никаких строк текста, кроме PK11/12, а так же никакой графики от шрифтов.

Alex_K
02.01.2015, 21:14
Могу ещё сказать, что прошивку компилировали в виде обычного SAV-файла, его же и прошивали. По смещению 040 находится 1 - файл без точки старта, по смещению 050 число 037714 - конечный адрес, а в ячейках 0360 и 0362 заполнена битовая маска на 32 блока, а это как раз 16 Кбайт.

Titus
02.01.2015, 21:16
А с какого адреса стартует ПЗУ?

dk_spb
02.01.2015, 21:16
Может еще и по картинке будут какие-нибудь мысли?

Alex_K
02.01.2015, 21:23
А с какого адреса стартует ПЗУ?
Стартовый адрес ПЗУ равен нулю. А в ячейках 0 и 2 содержится вектор начального пуска - 0500 и 0600. Так что при включении питания начинается исполнение с адреса 0500. Исполнение начинается в HALT-режиме с запрещёнными прерываниями.

Вот только байт-коды у ПЗУ какие-то странные.

Titus
02.01.2015, 21:26
Вот только байт-коды у ПЗУ какие-то странные.

Чем странные?

Alex_K
02.01.2015, 21:31
Чем странные?

Они у обеих ПЗУ одинаковые - 0xFF 0xFF. А должны быть разные, ведь они сидят по разным адресам.

Titus
02.01.2015, 21:32
Они у обеих ПЗУ одинаковые - 0xFF 0xFF. А должны быть разные, ведь они сидят по разным адресам.

А где эти байт-коды прописаны?

Alex_K
02.01.2015, 21:34
А где эти байт-коды прописаны?
В самом конце файла два последних байта.

dk_spb
02.01.2015, 21:37
С байткодами известный косяк стерха. У младшей ПЗУ он 00, у второй - 01

Alex_K
02.01.2015, 21:39
С байткодами известный косяк стерха. У младшей ПЗУ он 00, у второй - 01
Т.е. получается одна сидит на адресе 0160000, а вторая - на 0140000?

dk_spb
02.01.2015, 21:41
Т.е. получается одна сидит на адресе 0160000, а вторая - на 0140000?
Судя по ТО пзу сидят с 0 по 40000

Alex_K
02.01.2015, 21:48
Судя по ТО пзу сидят с 0 по 40000
Судя по ТО в Союз-Неон используется весьма много микросхем 580-й серии, а они работают с прямыми адресами и данными, а не с инверсными, как в МПИ. Также, судя по ТО, их программирование осуществляется прямо, а не инверсно. Исходя из этого, я делаю вывод, что на шине адрес-данные присутствуют двунаправленные шинные усилители с инверсией сигнала.
Да, ПЗУ настроены на адреса 0140000 и 0160000, при инверсии соответственно получается 020000 и 0.

dk_spb
02.01.2015, 21:53
Alex_K, Спасибо за разъяснения!!!

Titus
02.01.2015, 22:10
Теперь, когда ПЗУ'шки есть, Никита, наверное, уже написал эмулятор. Но почему-то не выкладывает, и не дает поиграть в тамошние игрушки (

Alex_K
02.01.2015, 22:18
Теперь, когда ПЗУ'шки есть, Никита, наверное, уже написал эмулятор. Но почему-то не выкладывает, и не дает поиграть в тамошние игрушки (
Так вроде сперва в EmuStudio появляется.
Помните сколько всех нас мурыжили с эмулятором УКНЦ, а потом выложили, а затем появилось и КЦГД, и КСМ+КГД, и 15-ИЭ-00-013... Отдельной веткой был сделан МС-0515.
Так что ждём.

nzeemin
02.01.2015, 22:21
Теперь, когда ПЗУ'шки есть, Никита, наверное, уже написал эмулятор. Но почему-то не выкладывает, и не дает поиграть в тамошние игрушки (

Не, я только успел с ПЗУшками повозиться и тоже пришёл к выводу что их надо использовать как есть.
Начал делать проект эмулятора -- BKBTL как основа "материнка + один процессор", плюс заменил процессор, взяв его из UKNCBTL.
На очереди поправить код маппинга памяти чтобы хотя бы ПЗУ правильно было видно.

Titus
02.01.2015, 22:23
Так вроде сперва в EmuStudio появляется.
Помните сколько всех нас мурыжили с эмулятором УКНЦ, а потом выложили, а затем появилось и КЦГД, и КСМ+КГД, и 15-ИЭ-00-013... Отдельной веткой был сделан МС-0515.
Так что ждём.

EmuStudio - это так, побаловаться. Пока это не серьезная система. Нету всяких менюшков, сервисов, настроек.

С УКНЦ я не мурыжил, а жадничал. Потом решил не жадничать и все сразу отдавал.

p.s.: Еще там Немига и Э-85. А так же Spectrum. Словом, смесь хорька, барсука и штопора.

---------- Post added at 23:23 ---------- Previous post was at 23:22 ----------



На очереди поправить код маппинга памяти чтобы хотя бы ПЗУ правильно было видно.

Хуже, всего, что, похоже, нет никаких док на этот ихний контроллер гибких (и жестких) дисков.

dk_spb
02.01.2015, 22:33
Хуже, всего, что, похоже, нет никаких док на этот ихний контроллер гибких (и жестких) дисков.
Так вроде в ТО прописаны порты ВГ7 и ВГ72?
И в файлике VPFDHD.TXT про всё расписано

nzeemin
02.01.2015, 22:41
В аттаче версия 1.0.1 -- сделана только ради режима отладки, в котором можно смотреть ПЗУ и прошагать первые шаги.
Смаплено ПЗУ в режиме HALT, больше пока ничего.
Конечно, загрузить что-либо в этой версии пока не получится.

nzeemin
02.01.2015, 23:20
В отладчике вижу как проходится тест памяти...

---------- 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

Titus
02.01.2015, 23:22
В аттаче версия 1.0.1 -- сделана только ради режима отладки, в котором можно смотреть ПЗУ и прошагать первые шаги.
Я тогда не буду спешить с эмулем, а то еще забросишь свой)

nzeemin
02.01.2015, 23:31
Исходники сразу коммичу сюда:
https://code.google.com/p/neonbtl/source/list

---------- Post added at 00:31 ---------- Previous post was at 00:30 ----------


Я тогда не буду спешить с эмулем, а то еще забросишь свой)

Да я скорее по времени ограничен -- 12 января на работу, ну и про семью не стоит забывать.

Titus
02.01.2015, 23:38
Да я скорее по времени ограничен -- 12 января на работу, ну и про семью не стоит забывать.

А у меня работа, реверс ХМ2-001, ремонт и куча еще всякой всячины.

dk_spb
02.01.2015, 23:46
Вообщем достал я осцил с полочки. У моего неончика похоже не стартует проц - на ПЗУшных ногах никакого шевеления. Соответственно и синхросигнал кривой.
Убираю в долгий ящик, откуда сегодня его, по многочисленным просьбам, достал.

Alex_K
02.01.2015, 23:49
... У моего неончика похоже не стартует проц ...
А что наблюдается на ногах ACLO и DCLO?

dk_spb
02.01.2015, 23:51
Alex_K, Для этого требуется более глубокая разборка, на которую пока нет ни времени ни места. И сначала буду см1425 (тоже проц не стартует) оживлять. На неё бы время найти

Denkixot
02.01.2015, 23:55
" p.s.: Еще там Немига и Э-85. А так же Spectrum. Словом, смесь хорька, барсука и штопора."

Раз там эмуляция Э85 есть (нормально работает?), дайте ссылку, откуда скачать?

Titus
03.01.2015, 00:01
" p.s.: Еще там Немига и Э-85. А так же Spectrum. Словом, смесь хорька, барсука и штопора."

Раз там эмуляция Э85 есть (нормально работает?), дайте ссылку, откуда скачать?

Нет, это не полноценный Э-85, а просто режим совместимости для программ от электроники, которые под RT-11. Иными словами, rt-шные проги от Э-85 можно запускать под EmuStudio-УКНЦ (я запускал игры).

nzeemin
03.01.2015, 01:39
Занятно. Вот кусок трассы:


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)

Не понял пока намеренно так сделано или результат ошибки.

nzeemin
03.01.2015, 17:50
Инициализация портов при старте машины:


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 -- разбираюсь почему так.

nzeemin
03.01.2015, 21:32
Разобрался почему выходили не туда -- при инициализации портов была попытка занести данные в несуществующий порт и это приводило к каким-то процедурам обработки такой ошибки.
Всего выявилось три неописанных в спеках порта -- 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

Titus
03.01.2015, 21:53
Не, ну как это не описан??? Это контроллер прерываний.


SNDCSR = 161000
PICMR = 161002

А второй неописанный порт 161412 и 161413 (да, да, обрати внимание, идет СЛОВНАЯ запись по нечетному адресу) - это скорее всего часы-календарь 512ВИ1, т.к. перед данной записью и после выключаются и включаются часы.

nzeemin
03.01.2015, 22:01
да, обрати внимание, идет СЛОВНАЯ запись по нечетному адресу
А как это должно отрабатывать?

Patron
03.01.2015, 22:05
А как это должно отрабатывать?Линия A0 в Q-Bus на адрес не влияет. Она используется только в единственном случае, при записи байта, и то не для передачи младшего бита адреса, а для передачи смещения к записываемому байту в передаваемом слове данных.

Titus
03.01.2015, 22:07
А как это должно отрабатывать?

Пока что не знаю. Подозреваю (в теории), т.к. не смотрел код дальше, что на ПК-11 не используется байтовая запись в регистры железа, а когда надо записать байт, пишут слово по нечетному адресу.

Patron
03.01.2015, 22:15
Пока что не знаю. Подозреваю (в теории), т.к. не смотрел код дальше, что на ПК-11 не используется байтовая запись в регистры железа, а когда надо записать байт, пишут слово по нечетному адресу.Это как раз потому, что при байтовых операциях на Q-Bus всегда выставляется слово, но если A0 == 1 - передаваемый байт содержится в старшем байте этого слова.

Если же на шине сидит настоящее байтовое устройство, которое понимает значение A0, не как смещение в слове, а как адрес байта - записать байт в байтовый регистр с нечётным адресом у такого устройства можно только обсуждаемым способом.

Alex_K
03.01.2015, 22:16
А как это должно отрабатывать?
Так же, как и обычно. Просто на шину выставляется нечетный адрес. В качестве примера параллельной порт в УКНЦ, сама микросхема из 580-й серии, 8-разрядная. Схемотехники сделали так, что она откликается на адреса 177100, 177101, 177102, 177103. В данном случае обязательно нужно обращаться словной командой по нечетному адресу, в противном случае байт передавался бы в старших разрядах при нечетном адресе.

Titus
03.01.2015, 22:20
Так же, как и обычно. Просто на шину выставляется нечетный адрес. В качестве примера параллельной порт в УКНЦ, сама микросхема из 580-й серии, 8-разрядная. Схемотехники сделали так, что она откликается на адреса 177100, 177101, 177102, 177103. В данном случае обязательно нужно обращаться словной командой по нечетному адресу, в противном случае байт передавался бы в старших разрядах при нечетном адресе.

Так чем в итоге на УКНЦ отличается байтовая запись по нечетному адресу от словной по нечетному? И почему нельзя обойтись байтовой?

Patron
03.01.2015, 22:25
почему нельзя обойтись байтовой?Потому что при байтовой записи всё равно на шину выставляется слово, но если при этом A0 == 1, то записываемый байт передаётся не по линиям D0-D7, а по линиям D8-D15.

Байтовое устройство не анализирует линии D8-D15, поэтому чтобы записать байт в регистр такого устройства с нечётным адресом - нужно писать слово по нечётному адресу.

Тогда передаваемый байт будет на линиях D0-D7, что и требуется.

Alex_K
03.01.2015, 22:28
Так чем в итоге на УКНЦ отличается байтовая запись по нечетному адресу от словной по нечетному? И почему нельзя обойтись байтовой?
Так вроде уже объяснили. Ещё раз. При словной записи на шину выставляется сам нечетный адрес, а после записываемое слово, при этом младший байт будет в младших разрядах, а старший байт в старших разрядах, как все и надо. Но 580-я серия 8-разрядная, потому она старший байт игнорирует. А вот при байтовой записи по нечетному адресу записываемый байт будет в старших разрядах, а в младших будет ноль (во всяком случае для 1801ВМ2), потому 580-я серия получит в качестве данных ноль.

Patron
03.01.2015, 22:32
в младших будет ноль (во всяком случае для 1801ВМ2)В этом, кстати - есть некоторые сомнения.

Зачем тогда 1801ВМ2 выполняет MOVB в цикле DATIOB вместо цикла DATOB, если не для того, чтобы в "ненужной половине слова" был не ноль, а исходное значение, прочитанное в первой фазе цикла DATIOB.

Alex_K
03.01.2015, 22:40
В этом, кстати - есть некоторые сомнения.

Зачем тогда 1801ВМ2 выполняет MOVB в цикле DATIOB вместо цикла DATOB, если не для того, чтобы в "ненужной половине слова" был не ноль, а исходное значение, прочитанное в первой фазе цикла DATIOB.
Я эти сомнения уже развеял для себя. В УКНЦ куча регистров, которые игнорируют сигнал WTBT. Есть регистры адреса планов, 16-разрядные, все разряды доступны и по записи и по чтению. При байтовой записи по четному адресу записывался младший байт, а старший очищался, при байтовой записи по нечетному адресу наоборот - записываемый байт записывался в старшую часть, а младшая обнулялась.
Еще пример -1801ВП1-065. Сама микросхема сигнал WTBT не обрабатывает. При записи в регистр данных передатчика по нечетному адресу передавался ноль, а если бы MOVB посылал младшую часть, то передавался бы вектор прерывания, который читается из регистра данных передатчика.

nzeemin
03.01.2015, 22:50
В общем тест памяти у меня прошёлся и вроде как без ошибок.
При этом на экране должно что-то выводиться -- так что можно заняться экраном.


; Старт машины
; Цикл инициализации портов ввода-вывода
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

Titus
04.01.2015, 02:02
Не, ну как это не описан??? Это контроллер прерываний.


SNDCSR = 161000
PICMR = 161002


Ой, они с названиями в ТО облажались)
На самом деле регистры называются:


piccsr == 161000 // Контроллер прерываний 8259
picmr == 161002


---------- Post added at 03:02 ---------- Previous post was at 01:08 ----------

Уже построил изображение по таблице, что строится подпрограммой по адресу @#007236?

Titus
04.01.2015, 06:48
У меня уже экранчик работает:
http://s019.radikal.ru/i601/1501/56/0dbb21eae49b.png
Можно посмотреть, как компьютер сперва тестит медленно и тщательно первые 256Кб памяти, а потом остальные 4Мб уже по-быстренькому.

А более ничего не написал пока)

p.s.: Никита, подтягивайся ;-)

Скачать ТУТ (http://sderni.ru/256388)

Titus
04.01.2015, 17:19
Нашел после распаковки ПЗУ интересную строчку)


PC  Window-system

Vamos
04.01.2015, 17:25
из переписки которую я выкладывал, написано что поддержка окошек в ПЗУ сделана

Titus
04.01.2015, 18:31
И вот такой у ПК-11 интересный шрифтик:
http://s017.radikal.ru/i437/1501/33/757a04e05830.png
Как ранее я говорил - стрелки 'вверх' и 'вниз' относительно 'Основной кодировки' перепутаны.

---------- Post added at 19:31 ---------- Previous post was at 18:29 ----------


из переписки которую я выкладывал, написано что поддержка окошек в ПЗУ сделана

Что за переписка?

Vamos
04.01.2015, 18:41
Что за переписка?
http://zx-pk.ru/showpost.php?p=766508&postcount=47
Цитата:
"Аппаратная многозадачность! Поддержка винтов до 80 мегабайт.
Многоголосный звук. Графика 56000 цветов. Прошитая в ПЗУ многооконность."

Titus
04.01.2015, 18:44
Дошел до интересного места, скорее всего это менеджер переключения процессов.
Там делается так: устанавливаются биты VIRQ и IHLT, затем очищаются регистры HR0, HR1, и затем дается команда STEP. Что эта команда должна в подобном случае сделать?
А до этого еще и стек устанавливается на 0x0000.

Vamos
04.01.2015, 18:50
Вообще-то 65536 цветов.
переписка не моя, за что купил за то и отдаю :)

MiX
04.01.2015, 18:58
Переписка отсюда 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 повторить. :)

Alex_K
04.01.2015, 19:07
Там делается так: устанавливаются биты VIRQ и IHLT, затем очищаются регистры HR0, HR1, и затем дается команда STEP. Что эта команда должна в подобном случае сделать?
Перед STEP должны устанавливаться регистры CPC и CPSW соответственно командами WCPC и WCPS. Установку этих регистров я видел в открытой части ПЗУ, ставятся на CPC=040040 и CPSW=0.

А так STEP выполняет одну команду с запретом всех прерываний. Т.е. команда 100% исполнится, а далее уже будут обрабатываться прерывания, ну если есть. Если же прерываний нет, то исполнение пойдет дальше.

Titus
04.01.2015, 19:15
Дошел до интересного места, скорее всего это менеджер переключения процессов.
Там делается так: устанавливаются биты 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 (в УКНЦ она не понадобилась мне).

Alex_K
04.01.2015, 19:17
Да, PC' устанавливается на 0x0200, а PSW' на 0x0000.
Titus, моя твоя не понимай, используйте пожалуйста для PDP-11 восьмеричную систему. Значит CPC=01000, а CPSW=0. Переходим в режим USER по адресу 01000, первая команда 100% исполняется.

Titus
04.01.2015, 19:20
Titus, моя твоя не понимай, используйте пожалуйста для PDP-11 восьмеричную систему. Значит CPC=01000, а CPSW=0. Переходим в режим USER по адресу 01000, первая команда 100% исполняется.

А когда происходит обратный возврат в HALT-режим на команду идущую после STEP? Или он вообще не происходит?

Alex_K
04.01.2015, 19:23
Дело в том, что пока что у меня STEP вообще не написана для ВМ2 (в УКНЦ она не понадобилась мне).
Ну в УКНЦ она используется в пультовом отладчике. А так я как-то выкладывал своё описание 1801ВМ2, которое составил по опыту работы, там система команд весьма подробно описана со всякими тонкостями.

---------- Post added at 19:23 ---------- Previous post was at 19:20 ----------


А когда происходит обратный возврат в HALT-режим на команду идущую после STEP? Или он вообще не происходит?
Если мы в режиме USER, то возврат в HALT произойдет только по прерыванию - исключению (двойное зависание, ошибка приема адреса вектора прерывания), активна нога HALT процессора, ну или по команде HALT.

Titus
04.01.2015, 19:37
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'ов.

Alex_K
04.01.2015, 19:49
Интересно, зачем в макросах после обращения к эмулируемым регистрам стоят NOP'ы? Ведь всякие RT-шные программы будут к этим же регистрам обращаться безо всяких NOP'ов.
Нормальная программа использует макросы и системные запросы, а не лезет напрямую к регистрам. А NOP наверное нужен для того, что после обращения к регистру появится сигнал HALT, но прерывание произойдет после исполнения следующей команды. Это как при исполнении BIS #100,@#177564 прерывание по вектору 64 произойдет не после неё, а после следующей команды.

---------- Post added at 19:49 ---------- Previous post was at 19:46 ----------


Нашел после распаковки ПЗУ интересную строчку)
А распакованным кодом не поделитесь? И куда он распаковывается? Каков размер после распаковки?

Titus
04.01.2015, 20:38
А распакованным кодом не поделитесь? И куда он распаковывается? Каков размер после распаковки?

Распаковывается в разные области ОЗУ. Размер затрудняюсь сказать.

Вот (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 (эмуляции регистров ввода-вывода), его данные активно считываются и куда-то к системным переменным приплюсовываются.

nzeemin
05.01.2015, 03:24
p.s.: Никита, подтягивайся ;-)

У меня пока не так всё радостно -- нечто выводится, но не совсем как надо:

https://img-fotki.yandex.ru/get/16189/7448436.8/0_94b05_74581c9d_orig.png (https://fotki.yandex.ru/users/nzeemin/view/609029)

Не разобрался пока в устройстве экрана.
В частности, не понял как определяется количество "видео-отрезков" в строке.

Titus
05.01.2015, 04:00
Не разобрался пока в устройстве экрана.
В частности, не понял как определяется количество "видео-отрезков" в строке.

Строка состоит из 26 столбцов. Например, в режиме с разрешением 832 пикселя, каждый столбец - это 832/26 = 32 пикселя.

Все видеоотрезки выравнены на границу столбцов, и имеют ширину, исчиляемую столбцами.
Видеоотрезков в строке столько, сколько умещается в ширину экрана. Т.е. если описан всего один видеоотрезок с длиной, скажем 30 столбцов, то отображено будет 26 столбцов и все.
Словом, пока вся ширина экрана не заполнена информацией, будут выбираться из памяти все новые и новые видеоотрезки.

Кстати, замечу, что целесообразно вести исчисление не в столбцах, а полустолбцах, т.к. каждый новый отрезок, кроме крайнего левого в первом послустолбце имеет 3 цвета относящиеся к рисованию бордюра (аппаратная реализация оконной системы).


---------- Post added at 05:00 ---------- Previous post was at 04:58 ----------

А я пока застрял на многозадачности.

Очень навороченная штука совмещенная с эмуляцией регистров различных устройств.

Пока не разберусь в точности, как работает система прерываний, и какую роль в этом играет таймер - дальше не продвинуться.

nzeemin
05.01.2015, 13:32
Пока без бордюров и палитр, но всё же получил изображение:

https://img-fotki.yandex.ru/get/16143/7448436.8/0_94b20_de2cd24a_orig.png (https://fotki.yandex.ru/users/nzeemin/view/609056)

Titus
05.01.2015, 14:02
Пока без бордюров и палитр, но всё же получил изображение

Если ты возьмешь мой скриншот и задерешь гамму в каком-нибудь вьювере, то увидишь перед надписью 3d4096 красный квадрат - это и есть фоновой бордюр цвета палитры-0 (т.е. общий бордюр для всего экрана).

Vamos
05.01.2015, 14:27
А я пока застрял на многозадачности.

Очень навороченная штука совмещенная с эмуляцией регистров различных устройств.
Наверное 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

Titus
05.01.2015, 14:31
Vamos, эта информация ничего нового не дает) И все эти особенности с обработчиками по HALT описаны в ТО.

Да, в общем, это даже понятно, как сделано. Не понятны пока что некоторые неописанные нюансы, с которыми пытаюсь разобраться, а так же, как описывал ранее, роль таймера и контроллера прерываний в диспетчере переключения задач.

Alex_K
05.01.2015, 14:52
Не понятны пока что некоторые неописанные нюансы, с которыми пытаюсь разобраться, а так же, как описывал ранее, роль таймера и контроллера прерываний в диспетчере переключения задач.
Ну с контроллером прерываний вроде ясно. Он из 580-й серии, поддерживает восемь запросов. При любом запросе выставляет сигнал HALT для процессора.
Вот только как с него потом прочитывают команду CALL и адрес вызова? А ведь в адресе содержится вектор. При инициализации контроллер программируется на одну штуку с интервалом 8 байт и адресом=0. Потом вроде бы все входы маскируются.

Vamos
05.01.2015, 15:36
роль таймера и контроллера прерываний в диспетчере переключения задач
А в wibdows как многозадачность сделана?

"лишние" ноги на 1806, одна - еще один WRQ и вторая - WIR (вход сигнала "запрос на радиальное прерывание")

Alex_K
05.01.2015, 15:56
А в wibdows как многозадачность сделана?

"лишние" ноги на 1806, одна - еще один WRQ и вторая - WIR (вход сигнала "запрос на радиальное прерывание")
Эти ноги используются для запросов к "окну", вектор - 250, как при MMU. Но в ПК-11/16 все "регистры" эмулируемых устройств содержаться с адреса 0170000, и к "окну" это никакого отношения не имеет. Надо схему, может "окно" и не используется.

Titus
05.01.2015, 20:30
Дописал корректное обращение к регистрам железа через всякие чтение-модификация-запись и запись/чтение в режиме USER, и появилось вот что (замечу, прерывания и таймеры так и не реализованы, а многозадачность и многооконность уже работает):

http://s014.radikal.ru/i327/1501/5f/361dc5fbfb0b.png

Кстати, буковка L после 4096 означает (вероятнее всего) попытку загрузки с диска, т.к. она появляется когда программа начинает обращаться к регистрам контроллера FDD.

Titus
05.01.2015, 22:35
На самом деле, весьма интересно делать эмуль машинки, которую в рабочем состоянии никто (или почти никто) в глаза не видел, а кто видел, тот не имеет фоток, чтобы показать. При этом имеешь лишь ПЗУ и ТО (написанное кратенько, но пока что достаточно, чтобы понимать, что к чему). И в итоге на экране проявляется и расшифровывается загадка)

Кстати, к текущему моменту реально работает многооконность и многозадачность (запущена куча процессов с разными приоритетами). Только многозадачность как бы замерла, ввиду отсутствия механизмов (таймера/прерываний) переключающих процессы. Сам удивлен, что при таких недоработках это еще и работает.

Titus
06.01.2015, 03:53
Возник такой вопрос - если режим эмуляции (прерывание HALT при обращении к адресам 170000-177777) и контроллер прерываний ВН59A сидят на одной и той же линии HALT, как происходит выбор приоритета между ними двоими?
Например, в ситуации, когда только что выполнилась команда обратившаяся к адресу > 170000, и одновременно контроллер прерываний ВН59А дал запрос на какое-то прерывание от одного из своих 8 устройств. Какое будет в приоритете?

Titus
06.01.2015, 09:55
Думаю, что приоритет будет одинаков, и линии запроса прерывания HALT от этих устройств обьединены по OR.

Titus
06.01.2015, 17:11
С прерываниями, если что, разобрался. С таймерами пока нет)

Alex_K
06.01.2015, 17:19
С прерываниями, если что, разобрался. С таймерами пока нет)
Ну и что там с ними?

Titus
06.01.2015, 17:22
Ну и что там с ними?

Как оформится в виде стабильной системы - опишу)
Упрощенно говоря - все прерывания - от эмулятора устройств, от контроллера ВТ59, от команды HALT (и, возможно, и еще от чего-то) вызывают один и тот же обработчик, а он уже по куче разных флагов, таблиц и т.д. разруливает эту ситуацию.

Alex_K
06.01.2015, 17:31
Как оформится в виде стабильной системы - опишу)
Упрощенно говоря - все прерывания - от эмулятора устройств, от контроллера ВТ59, от команды HALT (и, возможно, и еще от чего-то) вызывают один и тот же обработчик, а он уже по куче разных флагов, таблиц и т.д. разруливает эту ситуацию.
Ну это-то понятно, что вектор один - SEL170. А вот интересна работа с ВТ59, он же по идее 580-му процессору передает команду CALL с адресом, а здесь-то как сделали?

Titus
06.01.2015, 17:40
Ну это-то понятно, что вектор один - SEL170. А вот интересна работа с ВТ59, он же по идее 580-му процессору передает команду CALL с адресом, а здесь-то как сделали?

Это с 8259 передает как CALL, а 8259A передает как обычный номер вектора.

Alex_K
06.01.2015, 18:24
Это с 8259 передает как CALL, а 8259A передает как обычный номер вектора.
Ну прямым аналогом 8259A у нас был 1810ВН59А. А этот чип инициализируется как обычный 8259.
Таки каким же образом передается вектор, ну или узнается по какой линии прерывание?

Titus
06.01.2015, 20:45
Ну прямым аналогом 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

Разобрался с клавой)

Ну и накрутили)

Оказывается - это не вес и не разряд, а маска нажатой клавиши.

Titus
07.01.2015, 03:25
Похоже, без загрузки системы с дискеты, дальше синего экрана и показывалки кодов клавиш в верхнем правом углу, не продвинешься.

Titus
07.01.2015, 15:30
Никита, ты свой эмуль забросил? Есть какие наработки?

Titus
08.01.2015, 14:17
Интересно, что контроллер HDD и FDD дейсвительно совмещен, и буферное ОЗУ для сектора используется не только для HDD, но и для FDD. Т.е. при загрузки с дискеты быстродействие системы практически не тратится.

hobot
08.01.2015, 15:57
Т.е. при загрузки с дискеты быстродействие системы практически не тратится.
Многозадачный флоппик? )

Открылся файл PKRAM.SCM с образа SOUZ-NEON_ASPEKT_DOC_.dsk
УК-НЦшной версией редактора CIR

http://pic.pdp-11.ru/images/ciruknc.png

:redface:

Titus
08.01.2015, 16:49
Многозадачный флоппик? )

Многозадачная операционная система. Причем, весьма неплохо (судя по всему) написана.

p.s.: Интересно, в который раз я ругаюсь на твои нечитаемые скриншоты? )

hobot
08.01.2015, 17:21
Причем, весьма неплохо (судя по всему) написана.
Если ещё и целиком на ассемблере - ха! удаляем все компиляторы Си )


p.s.: Интересно
Скрин так и выглядит в редакторе, открой в эмуляторе сам - заодно оценишь с форматом и редактором этим можно сотрудничать?

Редактор я запускал с системной дискеты (http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/POLYSS_CIR_WRITER/readme.txt)
потом переназначил DK на образ SOUZ-NEON_ASPEKT_DOC_.dsk
и ввёл имя файла PKRAM.SCM на запрос после выбора "Загрузить(Прочитать)" в редакторе.

Titus
08.01.2015, 17:45
Если ещё и целиком на ассемблере - ха! удаляем все компиляторы Си )

Скрин так и выглядит в редакторе, открой в эмуляторе сам - заодно оценишь с форматом и редактором этим можно сотрудничать?

Разумеется на ассемблере, какие нафиг Си)
Причем очень оптимизириванный ассемблер. Ребята (не знаю, кто писал) весьма крутые программеры.

Намек N2: Твой скриншот имеет разрешение 400px &#215; 288px, что делает иформацию на нем совершенно непригодной к распознаванию.

nzeemin
09.01.2015, 14:08
Намек N2: Твой скриншот имеет разрешение 400px &#215; 288px, что делает иформацию на нем совершенно непригодной к распознаванию.

Там действительно редактор даёт изображение на котором ничего не видно. И непонятно как увеличить.

https://img-fotki.yandex.ru/get/15527/7448436.8/0_94e48_4efe0413_orig.png

Titus
09.01.2015, 14:13
Там действительно редактор даёт изображение на котором ничего не видно. И непонятно как увеличить.

А я уж по традиции на Hobot'a грешу) Извиняюсь)

Как у тебя с эмулем ПК-11 обстоит?

nzeemin
09.01.2015, 14:15
Хотя вот командой 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 ----------

По эмулятору пока как было -- дошёл до рисования экрана.

Titus
09.01.2015, 14:23
Интересно, что там за схемы? Может и схемы ПК-11 найдутся?

---------- Post added at 15:23 ---------- Previous post was at 15:15 ----------


По эмулятору пока как было -- дошёл до рисования экрана.

Я пока застрял на загрузке с диска.
Приходится дизассемблировать и анализировать значительный фрагмент ядра системы (многозадачность и т.д.), чтобы понять нюансы работы, без которых оно не работает, ибо документация на железо весьма примерная, и для эмуляции совершенно неизвестного компа недостаточная.

esl
09.01.2015, 14:45
эх, это же самое интересное ;)

Titus
09.01.2015, 16:35
эх, это же самое интересное ;)

Да, весьма интересно)
Но когда нацелен на результат (посмотреть, как это работает), долгое топтание на месте немножко выматывает.

А в данном случае, пока не напишешь значительную часть железа компа, никакой загрузки даже близко не увидишь.

---------- 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.

Alex_K
09.01.2015, 18:19
Наткнулся на загадочную (на фоне 1801ВМ2) команду MFPТ (чтение модели процессора?). Что должен на это отвечать 1806ВМ2?
Это которая с кодом 7? Уж не знаю как там в 1806ВМ2, а у 1801ВМ2 будет TRAP10. Притом этот TRAP10 стопроцентно переключается в режим USER, ну а в HALT возвратиться можно по RTI, если только сохраненный PC >= 0160000.

b2m
09.01.2015, 18:43
Вот тут (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 это явно не относится...

Titus
09.01.2015, 19:02
Но к 1806ВМ2 это явно не относится...

В общем, что будет давать 1806ВМ2 - пока остается под вопросом.

Но у меня в эмуле 1801ВМ2.

p.s.: Интересно, зачем эта дурацкая RT-11 в загрузчике имеет хренову тучу тестов деления, четной адресации, нереализованных команд и т.д.? Чуть ли не килобайт на это тратится.

Alex_K
09.01.2015, 19:07
p.s.: Интересно, зачем эта дурацкая RT-11 в загрузчике имеет хренову тучу тестов деления, четной адресации, нереализованных команд и т.д.? Чуть ли не килобайт на это тратится.
Так ведь RT-11 работает не только на ДВК с УКНЦ, но в первую очередь на компьютерах линейки PDP-11, а линейка эта довольно обширная. Вот и проверяется этими тестами тип используемого процессора, т.к. имеют некоторые различия между ними.
Так команда MFPT где присутствует - в загрузчике RT-11 или в ВПО ПК-11/16?

Titus
09.01.2015, 19:13
Так команда 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. Интересно, зачем я так мог сделать?

Alex_K
09.01.2015, 19:41
В загрузчике 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.

Titus
09.01.2015, 19:49
Это уже с диска даже вторичный загрузчик прочли.

Да уж это я в курсе) Семь потов сошло, пока все подводные камни сошлифовал)

---------- Post added at 20:49 ---------- Previous post was at 20:48 ----------



Судя по всему навеяно алгоритмом исполнения команд FIS.

И все же, как мне правильно такие коды обрабатывать, и различается реакция в режимах User и Halt?

nzeemin
09.01.2015, 20:06
Интересно, что там за схемы? Может и схемы ПК-11 найдутся?
SCM-файлов очень мало -- на дисках Союз-Неон только один PKRAM.SCM, других нет.
Есть ещё несколько схем на диске с самим CIR, и вроде как всё.

Alex_K
09.01.2015, 20:07
И все же, как мне правильно такие коды обрабатывать, и различается реакция в режимах 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.

Patron
09.01.2015, 20:20
И все же, как мне правильно такие коды обрабатывать, и различается реакция в режимах 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С и когда находящиеся там значения туда попадают ?

Alex_K
09.01.2015, 20:26
А что находится при этом в CPSW и CPС и когда находящиеся там значения туда попадают ?
В CPC и CPSW копируются значения PC и PSW при их изменении, если какой-либо из разрядов 7 или 8 PSW находится в сброшенном состоянии. В CPSW копируется значение PSW при изменении его младшего байта. Если разряды 7 и 8 PSW установлены, то CPC и CPSW "замораживаются".

Patron
09.01.2015, 20:40
В 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.

Titus
09.01.2015, 21:11
А что это за системный регистр 177572?

Alex_K
09.01.2015, 21:14
Правильно ли я понял, что на вопрос: когда записываемые в стек значения 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.

Patron
09.01.2015, 21:23
Если же мы в HALT с запрещенными прерываниями, то здесь нельзя однозначно сказать, что в стек положатся значения PC и PSW, бывшие до установки обеих битов 7 и 8 в PSW, т.к. значения CPC и CPSW можно изменить командами WCPC и WCPS.Проще говоря - если в режиме HALT при запрещённых прерываниях происходит Trap_to_010, то в стек попадут последние значения CPSW и CPC, в принципе никак не связанные с текущими значениями PC и PSW режима HALT на момент выполнения резервного кода.

Alex_K
09.01.2015, 21:32
Проще говоря - если в режиме 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.

Patron
09.01.2015, 21:36
И так при исполнении любого прерывания режима USER, а это не только векторные по VIRQ, но и по сигналу EVNT(0100), по обратному фронту ACLO (024)В режиме HALT запрещение прерываний битом 7 PSW блокирует HALT, ACLO, EVNT и VIRQ, поэтому если ситуация такова, что эти прерывания могут произойти - в стек попадут значения PC и PSW, имевшие место непосредственно перед запуском блока прерываний.

Alex_K
09.01.2015, 21:42
В режиме HALT запрещение прерываний битом 7 PSW блокирует HALT, ACLO, EVNT и VIRQ, поэтому если ситуация такова, что эти прерывания могут произойти - в стек попадут значения PC и PSW, имевшие место непосредственно перед запуском блока прерываний.
В режиме HALT с запрещенными прерываниями естественно все внешние прерывания блокируются и произойти не смогут, и если дать команду WAIT, то процессор подвиснет. А блок обработки прерываний никаким образом не связан с CPC и CPSW, тут надо уяснить, что в 1801ВМ2 в стек кладутся не PC и PSW, а CPC и CPSW.

Titus
09.01.2015, 21:42
Это регистр SR0 MMU.

В каких системах? Загрузчик RT-11 его опрашивает, но в ПК-11 его явно нет.

Alex_K
09.01.2015, 21:45
В каких системах? Загрузчик RT-11 его опрашивает, но в ПК-11 его явно нет.
В процессорах с защитой памяти, например наш 1801ВМ3.

Titus
09.01.2015, 21:47
В процессорах с защитой памяти, например наш 1801ВМ3.
В общем, я так понял, что загрузчик в RT-11 вещь такая универсальная, что должна работать на всех системах от простейших ВМ1 до всяких навороченных и многоразрядных.

Alex_K
09.01.2015, 21:52
В общем, я так понял, что загрузчик в RT-11 вещь такая универсальная, что должна работать на всех системах от простейших ВМ1 до всяких навороченных и многоразрядных.
Вот, а я об этом сказал несколькими постами ранее. Правда о 1801ВМ1 разработчики RT-11 и не догадывались.

Titus
09.01.2015, 21:57
Еще вопрос (чтобы потом не попасть с этим в просак, пока не забыл). При старте загрузчик сканирует память на чтение с адреса 0 до 170000 с шагом 4000. Очевидно, он хочет упереться в регистры и определить таким образом вершину памяти?

Patron
09.01.2015, 22:04
При старте загрузчик сканирует память на чтение с адреса 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 ..

Alex_K
09.01.2015, 22:16
Единственный не вполне понятный момент - какие значения будут в 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 – загружаются из стека.
---------------------------------------------------------------------

Titus
09.01.2015, 23:49
Интересно, в 1806 тоже в цикле записи байта выдается цикл R-M-W как и у 1801? Или уже без глюка, обычный цикл W?

Если так, то использование 1801ВМ2 в ПК11 может привести к неоднозначным последствиям.

Patron
10.01.2015, 00:08
Интересно, в 1806 тоже в цикле записи байта выдается цикл R-M-W как и у 1801? Или уже без глюка, обычный цикл W?Ответ ЗДЕСЬ (http://zx-pk.ru/showthread.php?postid=608999).

Titus
10.01.2015, 01:18
Ответ ЗДЕСЬ (http://zx-pk.ru/showthread.php?postid=608999).

Значит глюк остался) Это радует)

---------- Post added at 02:18 ---------- Previous post was at 01:45 ----------

Пока что совершенно не понятно, откуда берется вектор для векторного прерывания VIRQ на ПК-11.

А, кажется нашел)

Titus
10.01.2015, 04:16
Да уж... с этими векторными прерываниями фантастика)


3.2. Векторные прерывания

В ПЭВМ отсутствуют векторные прерывания. Однако они
необходимы для правильной эмуляции "стандартных устройств", без
которых не может обойтись ДОС. Поэтому предусмотрены
соответствующие аппаратно-программные средства, позволяющие
эмулировать векторные прерывания. ВПО содержит специальную
таблицу-список, в которой хранится информация о всех векторных
прерываниях, "выставленных" эмуляторами. Эмулятор выставляет
"запрос на прерывание" специальным запросом ВПО - SETINT. Снятие
запроса на прерывание выполняется запросом RESINT.
Эмуляция векторных прерываний происходит только для одного
процесса. Этот единственный процесс должен содержать в слове
P.MASK своего дескриптора установленный в 1 разряда в соответствии
смаской V.VRQ. Этим единственным процессом является процесс
дисковой ОС.

Действительно, у одного из процессов, процесса ОС установлен флаг M.VRQ. И в один прекрасный момент, при загрузке системы USER-процесс загрузчика обращается к регистру 177130 (работа с диском) с установленным младшим битом (т.е. хочет ответ от дисковой системы получить посредством прерывания). Дисковый процесс считывает данные и просит у ВПО SETINT. В этом SETINT в таблице векторов ВПО (которая находится по адресу 100146, устанавливаются какие-то значения, причем, не очень похожие на реальные вектора). Вот тут-то начинается самое интересное. Системой сбрасывается бит VIRQ регистра PPIC (что означает разрешение векторных прерываний), и по идее процессор в USER режиме должен на это прерывание перейти. Все хорошо, только откуда брать вектор - совершенно не понятно. Может быть есть какой-то хитрый аппаратный контроллер, который вынет этот вектор из той таблицы в ОЗУ по адресу 100146 и подаст на шину?

Titus
10.01.2015, 12:43
Я так понял, что ни у кого идей нет, как получает USER-процесс этот вектор прерываний)

У меня пока два рабочих варианта:
1) Ядро HALT-процесса видит, что для процесса установлен флаг VIRQ и эмулирует векторное прерывание программно, используя таблицу векторов, которая лежит в его ОЗУ.
Доводы против этой теории:
Нигде (пока что) не нашел кода, который обращается к этой таблице, нет кода в ядре, который опрашивает флаг VIRQ.
2) Существует хардварный контроллер VIRQ прерываний, который в качестве таблицы векторов лазает в специальную часть ОЗУ HALT-процесса, извлекая оттуда вектор.
Доводы против этой теории:
Таблица векторов в ОЗУ HALT-процесса лежит не по ровному адресу (100146), не имеет информации о векторах в стандартном виде.

CodeMaster
10.01.2015, 14:40
У меня пока два рабочих варианта:

Это уже не написание эмулятора, а реверс-инженеринг самой идеи ;-)

Titus
10.01.2015, 15:16
Это уже не написание эмулятора, а реверс-инженеринг самой идеи ;-)

А без этого никак, ибо некоторые хардварные особенности остаются в тени, и только реверс логики работы системного ПО позволяет понять, как они работают)

Titus
10.01.2015, 19:59
Нашел странную привязку некой HALT-подпрограммы ВПО к вектору, находящемуся по адресу 60. В нем записаны два числа 1414, 10104. Первое число указывает на нашу подпрограмму. Что бы мог значить вектор с адресом 60 в HALT-режиме? Когда на него процессор может передать управление?

Причем, при попадании в эту подпрограмму в памяти по адресу R0 дожен быть адрес векторного прерывания VIRQ, a в R1 тоже какие-то данные.

---------- Post added at 20:59 ---------- Previous post was at 19:12 ----------

Все, перерыв весь код, и поняв, что обработчика VIRQ в нем НЕТУ, а так же еще раз внимательно прочитав фразу про VIRQ - 'аппаратно-программные средства', и так же поняв, что эмулировать программно несколько одновременных векторных запросов у ВПО никак бы не получилось, утвердился в мысли, что контроллер VIRQ аппаратный)

Titus
11.01.2015, 03:17
Вопрос к 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.

Patron
11.01.2015, 12:55
какой регистр находится в памяти по адресу 177776?У многих процессоров DEC ( а также у 1801ВМ3 ) по этому адресу видно содержимое PSW.

TheGWBV
11.01.2015, 13:06
У многих процессоров DEC ( а также у 1801ВМ3 ) по этому адресу видно содержимое PSW.

Может быть в ПК-11/16К эмулируется работа процессора 1801ВМ3 ? :v2_conf2:

Товарищ GID недавно выложил таблицу регистров процессоров и внешних устройств (http://gid.pdp-11.ru/f/portaddr.rar) -- в ней указано, что в ВМ3 это PSW...

Titus
11.01.2015, 14:06
У многих процессоров 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 дальше не двинется)

Patron
11.01.2015, 14:09
В другой ветке мне подсказали такТам другими словами говорится то же самое ( т.к. PSW - это регистр состояния процессора ).

...

Titus
11.01.2015, 14:29
Там другими словами говорится то же самое ( т.к. 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)

Patron
11.01.2015, 16:54
понять бы, что он в ней хочет проверитьВ оригинале ( см. 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

Alex_K
11.01.2015, 16:58
TST @#SR0
NOP
BIS @R1,@R0

Какое SR0? Если монитор собирается без поддержки MMU, то этих команд в BSTRAP нет.

Patron
11.01.2015, 17:04
Какое SR0? Если монитор собирается без поддержки MMU, то этих команд в BSTRAP нет.Исправил.

b2m
11.01.2015, 18:41
Итак, нулевая 8-килобайтовая страничка ОЗУ (0..17776) используется как таблица для эмуляции обращения к регистрам 170000-177776.
Я бы поправил эту фразу - для эмуляции обращения к несуществующим регистрам. А поскольку обычно в верхней области нет несуществующих регистров (либо по этим адресам никто никогда не обращается), то верхняя часть этой таблички вполне может использоваться как стек. Регистр по адресу 177776, отражающий значение PSW, я так думаю, всегда существует.

Titus
11.01.2015, 19:23
Я бы поправил эту фразу - для эмуляции обращения к несуществующим регистрам. А поскольку обычно в верхней области нет несуществующих регистров (либо по этим адресам никто никогда не обращается), то верхняя часть этой таблички вполне может использоваться как стек. Регистр по адресу 177776, отражающий значение PSW, я так думаю, всегда существует.

Нет, не верно. Достаточно много регистров в верхних 16 байтах памяти (это видно во время тестов загрузчика RT11). Т.е. не только 177776 в загрузчике RT11 попадает под раздачу, а еще и 177746 и 177760 (но с ними, возможно, ситуация не такая критичная и это прокатывает).
Кроме того, нигде не указано в доках, что у 1806ВМ2 реализован PSW по адресу 177776.

Patron
11.01.2015, 20:36
Правильно ли я понимаю, что когда процессоры ВМ1 и ВМ2 выполняют команду TST @#1 - на шину в цикле чтения слова выставляется адрес 000001, но контроллер ОЗУ при чтении слова игнорирует младший бит адреса и поэтому в фазе данных выдаёт на шину содержимое адреса 000000 ?

Alex_K
11.01.2015, 20:43
Правильно ли я понимаю, что когда процессоры ВМ1 и ВМ2 выполняют команду TST @#1 - на шину в цикле чтения слова выставляется адрес 000001, но контроллер ОЗУ при чтении слова игнорирует младший бит адреса и поэтому в фазе данных выдаёт на шину содержимое адреса 000000 ?
Да, правильно.

Titus
11.01.2015, 21:01
Временно залочив заплаткой проблему с 177776 (принудительно трапая проц, если идет доступ в этот регистр), удалось чуть дальше продвинуться в загрузке RT-11.

Она использует загрузку с прерываниями, т.е. отдает команду регистру HFBUF (177130), а он ей отвечает по вектору FDVEC ═ 234. И еще там используется эмулируемый регистр 177546, я так понял, что это управление сетевым таймером на RT-11 системах?

Patron
11.01.2015, 22:11
еще там используется эмулируемый регистр 177546, я так понял, что это управление сетевым таймером на RT-11 системах?
http://s7.hostingkartinok.com/uploads/images/2015/01/07e7c98520ae42c26e6a8ae63b43236c.jpg

Titus
11.01.2015, 22:23
Я так понял, RT-11 может работать с этим таймером, и без таймера. Тогда какие улучшения она от этого таймера претерпевает?

И еще вопрос, когда я попытался загрузить дискеты с ПК-11 на УКНЦ, они все вылетали при обращению к регистру HFBUF (177130) (если я правильно помню). Получается, эта версия скомпилирована специально под его использование?

Alex_K
11.01.2015, 22:28
И еще вопрос, когда я попытался загрузить дискеты с ПК-11 на УКНЦ, они все вылетали при обращению к регистру HFBUF (177130) (если я правильно помню). Получается, эта версия скомпилирована специально под его использование?
А вы прямо их грузили или всё-таки копировали туда MZ.SYS и копировали его загрузчик командой COPY/BOOT?

Titus
11.01.2015, 23:01
А вы прямо их грузили или всё-таки копировали туда MZ.SYS и копировали его загрузчик командой COPY/BOOT?

Нет, ничего не копировал) Но из вашей фразы понял, что на системе для УКНЦ должен быть загрузчик MZ.SYS специально предназначенный для УКНЦ. Тогда, получается, что РТ-11 не имеет универсальных методов загрузки, чтобы грузиться на любой машине?

Patron
11.01.2015, 23:15
Тогда, получается, что РТ-11 не имеет универсальных методов загрузки, чтобы грузиться на любой машине?Типа, без драйвера системного устройства - такое ни одна операционка не может.

Разница между всеми существующими в природе операционками лишь в том, что у одних операционок все используемые драйвера надо компилировать в ядро, а у других - используемые драйвера находятся в отдельных файлах.

Alex_K
11.01.2015, 23:16
Тогда, получается, что РТ-11 не имеет универсальных методов загрузки, чтобы грузиться на любой машине?
А как она может загрузится на любой машине? Искуственного интеллекта ещё не изобрели, а тогда и тем более. Если бы в PDP-11 было понятие BIOS-а, а код записи/чтения системного устройства находился бы на странице ввода/вывода в ПЗУ, то тогда можно было бы об этом говорить. Естественно разработчики RT-11 могли бы зашить все драйвера в одну систему, но это бы были драйвера только для DEC-овских систем. Кстати в RT-11 до 4-й версии так и делалось, она собиралась с зашитым драйвером системного устройства, поэтому были файлы мониторов под DX, RK и т.д. и т.п.