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

User Tag List

Страница 3 из 16 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 154

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

  1. #21
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что ругаешься? Может он так задумывал.
    Код ведь не соответствует add hl,bc

  2. #22
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я всё писал в мнемонике Z80, но для совместимости с ВМ80 (эмулятор всё равно расширенные команды не пропускает - заточен под ВМ80). А приведённая подпрограмма учитывает перенос в старший разряд. Если и adc пойдёт, то напишите. Чуть подзабыл ассемблер, лет 7 со времен писания программ под Скорпион прошло...

  3. #23
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    313
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Я всё писал в мнемонике Z80, но для совместимости с ВМ80 (эмулятор всё равно расширенные команды не пропускает - заточен под ВМ80). А приведённая подпрограмма учитывает перенос в старший разряд. Если и adc пойдёт, то напишите. Чуть подзабыл ассемблер, лет 7 со времен писания программ под Скорпион прошло...
    Если по условию нужно сложить именно [HL] и [BC] как 16ти битную арифметику, то:
    1. Не нужно сбрасывать 'C', т.к. первая команда сложения не учитывает этот флаг.
    2. Корректировать старший байт нужно ДО второго сложения.
    3. А значит, подпрограмма будет выглядить так:
    Код:
    PUSH PSW
    MOV  A,L
    ADD  C
    MOV  L,A
    MOV  A,H
    ADC  B
    MOV  H,A
    POP  PSW
    RET
    4. Но если вспомнить таблицу команд ВМ80, то можно просто сделать DAD B и всего делов...

    PS Я предлагаю использовать TASM и в родных мнемониках ВМ80.
    Последний раз редактировалось HardWareMan; 16.10.2011 в 19:04.

  4. #24
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    4. Но если вспомнить таблицу команд ВМ80, то можно просто сделать DAD B и всего делов...
    Вот это и применим. Спасибо![COLOR="Silver"]
    Последний раз редактировалось fifan; 16.10.2011 в 19:53.

  5. #25
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    313
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shoorick Посмотреть сообщение
    лицоладонь.2
    это чё? обфускация команды "DAD B"?
    Никак нет. Результат совершенно другой. :3

  6. #26
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот коды этой подпрограммы и некоторых других я взял то с сайта Shoorickа (если автор не против), конкретнее с архива.

  7. #27
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    313
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я уже выкладывал этот док на соседнем форуме, но думаю, что он понадобиться и тут. Это реплика удобной таблички команд 580ВМ80 из журнала Радио, статья про Радио-86РК. Думаю, что в соседней ветке про Радио и Орион она тоже будет полезна.

  8. #28
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,691
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    30 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Thumbs up

    Цитата Сообщение от fifan Посмотреть сообщение
    Начинаю тему для свода всех размышлений по написанию и использованию новых программ для Специалиста_МХ2. Первым в этом деле был HardWareMan с его переделанным Монитором-4 и Loaderом. Я продолжаю своим SpetsCommanderом.
    Класс! Когда видишь, как люди делают подобные вещи, у самого начинают руки чесаться и хочется тоже что-то сделать! Удачи с проектом!
    (๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ

  9. #29
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    313
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Вывод символа будет стандартный для Спеца (для поддержки совместимости): 64х25, даже координатная сетка будет та же. Только реализация будет быстрой и с поддержкой цвета. Задумок много, пока только оформлю хотелки. Для начала все будет писаться для именно для стандарт режима, потом допилится и до МХа.

    1. Полная совместимость со старыми программами, которые печатают старый текст в режиме КОИ7. А значит будет управляющий код, переключающий КОИ7 и ... (нет, не КОИ8р, я его с линупсов не люблю. :3) ср866. Почему? FAT. Этим все сказано.

    2. Полная поддержка цвета. 5/8 для стандарта и 16 для МХа. Символы будут выводиться без проверки на перекрытие байтом атрибутов двух символов. Так что эстетическая сторона полностью на совести программистов. :3

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

    Пошерстил журнальчики про Орион, 86РК и Спец и нарыл следующие управляющие коды, которые будет поддерживаться моим выводом символа:
    Код:
    07H - Гудок
    08H - Влево, с переходом на строку выше на границе экрана
    0AH - Перевод строки со скроллингом
    0CH - Домой
    0DH - Возврат каретки
    18H - Вправо с переходом на следующую строку на границе экрана
    19H - Вверх со скроллингом
    1AH - Вниз со скроллингом
    1FH - Очистка экрана
    7FH - Инверсия вывода (выключается повтором кода)
    
    1BH - ESC:
    1BH, 41H - Вверх
    1BH, 42H - Вниз
    1BH, 43H - Вправо
    1BH, 44H - Влево
    1BH, 45H - Стирание экрана
    1BH, 48H - Домой
    1BH, 4AH - Стирание ниже курсора
    1BH, 4BH - Стирание правее курсора
    1BH, 59H, (XXH+20H), (YYH+20H) - Позиция курсора
    1BH, 61H - Гашение курсора
    1BH, 62H - Восстановление курсора
    Эта таблица не полная, поэтому призываю к активному обсуждению и дополнению ее. Так же, будет введен код управления направления автосмещения. По умолчанию, это курсор вправо. Но можно будет задавать вверх, вниз, влево и даже отменять автоматическое перемещение. Это позволит быстро рисовать всяческие рамки. Так же, хочется повторить много управляющих кодов из МХа, но там они однобайтовые, что в нашем случае не подходит: у нас полная кодовая страница ср866, за исключением кодом менее 20Н. Давайте обсудим это и я примусь за реализацию.

    Ах да, сам вывод символа будет запускаться из ПЗУ и сам фонт так же будет находиться в ПЗУ. Как в стандарте, так и в МХе.

  10. #30
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    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

Страница 3 из 16 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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