getchar関数の追加

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

sdccにはgetchar(),gets(),scanf()などの関数は無いがgetchar()関数プロトタイプはstdio.hに有る。
そこでアセンブラで関数を追加し、getchar()を実装する。

新規にgetchar.asmを作成する。
;
;getchar.asm
;
	.area	_CODE
;
_getchar::
	ld	c,#1
	call	0x05
;
	ret


getchar()はシステムコールの0x01番を利用する。
このファイルをアセンブルしオブジェクトを作成する。
アセンブルは↓

> sdasz80 -o getchar.rel getchar.asm


  • C言語の利用

getchar()はstdio.hにヘッダが記載されているのでそのまま利用可能。

#include <stdio.h>

void main(void){
	char rtn;

	rtn=getchar();
}


> sdcc -mz80 -c source.c

> sdld -b _CODE=0x100 -b _DATA=0x100 -i out.ihx source.rel getchar.rel
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。