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

User Tag List

Страница 5 из 100 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 992

Тема: Эмулятор терминала типа VT52

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    В приложении - вариант терминала, у которого мультиплексор HX транслирует (я надеюсь) команды потока байтов BreakOn и BreakOff со входа TTY на безымянный выход.
    Посмотрим вечером.
    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. #42
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пашет.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	hxbreak.jpg 
Просмотров:	242 
Размер:	89.7 Кб 
ID:	38321  
    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. #43
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Исходники драйвера HX
    Заглянул в драйвер...
    Несколько слов.

    Код:
    .Macro .ADDR	x
    	Mov	PC, R0
    	Add	x -., R0
    .EndM
    Системная библиотека уже содержит макрокоманду .ADDR которая обладает весьма большим функционалом (кроме того что использован здесь). Вряд-ли есть смысл дублировать. Хотя на самом деле в данном драйвере она вообще не нужна (см ниже).

    Код:
    .Macro	MTPS	xx
    	Mov	xx, -(SP)
    	Mov	PC, -(SP)
    	Add	#6,  (SP)
    	RtI
    .EndM
    Макрокоманда нигде не используется ниже. В XM/ZM работать не будет (если вдруг возникнет желание сделать поддержку для). В системной библиотеке есть замечательная макрокоманда .MTPS для таких целей.

    Код:
    .IIF NDF RTE$M,  RTE$M  =: 0
    .IIF NDF MMG$T,  MMG$T  =: 0
    .IIF NDF ERL$G,  ERL$G  =: 0
    .IIF NDF TIM$IT, TIM$IT =: 0
    Повторение того, что и так делается автоматом. Определение же вручную этих настроек здесь ломает возможность использования драйвера в стандартной процедуре SYSGEN.


    Код:
    	.DrPtr
    	.DrSpF	<373>
    Ничего полезного кроме несовместимости с RT-11 V5.0 на уровне исходников не дает: UMRы нам не нужны, error logging не поддерживается, а больше нигде от этих команд пользы нет. Ну разьве что сторонние утилиты могут посмотреть в эти таблицы (система их никак не использует). Зачем нужен .DRPTR без параметров даже придумать не могу.

    Код:
    . = 116
    
    HXMES:
    	.ASCIZ	<CR><LF>"HX DSK/TTY multiplexer   v1.0  2012"<CR><LF>
    Не очень хорошая идея вписываться в докементированные (со времен как минимум 4.0) области заголовка драйвера.

    Код:
    . = 200				; DATA DEVICE Installation check
    	Return
    . = 202				; SYSTEM DEVICE Installation check
    Если совместимость с самыми древними мониторами не нужна (а в том виде как есть ее и так нет), то можно
    воспользоваться макросом .DRINS который предназначен для определения точки инсталяции.

    Код:
    	.ADDR	#HXMES
    Думаю проще JSR R0 и строка текста после
    Кстати, тут как я понимаю готовился .PRINT изначально, мешался драйверу?

    Код:
    	.DrSet	MMGT,  2, O.GEN, NUM
    Бессмысленный функционал. Драйвер работает с буфером программы и следовательно требует специальной работы с ним для XM. Непонятно зачем испольхуется значение - можно же было сделать [NO]KEY.

    Код:
    O.GEN:
    	Tst	R0		; Arg = 0 ?
    	BEq	30$
    	BiS	R3, HX.GEN	; Set SYSGEN bit.
    	Br	31$
    30$:
    	BiC	R3, HX.GEN	; Clear SYSGEN bit.
    31$:
    	ClC
    	Return
    CLC лишний - никто бит C не взводил, да и первая же команда его чистит в явном виде.

    Код:
    .IIF GT	.-1000	.ERROR
    В системной библиотеке есть замечательная макрокоманда для этого

    .ASSUME . LE 1000,MESSAGE=<;SET area overflow>

    Код:
    	Mov	@#TPS, TPSRes
    В начале драйвера есть намек на разные CSRы. Тогда проще сделать поддержку SET HX CSR=xxxxxx.

    Код:
    	BiC	#100, @#TPS
    CLR будет короче
    Попутно стоит отметить, что подобное не сработает в многотерминальных системах. Можно добавить проверку и .ERROR (на случай сборки родным SYSGEN) или проверку в подпрограмме инсталяции.

    Дальше углубляться не стал. Добавлю еще, что для сборки драйвера неплохо бы LINK/NOBITMAP использовать (что согласно документации в принципе требуется).
    Последний раз редактировалось form; 16.11.2012 в 14:59.
    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. #44
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос на засыпку - как проще всего удостовериться, что терминал подключен через HX?
    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. #45
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Драйвер работает с буфером программы и следовательно требует специальной работы с ним для XM.
    Т.е. драйвер должен ругать тех, кто пытается собрать его текущую версию с MMG$T = 1 или выполнить SET HX MMGT=1.

    Цитата Сообщение от form Посмотреть сообщение
    Вопрос на засыпку - как проще всего удостовериться, что терминал подключен через HX?
    Набрать DIR HX:.
    Если мультиплексора нет - на терминал вылезет запрос протокола HX, стандартной отменой которого является <Ctrl/C>.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Т.е. драйвер должен ругать тех, кто пытается собрать его текущую версию под XM или выполнить SET HX MMGT=1.
    То есть SET команды переделки mapped драйвера в unmapped и наоборот не должно быть в принципе (для I/O устройства это слишком сложно - проще как и положено иметь два драйвера), а для XM надо пользоваться подпрограммами маппинга буфера.

    Ругаться же смысла нет поскольку XMу вообще нет никакого дела до файлов xx.SYS, а если усер переименовал его в xxX.SYS, то это его проблемы

    Цитата Сообщение от Patron Посмотреть сообщение
    Набрать DIR HX:.
    Если мультиплексора нет - на терминал вылезет запрос протокола HX, стандартной отменой которого является <Ctrl/C>.
    Я о программном способе - к примеру из загрузчика. Хотя думаю самое простое - просто счетчик попыток ожидания готовности на прием
    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. #46
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #47
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Я о программном способе
    Если мультиплексор получает запрос "\01\376\0\0" - он отвечает: "\375\0".

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

    По умолчанию HX, XM, etc...

    Запустил XM с HX...
    DIR, загруженный в верхнюю память, показывает каталог.

    Драйвер не оптимизировал, так, попинал слегка от нефиг делать

    Код:
    .IIF EQ MMG$T  .BlkW 5
    .IIF EQ ERL$G  .BlkW 1
    .IIF EQ TIM$IT .BlkW 1
    Перечисленное выше не имеет никакого смысла и в нормальном драйвере ничем не поможет. Причина проста: эти директивы всего лишь добавляют лишний код в драйвер, тем самым просто отодвигая дальше вектор системных подпрограмм. Это спасет драйвер от перезаписи его кода значениями этого самого вектора, но никак не поможет драйверу попасть в правильные точки вызова (к примеру в системе с поддержкой device timeout, $INPTR, вызываемый .DRASTом находится на одно слово дальше, а драйвер, скомпиленный без поддержки по прежнему будет вызывать подпрограмму по привычному смещению и тем самым вызовет @$TIMIT вместо @$INPTR).

    Данный конкретный драйвер для unmapped системы будет работать и с таким довеском - он просто ничего не вызывает из этого вектора. С mapped драйвером сложнее - там нам нужны вызовы из системного вектора, а если драйвер собран без поддержки таймаута, значение, предназначенное для $TIMIT как раз впишется в точки вызова XMных подпрограмм. Можно правда плюнуть на это так как XM без поддержки device timeout вроде не бывает в принципе.

    Правильный метод - использовать .DREND или .DRBOT с FORCE (это правда не решит проблеммы с точками вызовов которые лежат после $TIMIT и $ERLG, но пофиксит в нашем случае XMный драйвер), но к сожалению .DRBOT только в V5.6 научился это делать. Что впрочем не мешает нам собрать драйвер в 5.7 и использовать его потом где угодно

    Из серии "дурацкая идея": можно засунуть стартовый код в котором будет обычная программа синхронизации с монитором - она спросит файл монитора, прочитает оттуда sysgen слово, пропишет в драйвер и подправит вызовы подпрограмм из вектора, и никаких сетов

    Другая дурацкая идея - вызывать все вручную. Какой-то драйвер вроде делал так.

    Кстати, SETы переделал на [NO] варианты. Проверять лень было

    PS. SPFUN я там не переделывал для XM. Принцип тот же, только $PTWRD...
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	xmhx.jpg 
Просмотров:	229 
Размер:	61.3 Кб 
ID:	38331  
    Вложения Вложения
    • Тип файла: rar hxdrv.rar (4.5 Кб, Просмотров: 131)
    Последний раз редактировалось form; 17.11.2012 в 07:37.
    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. #49
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Запустил XM с HX...
    А зачем при входе в HX.Write и HX.Read устанавливать R4:

    Код:
    HX.Write:
    .IF	NE	MMG$T
    	Mov	HXCQE, R4
    .ENDC
    -----------------------------
    -----------------------------
    HX.Read:
    
    .IF	NE	MMG$T
    	MOV	HXCQE,R4
    .ENDC
    Ведь в дальнейшем коде R4 не используется..

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Ведь в дальнейшем коде R4 не используется.
    $GTxxx/$PTxxx подпрограммы требуют чтобы R4 смотрел на Q.BLKN.
    Подпрограммы упдатят Q.BUFF.

    ---------- Post added at 18:23 ---------- Previous post was at 18:23 ----------

    Сейчас выложу дорайвер в котором SPFUN в XM тоже работает.

    ---------- Post added at 18:27 ---------- Previous post was at 18:23 ----------

    Загрузка получается одна из 10-30 попыток. Если загрузилось - дальше работает. Где-то видимо вылезает разница между полноценным и USBшным COM портом.
    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 из 100 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. [Аукционъ] Клавиатура от терминала ЕС-7927
    от BYTEMAN в разделе Барахолка (архив)
    Ответов: 18
    Последнее: 15.05.2012, 14:50
  2. Срочно ищу монитор от терминала 15ИЭ-00-013 (от ДВК-2)
    от dk_spb в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 10.02.2012, 10:19
  3. Куплю клавиатуру КМ-035 для терминала СМ 7238
    от Kronshou в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 13.09.2010, 23:33
  4. C64 или C128 в качестве терминала под Linux
    от Vinnny в разделе Commodore 16/64/128
    Ответов: 6
    Последнее: 14.12.2007, 16:39
  5. Подгрузка pc-файла типа "codes" в эмулятор
    от maximk в разделе Эмуляторы
    Ответов: 15
    Последнее: 13.11.2006, 15:46

Ваши права

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