PDA

Просмотр полной версии : Радио86РК - опять про ВГ75 и нестандартные режимы



Tronix
05.06.2023, 08:21
Почему в оригинале нельзя включить режим с отображением 4 пикселей символов по высоте, как например у Апогея?
В Цветных Линиях от Винксру используется режим 78x64 символы высотой 4 пикселя. В Радио86РК такой режим не включается, можно только установить высоту символа в 5 и более пикселей. Почему?

sd
05.06.2023, 09:05
Интересный кстати вопрос. Помоему в Апогее под этот режим используется другая прошивка знакогенератора, а с изначальной такое не отображается впринципе и возможно что-то переклинивает

SegaBoy
05.06.2023, 09:47
Почему в оригинале нельзя включить режим с отображением 4 пикселей символов по высоте, как например у Апогея?
В Цветных Линиях от Винксру используется режим 78x64 символы высотой 4 пикселя. В Радио86РК такой режим не включается, можно только установить высоту символа в 5 и более пикселей. Почему?
Это точно? Разве что-то мешает выставить режим в 4 пикселя по высоте?

Tronix
05.06.2023, 10:38
Это точно? Разве что-то мешает выставить режим в 4 пикселя по высоте?

Ну у меня что-то не получается ( Настраиваю ВГ75 так:
78-1
64-1
0x33
0x13
затем WaitSync
затем настройка ДМА:
0x00 ; переносимся в основную RAM почти в самый конец 0x7600
0x76
0xCA ;размер 0x12CA = 4810 = (51*94)+(7*2)+2
0x12
затем старт ДМА
затем старт ВГ75

экран вроде и переключается, но изображения почему-то нет. А вот если ширину пикселя сделать больше 4, например 5, тогда все работает.

SegaBoy
05.06.2023, 11:21
Ну у меня что-то не получается ( Настраиваю ВГ75 так:
78-1
64-1
0x33
0x13
затем WaitSync
затем настройка ДМА:
0x00 ; переносимся в основную RAM почти в самый конец 0x7600
0x76
0xCA ;размер 0x12CA = 4810 = (51*94)+(7*2)+2
0x12
затем старт ДМА
затем старт ВГ75

экран вроде и переключается, но изображения почему-то нет. А вот если ширину пикселя сделать больше 4, например 5, тогда все работает.

Чего то не совсем понятно. Может покажете сам код?

Вообще в схеме Апогея практически нет никаких отличий в работе с ВГ75. Тут или телевизор не держит 60 Гц (что редкость) или ошибка в инициализации ВГ75 (или ПДП ВТ57)

Tronix
05.06.2023, 11:35
Чего то не совсем понятно. Может покажете сам код?

Да мне самому не очень понятно, поэтому и тыркаюсь туда-сюда, из кода только наброски и куски какие-то пока..

- - - Добавлено - - -


static uint8_t *VG75 = 0xC000; //
static uint8_t *VT57 = 0xE000; //

VG75[1] = 0;
VG75[0] = 78-1;
VG75[0] = 64-1;
VG75[0] = 0x34;
VG75[0] = 0x13;
VG75[1] = 0x23;
while((VG75[1] & 0x20) == 0);
while((VG75[1] & 0x20) == 0);
VT57[8] = 0x80;
VT57[4] = 0x00;
VT57[4] = 0x76;
VT57[5] = 0xca;
VT57[5] = 0x40 | 0x12;
VT57[8] = 0xA4;

i8088
05.06.2023, 11:55
Tronix, это компилятор Си для 8080?

SegaBoy
05.06.2023, 12:52
Tronix, вот попробуй


set_crt:
0000 21 01 C0 lxi h, crt_cmd
0003 36 80 mvi m, set_cursor
0005 2D dcr l
0006 36 FF mvi m, $ff
0008 36 FF mvi m, $ff
000A 2C inr l
000B 36 00 mvi m, reset_crt
000D 2D dcr l
000E 36 4D mvi m, shhhhhhh
0010 36 3F mvi m, vvrrrrrr
0012 36 33 mvi m, uuuullll
0014 36 4F mvi m, mfcczzzz
0016 2C inr l
0017 36 27 mvi m, start_crt

0019 7E mov a, m
vsync:
001A 7E mov a, m
001B E6 20 ani ir_flag
001D CA 1A 00 jz vsync

set_dma:
0020 21 08 E0 lxi h, dma_mode
0023 36 80 mvi m, reset_dma
0025 2E 04 mvi l, 4
0027 36 35 mvi m, screen & $ff
0029 36 00 mvi m, screen >> 8
002B 2C inr l
002C 36 7F mvi m, (16384 + chars * rows - 1) & $ff
002E 36 53 mvi m, (16384 + chars * rows - 1) >> 8
0030 2E 08 mvi l, 8
0032 36 A4 mvi m, start_dma

0034 76 hlt

screen:

Pyk
05.06.2023, 15:44
экран вроде и переключается, но изображения почему-то нет
Так что используется в качестве устройства отображения? Может быть, действительно просто частоту 60 Гц не тянет?
Также Vertical Retrace нужно бы увеличить (vv = 01). Нет возможности на Апогее проверить?

Tronix
05.06.2023, 17:30
Так что используется в качестве устройства отображения?
Ну Emu80 конечно, что же еще ) Ну и реал стародел канонiчный вон пока рядом подключен, но в принципе, пока поведение Emu80 полностью повторяет реал. Реал подключен к телеку, 60Гц тащит.

Мой кодес что вверху полностью неверен хотя-бы тем, что адреса DMA настроены на самый конец памяти и лезем в рабочие ячейки монитора и выше в экранную область.

Вообщем что-то я опять все сломал =\
Я тут пытаюсь как-бы подсматривать в кодес от Винксру, в его игру "Цветные Линии (https://github.com/alemorf/retro_computers/tree/master/Apogey_BK01C/my_soft/game_lines)" для Апогея, и его компилятор C8080, в частности в файлы:
https://github.com/alemorf/retro_computers/blob/master/Apogey_BK01C/my_soft/game_lines/source/c8080/Include/Apogey/apogeyscreen3C.c
https://github.com/alemorf/retro_computers/blob/master/Apogey_BK01C/my_soft/game_lines/source/c8080/Include/Apogey/screen_constrcutor.h
https://github.com/alemorf/retro_computers/blob/master/Apogey_BK01C/my_soft/game_lines/source/c8080/Include/Apogey/video.h

но ковыряюсь в z88dk. Хотя пробовал и "Цветные Линии" и в лоб собрать компилятором от Винксру, поправив разумеется адреса ВГ75, ВТ57, начала видео-памяти, закоментив звук ВИ53. Ну что-то как-то даже вроде бы

https://habrastorage.org/webt/tw/z3/ow/twz3owrafptidqzgpokmxua0the.jpeg

Но наверное 4 пикселя в ширину не имеет смысла на стандартном знакогенераторе, так как нет черточек вертикальный верх вертикальный низ.

Поэтому какой оптимальный максимальный режим для графики в Р86РК?

Pyk
05.06.2023, 17:52
Поэтому какой оптимальный максимальный режим для графики в Р86РК?
Со стандартным знакогенератором наверное 128*64. Видеорежим с символами в 8 скан-линий, 38 или 37 строк символов, из них 32 центральных - используемые.