Важная информация

User Tag List

Страница 14 из 57 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя
Показано с 131 по 140 из 563

Тема: Софт для УКНЦ

  1. #131
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А пропатчить хоть 1000 игрушек легко можно простым COM файлом
    да я помню писалось уже обсуждалось смещение изменить 0 на 1, такой вопрос
    (может я опережаю события) насколько легко MZ драйвер подпихивается и надо
    ли заморачиваться какую-то конкретную его версию подбирать???

    ---------- Post added at 05:38 ---------- Previous post was at 05:37 ----------

    Цитата Сообщение от form Посмотреть сообщение
    программеры все лучше DEC знают
    программеры могли про DEC вообще ничего не знать например )))
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  2. #132
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    да я помню писалось уже обсуждалось смещение изменить 0 на 1, такой вопрос
    (может я опережаю события) насколько легко MZ драйвер подпихивается и надо
    ли заморачиваться какую-то конкретную его версию подбирать???
    Насчет смещения - не знаю о чем речь.
    Что до драйвера MZ, чаще всего конфликт возникает из-за неправильной работы в нем с прерываниями при работе с игрушками которые что-то грузят в ПП (канал используется один и для того и для другого). В обычныйх драйверах MZ есть переключение режима работы без прерываний. Я делал упрощенный драйвер в котором прерывания используются так, чтобы не было конфликта, но реально сильно не гонял с игрушками.

    ---------- Post added at 09:42 ---------- Previous post was at 09:40 ----------

    Цитата Сообщение от hobot Посмотреть сообщение
    программеры могли про DEC вообще ничего не знать например )))
    Про DEC они может и не знали, но даже в кривой советской документации по РАФОСу все четко расписано. Но наш же программер не станет заниматься такой фигней как внимательно читать документацию даже на русском

    Кстати доки по рафосу и сам рафос походу оформлял какой-то бывший RSXник - это ощущается постоянно
    Последний раз редактировалось form; 29.11.2011 в 06:46.
    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

  3. #133
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Alex_K, вопрос такой, насколько сложно и как системное приглашение
    настроить(поменять) в мониторе, точка конечно не слишком информативна ?
    Я для этого писал драйвер AC.SYS. Он может менять системный промптер, правда для этого я перехватывал вектор EMT, и ловил EMT 351, смотрелось, чтобы после команды была MOV R4,R4 или MOV R5,R5, ну и чтобы они были в определенном смещении в памяти. Не очень конечно хорошо, но так уж получилось. Еще этот драйвер запускает оконный менеджер, но до этого дело не дошло.
    Команды:
    SET AC SYSGEN - подстроиться под параметры генерации монитора;
    SET AC ON - загрузить в ОЗУ и включить драйвер;
    SET AC OFF - выключить драйвер и выгрузить из ОЗУ;
    SET AC [NO]COM - запускать/не запускать коммандер;
    SET AC [NO]HOLD - ждать/не ждать перед запуском коммандера;
    SET AC PROMPT - настроить вид приглашения.

    Запускать драйвер можно только с помощью SET AC ON, а выгружать - SET AC OFF.
    Команды для настройки приглашения:
    $$ - символ $;
    $B - звуковой сигнал (007);
    $D - дата в формате DD-Mon-YY, например 17-Jun-93;
    $E - символ Escape (033);
    $H - шаг назад (убрать предыдущий символ);
    $L - символ LAT (017);
    $R - символ RUS (016);
    $S - устройство SY: в формате DDn, например MZ0;
    $T - время в формате hh:mm:ss, например 12:24:31;
    $U - устройство DK: в формате DDn, например MZ1.
    Все остальные символы - как есть.

    Исходники есть на диске sysimage.dsk.

  4. #134
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    правда для этого я перехватывал вектор EMT, и ловил EMT 351, смотрелось, чтобы после команды была MOV R4,R4 или MOV R5,R5
    Все проще.
    Вектор перехватывать не надо, проверять на MOV R4,R4 тем более - это внутри RMON.

    По смещению $E16LS (316) от RMON лежит смещение (от RMON опять таки) до таблицы E16LST. Это таблица обработчиков EMT 340 и выше. Смещение E6.PRI (22) в этой таблице содержит смещение от E16LST до обработчика EMT 351. Сохраняем, меняем. С этим просто.

    Смещение $KMONI (450) от RMON не равно нулю - KMON активен. Для SJ/SB этого вообще достаточно - проверяем R0 на четность, @R0 на "."<200> и все.
    Для надежности на случай FB и прочей многозадачности - проверяем на MOV R5,R5.
    Последний раз редактировалось form; 29.11.2011 в 12:27.
    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. #135
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Все проще.
    Вектор перехватывать не надо, проверять на MOV R4,R4 тем более - это внутри RMON.

    По смещению $E16LS (316) от RMON лежит смещение (от RMON опять таки) до таблицы E16LST. Это таблица обработчиков EMT 340 и выше. Смещение E6.PRI (22) в этой таблице содержит смещение от RMON до обработчика EMT 351. Сохраняем, меняем. С этим просто.

    Смещение $KMONI (450) от RMON не равно нулю - KMON активен. Для SJ/SB этого вообще достаточно - проверяем R0 на четность, @R0 на "."<200> и все.
    Для надежности на случай FB и прочей многозадачности - проверяем на MOV R5,R5.
    Спасибо за информацию. Тогда такой инфы у меня не было, собственно сделал как мог. Пришлось еще додумывать, как узнать реальное имя устройства у логического. Сидел в DESS-е, копался в памяти, но вроде правильно понял. А на точку проверять не совсем корректно, были у нас в Союзе всякие патченные системы, где точка заменялась на приглашение в виде имени текущего диска, лучше проверять на MOV R5,R5.
    А лучше это дело (тип промптера) впихнуть в SL.

  6. #136
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Спасибо за информацию. Тогда такой инфы у меня не было, собственно сделал как мог. Пришлось еще додумывать, как узнать реальное имя устройства у логического. Сидел в DESS-е, копался в памяти, но вроде правильно понял. А на точку проверять не совсем корректно, были у нас в Союзе всякие патченные системы, где точка заменялась на приглашение в виде имени текущего диска, лучше проверять на MOV R5,R5.
    А лучше это дело (тип промптера) впихнуть в SL.
    Собственно на точку можно не проверять. Если не ошибаюсь, MOV R5,R5 только в одном месте делается - именно том самом. Остальные подсказки вроде идут через .GTLIN, а это уже будет R4,R4. Надо будет посмотреть на досуге.

    А что до SL, то исходники есть от 5.7

    ---------- Post added at 14:45 ---------- Previous post was at 14:35 ----------

    А узнавание логического устройства - тут да, не просто.
    По сути единственный метод (кроме использования LOOKUP/CSTAT) - получение адреса $PNAME, скан его вверх до -1 и на основе этого вычисление длины таблиц $UNAM1 и $UNAM2.

    Что-то вроде этого:

    Код:
            MOV     @#$SYPTR,R5             ;R5 -> RTDATA
            ADD     $PNPTR(R5),R5           ;R5 -> $PNAME
            MOV     R5,R4                   ;R4 -> $PNAME
    10$:    CMP     #-1,(R4)+               ;SEARCH FOR END OF $ENTRY
            BNE     10$                     ;
            TST     -(R4)                   ;R4 -> $PNAME + <$SLOT*2>
            SUB     R5,R4                   ;R4 -> <$SLOT*2>
            ADD     #8.,R4                  ;R4 -> COMBINED TABLE SIZE
            ASR     R4                      ;R4 -> $UNAM(1,2) SIZE
    Теперь отняв от R5 R4 один раз - получаем таблицу $UNAM2 (логические имена), а отняв от него еще рз R4 получаем $UNAM1 (физические имена). Причем сканить надо всю таблицу с начала и до первого совпадения - записей для DK к примеру может быть две

    В V5.6/5.7 (может и 5.5) правда есть смещение от рмона с длиной таблицы, но на старых не сработает.

    И еще нюансик: в 5.6/5.7 в таблице имен физическое имя будет всегда коротким если система умеет 64 унита на устройство (D00, D01 итд вместо DU0, DU1). Если критично - нужно будет проверять поддержку и использовать расширенную таблицу.
    Последний раз редактировалось form; 29.11.2011 в 11:50.
    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

  7. #136
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #137
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А узнавание логического устройства - тут да, не просто.
    По сути единственный метод (кроме использования LOOKUP/CSTAT) - получение адреса $PNAME, скан его вверх до -1 и на основе этого вычисление длины таблиц $UNAM1 и $UNAM2.

    Что-то вроде этого:

    Код:
            MOV     @#$SYPTR,R5             ;R5 -> RTDATA
            ADD     $PNPTR(R5),R5           ;R5 -> $PNAME
            MOV     R5,R4                   ;R4 -> $PNAME
    10$:    CMP     #-1,(R4)+               ;SEARCH FOR END OF $ENTRY
            BNE     10$                     ;
            TST     -(R4)                   ;R4 -> $PNAME + <$SLOT*2>
            SUB     R5,R4                   ;R4 -> <$SLOT*2>
            ADD     #8.,R4                  ;R4 -> COMBINED TABLE SIZE
            ASR     R4                      ;R4 -> $UNAM(1,2) SIZE
    Теперь отняв от R5 R4 один раз - получаем таблицу $UNAM2 (логические имена), а отняв от него еще рз R4 получаем $UNAM1 (физические имена). Причем сканить надо всю таблицу с начала и до первого совпадения - записей для DK к примеру может быть две

    В V5.6/5.7 (может и 5.5) правда есть смещение от рмона с длиной таблицы, но на старых не сработает.

    И еще нюансик: в 5.6/5.7 в таблице имен физическое имя будет всегда коротким если система умеет 64 унита на устройство (D00, D01 итд вместо DU0, DU1).
    У меня подпрограмма аналогичная, только 8. не прибавляется.

  9. #138
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    У меня подпрограмма аналогичная, только 8. не прибавляется.
    8 нужно чтобы посчитать неучитываемые SY и DK которые создаются загрузчиком в самом конце таблицы. Если DK не переопределять, он там и останется. Если же переопределять - он будет в начале таблицы.

    Код:
    .TY LOGN.MAC
            .TITLE  LOGN
            .MCALL  .PRINT,.EXIT
    
            .LIBRA  /SY:SYSTEM/
            .MCALL  .SYCDF,.FIXDF
    
            .FIXDF
            .SYCDF
    
    START:  MOV     @#$SYPTR,R5
            ADD     $PNPTR(R5),R5           ;R5 -> $PNAME
            MOV     R5,R4                   ;R4 -> $PNAME
    10$:    CMP     #-1,(R4)+
            BNE     10$
            TST     -(R4)                   ;R4 -> $PNAME + <$SLOT*2>
            SUB     R5,R4                   ;R4 -> <$SLOT*2>
            ADD     #8.,R4                  ;R4 -> COMBINED TABLE SIZE
            ASR     R4                      ;R4 -> $UNAM(1,2) SIZE
            SUB     R4,R5                   ;R5 -> $UNAM2
            MOV     R5,R3
            SUB     R4,R3                   ;R3 -> $UNAM1
            ASR     R4                      ;R4 -> ENTRY COUNT
    20$:    MOV     (R5)+,R1
            MOV     #BUFF,R0
            CALL    $C5TA
            INC     R0
            MOV     (R3)+,R1
            CALL    $C5TA
            .PRINT  #BUFF
            SOB     R4,20$
            .EXIT
    
    BUFF:   .ASCIZ  /XXX=XXX/
    
            .END    START
    
    
    .RU LOGN
    CF =VM0
    WF =VM0
    DK =D04
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
       =   
    DK =D03
    SY =D03
    
    .
    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

  10. #139
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Собственно мой код (есть в АС.MAC):
    Определение SY:
    Код:
            CALL    LOGD
            SUB     R4,R5
            SUB     #6,R5
            MOV     @R5,R5
            CALL    OUTR50
    Определение DK:
    Код:
            CALL    LOGD
            SUB     R4,R5
            CMP     -(R5),-(R5)
    14$:    CMP     (R5)+,#^RDK
            BNE     14$
            SUB     R4,R5
            CMP     -(R5),-(R5)
            MOV     -(R5),R5
            CALL    OUTR50
    Подпрограмма LOGD:
    Код:
    LOGD:   MOV     @#54,R5
            ADD     404(R5),R5
            MOV     R5,R4
    1$:     CMP     (R4)+,#-1
            BNE     1$
            TST     -(R4)
            SUB     R5,R4
            ASR     R4
            RETURN

  11. #140
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    CMP -(R5),-(R5)
    Ну вот он собственно 8
    А для SY не существенно ибо в начале таблицы его не бывает

    Строго говоря если просто SY надо найти, то он всегда последний - и искать не нужно.
    Вот DK или предпоследний или в начале где-то.
    Последний раз редактировалось form; 29.11.2011 в 12:10.
    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

Страница 14 из 57 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Восстанавливаем УКНЦ
    от felix в разделе ДВК, УКНЦ
    Ответов: 728
    Последнее: 13.04.2024, 00:03
  2. Эмулятор УКНЦ - UKNCBTL
    от nzeemin в разделе Эмуляторы отечественных компьютеров
    Ответов: 1113
    Последнее: 12.11.2023, 18:44
  3. Как проверить УКНЦ и КМД ? Help
    от Andrey_Ak в разделе ДВК, УКНЦ
    Ответов: 37
    Последнее: 23.07.2020, 15:50
  4. Проблема с УКНЦ
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 8
    Последнее: 10.01.2010, 23:04
  5. Дискетки от УКНЦ
    от ZXSlaver в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 15.11.2009, 17:25

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •