Вывод текста в Специалисте

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Вывод текста в Специалисте

Post by Shaos »

Code: Select all

C037H - вывод символа на экран
  Вх: C - код символа
      (8ffc), (8ffd) - положение курсора
      (8fe7), (8fe8) - (адрес знакогенератора)/8
 Изм: -- 
Интересует пример кода - что писать в положение курсора и куда указывать знакогенератором, какого формата знакогенератор, а также есть ли возможность печатать стандартным шрифтом?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

6 бит линии символа имеют в себе пустую точку в начале или в конце? или подразумевается что при выводе она сама ставится?
тоже про вертикальное представление - пустая линия под символом является частью фонта либо добавляется 7-й (8-й) линией автоматически?
и как системе указать, что я хочу заюзать стандартный фонт - он ведь где-то да сидит?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

а цвет ведь размазан на 8 пикселов - если шаг шрифта 6, то значит некоторые символы будут биться атрибутами на части?
и чего таки надо писать в адрес знакогенератора для печати стандартным фонтом?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

про ксорку с цветом я всё-равно не въехал, ну да ладно...
получается, что текстовый экран тут 64x25 - можно попробовать портануть RW1P2 на чисто текстовый спец (по аналогии с рк)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:
Shaos wrote:а цвет ведь размазан на 8 пикселов - если шаг шрифта 6, то значит некоторые символы будут биться атрибутами на части?
и чего таки надо писать в адрес знакогенератора для печати стандартным фонтом?
Не будет. Подпрограмма вывода символа учитывает, что символ может быть выведен в 4х вариантах: внутри байта (0 и 3 вариант) или на стыке двух байт (1 и 2), так что все пучком. Для наглядности покажу как это происходит:

Code: Select all

; D7 D6 D5 D4 D3 D2 D1 D0   D7 D6 D5 D4 D3 D2 D1 D0   D7 D6 D5 D4 D3 D2 D1 D0
;  S  S  S  S  S  S  -  -    -  -  -  -  -  -  -  -    -  -  -  -  -  -  -  -
;  -  -  -  -  -  -  S  S    S  S  S  S  -  -  -  -    -  -  -  -  -  -  -  -
;  -  -  -  -  -  -  -  -    -  -  -  -  S  S  S  S    S  S  -  -  -  -  -  -
;  -  -  -  -  -  -  -  -    -  -  -  -  -  -  -  -    -  -  S  S  S  S  S  S
Это всё красиво и наглядно. Только в принципе Шаос прав. Поскольку цвет
присваивается байту экрана, символ на границе байтов может быть раскрашен
частями: часть - цвета байта слева, часть цвета байта справа. Только так
в стандарте не происходит, т.к. при выводе символа со сдвигами - он окрасит
байты своим цветом.
Интересный эффект. Никогда не задумывался, т.к. работал на зелёном монохромном
дисплее.

Кстати можно проверить - перебрать ОЗУ экрана побайтово с 9000 - читать
байт и записывать его снова с цветом. С 9100 в столбце байт - изменить
цвет и т.д. Символы на стыке байтов окрасятся по частям.