アドレスE000hからE008hはメモリマップドI/Oで、そこに対するアクセスでキー押下状況を取得できます。
【参考】Enri's Home PAGE (mz-80K)(外部サイト)
【参考】MZ-80K2E Manual P.14(外部サイト)
#include <stdio.h>
#define PEEK( off ) ( *(unsigned char*)( off ) )
#define POKE( off, val ) ( *(unsigned char*)( off ) = ( val ) )
#define TRUE 1
void main()
{
while( TRUE ){
for( int i = 0; i < 10; i++ ){
POKE( 0xe000, i );
printf( "%x ", PEEK( 0xe001 ) );
}
printf( "\n" );
}
}
アドレスE000hへ0~9のキーセレクト番号を書き込んだ後、E001hを読み込むと該当のキー押下状態が取得できます。
#018 【MZ80,Z88DK】C言語で任意の座標に文字描画
#015 【MZ80,Z88DK】C言語でゲームループとFPS制御