Это фактически сравнение скорости одной операции - заливки. У корвета она очень-очень быстрая.
В детстве немного ходил в кружок с УКНЦ. Бейсик там в среднем по больнице довольно шустрый.
Вид для печати
Это фактически сравнение скорости одной операции - заливки. У корвета она очень-очень быстрая.
В детстве немного ходил в кружок с УКНЦ. Бейсик там в среднем по больнице довольно шустрый.
shapipovo, в данном примере (заливка экрана) УКНЦ приходится "лопатить" все 96 КиБ видеопамяти (3 цветовых слоя по 32 КиБ). А у Корвета ГЗУ составляет 48 КиБ, то есть уже в два раза меньше. Более того, в Корвете при заливке используется так называемый "цветовой" режим (а не "послойный/плоскостной"), и при записи цвета в видеопамять он автоматически/аппаратно пишется во все три цветовых плоскости, то есть обрабатывается всего-то 16 КиБ. То есть в случае заливки объём записи различается в 6 раз. И еще используется аппаратная фича при детектировании границы заливки (чтение цвета текущих точек в цветовом, а не послойном режиме), то есть не поточечно, а группами по 8 горизонтальных точек.
Согласен.
Сам Бейсик на УКНЦ довольно шустрый. А вот реализация графики в ПП не очень быстрая. Бейсик не имеет доступа к видеопамяти, и для графики пользуется Esc-последовательностями, которые отрабатывает драйвер графического терминала. Например, чтобы отобразить точку, надо подать команду на цвет <Esc>ML@@3, подать команду на отображение точки <Esc>UH!ao@M. Драйвер в ПП это должен принять, расшифровать, отобразить. Поэтому всё это не быстро. Относительно быстро работает рисование вектора и закрашенной прямоугольной области. Для заливки тоже есть команда, но сделана она неоптимально, потому медленно и работает.
А стандартный Бейсик RT-11 не пробовали?
А Турбо-Бейсик УК-НЦшный под RT-11 не пробовали?
https://pic.maxiol.com/thumbs2/15868...4205434047.pngКод:
10 SCREEN 2
20 C=INT(RND(1)*3+5)
30 X=INT(RND(C)*305)
40 Y=INT(RND(C)*115)
50 LINE (X,Y)-(X+30,Y+20),C,BF
60 XR=640-X
70 LINE (XR,Y)-(XR+30,Y+20),C,BF
80 YU=240-Y
90 LINE (X,YU)-(X+30,YU+20),C,BF
100 LINE (XR,YU)-(XR+30,YU+20),C,BF
110 GOTO 20