getchar関数の追加

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

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2012年01月29日 12:49
ツールボックス

下から選んでください:

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