Skip to content
Gaku edited this page Sep 8, 2022 · 5 revisions

画面に「hello, world」と表示する

LSX-Dodgers、MSX-DOS、CP/Mで動作します。

LSX-Dodgers等のプログラム(COMファイル)は0100H番地に読み込まれ0100H番地がコールされます。

システムコールはCレジスタにシステムコール番号を入れて0005H番地をコールします。

終了はJP 0でも Cに0を入れてシステムコールを呼んでも、RETで戻っても良いです。

;	HELLO

SYSTEM	EQU	0005H		;システムコール
FCB1	EQU	005CH		;1番目の引数のFCB
FCB2	EQU	006CH		;2番目の引数のFCB
DTA1	EQU	0080H

	ORG	0100H

	JP	START		;0C3HはZ80ではJPだが、i8086ではRETなので
START:				;間違えてMS-DOS環境で実行しても即終了できる
	LD	DE,MESSAGE
	LD	C,9		;文字列出力(_STROUT) CP/M MSX-DOS
	CALL	SYSTEM

	JP	0		;プログラム終了


MESSAGE:
	DB	"hello, world", 0DH, 0AH, '$'

最初にJPから初めているのは、MS-DOSでもCOMファイルは実行できるので、事故防止の為です。MS-DOSで実行しないとわかっている場合はなくても問題はありません。

また、MS-DOSで実行できないようにする方法として拡張子をCPMにする方法もあります。

Clone this wiki locally