nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 15:30



Reply to topic  [ 139 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7, 8, 9, 10  Next
Расширяя горизонты возможностей ВГ75 
Author Message
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Shaos wrote:
Ну вот например Микроша:

Явно другой режим ВГ75 - 8 линий на символ. Я думал ты говоришь про монитор, так сказать стандартный режим после сбоса.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


11 Jan 2014 10:23
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
b2m wrote:
Shaos wrote:
Ну вот например Микроша:

Явно другой режим ВГ75 - 8 линий на символ. Я думал ты говоришь про монитор, так сказать стандартный режим после сбоса.


Да вроде теже самые 25 строк...

_________________
:dj: https://mastodon.social/@Shaos


11 Jan 2014 17:45
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Да вроде теже самые 25 строк...

Может там как раз юзают спецкоманды?

_________________
iLavr


11 Jan 2014 18:10
Profile
Senior
User avatar

Joined: 17 Jun 2014 04:29
Posts: 126
Location: 93.80.157.217
Reply with quote
Post 
кому-нибудь удалось реализовать экран 80 на 25 символов?


17 Jun 2014 04:40
Profile WWW
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Post 
vital72 wrote:
кому-нибудь удалось реализовать экран 80 на 25 символов?

Роботрону удалось


17 Jun 2014 05:19
Profile
Senior
User avatar

Joined: 17 Jun 2014 04:29
Posts: 126
Location: 93.80.157.217
Reply with quote
Post 
ну речь тут не о Роботроне, на РК это бы хотелось увидеть


17 Jun 2014 06:12
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
vital72 wrote:
ну речь тут не о Роботроне, на РК это бы хотелось увидеть

Увидеть сами 80 символов в строке? Или увидеть - как это сделано?

_________________
iLavr


17 Jun 2014 08:43
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Post 
Поставил задачу: при помощи ВГ75 получить 80 знаков в ряду, видеорежим VGA 640x480 60 Гц (типа индастри стэндард), рядов сколько получится исходя из видеорежима. Один из вариантов - 30 рядов при высоте знакоместа 16 линий. Ширина знакоместа без вариантов, 640/80=8 исходя из условий. Начинаю понимать авторов РК86, ужавшихся по числу символов в ряду, но получивших взамен свободу в формировании строчного гашения и строчного синхроимпульса, и при этом малыми затратами.
Кстати, параметры этого режима VGA предполагают длительность кадрового гашения 45 строк и длительность кадрового синхроимпульса всего 2 строки, поэтому трюк с формированием гашения путем программирования видеобуфера на выдачу пустого поля в конце кадра и назначением VRTC на роль кадрового синхроимпульса не проходит. VRTC программируется числом знакорядов, а это 16 строк минимум, что сильно больше требуемых 2 строк.


26 Jun 2014 04:28
Profile
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
Похожие рассуждения уже доводилось читать вот здесь:
http://zx-pk.ru/printthread.php?t=9510&pp=40

Схема, согласно которой синхронизация выполняется аппаратно на двух одновибраторах
и программируемом интервальном таймере 580ВИ53, встречалась в каком-то из номеров МПСС,
однако сейчас номер сразу не вспомню.

Но очень похожая схема выложена вот здесь:
http://www.emuverse.ru/downloads/computers/Unior/docs/Unior_Schematics.png

Она, собственно, и обсуждается по ссылке в начале моего поста.

Для справки: Компьютер "Юниор ФВ-6506"
Quote:
Символьный режим
Количество цветов: 8
Количество палитр: 2
Строк: 24
Символов в строке: 80


26 Jun 2014 08:15
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Post 
Stan wrote:
Похожие рассуждения уже доводилось читать вот здесь:
http://zx-pk.ru/printthread.php?t=9510&pp=40

Схема, согласно которой синхронизация выполняется аппаратно на двух одновибраторах
и программируемом интервальном таймере 580ВИ53, встречалась в каком-то из номеров МПСС,
однако сейчас номер сразу не вспомню.
...

Вот-вот, и я про то же, элегантность сразу куда-то девается, и решение "тяжелым" выходит. Цепочка одновибраторов, согласитесь, чем-то смахивает на безысходность и крик души. Ну, или, если угодно, на "а иди оно все лесом, и так сойдет". Все-таки, форма у ВГ75 хитрая, и никак не хочет без зазоров втыкаться в то место, куда ее хотят воткнуть. Контраст по сравнению с простейшей как кирпич 6845.


27 Jun 2014 06:39
Profile
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
Mixa64 wrote:
...элегантность сразу куда-то девается, и решение "тяжелым" выходит. Цепочка одновибраторов,
согласитесь, чем-то смахивает на безысходность и крик души. Ну, или, если угодно, на "а иди оно
все лесом, и так сойдет".

Это схемотехническое решение работает так, как спрашивал нас
vital72 wrote:
кому-нибудь удалось реализовать экран 80 на 25 символов?

Он же не спрашивал нас про эстетику квадрата Малевича или про элегантность "кирпича 6845"?


27 Jun 2014 14:02
Profile
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Post 
Stan wrote:
Схема, ..., встречалась в каком-то из номеров МПСС,
однако сейчас номер сразу не вспомню.

К сожалению, нет под руками журналов, чтобы уточнить, но подозреваю, что это:

Д.И. Панфилов, О.Л. Романенко, В.С. Сафанюк, С.Г. Шаронин
ПРИНЦИПЫ ОРГАНИЗАЦИИ И РАБОТЫ ДИСПЛЕЕВ НА ОСНОВЕ БИС КР580ВГ75
«Микропроцессорные средства и системы» ¹ 3, 1985, с.51


27 Jun 2014 14:39
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Когда-то, прочитав журнал "Радио" со статьёй "Монитор открывает окна",
жутко захотелось увидеть это на практике. Хотя, в статье была теория и
до дампа речи не дошло. Спустя 25 лет мне удалось это! Написал на этой
неделе свой вариант процедуры вывода символа на экран. А любопытно то,
что она меньше оригинальной ровно на 1 байт. Процедура биппинга так же
осталась на своём месте - FD27. Программа понимает также Esc-очередь и
кроме позиционирования курсора Esc+Y+PosX+PosY, понимает другие коды и
имеет внешний их обработчик (или заглушку). Символ табуляции также тут
работает адекватно: сдвигает курсор.
Единственный минус - 29 байтов множителя на 78 записи в ячейку экрана.
Компенсация - текстовое окно любого формата в любой позиции.
Таким образом, как доказательство на практике - оптимизация кода здесь
сыграла огромную роль. И, так сказать, сбылась мечта идиота.
Code:
FCA5:                F5 0F 0F|0F 0F CD AE FC F1 E6 0F|Э...Щ...........
FCB0: FE 0A FA B7 FC C6 07 C6|30 4F F5 E5 D5 C5 CD 12|........0O......
FCC0: F8 2A DimXY EB 2A PosXY|79 E6 7F CD 57 FD 22 Po|.*.Ъ.*.ЪЫ.Ъ.W.@.
FCD0:sXY EB 2A OfsXY 19 11 01|C0 EB 36 80 2B 73 72 21|Ъ.*.Ъ.....6.+СР!
FCE0: Seque 70 C1 D1 E1 F1 C9|79 FE 07 CA 24 FD FE 0A|.ЪП.....Ы...$...
FCF0: CA 90 FD FE 0D CA 53 FD|FE 08 CA BD FD FE 19 CA|......S.........
FD00: C1 FD FE 18 CA C6 FD FE|1A CA CB FD FE 0C CA 51|...............Q
FD10: FD FE 1F CA 38 FD FE 09|C2 7E FD 7D E6 78 C6 08|....8....Ч.Щ.Ь..
FD20: 6F C3 8C FD 01 F0 05 78|FB 3D C2 28 FD 78 F3 3D|О......Ь.=.(.Ь.=
FD30: C2 2E FD 0D C2 27 FD C9|AF 6F 67 CD Mul78 3E 4E|.....'...ОГ...>N
FD40: 93 4F 3A Speci 43 77 23|05 C2 46 FD 09 15 C2 45|.O:.ЪCВ#..F....E
FD50: FD AF 67 AF 6F 47 C9 4F|06 03 FE 1B C8 3A Escap|..Г.ОG.O.....:.Ъ
FD60: 47 D6 01 DA E8 FC 47 CA|B8 FD FA D7 FD 1F 79 DA|G.....G.......Ы.
FD70: B4 FD FE 59 C8 AF 32 Speci 06 FE C3 D7 FD E5 C5|...Y..2.Ъ.......
FD80: CD Mul78 C1 3A Speci 81|77 E1 2C 7D 93 D8 AF 6F|....:.Ъ.В.,Щ...О
FD90: 24 7C 92 D8 25 E5 6F CD|Mul78 01 B2 FF D5 E5 3A|$Э..%.О........:
FDA0: FA 7F 5F 7E 73 09 15 C2|A2 FD E1 D1 23 1D C2 9D|.Ъ_ЧС.......#...
FDB0: FD E1 04 C9 D6 20 67 C9|79 D6 20 6F C9 2D F0 6B|..... Г.Ы. О.-.К
FDC0: 2D 25 F0 62 25 C9 2C 7D|93 D8 6F 24 7C 92 D8 67|-%.Б%.,Щ..О$Э..Г
FDD0: C9 CD FA FD 01 30 FF 79|FE 3C D2 D1 FD FE 3A D0|.....0.Ы.<....:.
FDE0: D6 30 DA D4 FD 4F 21 F9|7F 04 78 85 6F 7E 87 87|.0...O!.Ъ.Ь.ОЧ..
FDF0: 86 87 81 77 F1 AF 57 C3|DC FC E5 21 Escap E3 C9|...В..W....!-...

Mul78:3A Ofs_X 84 87 4F AF 47|67 3A Ofs_Y 85 69 29 29|:....O.GГ:.Ъ.И))
....: 29 09 29 09 29 09 4F 09|01 D0 76 09 C9

Escap - Escape-sequency procedure
Ofs_X, Ofs_Y - Viewport offset


Допустим, визуализируя здесь код 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", начала экранной области). Теперь прикладные программы могут смещать активную область экрана и перехватывать спец-символы.
 "Скриншот"
Attachment:
File comment: View 2015
rk-view.gif
rk-view.gif [ 66.41 KiB | Viewed 10334 times ]

Attachment:
File comment: Viewport manager demonstration
FCBA.gif
FCBA.gif [ 98.96 KiB | Viewed 10382 times ]


06 Mar 2015 20:49
Profile WWW
Banned
User avatar

Joined: 04 Jan 2013 10:09
Posts: 397
Location: 95.24.178.158
Reply with quote
Paguo-86PK wrote:
Когда-то, прочитав журнал "Радио" со статьёй "Монитор открывает окна",
жутко захотелось увидеть это на практике. Хотя, в статье была теория и
до дампа речи не дошло. Спустя 25 лет мне удалось это!

Не имею намерения Вас огорчать 25 лет спустя, но мне почему-то помнится, что код там был.
Хотя, конечно же, я могу ошибаться, но просто в поиске по вопросам старых Бейсиков я с этим материалом, похоже что столкнулся.

Вот это сама статья про окна:
http://retro.h1.ru/RK86/Windows/WinIntr.html

А вот это - ассемблерный листинг к ней:
http://retro.h1.ru/RK86/Windows/RWinTbl.txt


11 Mar 2015 17:41
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Stan wrote:
Paguo-86PK wrote:
Когда-то, прочитав журнал "Радио" со статьёй "Монитор открывает окна",
жутко захотелось увидеть это на практике. Хотя, в статье была теория и
до дампа речи не дошло. Спустя 25 лет мне удалось это!

Не имею намерения Вас огорчать 25 лет спустя, но мне почему-то помнится, что код там был.
Хотя, конечно же, я могу ошибаться, но просто в поиске по вопросам старых Бейсиков я с этим материалом, похоже что столкнулся.

Вот это сама статья про окна:
http://retro.h1.ru/RK86/Windows/WinIntr.html

А вот это - ассемблерный листинг к ней:
http://retro.h1.ru/RK86/Windows/RWinTbl.txt

Хм. Странно... Что-то не помню эту статью.
Тем не менее.
Во-первых, мой "драйвер" укладывается в область самого "Монитора" - 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
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 139 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7, 8, 9, 10  Next

Who is online

Users browsing this forum: No registered users and 8 guests


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

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.