Как вывести картинку на экран МК-152?

Теоретический вопрос - безлошадный, так сказать.
Есть картинка - монохромная, допустим в формате BMP.
Как программно вывести ее на экран МК?

Полез в первоисточник:
"2.3.13. Вывод графического образа из памяти данных (R9016)
Функция предназначена для вывода на экран графического образа из регистров байтовых данных (адреса от 1000 до 8167). Начальная координата задается в регистрах X0 и Y0.
Операция производится при выполнении команды записи в регистр памяти с адресом 9016. В регистре X стека задаётся начальный адрес (номер регистра) графического образа в памяти данных...
"

Как элегантно положить в память данных картинку из BMP файла?

Картинка из BMP-файла. В BMP-файле изображение кодируется по строкам, а в ЭВМ - столбцами. Это связано с особенностями ЖКИ-дисплея. Поэтому проще всего - написать программу для компьютера.

В mk.exe есть функция, которая выполняет обратное действие. Основное преобразование реализовано в лоб и очевидно:

for (i=0; i<128; i++)
	{
	for (j=0; j<8; j++)
		{
		k=gmkbufi[128*j+i];	//8*i+j - опрос по вертикали (изображение), 
                                        //128*j+i по горизонтали (весь экран)
		if (k<0) k+=256;
		if ((k & 1)==1)		mkimg[i][8*j]=1;
		if ((k & 2)==2)		mkimg[i][8*j+1]=1;
		if ((k & 4)==4)		mkimg[i][8*j+2]=1;
		if ((k & 8)==8)		mkimg[i][8*j+3]=1;
		if ((k & 16)==16)	mkimg[i][8*j+4]=1;
		if ((k & 32)==32)	mkimg[i][8*j+5]=1;
		if ((k & 64)==64)	mkimg[i][8*j+6]=1;
		if ((k & 128)==128)	mkimg[i][8*j+7]=1;
		}
	}

// перенос из промежуточного буфера 

for (i=0; i<16; i++)
	{
	for (j=0; j<64; j++)
		{
		k=0;
		if (mkimg[8*i][j]==0) k+=128;
		if (mkimg[8*i+1][j]==0) k+=64;
		if (mkimg[8*i+2][j]==0) k+=32;
		if (mkimg[8*i+3][j]==0) k+=16;
		if (mkimg[8*i+4][j]==0) k+=8;
		if (mkimg[8*i+5][j]==0) k+=4;
		if (mkimg[8*i+6][j]==0) k+=2;
		if (mkimg[8*i+7][j]==0) k+=1;
		if (k<0) k+=256;
		ImgBit[16*j+i]=(BYTE)(k%256);
		}
	}

// ...здесь пропущено формирование заголовка BMP, далее перенос в область буфера файла gmkbufbmp

for (i=0; i<64; i++) 
	{
	for (j=0; j<16; j++)
		{
		k=16*(63-i)+j+62;
		gmkbufbmp[k]=ImgBit[16*i+j];

		}
	}

Можно было сразу в буфер файла, но ImgBit еще и на экран выводится. Для формирования экрана ЭВМ из BMP-файла нужно выполнить обратные действия.

Спасибо за исходники! А нет планов добавить эту обратную функцию в мк.ехе?
Хотя я не уверен, что это сильно востребовано

bmp2mkiДобавлять в исходники программы передачи пока планов нет. Хотя бы потому, что файлы экрана в МК-152 не передаются.

Отдельная программа, откомпилированная под DOS и Linux выложена на сайте вместе с исходниками.