PentEvo TxtMode

ZX evolution software and hardware

Postby lvd » 17 Aug 2011, 15:53

DimkaM wrote:Смещение у атрибутов надо местами поменять, вроде как. А то у мну процедурка косячит.

Дока правильная у нас. У микроарта -- неправильная. Верь нам, а не им. Р0баты подтверждают.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby DimkaM » 17 Aug 2011, 17:33

ОК ОК
Уговорили, процедура у мну с багами.
По немногу разбираюсь, а то Витаминовская GUI ограничивает в возможностях.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby lvd » 17 Aug 2011, 20:47

По существу если, выборка того и другого начинается с 'идеальных' адресов и одинаково чередуется 0xxx-2xxx. Но потом, мля, буковки задерживаются на 1 символ, а атрибуты не задерживаются. И видимая область сдвигается на 1 символ вправо. Потому и бардак такой.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby DimkaM » 17 Aug 2011, 22:27

lvd wrote:Но потом, мля, буковки задерживаются на 1 символ, а атрибуты не задерживаются. И видимая область сдвигается на 1 символ вправо. Потому и бардак такой.

Вот с этой х.йнёй у меня и проблема. В мануале про эту хрень ни чё нету.
Дайте плиз правильный алгоритм расчёта.

Допустим 5 и 1 страницы сидят в 1 и 2 банках.
У меня такой расчёт получается(всё по мануалу):
Code: Select all
XY2SCR        ; H-X(0..79) L-Y(0..24)
   LD A,#07
   SRL H
   JR NC,.L1
   LD A,#87
.L1   ADD A,L
   LD L,H
   LD H,A
   XOR A
   SRL H
   RR A
   SRL H
   RR A
   ADD A,L
   LD L,A
   SET 6,H
   RET
На выходе в HL адрес куда символ покласть. Что бы покласть атрибут делаю XOR :
Code: Select all
   LD A,%11100000
   XOR H
   LD H,A
И по адресу HL кладу атрибут.
И сука какаято полоса иногда вертикальная вылазит. Чё делать не знаю.

Или может нормальный текстмод добавите?!
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby lvd » 18 Aug 2011, 00:30

ночь на дворе, в код вникать лень.
Могу только порекомендовать -- нарисуй на бумажке, какие адреса у атрибутов и буков, и как чередуются в строке. Станет (или не станет) понятно.

Открою секрет -- дока писалась 'на отъебись' как краткая выжимка, чего же там мы нахимичили (чтоб самим не забыть), человеко-понятность не была на первом месте :-)
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby SfS » 18 Aug 2011, 06:23

DimkaM wrote:Вот с этой х.йнёй у меня и проблема. В мануале про эту хрень ни чё нету.
Дайте плиз правильный алгоритм расчёта.


А я вчера осилил! :)

Начальные данные:

bank 1 (#4000-#7FFFF) - страница 5 (символы) (она там и так впечатана всегда по стандарту 128К)
bank 3 (#С000-#FFFFF) - страница 1 (атрибуты) (Пишем в порт 7FFD 11h - ПЗУ-48 и страница 1 сверху)

X - координата по горизонтали (0-79)
Y - координата по вертикали (0-24)
Далее - всё просто :
1. Считаем смещение: HL = 64*Y +X/2
2. Проверяем младший бит X (чётный или нечётный символ)

3. Если чётные символы (0й бит икса сброшен):
HL = HL + #41C0 ; Адрес символа
DE = HL + #A000 ; Адрес атрибута

4. Если нечётные символы (0й бит икса установлен):
HL = HL + #61C0 ; Адрес символа
DE = HL + #6001 ; Адрес атрибута

5. ld (HL), <код символа>
ld (DE), <атрибут>

------------------
Писал по памяти с работы. Исходники дома, вечером постараюсь выложить. Написаны НЕОПТИМАЛЬНО (два часа ночи - не время оптимизировать :) ) - но понятно. Там есть печать строки, обработка перевода строки (0Dh), табуляции (09h).
Кроме того - там же производится загрузка стандартного фонта KOI8-R.
Кстати - конец строки в юниксе - 0Ah (\n). А не 0Dh - Именно возврат коретки (на начало строки, БЕЗ перехода на следующую). Хочу как в Юниксе сделать и переделаю.
А то не дело - кодировка ХБЗ-какая, управляющие символы - ХБЗ-какие... Пусть хоть какому-то стандарту соответствуют :)
Last edited by SfS on 18 Aug 2011, 09:14, edited 2 times in total.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby SfS » 18 Aug 2011, 06:43

Кстати, долго репу чесал - куда писать шрифт.
Пришёл к выводу, что самое оптимальное - по адресу #4000-#47FF.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby DimkaM » 18 Aug 2011, 08:37

Нашёл косяк у себя, "• rattr — страница 1(3), смещение #01C1 + Y*64 + X"
Едииничку со слепу не углядел в мануале.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby lvd » 18 Aug 2011, 09:14

SfS wrote:Кстати, долго репу чесал - куда писать шрифт.
Пришёл к выводу, что самое оптимальное - по адресу #4000-#47FF.

А мне казалось, что самое оптимальное -- писать в ПЗУ...
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby SfS » 18 Aug 2011, 09:16

lvd wrote:А мне казалось, что самое оптимальное -- писать в ПЗУ...


Если я правильно понимаю - то в адреса #0000-#3FFF может и ОЗУ быть подключено. А вот адреса с #4000 - это экранная область, которая после записи шрифта всё равно очистится и ничего не повредится.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

PreviousNext

Return to Пентева - софт и железо

Who is online

Users browsing this forum: No registered users and 1 guest

cron