С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Дошли руки посмотреть что там поменялось в HD (пробовал как-то запользовать последний эмулятор с RSX - не пошел). Глянул на исходник HD.MAC, прилагающийся к эмулятору и немного впал в ступор.
Упоминается бит DMA в CSR, но никакого DMA судя по исходникам и в помине нет (раньше был) - вся перекачка данных выполняется вручную, тем самым делая поддержку прерываний по сути бесполезной.
Расширение адреса видимо пропало как класс (хотя раз теперь DMA нету, то и нафиг оно не нужно).
Прошу поправить если я что-то не так понял![]()
Последний раз редактировалось form; 15.04.2020 в 21:55.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Смотри- здесь.
form(15.04.2020)
Значит про DMA все понял верно.
Тогда собственно вопрос - можно ли управлять версией контроллера или оно фиксированно в эмуляторе?
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Можно, смотри - здесь.
Разобрался в изменениях HD из-за которых старый драйвер перестал работать в RSX (независимо от того какой тип контроллера указать).
- независимо от типа контроллера (рассматриваем 2 и 3 по сути), I/O теперь не мгновенный
- запись байта в младший байт регистра данных теперь не трогает старший байт (раньше он занулялся)
Допинал предварительный вариант драйвера (гибрид, позволяющий на старом эмуляторе без поддержки прерываний подготовить систему, а на новом эмеляторе работать с прерываниями).
Теперь пытаюсь вспомнить подробности как заставить работать восстановление после "сбоя питания".
На данный момент при отжатии Power происходит штатный останов до "восстановления", но при нажатии Power, печатаются несколько звездочек и происходит останов. Вектор 24 оказывается зачищенным.
Пошел искать в теме сообщения когда ранее тестировал фичу, но может кто навскидку ткнет что надо поправить чтобы при "восстановлении питания" происходило повторное псевдопрерывание по 24?
- - - Добавлено - - -
Все, разобрался.
Теперь можно допинать драйвер, кое-что подправить в SAV, а то он, бедняга, считает что это UNIBUS система (и надо сказать, оснований для таких мыслей немало) да перенести ноду под эмулятором ДВК на новый вариант.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
form, а TSX ты с новым эмулятором пробовал? У меня не пошел. С эмулированного DW запускается и работает, а с HD висит. То есть, что-то не то во взаимодействии драйвера с эмулируемым устройством, типа, устройство Патрон изменил, а драйвер не подправил.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Скорее всего драйвер HD в TSX не той версии.
В остальном проблем не должно быть.
Гляну сегодня.
- - - Добавлено - - -
Собрал свой драйвер под TSX.
Тип HD должен быть выставлен как 3.
В TSGEN.MAC должен быть с флагами DMA,MAPH.
Драйвер, прилагаемый к эмулятору по идее тоже будет работать если из него убрать код печати на экран в инсталяционной процедуре. Только обязательно собирать с опциями MMG$T и TIM$IT.
Это касается и RT-11 - нужно собирать с точными опциями. Там в драйвере есть всякие SET HD ERLG и SET HD TIMIT, но они работать не будут по понятным причинам в драйверах с обслуживанием прерываний или где используется .FORK (HD v3.0, v4.0, v5.0).
Это можно исправить:Код:; .DRAST HD,5,DONE BR DONE HDINT:: .INTEN 5,PIC ; .FORK FORKBK MOV @#54,R4 ;можно R5 ADD 402(R4),R4 JSR R5,@R4 .WORD FORKBK-.Код:.SH ALL TSX-Plus Version = 6.50 18-Apr-2020 Active Handler Handler Handler Device I/O Status V. base P. base size CSR Vector ------ ------ ------ ------- ------- ------- ------ ------ TT 0 000004 LD 0 102446 CL 0 016057 045752 000000 512 HD 0 102762 120000 073640 202 177720 164 LP 0 030003 120000 073631 406 177514 200 NL 0 000025 120000 073630 60 VM 0 102447 076770 000000 426 Assignments: SY --> HD7: DK --> HD7: There are no allocated devices Uptime: 00:00:19 System use: Run=1%, I/O-wait=0%, Swap-wait=0%, Idle=98% I/O Activity: User I/O=0%, Swapping I/O=0% Job Line Pri State Size Connect CPU time Program Job name --- ------ --- ------- ----- --------- -------- ------- ------------ 1* 1(0) 50 IN 39Kb 00:01:00 00:00:00 KMON Line Type Vector CSR Terminal Speed Active Line Name ---- ----- ---------- ------ -------- -------- ------ ------------ 1* Oper. DL 060 177560 VT52 9600 8N Yes Console 2 Local DL 300 176500 VT52 9600 8N No DLV11 - 1 3 Local DL 310 176510 VT52 9600 8N No DLV11 - 2 4 Local DL 320 176520 VT52 9600 8N No DLV11 - 3 5 Local DL 330 176530 VT52 9600 8N No DLV11 - 4 CL version number 18. Unit Line Job Options ---- ---- ---- ---------------------------- CL0 none none CL1 none none CL2 none none CL3 none none Total installed memory = 4088Kb Size of unmapped TSX and handlers = 33Kb (100076) Size of mapped TSX system regions = 80Kb Total size of TSX and mapped data = 127Kb Size of mapped device handlers = 1Kb Size of sharable run-time systems = 54Kb Size of data cache buffer area = 0Kb Space available for user jobs = 1862Kb Swappable job context area = 7Kb Current job memory limit = 56Kb Maximum job memory limit = 64Kb QUAN0 = 2 QUAN1 = 20 QUAN1A = 2 QUAN1B = 2 QUAN1C = 1 QUAN2 = 10 QUAN3 = 20 INTIOC = 30 HIPRCT = 40 Spooled devices: LP0 Logical subset disks: No logical disks are mounted Mounted devices: Device Associated jobs ---------- ------------------------------ HD7: 1 Shared run-time systems: CBR063 There are no named regions Program Attributes and Privileges -------------- ----------------------------------------- HD7:DUP.SAV DUP/PRIV=(SYSPRV,NODEBUG) HD7:IND.SAV NOWAIT/IND/PRIV=(NODEBUG) HD7:KED.SAV SINGLECHAR/NOWAIT/HIGH/PRIV=(NODEBUG) HD7:KEX.SAV SINGLECHAR/NOWAIT/HIGH/PRIV=(NODEBUG) HD7:K52.SAV SINGLECHAR/NOWAIT/HIGH/PRIV=(NODEBUG) HD7:LOGON.SAV LOCK/BYPASN/PRIV=(BYPASS,SETNAME,SETPRV,SYSPRV, NODEBUG) HD7:PATCH.SAV SINGLECHAR/PRIV=(NODEBUG) HD7:SETUP.SAV IOPAGE/SETUP/PRIV=(NODEBUG) HD7:SYSMON.SAV /PRIV=(MEMMAP,NODEBUG) HD7:TECO.SAV SINGLECHAR/NOWAIT/PRIV=(NODEBUG) HD7:TRANSF.SAV SINGLECHAR/NOWAIT/NONINTERACTIVE/NOWINDOW/PRIV=( NODEBUG) HD7:TSAUTH.SAV BYPASN/PRIV=(NODEBUG) HD7:TSXUCL.SAV TSXUCL/PRIV=(NODEBUG) HD7:VTCOM.SAV SINGLECHAR/NOWAIT/MEMLOCK/PRIV=(PSWAPM,NODEBUG) Authorized privileges: ALLOCATE,BYPASS,DEBUG,DETACH,GETCXT,MEMMAP, MESSAGE,NFSREAD,NFSWRITE,OPER,PSWAPM,REALTIME, RLOCK,SEND,SETNAME,SETPRV,SPFUN,SYSGBL, SYSPRV,TERMINAL,WORLD,GROUP,SAME,SUBPROCESS, UP1,UP2,UP3,UP4 Current privileges: ALLOCATE,BYPASS,DEBUG,DETACH,GETCXT,MEMMAP, MESSAGE,NFSREAD,NFSWRITE,OPER,PSWAPM,REALTIME, RLOCK,SEND,SETNAME,SETPRV,SPFUN,SYSGBL, SYSPRV,TERMINAL,WORLD,GROUP,SAME,SUBPROCESS, UP1,UP2,UP3,UP4 SL status: OFF,NOKED,NOTTYIN,SUBSTITUTE VM Base=100000 Top=170000 Size=3584 .
Последний раз редактировалось form; 18.04.2020 в 07:51.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
А для 5.1 SJ/FB не сгенеришь? И для XM?.. И что надо добавить в конфиг?
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Для XM должно быть MMG$T=1, TIM$IT=1 (HD.TSX из архива ввыше подойдет тоже).
Для SJ/FB достаточно собрать вариант без опций и с TIM$IT=1.
Ну или поправить прилагаемые исходники как выше написал - тогда получится универсальный вариант, настраивающийся через SET.
- - - Добавлено - - -
На всякий случай тот вариант из которого я собирал HD.TSX выше.
Это драйвер только для t3 контроллера без подстройки под систему - надо генерить с конкретными опциями.
Если не лень будет - допилю его до поддержки 32bit I/O, разделов и номеров 10-77.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)