User Tag List

Страница 86 из 157 ПерваяПервая ... 828384858687888990 ... ПоследняяПоследняя
Показано с 851 по 860 из 1564

Тема: Программирование на УКНЦ как?

  1. #851

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

    По умолчанию

    Цитата Сообщение от gfd71 Посмотреть сообщение
    портится
    Ничего вроде не должно портиться (случай когда посимвольный ввод выключен не в счет - там ввод начинается только по CR, а это два байта в RT-11 которые так же введутся через .TTYIN).
    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. #852

    Регистрация
    14.06.2017
    Адрес
    г. Воронеж
    Сообщений
    187
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Ничего вроде не должно портиться
    кроме символов которые ввожу, автоматом вводятся CARR RETN 15 и LINE FEED 12 (взято и книги по ссылке выше )
    вот они и портят картину

  3. #853

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

    По умолчанию

    Цитата Сообщение от gfd71 Посмотреть сообщение
    автоматом вводятся CARR RETN 15 и LINE FEED 1
    Они вводятся не автоматом, а по нажатию CR. Если включить посимвольный ввод, нажимать CR не нужно и тогд не должно быть их.
    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. #854

    Регистрация
    14.06.2017
    Адрес
    г. Воронеж
    Сообщений
    187
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    в том то и дело что нужно CR нажимать по условию задачки
    если добавить два TTYIN для CR LF и буфер+ 2 байта то вроде как и работает
    по идее мне нужна подпрограмма ввода команд и переходов по ним к другим подпрограммам
    Последний раз редактировалось gfd71; 01.10.2017 в 21:04.

  5. #855

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

    По умолчанию

    Цитата Сообщение от gfd71 Посмотреть сообщение
    нужно CR нажимать по условию задачки
    Тогда надо учесть, что CR такой же символ как и любой другой и его надо считать, а в RT-11 кроме того автоматически генерится LF который тоже надо выбрать. Так что программу нужно переделать чтобы символы вводились не в фиксированные места буфера, а вычитывались по одному, анализировались и уже потом записывались если нужно. Ну или (если задача не состоит в том, чтобы разобраться с .TTYIN) можно просто воспользоваться макровызовом ввода строки .GTLIN
    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. #856

    Регистрация
    14.06.2017
    Адрес
    г. Воронеж
    Сообщений
    187
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    (если задача не состоит в том, чтобы разобраться с .TTYIN) можно просто воспользоваться макровызовом ввода строки .GTLIN
    спасибо за наводку

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

    Цитата Сообщение от form Посмотреть сообщение
    а вычитывались по одному, анализировались и уже потом записывались если нужно.
    с TTYIN который для одного символа даже не представляю как это можно сделать, вводить после каждого символа CR нужно, а мне надо три или больше ввёл а потом CR

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

  8. #857

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Идея. Приблизительно. Могу быть ошибки, поскольку по памяти, проверить под рукой не на чем
    Код:
           mov #buf, r5
    loop:  .ttyin
           movb r0, (r5)+
           cmpb r0, #15
           beq   eloop
           cmp r5, #buf3
           blo   loop
    eloop: clrb (r5)
           .print #buf
           mov  #buf, r5
           br    loop
    buf:  .blkb 3
    buf3: .blkb 3
    - - - Добавлено - - -

    Да, и если действительно LF генерится (не помню) - надо добавить его получение

  9. #858

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

    По умолчанию

    Вот такой расширенный вариант программы с демонстрацией разного функционала. Посимвольный ввод, эхо печатаем сами, пищим при ошибках, стираем по DEL, работаем в TSX, отрабатываем CTRL/C.

    Код:
            .TITLE  TTYIN -- ВВОД ЧЕРЕЗ .TTYIN
            .MCALL  .EXIT,.GVAL,.HERR,.PRINT	;СИСТЕМНЫЕ МАКРОСЫ
    	.MCALL	.SCCA,.SERR,.TTYIN,.TTYOUT	;...
    
    ;+
    ;СЛОВО СОСТОЯНИЯ ЗАДАНИЯ И ЕГО БИТЫ
    ;-
    $JSW    =:      44				;СЛОВО СОСТОЯНИЯ ЗАДАНИЯ
    TTSPC$  =:      10000				;БИТ СПЕЦИАЛЬНОГО РЕЖИМА
    TCBIT$  =:      100				;БИТ ЗАПРЕТА ОЖИДАНИЯ
    
    ;+
    ;ФИКСИРОВАННЫЕ СМЕЩЕНИЯ RMON
    ;-
    $TSXLC  =:      -4				;СМЕЩЕНИЕ ДО СПЕЦСИМВОЛА (TSX)
    
    ;+
    ;СИМВОЛЫ
    ;-
    ETX     =:      3				;CTRL/C
    BEL     =:      7				;BELL
    BS      =:      10				;BACKSPACE
    CR      =:      15				;CR
    DEL     =:      177				;DEL
    
            .ASECT
            .=$JSW
            .WORD   TTSPC$!TCBIT$			;ИНИЦИАЛИЗАЦИЯ JSW
            .PSECT
    
    START:: .SERR					;ЗАПРЕТ ОСТАНОВА ПО ОШИБКАМ
    						;В ДАННОМ СЛУЧАЕ ВОЗМОЖНА ОШИБКА
    						;НЕВЕРНЫЙ EMT
    ;+
    ;В TSX-PLUS И РАФОС/TS ПО УМОЛЧАНИЮ ЗАПРЕЩЕН ПОСИМВОЛЬНЫЙ ВВОД,
    ;И ПРОГРАММА ОСТАНОВИТСЯ ДО НАЖАТИЯ КЛАВИШИ АКТИВАЦИИ (НАПРИМЕР CR).
    ;СЛЕДУЮЩИЙ КОД ВКЛЮЧИТ ПОСИМВОЛЬНЫЙ РЕЖИМ И ЗАПРЕТИТ ОСТАНОВ.
    ;
    ;ВЫЗЫВАЕМЫЙ НИЖЕ EMT ЗАПРАШИВАЕТ НОМЕР ЛИНИИ В TSX-PLUS И РАФОС/TS.
    ;В RT-11 БУДЕТ ОШИБКА. ТАКИМ СПОСОБОМ СИСТЕМЫ МОЖНО РАЗЛИЧАТЬ.
    ;-
            MOV     #AREA,R0			;R0->БУФЕР С КОДОМ ФУНКЦИИ
            EMT     375				;ВЫЗОВ ФУНКЦИИ
            BCS     10$				;ЕСЛИ C УСТАНОВЛЕН - ЭТО НЕ TSX
            .GVAL   #AREA,#$TSXLC			;ПОЛУЧАЕМ КОД СПЕЦСИМВОЛА
            MOVB    R0,TSSET			;ОБНОВЛЯЕМ ФУНКЦИОНАЛЬНУЮ СТРОКУ
            MOVB    R0,TSSET+2			;...
            .PRINT  #TSSET				;ПЕЧАТАЕМ
    
    10$:    .HERR					;РАЗРЕШАЕМ ОСТАНОВ ПО ОШИБКАМ
            .SCCA   #AREA,#FLAG			;РАЗРЕШАЕМ ПЕРЕХВАТ CTRL/C
    15$:    MOV     #BUF,R1				;R1->АДРЕС БУФЕРА
            MOV     #BUFLEN,R2			;R2->РАЗМЕР БУФЕРА
    20$:    .TTYIN					;ВВОД СИМВОЛА
            CMPB    #CR,R0				;CR?
            BEQ     60$				;ДА
            CMPB    #ETX,R0				;CTRL/C?
            BEQ     70$				;ДА
            CMPB    #DEL,R0				;DEL?
            BEQ     80$				;ДА
            CMPB    #<' >,R0			;ПЕЧАТНЫЙ СИМВОЛ?
            BLOS     40$				;ДА
    ;+
    ;ПРИ НЕПРАВИЛЬНОМ ВВОДЕ ПИЩИМ.
    ;-
    30$:    .TTYOUT #BEL				;ЗВЯК
            BR      20$				;И ОБРАТНО
    
    40$:    TST     R2				;БУФЕР ЗАПОЛНЕН?
            BEQ     30$				;ДА
            MOVB    R0,(R1)+			;СОХРАНЯЕМ СИМВОЛ
            DEC     R2				;R2->ОСТАТОК МЕСТА В БУФЕРЕ
    50$:    .TTYOUT					;ЭХО
            BR      20$				;И ОБРАТНО
    
    60$:	.TTYIN					;ВЫБИРАЕМ LF
            CLRB    @R1				;ЗАВЕРШАЕМ СТРОКУ
            .PRINT  #CRLF				;ПЕРЕВОДИМ СТРОКУ НА ЭКРАНЕ
            .PRINT  #STR				;ПЕЧАТАЕМ РЕЗУЛЬТАТ
            BR      15$				;РЕСТАРТ
    
    70$:    .PRINT  #CRLF				;ПЕРЕВОДИМ СТРОКУ НА ЭКРАНЕ
            .EXIT					;ВЫХОДИМ
    
    80$:    CMP     #BUFLEN,R2			;ЕСТЬ ЧТО УДАЛЯТЬ?
            BEQ     30$				;НЕТ
            INC     R2				;R2->ОСТАТОК В БУФЕРЕ
            DEC     R1				;R1->УКАЗАТЕЛЬ НА БУФЕР
            .PRINT  #BACK				;СТИРАЕМ СИМВОЛ НА ЭКРАНЕ
            BR      20$				;И ОБРАТНО
    
    AREA:   .BYTE   0,110				;БУФЕР ФУНКЦИЙ RT-11
    FLAG:   .BLKW					;ФЛАГ CTRL/C (ПЕРЕСЕКАЕТСЯ С AREA!)
    STR:    .ASCII  /CTPOKA: /			;ЗАГОЛОВОК СТРОКИ ДЛЯ ПЕЧАТИ
    BUF:    .BLKB   3				;БУФЕР
    BUFLEN  =:      .-BUF				;РАЗМЕР БУФЕРА
    CRLF:   .BYTE   0				;ЗАВЕРШАЮЩИЙ БАЙТ И CRLF
    
    BACK:   .ASCII  <BS>/ /<BS><200>		;СТРОКА СТИРАНИЯ СИМВОЛА
    TSSET:  .ASCII  <DEL>/S/<DEL>/U/<200>		;СТРОКА НАСТРОЕК TSX
    
            .END    START				;КОНЕЦ
    Последний раз редактировалось form; 02.10.2017 в 09:33.
    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. #859

    Регистрация
    14.06.2017
    Адрес
    г. Воронеж
    Сообщений
    187
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Идея. Приблизительно
    Цитата Сообщение от form Посмотреть сообщение
    Вот такой расширенный вариант программы
    спасибо за примеры

  11. #860

    Регистрация
    14.06.2017
    Адрес
    г. Воронеж
    Сообщений
    187
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    добрый вечер.
    заинтересовала подпрограмма форматирования данных $EDMSG http://zx-pk.ru/threads/10718-soft-d...l=1#post583948
    где нибудь в природе существует пример как её использовать?

Страница 86 из 157 ПерваяПервая ... 828384858687888990 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Программирование на Эмуляторе. Возможно ли это?
    от Toxic в разделе Программирование
    Ответов: 10
    Последнее: 20.01.2008, 19:20
  2. Программирование Altera и JTAG
    от Mikka_A в разделе Несортированное железо
    Ответов: 7
    Последнее: 18.01.2008, 09:07
  3. Программирование и софтмейк на NES
    от Splinter в разделе Nintendo
    Ответов: 7
    Последнее: 30.06.2006, 04:31

Ваши права

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