А какая карта памяти используется ?
Я делаю для 6С, там 48к до начала ГЗУ. У меня пока около 10к свободно остаётся, должно хватить.
Неужели 48к не хватило на код ?
Вид для печати
А какая карта памяти используется ?
Я делаю для 6С, там 48к до начала ГЗУ. У меня пока около 10к свободно остаётся, должно хватить.
Неужели 48к не хватило на код ?
я использую конфигурацию 0Ch, все 64кб озу. Я для z80 ввёл доп логический элемент, который подключается в разрез выхода дешифратора адресов на 556рт2, это позволяет обращаться к системному регистру через OUT, что сильно упрощает жизнь)))
Загрузчик сначала выводит заставку из файла, которая сама по себе занимает прилично озу, потом подгружается тело игры. Через Out включаю конфиг с видео озу для вывода, потом переключаю на конфиг 0Ch
Кстати, тоже ещё со времен конца 80-х начала 90-х мне было вбито, что текст и графика независимы. Почему так упорно дезинформировали публику?! Фактически Корвет имеет 8 свободных цветов и 8 цветов с клашингами, как на Спектруме. Но на Спектруме зона клашинга 8х8, а на Корвете может быть заметно меньше (типовой размер 4х8). Жутко представить, если кто-то попытается написать идеальный конвертор картинок с использованием всех 16 цветов - работа очень немаленькая. Можно наверное только сопоставить по трудности с попытками атаристов оптимально задействовать 256 цветов.
Рискну предположить, что для рисования спрайтов использование всех 16 цветов - это ничего сложного. Жаль, что Корветов сделали так мало и они были не очень бюджетны. Игры могли бы быть очень хороши.
Для различных видеоэффектов вполне сойдет. Демки на Корвете, интересно, есть?)) Вот в них эту фичу и можно применять.
Хорошо бы собрать данные с реальных Корветов. Вот программка, которая крупно рисует палитру Корвета с разными значениями LUT 0.
Вот так это выглядит в emu80 для значений 0 и 7.Код:const
b = 3; (* block *)
var
i,p:byte;
c:char;
begin
clrscr;
clrgscr;
for i:=0 to 15 do
mem[$fafb] := i*17;
for i:=0 to 31 do
for p:=0 to 7 do
mem[$fc20+p*64+i]:=b;
for i:=0 to 7 do begin
setcolor(i);
rectangle(i*32, 0, i*32+31, 127, true);
rectangle(i*32+256, 0, i*32+287, 127, true)
end;
p := 0;
repeat
gotoxy(9,9);write(' ');gotoxy(1,9);
write('black is ', p);
mem[$fafb] := p*16;
p := (p+1)and 15;
c := readkey
until ord(c) != 27;
clrscr
end.
https://s1.hostingkartinok.com/uploa...5a48dab400.png
https://s1.hostingkartinok.com/uploa...08374c021c.png
Прикрепил зазипованный СОМ-файл - Вложение 76965
Похоже, что интересный эффект возник только из-за особенностей подключения к монитору. Но если кто-то обнаружит что-то необычное, то было бы ценно получить скриншоты.
Немного поизвращался над Вашей прогой:
Скрытый текст
https://i.ibb.co/qL2MZMPv/Screenshot...409-205307.pngКод:PROGRAM PALET3;
CONST
B = 3; (* BLOCK *)
VAR
I,P:BYTE;
C:CHAR;
BEGIN
CLRSCR;
CLRGSCR;
WRITE(#27'1');
FOR I:=0 TO 15 DO
MEM[$FAFB] := I*17;
MEM[$FAFB] := $78;
FOR I:=0 TO 31 DO
FOR P:=0 TO 7 DO
MEM[$FC20+P*64+I]:=B;
FOR I:=0 TO 7 DO BEGIN
SETCOLOR(I);
RECTANGLE(I*32, 0, I*32+31, 127, TRUE);
RECTANGLE(I*32+256, 0, I*32+287, 127, TRUE)
END;
WRITE(#27'6');
FOR I:=1 TO 16 DO WRITE('Test');
WRITE(#27'7');
FOR I:=1 TO 16 DO WRITE('Test');
FOR I:=1 TO 128 DO WRITE(#16#$AE);
FOR I:=1 TO 128 DO WRITE(#16#$81);
P :=0;
REPEAT
GOTOXY(9,9);WRITE(#27'6 ');GOTOXY(1,9);
WRITE('BLACK IS ', P);
GOTOXY(9,10);WRITE(#27'7 ');GOTOXY(1,10);
WRITE('BLACK IS ', P);
MEM[$FAFB] := P*16;
P := (P+1)AND 15;
C := READKEY
UNTIL ORD(C) = 27;
CLRSCR
END.
[свернуть]
Вложение 82177
Подскажите пожалуйста, каким способом можно загрузить исходник на Бейсике в эмуляторе Emu80?