вот взял dosbox настроил в нем скорость при которой нормально работает digger, вышло 377 dosbox-тактов, потом написал прогу такую:
Код:
#include <stdio.h>
#define MAX_INDX 32767
char screen[MAX_INDX];
unsigned char read_scancode() {
unsigned char res;
_asm {
in al, 60h
mov res, al
in al, 61h
or al, 128
out 61h, al
xor al, 128
out 61h, al
}
return res;
}
int main(int argc, char** argv) {
int iter=1;
unsigned int pointer;
char keyPressed;
while (1) {
iter++;
pointer=0;
do {
screen[pointer]=0xff;
pointer++;
} while (pointer<(unsigned int)MAX_INDX);
printf("iteration:%d \r\n",iter);
keyPressed=read_scancode();
if (keyPressed==57) {
return 0;
}
}
}
так вот при этой скорости эта прога 155 раз в минуту успевает перерисовать буфер размером в 32768 байт, т.е. менее 3 раз в секунду, а надо раз в 10 больше (по минимуму), потому я и сказал что 4.77mhz для такого экрана это просто смех, нужна скорость 47mhz
в atari st был подобный экран, он на 68000 процессоре с 7mhz обеспечивал игры на скорости чуть быстрее синклера (ну ясно что доступ был там 16bit а не 8bit, и код был не borland c++ а писанный на асме)
как по мне так это тупиковая ветка развития, кому такое нравиться давно пишет игры и демы под i286+ega (vga)