User Tag List

Страница 12 из 28 ПерваяПервая ... 8910111213141516 ... ПоследняяПоследняя
Показано с 111 по 120 из 276

Тема: Практическое программирование в среде RT-11 на ассемблере.

  1. #111

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    373
    Поблагодарили
    310 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    Question Нужен новый и правильный JS.SYS!!!

    Цитата Сообщение от Андрианов Игорь Посмотреть сообщение
    Возвращаться (поностальгировать) к PDP-11 стоит только из-за асма
    Цитата Сообщение от AFZ Посмотреть сообщение
    после совершенно великолепной архитектуры PDP-11 и ее не менее великолепного MACRO
    В силу того, что я не осваивал ассемблер настолько сильно и не являюсь программистом, напишу в какой программе под RT-11 на самом деле в настоящий момент остро нуждается инициативная группа в моём лице.

    Предистория и "Новейшая история":

    можно пропустить

    В начале 90-х, когда УК-НЦ стоял у меня дома в качестве основного домашнего компа [принтер при нём и два кармана 80-дорожек, что ещё надо? ПО было (см. архив) ] + парочка разнокалиберных (8 и 16 бит) игровых приставок чисто для игр, всё же моим родным хотелось и в тетрис поиграть и в "Сталкера" и в Покер на костях, но вот RT-11 для них
    не была "дружелюбной средой". Первое время я просто запили дискету с играми и моноэкранным файловым менеджером, но быстро выяснилось, что это не панацея - потому что даже не все игры из менеджера по кнопочке нужной работали, бывали глюки. Шпоргалка типа "RUN <имя файла>" требовала знать имя файла - то же кстати препятствие ))) Ведь если надо было что то напечатать (текст или рисунок) это делал я. В библиотеке игрушек
    разбирался то же я, и команду DIR .SAV/BRI/ALP знал то же только я. )))

    Так мне пришла в голову простая идея использовать "чужую" (читай - не свою!) разработку для создания игрового меню, её же я применил и недавно нарисовав с ходу пяток тематических дискеток работающих по схеме
    ЗАГРУЗКА СТАРТ RT-11
    ЗАГРУЗКА СТАРТ ДРАЙВЕРА ЗАПУСКА ПРОГРАММЫ С ИГРОВЫМ МЕНЮ
    Программу с игровым меню я написал на Паскале, а выбранные игры она запускает директивой .CHAIN
    Когда происходит КОНЕЦ ИГРЫ - Драйвер запуска игрового меню не в монитор пользователя выкидывает,
    а запускает ИГРОВОЕ МЕНЮ - и так по кругу )))

    Таких драйверов для запуска приложения по кругу было несколько, был PW.SYS, JS.SYS и ещё какой-то.
    Они использовались и входили в поставку файловых менеджеров типа SCE*. или MFP.
    НО!!! У них есть дополнительный (уже и тогда совершенно не нужный функционал - установка пароля на
    момент загрузки драйвера где то в буточном секторе дискеты, это штука легко обходится открывание крышки(6022)
    или рычажка защёлки-опуск. головку(любой правильный 5" дисковод ) и после ошибки чтения защёлку закрываем
    и успешно грузимся дальше.
    [свернуть]


    Собственно ТЗ

    ТЗ: Я предлагаю нашим профи помочь в создании более совершенного драйвера по типу JS.SYS,
    а именно
    1.Программа должна по команде SE JS ON запускать прописанный внутри неё исполняемый файл - без глюков как классический JS.SYS
    2.Желательно имя запускаемого файла сделать параметром типа SE JS SFN(Start File Name)=/тут шесть символов имя файла - проверка на правильность не требуется, на совести оператора!!!/ у старого JS имя файла надо править при помощи DESSа к примеру
    3.Не мешать запущенной программе работать и передавать управление приложениям директивой
    .CHAIN
    4.По завершению этих приложений снова стартовать прописанный SFN
    [свернуть]


    Кишочки JS.SYS


    Код:
    01:04:18        12-Дек-2016, Понедельник
    
    JS    .SYS     2  07-Jun-1993
    
    File name: "DK:JS.SYS", size: 2. blocks.
    Release = JR , Version(s) = 20306 22604 8224 14880 8320 10794 18720 30318 27745
    25705 2573 20233 25454 8293 28525 25970
    
    *** Runable program
    Transfer address        001260
    Stack top               001000
    High limit              001734 = 494. words
    Job status word         000000 = [ ]
    
    *** Handler data structure
    Handler size         168. bytes
    Sequential device
    Device code          0
    Sysgen options       000004 = [ TIMIT$ ]
    CSR address          000000
    Vector               374
    * Installation code for  DATA SYSTEM
    * Bootable device
      H.BPTR=047514, H.BLEN=17473.b, H.READ=047111
    
    *** Set options table:
          ON                     entry 626
          OFF                    entry 626
          SYSGEN                 entry 604
          INFORM                 entry 626
          NEWPAS                 entry 472
     [no] PASS                   entry 562
          REPEAT  = decimal      entry 574
    *
    Как-то так это всё работает )





    [свернуть]


    Буду рад любому ответу или обсуждению по возможности создания подобного драйвера.
    Последний раз редактировалось hobot; 12.12.2016 в 10:09. Причина: поправил ТЗ и кишочки ;-)
    Архив программ для УК-НЦ, ДВК и БК.

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

  2. #112

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Обработка команд до KMON

    Может кому пригодится. В RT-11 начиная с версии 5.02 появилась возможность обрабатывать команды раньше чем их обработает система. Сначала это была недокументированная фича которая использовалась в RTEM-11 для добавления опций в стандартные команды COPY, CREATE, MOUNT, DISMOUNT и другие, вызывая при необходимости утилиты FIP или JOAT вместо родных. При этом команда попадает сначала в программу UCF.SAV, а уже она решает что с командой делать дальше.

    Начиная с RT-11 V5.6 возможность использования UCF стала документированной, и появилась команда SET CLI [NO]UCF для ее включения/выключения.

    Ниже приведен пример программы UCF которая при запуске вручную просто переключает состояние UCF/NOUCF (и печатает текущее состояние после переключения), а при получении команды просто печатает сообщение и отдает команду в KMON.
    Код:
            .TITLE  UCF -- ПРОЦЕССОР КОМАНД ПОЛЬЗОВАТЕЛЯ
            .IDENT  /V01.00/
    
    $JSW    =:      44                      ;СЛОВО СОСТОЯНИЯ ЗАДАНИЯ
    SPXIT$  =:      40                      ;БЕТ СПЕЦИАЛЬНОГО ВЫХОДА
    
    $INDDV  =:      426                     ;СМЕЩЕНИЕ ДО УКАЗАТЕЛЯ НА INDDEV
    					;ПРЯМО ПЕРЕД INDDEV В RMON ИДУТ
    					;БАЙТЫ CLICFG И CLITYP
    
    UCF.ON  =:      1                       ;БИТ UCF ON
    UCF.KM  =:      200                     ;БИТ ПЕРЕДАЧИ КОМАНДЫ В KMON
    
            .MCALL  .EXIT,.GVAL,.PEEK,.POKE ;СИСТЕМНЫЕ МАКРОКОМАНДЫ
            .MCALL  .PRINT                  ;
    
    UCFEP:: .GVAL   #AREA,#$INDDV           ;ПОЛУЧАЕМ АДРЕС INDDEV
            TST     -(R0)                   ;ПОЛУЧАЕМ АДРЕС CLIFLG
            MOV     R0,R5                   ;СОХРАНЯЕМ
            .PEEK   #AREA,R5                ;ПОЛУЧАЕМ ЗНАЧЕНИЕ CLICFG/CLITYP
            MOV     R0,R4                   ;СОХРАНЯЕМ
    					;ПРИ ЗАПУСКЕ UCF ДЛЯ ОБРАБОТКИ
    					;КОМАНДЫ БАЙТ CLITYP СОДЕРЖИТ 0
            BIT     #^C377,R4               ;ПРОГРАММА ЗАПУЩЕНА КАК UCF?
            BEQ     30$                     ;ДА
    
    ;ПРОГРАММА ЗАПУЩЕНА ВРУЧНУЮ. ПЕРЕКЛЮЧАЕМ СОСТОЯНИЕ UCF ON/OFF И ВЫХОДИМ.
    
            MOV     #UCFEN,R1               ;ПРЕДПОЛАГАЕМ, ЧТО UCF ВЫКЛЮЧЕН
            ASR     R4                      ;ТЕКУЩЕЕ СОСТОЯНИЕ => C
            BCC     10$                     ;CC - UCF ВЫКЛЮЧЕН (БУДЕТ ВКЛЮЧЕН)
            MOV     #UCFDI,R1               ;CS - UCF ВКЛЮЧЕН (БУДЕТ ВЫКЛЮЧЕН)
    10$:    ROL     R0                      ;ПЕРЕКЛЮЧАЕМ СОСТОЯНИЕ
            INC     R0                      ;
            ASR     R0                      ;
            ROL     R4                      ;
            .POKE   #AREA,R5,R4             ;ЗАПИСЫВАЕМ CLIFLG ОБРАТНО
            .PRINT  #IUCFS                  ;ПЕЧАТАЕМ СООБЩЕНИЕ
            .PRINT  R1                      ;
    20$:    CLR     R0                      ;ДЕЛАЕМ СБРОС ПРОГРАММЫ
            .EXIT                           ;ВЫХОД
    
    ;ПРОГРАММА ЗАПУЩЕНА КАК UCF. ПО АДРЕСУ 510 ЗАПИСАНА ДЛИНА КОМАНДЫ.
    ;САМА КОМАНДА РАСПОЛАГАЕТСЯ В ПАМЯТИ НАЧИНАЯ С АДРЕСА 512.
    ;UCF МОЖЕТ ОБРАБОТАТЬ КОМАНДУ САМОСТОЯТЕЛЬНО ИЛИ СФОРМИРОВАТЬ КОМАНДУ
    ;КОТОРАЯ БУДЕТ ВЫПОЛНЕНА KMON. В ПОСЛЕДНЕМ СЛУЧАЕ НУЖНО УСТАНОВИТЬ БИТ 
    ;UCF.ON В БАЙТЕ CLICFG (ТАК ЖЕ СТОИТ УСТАНОВИТЬ БИТ UCF.ON - В RT-11
    ;ВЕРСИЙ 5.02-5.05 ЭТОТ БИТ ОЧИЩАЕТСЯ ПРИ ПЕРЕДАЧИ КОМАНДЫ В UCF, ТЕМ
    ;САМЫМ ВЫКЛЮЧАЯ ЕГО) И БИТ SPXIT$ В $JSW.
    ;
    ;В НАШЕМ СЛУЧАЕ МЫ ОСТАВЛЯЕМ ПЕЧАТАЕМ СООБЩЕНИЕ И ПЕРЕДАЕМ КОМАНДУ В KMON
    ;БЕЗ ИЗМЕНЕНИЙ.
    
    30$:    BIS     #UCF.KM!UCF.ON,R4       ;ПЕРЕДАЕМ КОМАНДУ В KMON
            .POKE   #AREA,R5,R4             ;И ВКЛЮЧАЕМ UCF
            .PRINT  #UCFKM                  ;ПЕЧАТАЕМ СООБЩЕНИЕ
            BIS     #SPXIT$,@#$JSW          ;ВЫПОЛНЯЕМ ВЫХОД С ПЕРЕДАЧЕЙ
            BR      20$                     ;КОМАНДЫ
    
    AREA:   .BLKW   3                       ;БЛОК EMT
    
    IUCFS:  .ASCII  /?UCF-I-UCF command processing is now /<200>
    UCFEN:  .ASCIZ  /ENABLED/
    UCFDI:  .ASCIZ  /DISABLED/
    UCFKM:  .ASCIZ  /?UCF-I-Passing command to KMON/
    
            .END    UCFEP
    Работа программы:
    Код:
    .UCF
    ?UCF-I-UCF command processing is now ENABLED
    
    .E
    ?UCF-I-Passing command to KMON
    040000
    .E
    ?UCF-I-Passing command to KMON
    040000
    .UCF
    ?UCF-I-Passing command to KMON
    ?UCF-I-UCF command processing is now DISABLED
    
    .E
    040000
    .
    Кстати, о команде E (а так же B, CLOSE, D, GET, SAVE, START). Эти команды по понятным причинам не будут нормально работать при включенном UCF.

    - - - Добавлено - - -

    Цитата Сообщение от hobot Посмотреть сообщение
    Буду рад любому ответу или обсуждению по возможности создания подобного драйвера.
    А нельзя ли в двух словах написать что собственно требуется, чтобы не перечитывать все?
    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. #113

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Желательно имя запускаемого файла сделать параметром типа SE JS SFN(Start File Name)=/тут шесть символов имя файла
    Это невозможно, после знака равенства может быть десятичное или восьмеричное значение,но никак не строка символов.

  4. #114

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    373
    Поблагодарили
    310 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Это невозможно,
    Хорошо, пусть будет жёстко прописанное в исходнике имя файла, любое JSUNIT.SAV, ведь потом DESSом править
    не проблема, либо настройку имени приложения для запуска оформить другим способом (внутренним запросом).
    R JS.SYS
    #fn=filename.typ
    допустим.

    - - - Добавлено - - -

    form, открой только вкладку ТЗ там в двух словах.
    Надо что бы пользователя не в систему после игры выкидывало, а запускался заранее
    прописанный в драйвере исполняемый файл. Вот.
    Архив программ для УК-НЦ, ДВК и БК.

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

  5. #115

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Надо что бы пользователя не в систему после игры выкидывало, а запускался заранее
    прописанный в драйвере исполняемый файл. Вот.
    А чем стартовый файл не устраивает?
    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

  6. #116

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    373
    Поблагодарили
    310 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А чем стартовый файл не устраивает?
    Он не обеспечивает цикл перезапуска.
    Гляди как работает используемый мною стар.добр.JS.SYS в случае, если программа для запуска не обнаружена



    Но при этом он позволяет после запуска прописанного в нём "оболчки",
    что бы из неё с помощью директивы .CHAIN другой файл запускать и так до тех пор
    пока мы не должны вывалиться в монитор. Но вместо монитора он снова
    подсключается и снова запускает то что мы хотим крутить по кругу (допустим стартовое меню).

    Вот.
    Архив программ для УК-НЦ, ДВК и БК.

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

  7. #117

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Он не обеспечивает цикл перезапуска.
    IND
    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

  8. #118

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    373
    Поблагодарили
    310 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    К тому же неумелый пользователь может легко порушить стартовый файл, а лезть и копаться внутри .SYS файла
    обычный человек не будет, тем самым пользователь всё дальше от низкого уровня RT-11 может работать только с
    перезапускаемой программой.

    - - - Добавлено - - -

    Цитата Сообщение от form Посмотреть сообщение
    IND
    А вот теперь поставь на весы :

    Хобот учит IND c нуля = неизвестно что получиться / двухблочный JS.SYS )))
    ---------------------------------------------------------------------------------------

    Я могу и старый драйв. использовать, но в нём лишний функц, а во вторых
    мне более интересно как JS.SYS так хитро всех обхетряет ! )))
    Исходников его никогда не видел - согласись мощное решение учитывая размер и
    бесперебойность в работе.

    - - - Добавлено - - -

    Просто его написал человек знающий тонкости RT-11 и ассемблер.

    - - - Добавлено - - -

    В оглавлении архива JS.SYS легко ищется, другой момент дизас. мне не даст ничего, а вот ты (например)
    сходу видишь куда и чего он отправляет \ посылает

    - - - Добавлено - - -

    У IND кстати всё тот же минус - это текстовый сценарный файл - недопустимо !!! )))

    - - - Добавлено - - -

    Цитата Сообщение от hobot Посмотреть сообщение
    У IND кстати всё тот же минус
    IND = это если бы речь шла о RT-11 вообще, но тут именно ДВК\УК-НЦ где уже показано,
    что такое в принципе возможно.
    Архив программ для УК-НЦ, ДВК и БК.

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

  9. #119

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    учит IND c нуля
    Можно настроить систему при генерации чтобы стартовый командный файл попадал в IND, а там уже сделать что нужно. И саму менюшку собственно в нем и напрограмить
    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. #120

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    373
    Поблагодарили
    310 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Можно настроить систему при генерации чтобы стартовый командный файл попадал в IND
    Я вижу ты все штатные возможности перебираешь, это хорошо )))

    А JS.SYS работает с любым уже сгенериным монитором (ПКМ с теми которые актуальны в рамках УК-НЦ \ ДВК).
    Архив программ для УК-НЦ, ДВК и БК.

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

Страница 12 из 28 ПерваяПервая ... 8910111213141516 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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