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

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 38

Тема: RT-11 и аргументы командной строки

  1. #1
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    158
    Благодарностей: 70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию RT-11 и аргументы командной строки

    Всем привет.
    Подскажите, как можно передать и получить строку символов программе в RT-11? Насколько я понял в опциях можно передавать только строки до 3-х символов. Можно ли использовать команду SET для этого? Может кто помочь, желательно с примером на MACRO-11?

    Зачем это нужно.
    Я почти доделал контроллер дисковода, который работает с SD-картой. Образы дисков помещаются на карту и с помощью текстового файла осуществляется привязка файлов-образов к номеру дисковода. Сейчас уже работает чтение и запись, можно загрузиться в ОС и все это со стандартными драйверами дисковода в RT-11. Единственная проблема это как сменить диск, вот для этого и нужна утилита. Вся низкоуровневая часть в пространстве ПП готова, нужно просто распарсить строку и передать нестандартный блок параметров по К2.
    Создам отдельную тему про контроллер, когда все будет готово и если кому интересно. Да и все это на одной микросхеме стоимостью $2 серии PSoc4 от cypress.

  2. Эти 2 пользователя(ей) поблагодарили Jarik65535 за это полезное сообщение:
    CodeMaster (26.08.2015), hobot (03.10.2015)

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

  4. #2
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,628
    Благодарностей: 2758
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    как можно передать и получить строку символов программе в RT-11
    Есть два способа.

    1. Первый способ универсальный ( работает во всех версиях RT-11 )

    Код:
    ;
    ;  Echo
    ;
    .MCall	.GtLin, .Print, .Exit
    
    .Asect
    	.=44
    	.Word 400
    
    	.=400
    START:	
    	.GtLin	#StrBuf
    	.Print	#StrBuf
    	.Exit
    
    StrBuf:	.BlkB	120.
    
    .End	START
    ;

    2. Второй способ работает только в RT-11 V05.00 и старше, но даёт больше возможностей:

    Код:
    ;
    .MCall	.GtLin, .Print, .Exit
    
    START:
    	Mov	#510, R0
    	Mov	(R0)+, R1
    	BEq	1$
    	Dec	R1
    	BEq	1$
    
    	.Print	#Args
    	.Print	#512	
    
    	.GtLin	#BUFF
    	.Exit
    1$:
    	.Print	#NoArgs
    	.Exit
    
    NoArgs:	.ASCIZ	\No Args..\
    Args:	.ASCII	\Args: \<200>
    	.Even
    BUFF = .
    
    .End	START
    ;
    Последний раз редактировалось Patron; 25.08.2015 в 21:43.

  5. Эти 2 пользователя(ей) поблагодарили Patron за это полезное сообщение:
    hobot (03.10.2015), Jarik65535 (25.08.2015)

  6. #3
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    158
    Благодарностей: 70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Похоже то что нужно, спасибо.

  7. #4
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    158
    Благодарностей: 70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А эта магия с .Asect действительно необходима?

  8. #5
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,142
    Благодарностей: 1957
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Первый способ универсальный ( работает во всех версиях RT-11 )
    Но не на всех машинах. Например на штатном УК-НЦ такие развлечения с ASECT легко обрушить систему могут.

    Цитата Сообщение от Patron Посмотреть сообщение
    только в RT-11 V05.00 и старше
    RT-11 5.02 (TSX-Plus 6.02) и старше.

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    А эта магия с .Asect действительно необходима?
    Не только не необходима, но и вредна весьма.

    Самый простой вариант - .GTLIN с подсказкой (подсказка не выводится если на вход подставляются аргументы командной строки). Однако тут есть нюанс: если в командной строке есть пробел, аргументы будут переформатированны в формат CSI (например "PROG foo bar" превратится в "bar=foo" на входе). Точную командную строку можно добыть из адресов 512 как показано выше, но как уже писал - способ не будет работать в RT-11 V5.01 и старее и TSX-Plus V6.01 и старее. Ну и в RT-11 V4 и старее нет посдтановки командной строки на ввод - с этим придется смириться, но про эти системы все давно забыли .
    Последний раз редактировалось form; 26.08.2015 в 07:08.
    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

  9. #6
    Moderator Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    Воронеж
    Сообщений
    4,110
    Благодарностей: 570
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Создам отдельную тему про контроллер, когда все будет готово и если кому интересно.
    Интересно всем, ещё бы и сразу адаптацию под всё железо где работает RT-11

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    и все это на одной микросхеме стоимостью $2 серии PSoc4 от cypress.
    Тут больше вопрос в сложности пайки, TQFP не всем под силу, не говоря уже про BGA.
    Рыцарь ордена Хламовников

    Мои магазины на Мешке: Retro store и Компьютерные комплектующие

  10. #7
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    158
    Благодарностей: 70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Не только не необходима, но и вредна весьма.
    Я потому и спрашиваю, что начиная с какого-то размера программы вместо сообщений начал выводиться мусор. Без .Asect вроде работает и на эмуляторе RT-11 и на эмуляторе ukncbtl. Пробелов в строке быть не должно.
    Еще, если запустить без аргументов - оно ждет ввода, это не сильно мешает, но можно ли исправить без особых ухищрений?
    Также стало сюрпризом, что .TTYOUT и .PRINT обрезают 8-й бит при выводе.

    На счет пайки, у меня у самого руки не очень прямые, вот например, как выглядит прототип:


    Корпус там TQFP, планирую плату сделать и заказать у китайцев.

  11. #8
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,142
    Благодарностей: 1957
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    на эмуляторе ukncbtl.
    RT-11 считает область до адреса 500 векторами, соответственно использовать эту область для программы не совсем правильно.

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Еще, если запустить без аргументов - оно ждет ввода, это не сильно мешает, но можно ли исправить без особых ухищрений?
    Самое правильное наверное - проверить версию системы через .GVAL, если больше 5.1, то проверить наличие командной строки через адрес 510, если командной строки нет - то использовать умолчания.

    Если меньше 5.2 или при проверке выше обнаружена командная строка (ее нужно вычитать чтобы она не обработалась как следующая команда) то .GTLIN.

    Этот способ не учитывает версию TSX-Plus, но для программы работающей с железом напрямую это или не существенно или все-равно требует дополнительных наворотов.

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Также стало сюрпризом, что .TTYOUT и .PRINT обрезают 8-й бит при выводе.
    Да, в однотерминальном RT-11 обрезается parity bit на случай его наличия. В многотерминальном (опция генерации - не зависит от реального количества) или TSX-Plus можно включить 8-битный режим. Есть также самодельные версии RT-11 где в однотерминальных системах 8й бит не отрезается, но это не универсальный метод.
    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

  12. #9
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    158
    Благодарностей: 70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще такой вопрос, если мне нужно обратиться напрямую к каналу к2, при этом не мешать RT-11, прокатит ли просто стирание бита прерывания в регистре состояния перед использованием с последующим его восстановлением (если он вообще установлен)?

  13. #10
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,142
    Благодарностей: 1957
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    обратиться напрямую к каналу к2
    На память не помню какой там канал за что отвечает. Мне бы в адресах хотя бы (или в функционале)
    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

Страница 1 из 4 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Утилиты для командной строки.
    от NEO SPECTRUMAN в разделе Софт
    Ответов: 5
    Последнее: 02.05.2012, 16:48
  2. Основной экран в 24 строки
    от Den Zurin в разделе Для начинающих
    Ответов: 5
    Последнее: 12.12.2010, 09:07
  3. Ответов: 7
    Последнее: 18.12.2006, 11:25
  4. Скроллирование строки
    от caro в разделе Программирование
    Ответов: 76
    Последнее: 16.05.2006, 15:11

Ваши права

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