User Tag List

Страница 313 из 458 ПерваяПервая ... 309310311312313314315316317 ... ПоследняяПоследняя
Показано с 3,121 по 3,130 из 4576

Тема: ДВК (и всё, что с ними связано)

  1. #3121

    Регистрация
    07.04.2015
    Адрес
    г. Комсомольск, Ивановская обл.
    Сообщений
    319
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итого для однозадачки пусть будет этот вариант. Нажатие клавиши в принципе неважно - юзер забытое сделает при следующем включении машины.
    .TITLE PARK2016.MAC
    .MCALL .PRINT, .EXIT, .MTPS ;используемые вызовы библиотеки

    STARTF: CMP @#174000, #401 ;сравнить содержимое регистра идентификации 174000 с кодом 401(восьмеричное)
    BNE CNTRLRNOTFOUND ;контроллер не обнаружен, выходим

    CHECK1: BIT #100000, 174020 ;проверка занятости
    BEQ CHECK1 ;занят, ждем

    BIS #8., 174020 ;начальная установка с выводом головок на нулевой трек
    CHECK2: BIT #100000, 174020
    BEQ CHECK2 ;занят, ждем
    CHECK3: BIT #1, 174020
    BNE CHECK3 ;ждем, пока операция не будет завершена

    MOV LANDZONE, 174012 ;поместить в регистр адреса цилиндра 174012 номер цилиндра для парковки
    MOV #7, 174006 ;сектор 7 (любой)
    MOV #0, 174014 ;поверхность 0 (любая)
    MOV #40, 174016 ;команда чтения сектора
    .PRINT #SHUTDOWNMSG
    .MTPS #340
    BR .

    CNTRLRNOTFOUND:
    .PRINT #NOTFOUNDMSG
    .EXIT

    NOTFOUNDMSG: .ASCIZ /MFM CONTROLLER NOT FOUND/
    SHUTDOWNMSG: .ASCIZ /TURN THE POWER OFF/
    LANDZONE: .WORD 1230 ;664 цилиндр у моего HDD парковочный

    .END STARTF
    Последний раз редактировалось Korchagin; 13.11.2016 в 16:34.

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

  3. #3122

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Под классическим вариантом имелось ввиду, что программа задаёт вопрос и в случае положительного ответа выводить надпись о завершении, паркует и входит в цикл с запрещенными прерываниями. Ну а случае отрицательного ответа - выход в RT-11.
    Можно сделать иначе - выставить в программе вектор TRAP к примеру, и в случае парковки вызывать TRAP 0 скажем и .EXIT после него, а в его ISR вписать HALT, RTI. Тогда можно будет после парковки нажать P и вернуться в систему. Так в RSX можно после выполнения SHUTUP запустить систему дальше.

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

    Цитата Сообщение от Korchagin Посмотреть сообщение
    .MTPS #370
    На паре процессоров это вызовет немедленный трап по 14 (и выпадение в RT-11 соответственно раз вектор не установлен). Правда вряд-ли всерьез стоит рассматривать вариант наличия DW на всяких PDP-11/10
    Все биты приоритета - это 340.
    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

  4. #3123

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Можно сделать иначе - выставить в программе вектор TRAP к примеру, и в случае парковки вызывать TRAP 0 скажем и .EXIT после него, а в его ISR вписать HALT, RTI. Тогда можно будет после парковки нажать P и вернуться в систему. Так в RSX можно после выполнения SHUTUP запустить систему дальше.
    Интересный вариант. А HALT в XM-мониторе пройдёт?

  5. #3124

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Интересный вариант. А HALT в XM-мониторе пройдёт?
    Нет. Для того и говорю про вектор - через вектор снимется user mode (а RTI его вернет если нужно) - это самый простой способ.
    Последний раз редактировалось form; 13.11.2016 в 16:22.
    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. #3125

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

    По умолчанию

    поправил немного ))

    Код:
            .TITLE PARK2016.MAC
            .MCALL .PRINT, .EXIT ;используемые вызовы библиотеки
    
    STARTF: CMP @#174000, #401 ;сравнить содержимое регистра идентификации 174000 с
            BNE CNTRLRNOTFOUND ;контроллер не обнаружен, выходим
    CHECK1: BIT #100000, @#174020 ;проверка занятости
            BEQ CHECK1 ;занят, ждем
            BIS #8., @#174020 ;начальная установка с выводом головок на нулевой тре
    CHECK2: BIT #100000, @#174020
            BEQ CHECK2 ;занят, ждем
    CHECK3: BIT #1, @#174020
            BNE CHECK3 ;ждем, пока операция не будет завершена
            MOV #LANDZONE, @#174012 ;поместить в регистр адреса цилиндра 174012 ном
            MOV #7, @#174006 ;сектор 7 (любой)
            MOV #0, @#174014 ;поверхность 0 (любая)
            MOV #40, @#174016 ;команда чтения сектора, команды пишутся в младший ба
            .PRINT #SHUTDOWNMSG
            .EXIT
    
    CNTRLRNOTFOUND:
            .PRINT #NOTFOUNDMSG
            .EXIT
    
     Exit? Y
    
    KMON>mac TPARK
    
    KMON>lin TPARK
    
    KMON>RU TPARK
    FDGGDFGDFGDFGG^C
    ^
    KMON>
    Архив программ для УК-НЦ, ДВК и БК.

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

  7. #3126

    Регистрация
    07.04.2015
    Адрес
    г. Комсомольск, Ивановская обл.
    Сообщений
    319
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Верно, биты 340, а не 370.

  8. #3127

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

    По умолчанию

    сейчас листинг обновлю )

    Код:
    KMON>TY TPARK.MAC
            .TITLE PARK2016.MAC
            .MCALL .PRINT, .EXIT, .MTPS ;используемые вызовы библиотеки
    
    STARTF: CMP @#174000, #401 ;сравнить содержимое регистра идентификации 174000 с
    кодом 401(восьмеричное)
            BNE CNTRLRNOTFOUND ;контроллер не обнаружен, выходим
    CHECK1: BIT #100000, @#174020 ;проверка занятости
            BEQ CHECK1 ;занят, ждем
            BIS #8., @#174020 ;начальная установка с выводом головок на нулевой трек
    CHECK2: BIT #100000, @#174020
            BEQ CHECK2 ;занят, ждем
    CHECK3: BIT #1, @#174020
            BNE CHECK3 ;ждем, пока операция не будет завершена
            MOV #LANDZONE, @#174012 ;поместить в регистр адреса цилиндра 174012 номе
    р цилиндра для парковки
            MOV #7, @#174006 ;сектор 7 (любой)
            MOV #0, @#174014 ;поверхность 0 (любая)
            MOV #40, @#174016 ;команда чтения сектора, команды пишутся в младший бай
    т РАЦ
            .PRINT  #SHUTDOWNMSG
            .MTPS   #370
            BR      .
    
    CNTRLRNOTFOUND:
            .PRINT #NOTFOUNDMSG
            .EXIT
    
    NOTFOUNDMSG: .ASCIZ /MFM CONTROLLER NOT FOUND/
    SHUTDOWNMSG: .ASCIZ /TURN THE POWER OFF/
    LANDZONE:.WORD 1230 ;664 цилиндр у моего HDD парковочный
    
    .END STARTF
    
    
    KMON>mac TPARK
    
    KMON>lin TPARK
    
    KMON>RU TPARK
    Архив программ для УК-НЦ, ДВК и БК.

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

  9. #3128

    Регистрация
    07.04.2015
    Адрес
    г. Комсомольск, Ивановская обл.
    Сообщений
    319
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    То есть, для многозадачных систем необходимо перехватить TRAP 0, затем его вызвать из самой программы? А в обработчике должны быть команды HALT и RTI?

  10. #3129

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

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    CNTRLRNOTFOUND:
    .PRINT #NOTFOUNDMSG
    .EXIT
    Сюда же уместно направить подпрограмму обработки .TRPSET...

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

    Цитата Сообщение от Korchagin Посмотреть сообщение
    То есть, для многозадачных систем необходимо перехватить TRAP 0, затем его вызвать из самой программы? А в обработчике должны быть команды HALT и RTI?
    Здесь дело не в многозадачности, а в системах, использующих MMU (XM, ZM) - в них программа выполняется в пользовательском режиме и напрямую HALT сделать не может. Но никто не мешает с помощью вектора прерываний (TRAP взят для примера, годится и BPT) гарантированно войти в режим ядра процессора. А для не-MMU систем это никак не мешает - будет совместимо.
    Последний раз редактировалось form; 13.11.2016 в 16:45.
    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

  11. #3130

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Но никто не мешает с помощью вектора прерываний (TRAP взят для примера, годится и BPT) гарантированно войти в режим ядра процессора.
    А это часом не слишком большая дырка в системе? Таким образом любая задача получает режим KERNEL?

Страница 313 из 458 ПерваяПервая ... 309310311312313314315316317 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Видеорежимы и работа с ними
    от icebear в разделе Программирование
    Ответов: 23
    Последнее: 26.07.2005, 12:55
  2. Видеорежимы и работа с ними
    от icebear в разделе Несортированное железо
    Ответов: 3
    Последнее: 21.07.2005, 11:49
  3. Ответов: 0
    Последнее: 25.06.2005, 23:14

Ваши права

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