-
Notifications
You must be signed in to change notification settings - Fork 6
hello
Gaku edited this page Sep 8, 2022
·
5 revisions
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にする方法もあります。