テキストVRAMにディスプレイコードと呼ばれる値を書き込むことによって文字を描画することが出来ます。
【参考】mz-80K Display(外部サイト)
VRAMはアドレスD000Hから始まり、40桁x25行ぶんの領域が連続で割り当てられていますので、座標計算は 0xd000 + y * 40 + x となります。
#define POKE( off, val ) ( *(unsigned char*)( off ) = ( val ) )
void main()
{
int x = 5;
int y = 10;
POKE( 0xd000 + y * 40 + x, 0x01 ); // 0x01は「A」のディスプレイコード
}
書き込む値はアスキーコードではなく「ディスプレイコード」と呼ばれるMZ独自のものです。並び順が完全に異なるというわけではないのですが、単純に40Hずれているだけではありません。
#015 【MZ80,Z88DK】C言語でゲームループとFPS制御
#011 【MZ80,Z88DK】C言語でHelloWorld