User Tag List

Показано с 1 по 10 из 154

Тема: Специалист_МХ2: новые программы для нового Специалиста.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Я, пожалуй, начну с BIOSа. И так понятно, что это ответственная часть. В самом BIOSе всего несколько ключевых подпрограмм. И начну я с вывода символа.

    Вывод символа будет стандартный для Спеца (для поддержки совместимости): 64х25, даже координатная сетка будет та же.
    Будет ли Монитор иметь константы в ОЗУ, описывающие геометрию экрана (как в Орионе) - на Орионе это позволяло уменьшать "область экрана драйвера" (вводить служебные строки, не попадающие под искейп-обработку)?

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    3. Поддержка ESC кодов. Вообще, весь сервис планируется именно через ESC последовательности. Во первых, они стандартны (вроде как), а во вторых - можно придумать много своих, не теряя в совместимости со старыми программами.

    Пошерстил журнальчики про Орион, 86РК и Спец и нарыл следующие управляющие коды, которые будет поддерживаться моим выводом символа:
    Я правильно понял, будешь идти по возможности близко к стандартам VT-52?

    Вот результат моих исследований:
    Код:
    				VT52 compliant codes
    				====================
    
    			Orion Monitor-2		Orion CPM (ACPM)	MYZ80 CPM.EXE
    			---------------		----------------	-------------
    
      01h			------------		------------		HOME
      04h			------------		------------		CLS+HOME
    
      07h			BELL			BELL			BELL
    + 08h			cursor LEFT		cursor LEFT		BACKSPACE
    + 09h			TAB			TAB			TAB
    + 0Ah			LF 			LF			LF
      0Bh			------------		------------		cursor UP
      0Ch			HOME			------------		CLS
    + 0Dh			CR			CR			CR
      
      18h			cursor RIGHT		cursor RIGHT		CLREOLN
      19h			cursor UP		cursor UP		-----------
      1Ah			cursor DOWN		cursor DOWN		CLS+HOME
    
      1Eh			------------		------------ 		HOME
    + 1Fh			CLS+HOME		CLS+HOME		CR+LF
    
    + 7Fh			INVERSE			------------		-----------
    
    + 1Bh+34h='4' 		------------		LineWrap ON		-----------
    + 1Bh+35h='5' 		------------ 		LineWrap OFF		-----------
    + 1Bh+36h='6' 		------------		Inverse ON		-----------
    + 1Bh+37h='7' 		------------ 		Inverse OFF		-----------
    
      1Bh+3Ah=':' 		------------		cursor ON		CLS
      1Bh+3Bh=';' 		------------ 		cursor OFF		CLS
    
    + 1Bh+41h='A'		cursor UP		cursor UP		cursor UP
    + 1Bh+42h='B'		cursor DOWN		cursor DOWN		cursor DOWN
    + 1Bh+43h='C'		cursor RIGHT		cursor RIGHT		cursor RIGHT
    + 1Bh+44h='D'		cursor LEFT		cursor LEFT		cursor LEFT
    + 1Bh+45h='E'		CLS			CLS			CLS+HOME
    
    + 1Bh+48h='H'		HOME			HOME			HOME
      1Bh+49h='I'		------------		set/get ActiveScreen	reverse LineFeed
    + 1Bh+4Ah='J'		CLRREOSCR		CLRREOSCR		CLRREOSCR
    + 1Bh+4Bh='K'		CLREOLN			CLREOLN			CLREOLN
      1Bh+4Ah='L'		------------		INSROW			INSROW
      1Bh+4Bh='M'		------------		DELROW			DELROW
    
      1Bh+52h='R'		------------		set cursor height	DELROW
    
    + 1Bh+59h='Y'+X+Y	cursor position		cursor position		cursor position
    
      1Bh+64h='d'		------------		-----------		CLRBOSCR
      1Bh+65h='e' [		------------		-----------		cursor ON
      1Bh+66h='f'		------------		-----------		cursor OFF
    
      1Bh+6Ah='j'		------------		-----------		save cursor
      1Bh+6Bh='k'		------------		-----------		restore cursor position
      1Bh+6Ch='l'		------------		-----------		clear line
    
      1Bh+6Fh='o'		------------		-----------		CLRBOLN
      1Bh+70h='p'		------------		-----------		Inverse ON
      1Bh+71h='q'		------------		-----------		Inverse OFF
    
      1Bh+76h='v'		------------		-----------		line wrap on
      1Bh+77h='w'		------------		-----------		line wrap off
    Коды помеченные "+" должны быть реализованы обязательно в минимальном наборе (т.е. вместе с другими, возможно не только они).

    Использование только "+"-помеченных кодов позволило мне написать коммандер (исходники на сайте) работающий не только как в "классическом" MS-DOS эмуляторе CP/M, так и на всех VT-52 версиях CP/M Ориона. Кроме того, этот коммандер корректно отображается в RS-232 терминальных клиентах, понимающих VT52 (например стандартном виндовозном HyperTerm). Этот результат на Орионе больше не одним псевдографическим коммандером не достигнут - все прочие рисуют по RS-232 кашу даже при включенной эмуляции VT52.

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Так же, будет введен код управления направления автосмещения. По умолчанию, это курсор вправо. Но можно будет задавать вверх, вниз, влево и даже отменять автоматическое перемещение. Это позволит быстро рисовать всяческие рамки. Давайте обсудим это и я примусь за реализацию.
    Файл во вложении - описание Esc-последовательностей драйвера ACPM Ориона. Оконные функции реализовывались через коды расширенного драйвера VT-52 Ориона - последовательностью Esc+W (и не только: стандартные ESC,'L' , ESC,'M' внутри окна дают вертикальный скроллинг содержимого окна вверх/вниз). Esc-W в Орионе реализовано не совместимо с "оконными" искейпами эмулятора MyZ80, но оконные Esc-расширения стандарта VT-52 и не прижились в "стандартных" CP/M приложениях - не используются почти нигде, и как бы это помягче сказать - вообще "недостандартизованы" (неполны, неудобны, не совпадают от мануала к мануалу).

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Ах да, сам вывод символа будет запускаться из ПЗУ и сам фонт так же будет находиться в ПЗУ. Как в стандарте, так и в МХе.
    Будут ли векторизированы в ОЗУ подпрограммы Монитора, адрес фонта в некоторой ячейке и т.д.? Это даст подключать пользовательские драйвера и фонты... Например для CР/M, 64х25 - это мало, неудобно. Иногда надо 64х24, и почти всегда надо 80х25, т.е. по любому в CP/М придется подгружаемый драйвер иметь.
    Вложения Вложения
    Последний раз редактировалось Error404; 17.10.2011 в 15:46.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

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

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

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

Похожие темы

  1. Трекер нового поколоения
    от newart в разделе Музыка
    Ответов: 63
    Последнее: 02.02.2016, 09:55
  2. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16
  3. Продается Лик (клон Специалиста)
    от KALDYH в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 20.02.2010, 14:29

Ваши права

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