MSXのZ80で何か作る

MSXでZ80マシン語でのプログラミングを学ぼう!!MSX-BASICではなく、Z80…

MSXのZ80で何か作る

MSXでZ80マシン語でのプログラミングを学ぼう!!MSX-BASICではなく、Z80のマシン語です。※BASICとかその他プログラミング言語についての知識やコンピュータの操作についての基礎知識を持っているかた向けです。 ※記事中のサンプルコードはMIT Lisenceです。

記事一覧

Z80レジスタ交換と裏レジスタ

今回もZ80関連です。つまらないかもです(汗) Z80のマシン語ではレジスタというものを使いますね。まあ、Z80に限った話ではないですが。。。 通常、使うレジスタは A、B、…

マシン語エトセトラ

さて、今回はMSXからちょいと話をずらして「マシン語」のエトセトラについての記事になります。ここまで連載46回!筆者もびっくりの連載記事になっていますが、マシン語は…

だいぶ前に作ったヤツですが、BASICからマシン語呼び出すサンプルとして役にたつかもです。

https://msxpen.com/codes/-NV3vpSPHXykjtsRCFEj

PCGやスプライトのデータと定義処理をROMのPage#0に寄せてみた

先日の記事の続きです。以前の記事の「三角関数プログラミング」のサンプルコードをベースに、スプライトとPCGのデータと作成処理をPage#0に寄せてみることにしました。 ま…

ROMカセットのPage#0を使えるようにする

ご無沙汰しております。 さて、春まっさかりのシーズンになりました。 今回のテーマはこちら。 「ROMカセットのPage#0を使えるようにする」 です。 ROMカセットには0000H -…

次回作の構想

4月あたりから次作のゲーム制作を開始しようと思っており、現在構想を練ってるところです。今度は以下の処理をゲームに加えようと思っています。 ・HEAVEN DOORと同じ感じ…

追憶:僕とMSX

当記事は、MSXのお勉強ネタではなく、筆者の追憶です。 共感していただけるかたは多いかと思います。 こちらの曲を聴きながらがおすすめです。 1985年:少年に未来が届い…

10

MSX-DOSでのプログラミング第4回

今回はMSX-DOSならではのファイルアクセスを使ったプログラミングについてです。ちょっと時間がかかりましたが、、、 ネタさがし ファイルアクセスをネタにするために、…

三角関数を使ったマシン語プログラミング

いままでの記事ではすべて整数値でなおかつ斜め方向をプログラムには 取り込んでいませんでした。 なぜなら「面倒くさいから」という理由です。 今回の記事ではその面倒く…

MSX-DOSでのプログラミング第3回

MSX-DOSプログラミングに最適なアドレス構成 MSXではスロットとページという概念があるのは前の記事で説明しました。 このスロットとページを意識してプログラミングしな…

MSX-DOSでのプログラミング第2回

ソースコード解析 今回は前回Gitにアップしたソースコードの説明です。 前回アップしましたがちょこちょこと修正したので最新版をゲットしてください。 https://github.co

MSX-DOSでのプログラミング第1回

MSX-DOSって何? MS-DOSとコマンドが同じでMSXでも動作するやつです。 フロッピーディスク(いまはもう昔)がMSXに搭載されたときと同時にMSX-DOSも公開されました。 発売…

新年あけましておめでとうございます。拙作のゲームできました

タイトル:Mountain of The Mage - 魔導士の山 - https://webmsx.org/?MACHINE=MSX1J&ROM=https://github.com/sailorman-msx/games/raw/main/mom/mom.rom ゲームができた…

10

Z80:分岐をまとめるテクニック

師走ですね。忙しいです。 今回はIF分岐をテーブルにまとめてしまうロジックについて紹介します。 まあどちらかというとMSXに限らずのZ80プログラミングテクニックですね。…

openMSXとopenMSX debuggerで開発を加速させよう

openMSXことはじめ 海外発のMSXのエミュレータです。C-BIOSというMSX-BIOS互換のBIOSを使うようになっていて筆者のような実機のない人でもMSXのプログラムができるように…

21

AT2で曲作り:AT2で効果音を鳴らす

今回でArkos Tracker2(AT2)での音づくりの連載は最終回となります。 ま、とりあえずサンプルをゲットするところからはじめましょう。 https://github.com/sailorman-msx/ga

Z80レジスタ交換と裏レジスタ

Z80レジスタ交換と裏レジスタ

今回もZ80関連です。つまらないかもです(汗)
Z80のマシン語ではレジスタというものを使いますね。まあ、Z80に限った話ではないですが。。。
通常、使うレジスタは
A、B、C、D、E、H、Lの7種類の8ビットレジスタと
AF、BC、DE、HL、IX、IYの6種類の16ビットレジスタ
あわせて
条件分岐などでの参照しかできない8ビットレジスタのF
筆者はほとんど使わないSP(汗)
その存在を忘れが

もっとみる
マシン語エトセトラ

マシン語エトセトラ

さて、今回はMSXからちょいと話をずらして「マシン語」のエトセトラについての記事になります。ここまで連載46回!筆者もびっくりの連載記事になっていますが、マシン語はテーマの中にちょこちょこはさむ程度でしたので復習をかねて「マシン語おぼえたてあるある」を記事にまとめてみようと思います。

ハマりポイント1:アドレス指定と変数定義

BASICではGOTO 行番号のように行番号を指定することでジャンプ

もっとみる

だいぶ前に作ったヤツですが、BASICからマシン語呼び出すサンプルとして役にたつかもです。

https://msxpen.com/codes/-NV3vpSPHXykjtsRCFEj

PCGやスプライトのデータと定義処理をROMのPage#0に寄せてみた

PCGやスプライトのデータと定義処理をROMのPage#0に寄せてみた

先日の記事の続きです。以前の記事の「三角関数プログラミング」のサンプルコードをベースに、スプライトとPCGのデータと作成処理をPage#0に寄せてみることにしました。
まずはサンプルをゲットだぜ
https://github.com/sailorman-msx/games/tree/main/src/sample022

それではプログラムの中をのぞいてみることにしましょう

修正箇所はこちら

もっとみる
ROMカセットのPage#0を使えるようにする

ROMカセットのPage#0を使えるようにする

ご無沙汰しております。
さて、春まっさかりのシーズンになりました。
今回のテーマはこちら。
「ROMカセットのPage#0を使えるようにする」
です。
ROMカセットには0000H - FFFFHまで(Page#0 - Page#3まで)ありますが、いままでの記事では4000H - BFFFH(Page#1 - Page#2)までしかプログラミングエリアとして使っていませんでした。

そのため拙作

もっとみる
次回作の構想

次回作の構想

4月あたりから次作のゲーム制作を開始しようと思っており、現在構想を練ってるところです。今度は以下の処理をゲームに加えようと思っています。

・HEAVEN DOORと同じ感じのビューポートスクロール方式
・スクロールは8ドット単位(半タイル単位)
・テキキャラもスプライト
・スプライトは基本的に1ドットずつの移動
・テキキャラも自キャラも飛び道具を撃つ
・三角関数を使った動きをスプライト移動に活用

もっとみる
追憶:僕とMSX

追憶:僕とMSX

当記事は、MSXのお勉強ネタではなく、筆者の追憶です。
共感していただけるかたは多いかと思います。
こちらの曲を聴きながらがおすすめです。

1985年:少年に未来が届いた

父「ほうら、僕の欲しがってたヤツ、郵便局に届いてたぞー」

MSX「こんにちは!ボクMSX!今日から君の友だちだよ!」
僕「やったー!MSXだ!!(電源ポチ)」

Ok

僕「何をすればいいんだろ?あ、付属してあった本になん

もっとみる
MSX-DOSでのプログラミング第4回

MSX-DOSでのプログラミング第4回

今回はMSX-DOSならではのファイルアクセスを使ったプログラミングについてです。ちょっと時間がかかりましたが、、、

ネタさがし

ファイルアクセスをネタにするために、なんかこう少しは面白そうなネタ、MSX-DOSだと便利だー!!と感じれるようなネタはないものかと探していました。そのため前回のMSX-DOS記事から少し時間があきました。
筆者は絵が得意ではないので綺麗なアニメ絵とかは題材にしづら

もっとみる
三角関数を使ったマシン語プログラミング

三角関数を使ったマシン語プログラミング

いままでの記事ではすべて整数値でなおかつ斜め方向をプログラムには
取り込んでいませんでした。
なぜなら「面倒くさいから」という理由です。
今回の記事ではその面倒くさいを実現させてみたいと思います。

思い立ったが吉日

いったんゲームプログラムを作り終わると次のプログラムのことを考えたりします。次のプログラムではキャラの動きに曲線的な動きを持たせないな。と考えたりしました。ギャラガとかゼビウスとか

もっとみる
MSX-DOSでのプログラミング第3回

MSX-DOSでのプログラミング第3回

MSX-DOSプログラミングに最適なアドレス構成

MSXではスロットとページという概念があるのは前の記事で説明しました。
このスロットとページを意識してプログラミングしないと思いもよらない事象が発生します。そのため、今回では筆者がようやく整理できてきたのでMSX-DOSプログラミングの王道というかメモリ配置について説明します。

スロットとページ

スロットとページについてMSX2テクハンでは次

もっとみる
MSX-DOSでのプログラミング第2回

MSX-DOSでのプログラミング第2回

ソースコード解析

今回は前回Gitにアップしたソースコードの説明です。
前回アップしましたがちょこちょこと修正したので最新版をゲットしてください。
https://github.com/sailorman-msx/games/tree/main/src/sample019

DOSMAC01.asm

メインとなるプログラムはDOSMAC01.asmです。
基本的にはArkosTracker2の

もっとみる
MSX-DOSでのプログラミング第1回

MSX-DOSでのプログラミング第1回

MSX-DOSって何?

MS-DOSとコマンドが同じでMSXでも動作するやつです。
フロッピーディスク(いまはもう昔)がMSXに搭載されたときと同時にMSX-DOSも公開されました。
発売当時はMS-DOSは16ビット機向けに作成されたものでしたが、それを8ビットのMSXでも動かそうとしたのがMSX-DOSになります。
MSX-DOSは初代のMSX-DOS(1984)とMSX-DOS2(1988

もっとみる
新年あけましておめでとうございます。拙作のゲームできました

新年あけましておめでとうございます。拙作のゲームできました

タイトル:Mountain of The Mage - 魔導士の山 -

https://webmsx.org/?MACHINE=MSX1J&ROM=https://github.com/sailorman-msx/games/raw/main/mom/mom.rom

ゲームができた!といいつつもベータテストバージョン(最後のバグだしフェーズ)です。バグがあったらご報告ください。

今回のゲーム

もっとみる
Z80:分岐をまとめるテクニック

Z80:分岐をまとめるテクニック

師走ですね。忙しいです。
今回はIF分岐をテーブルにまとめてしまうロジックについて紹介します。
まあどちらかというとMSXに限らずのZ80プログラミングテクニックですね。あわせてCフラグを使った加算ADC命令と、JP (HL)についても説明します。

CPを羅列するとどーなるか

仮にジョイスティックの状態を判定するロジックをCPとJPを使って判定すると次のような感じになります。

CALL GT

もっとみる
openMSXとopenMSX debuggerで開発を加速させよう

openMSXとopenMSX debuggerで開発を加速させよう

openMSXことはじめ

海外発のMSXのエミュレータです。C-BIOSというMSX-BIOS互換のBIOSを使うようになっていて筆者のような実機のない人でもMSXのプログラムができるようになっています。
ただしMSX-BASICは権利の問題から提供されていません。
そのためMSX-BASICも動かしたいひとは、自身が保有する実機からSYSTEM-ROMを引っこ抜いてopenMSXで使うことがで

もっとみる
AT2で曲作り:AT2で効果音を鳴らす

AT2で曲作り:AT2で効果音を鳴らす

今回でArkos Tracker2(AT2)での音づくりの連載は最終回となります。
ま、とりあえずサンプルをゲットするところからはじめましょう。
https://github.com/sailorman-msx/games/tree/main/src/at2study2

AT2での効果音の位置付け

AT2では効果音(SoundEffect, SFX)はAKGPlayer本体ではなくAKGPla

もっとみる