|
nedoPC.orgCommunity for electronics hobbyists, established in 2002 |
|
Расширяя горизонты возможностей ВГ75
Author |
Message |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 893
|
Явно другой режим ВГ75 - 8 линий на символ. Я думал ты говоришь про монитор, так сказать стандартный режим после сбоса.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
11 Jan 2014 10:23 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23467 Location: Silicon Valley
|
Да вроде теже самые 25 строк...
|
11 Jan 2014 17:45 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Может там как раз юзают спецкоманды?
_________________ iLavr
|
11 Jan 2014 18:10 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 164 Location: 93.80.157.217
|
кому-нибудь удалось реализовать экран 80 на 25 символов?
|
17 Jun 2014 04:40 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 472 Location: Москва
|
|
17 Jun 2014 05:19 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 164 Location: 93.80.157.217
|
ну речь тут не о Роботроне, на РК это бы хотелось увидеть
|
17 Jun 2014 06:12 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Увидеть сами 80 символов в строке? Или увидеть - как это сделано?
_________________ iLavr
|
17 Jun 2014 08:43 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 472 Location: Москва
|
Поставил задачу: при помощи ВГ75 получить 80 знаков в ряду, видеорежим VGA 640x480 60 Гц (типа индастри стэндард), рядов сколько получится исходя из видеорежима. Один из вариантов - 30 рядов при высоте знакоместа 16 линий. Ширина знакоместа без вариантов, 640/80=8 исходя из условий. Начинаю понимать авторов РК86, ужавшихся по числу символов в ряду, но получивших взамен свободу в формировании строчного гашения и строчного синхроимпульса, и при этом малыми затратами.
Кстати, параметры этого режима VGA предполагают длительность кадрового гашения 45 строк и длительность кадрового синхроимпульса всего 2 строки, поэтому трюк с формированием гашения путем программирования видеобуфера на выдачу пустого поля в конце кадра и назначением VRTC на роль кадрового синхроимпульса не проходит. VRTC программируется числом знакорядов, а это 16 строк минимум, что сильно больше требуемых 2 строк.
|
26 Jun 2014 04:28 |
|
|
Stan
Banned
Joined: 04 Jan 2013 10:09 Posts: 397 Location: 95.24.178.158
|
Похожие рассуждения уже доводилось читать вот здесь:
http://zx-pk.ru/printthread.php?t=9510&pp=40
Схема, согласно которой синхронизация выполняется аппаратно на двух одновибраторах
и программируемом интервальном таймере 580ВИ53, встречалась в каком-то из номеров МПСС,
однако сейчас номер сразу не вспомню.
Но очень похожая схема выложена вот здесь:
http://www.emuverse.ru/downloads/computers/Unior/docs/Unior_Schematics.png
Она, собственно, и обсуждается по ссылке в начале моего поста.
Для справки: Компьютер "Юниор ФВ-6506"
|
26 Jun 2014 08:15 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 472 Location: Москва
|
| | | | Stan wrote: Похожие рассуждения уже доводилось читать вот здесь: http://zx-pk.ru/printthread.php?t=9510&pp=40Схема, согласно которой синхронизация выполняется аппаратно на двух одновибраторах и программируемом интервальном таймере 580ВИ53, встречалась в каком-то из номеров МПСС, однако сейчас номер сразу не вспомню. ... | | | | |
Вот-вот, и я про то же, элегантность сразу куда-то девается, и решение "тяжелым" выходит. Цепочка одновибраторов, согласитесь, чем-то смахивает на безысходность и крик души. Ну, или, если угодно, на "а иди оно все лесом, и так сойдет". Все-таки, форма у ВГ75 хитрая, и никак не хочет без зазоров втыкаться в то место, куда ее хотят воткнуть. Контраст по сравнению с простейшей как кирпич 6845.
|
27 Jun 2014 06:39 |
|
|
Stan
Banned
Joined: 04 Jan 2013 10:09 Posts: 397 Location: 95.24.178.158
|
Это схемотехническое решение работает так, как спрашивал нас
Он же не спрашивал нас про эстетику квадрата Малевича или про элегантность "кирпича 6845"?
|
27 Jun 2014 14:02 |
|
|
Stan
Banned
Joined: 04 Jan 2013 10:09 Posts: 397 Location: 95.24.178.158
|
К сожалению, нет под руками журналов, чтобы уточнить, но подозреваю, что это:
Д.И. Панфилов, О.Л. Романенко, В.С. Сафанюк, С.Г. Шаронин
ПРИНЦИПЫ ОРГАНИЗАЦИИ И РАБОТЫ ДИСПЛЕЕВ НА ОСНОВЕ БИС КР580ВГ75
«Микропроцессорные средства и системы» ¹ 3, 1985, с.51
|
27 Jun 2014 14:39 |
|
|
Paguo-86PK
Maniac
Joined: 12 Apr 2011 20:43 Posts: 267 Location: Tashkent
|
Когда-то, прочитав журнал "Радио" со статьёй "Монитор открывает окна", жутко захотелось увидеть это на практике. Хотя, в статье была теория и до дампа речи не дошло. Спустя 25 лет мне удалось это! Написал на этой неделе свой вариант процедуры вывода символа на экран. А любопытно то, что она меньше оригинальной ровно на 1 байт. Процедура биппинга так же осталась на своём месте - FD27. Программа понимает также Esc-очередь и кроме позиционирования курсора Esc+Y+PosX+PosY, понимает другие коды и имеет внешний их обработчик (или заглушку). Символ табуляции также тут работает адекватно: сдвигает курсор. Единственный минус - 29 байтов множителя на 78 записи в ячейку экрана. Компенсация - текстовое окно любого формата в любой позиции. Таким образом, как доказательство на практике - оптимизация кода здесь сыграла огромную роль. И, так сказать, сбылась мечта идиота. Допустим, визуализируя здесь код Esc за символ "Σ", последовательности можно представить так: Σ1;2;3;4V - Viewport set Top = 1; Left = 2; Height = 3; Width = 4. Σ255;5;6;254B - Bring viewpot Top-=1; Left+= 5; Height+= 6; Width-= 2. Σ0;7;9;8L - Line draw at Y1 = 0; X1 = 7; Y2 = 9; X2 = 8. Σ128C - Codepage offset: set to 128 (Draw chars +128: 80..FF). Σ46C\x1F - Clear viewport screen width 0x2E (viewport dot-paint). Это не по ANSI-протоколу (Esc+[n), т.к. его реализация в РК не к чему. Исходный листинг написан не в стиле i8080-ассемблеров, что существенно упростило отладку. Например, умножалка на 78 выглядит примерно так: "MulTo78" | | | | Code: Mul78: ; BX = (ViewPort.Screen + BH * 78 + BL), AL CL CH - destroyed. ; HL = (ViewPort.Screen + H * 78 + L), A B and C - destroyed. 3A.... MOV AL,[ViewPort.Y] ; LDA ViewPort.Y 84 ADD AL,BH ; ADD H 87 ADD AL,AL ; ADD A 4F MOV CL,AL ; MOV C,A AF XOR AL,AL ; XRA A 47 MOV CH,AL ; MOV B,A 67 MOV BH,AL ; MOV H,A 3A.... MOV AL,[ViewPort.X] ; LDA ViewPort.X 85 ADD AL,BL ; ADD L 69 MOV BL,CL ; MOV L,C 29 ADD BX,BX ; DAD H 29 ADD BX,BX ; DAD H 29 ADD BX,BX ; DAD H 09 ADD BX,CX ; DAD B 29 ADD BX,BX ; DAD H 09 ADD BX,CX ; DAD B 29 ADD BX,BX ; DAD H 09 ADD BX,CX ; DAD B 4F MOV CL,AL ; MOV C,A 09 ADD BX,CX ; DAD B E5 PUSH BX ; PUSH H 2A.... MOV BX,[ViewPort.Screen] ; LHLD ViewPort.Screen E3 XCHG BX,[SP] ; XTHL C1 POP CX ; POP B 09 ADD BX,CX ; DAD B C9 RET ; RET
| | | | |
Исходный листинг написан не в стиле i8080-ассемблеров, что существенно Это, конечно, нарушение правил. Но, это упрощает отладку всех ключевых фрагментов в среде отладчика Visual Studio. Но, тем, кто привык писать уже программы под x86, будет значительно легче писать и под сам i8080. Я убедился, что используя более совершенные и удобные инструменты, под старенькие процессоры можно писать более компактные алгоритмы. P.S.: "Пропатчил" программу "Монитор" своим кодом. Буфер команд уменьшил вдвое. Вместо кода "X" директивы - заплатка инициализации (запись в системные переменные адресов обработчиков Esc-кодов, звонка "0x07", начала экранной области). Теперь прикладные программы могут смещать активную область экрана и перехватывать спец-символы. "Скриншот"
|
06 Mar 2015 20:49 |
|
|
Stan
Banned
Joined: 04 Jan 2013 10:09 Posts: 397 Location: 95.24.178.158
|
Не имею намерения Вас огорчать 25 лет спустя, но мне почему-то помнится, что код там был. Хотя, конечно же, я могу ошибаться, но просто в поиске по вопросам старых Бейсиков я с этим материалом, похоже что столкнулся. Вот это сама статья про окна: http://retro.h1.ru/RK86/Windows/WinIntr.htmlА вот это - ассемблерный листинг к ней: http://retro.h1.ru/RK86/Windows/RWinTbl.txt
|
11 Mar 2015 17:41 |
|
|
Paguo-86PK
Maniac
Joined: 12 Apr 2011 20:43 Posts: 267 Location: Tashkent
|
Хм. Странно... Что-то не помню эту статью. Тем не менее. Во-первых, мой "драйвер" укладывается в область самого "Монитора" - FCBA..FDFF; Во-вторых, обрабатывает Escape-коды и даёт возможность их обрабатывать своим кодом; В-третьих, нет опасности выхода за пределы окна. Коды 0x08, 0x0A, 0x0D, 0x18, 0x19, 0x1A, 0x1B, 0x1F драйвер обрабатывает всегда сам. Остальные коды (любые, включая 0x07, 0x09 и т.д.) можно перехватывать подставным драйвером, прописав его по адресу 0x7650... Я понимаю, что опубликованная "классика" лучше новодела. Но, раз уж на то пошло, я уже написал код, потратив неделю... Недостатки: Код 0x1F работает медленно: Очистка экрана - разовая и редкая операция. Следуя принципу, что на редком можно экономить, я сберёг на ней кучу байт; Буфер ввода директив "Монитора" уменьшился вдвое. Ровно до того, чтобы ввести директиву "T76D1,7FF3,76D0" - 15 символов. Кстати, если кому любопытно, могу выложить дамп самого "монитора" и демки с "окошками"... Весит - 957 байт (0000..003BD - на данный момент разработки). Включено: Диспетчер на 3 окна и рисовалка пикселей/линий в окне Escape'ми. Как в скриншотах. Весь код - мой: (Не подглядывал в гугл) 1. Умножалка на 78 (для экрана: вывод символа, пиксела, линий. FCEB..FD0A); 2. Делилка на 10; 3. Рисовалка линий. А вот рисовалку окружности списывал с Брезенхэма. Но, неудачно: Рисует полное уродство.
|
11 Mar 2015 20:31 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|