#セットアップ
先ずは
z88dkの始め方
z88dkの始め方(PC-88版)
を参考にz88dkをセットアップする。
- z88dkディレクトリ例)C:\etc\z88dk
- 開発用ディレクトリ例)C:\Projects\z88dk
#定義ファイルの用意
PC-80用の定義ファイルは無いのでPC-88用を流用。
printfなどのCライブラリ関数は使用できないので、全て自前で用意する必要がある。
C:\etc\z88dk\lib\config\pc88.cfg
をコピーして編集。
-Cz+pc88
はappmakeで.t88
ファイルを作る指定。
#
# Target configuration file for z88dk
#
# Asm file which contains the startup code (without suffix)
CRT0 DESTDIR\lib\target\pc80\classic\pc80_crt0
# Any default options you want - these are options to zcc which are fed
# through to compiler, assembler etc as necessary
#OPTIONS -O2 -SO2 -iquote. -DZ80 -DPC88 -D__PC88__ -M -Cc-standard-escape-chars -clib=default -subtype=default
OPTIONS -O2 -SO2 -iquote. -DZ80 -M -Cc-standard-escape-chars -clib=default -subtype=default
#CLIB default -lpc88_clib -lndos
CLIB default -lndos
#SUBTYPE default -Cz+pc88 -startup=1
SUBTYPE default -Cz+pc88
C:\etc\z88dk\lib\target\pc88
をディレクトリごとコピーしてpc80
に改名し、以下のように編集。
EXTERN _main
INCLUDE "target/pc80/classic/monitor.asm"
IFNDEF CRT_ORG_CODE
defc CRT_ORG_CODE = $8A00
ENDIF
org CRT_ORG_CODE
start:
call _main
jp $5c66
#Cプログラムのビルド
開発用ディレクトリに以下のファイルを用意する。
- 開発用バッチファイル
@echo off
path %path%;C:\etc\z88dk\bin
set ZCCCFG=C:\etc\z88dk\lib\config
cmd
- サンプルプログラム
//zcc +pc80 -compiler=sdcc sample.c -create-app
void putc(char x) __z88dk_fastcall __naked
{
__asm
ld a,l
rst 18h
ret
__endasm;
}
void main()
{
int i;
for (i = 0; i < 10; i++) {
putc(0x30 + i);
}
}
開発用バッチファイルを起動し、以下のコマンドを実行するとa.t88
ファイルが作られる。
zcc +pc80 -compiler=sdcc sample.c -create-app
#X88000での実行例
N-BASICモードで起動。
メニューから「イメージ」→「テープイメージ」を選択し、a.t88
ファイルを開く。
機械語モニタのL
コマンドで読み込みG8A00
で実行。
エントリポイントはデフォルトで8A00
。
#PasocomMini PC-8001での実行例
操作方法は
PasocomMini PC-8001 │ パソコンミニ公式ウェブサイト
を参照。
microSDカードのCONVERT
ディレクトリにa.t88
ファイルをコピーする。
PasocomMini PC-8001を起動しF9キーでメニューを表示、CONVERTタブでa.t88
ファイルを変換する。
MEDIAタブでa.t88.cmt
を選択、セットする。
後はエミュレータと同様。
F10キー長押しでShutdownメニュー。