MSXのZ80で何か作る

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

MSXのZ80で何か作る

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

最近の記事

だいぶ前に作ったヤツですが、BASICからマシン語呼び出すサンプルとして役にたつかもです。 https://msxpen.com/codes/-NV3vpSPHXykjtsRCFEj

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

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

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

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

        • 次回作の構想

          4月あたりから次作のゲーム制作を開始しようと思っており、現在構想を練ってるところです。今度は以下の処理をゲームに加えようと思っています。 ・HEAVEN DOORと同じ感じのビューポートスクロール方式 ・スクロールは8ドット単位(半タイル単位) ・テキキャラもスプライト ・スプライトは基本的に1ドットずつの移動 ・テキキャラも自キャラも飛び道具を撃つ ・三角関数を使った動きをスプライト移動に活用する ・PCGを使った擬似スプライトを実装して、動くPCGキャラを作る ・データ

        だいぶ前に作ったヤツですが、BASICからマシン語呼び出すサンプルとして役にたつかもです。 https://msxpen.com/codes/-NV3vpSPHXykjtsRCFEj

          追憶:僕とMSX

          当記事は、MSXのお勉強ネタではなく、筆者の追憶です。 共感していただけるかたは多いかと思います。 こちらの曲を聴きながらがおすすめです。 1985年:少年に未来が届いた 父「ほうら、僕の欲しがってたヤツ、郵便局に届いてたぞー」 MSX「こんにちは!ボクMSX!今日から君の友だちだよ!」 僕「やったー!MSXだ!!(電源ポチ)」 Ok 僕「何をすればいいんだろ?あ、付属してあった本になんか書いてあったな」 僕「なになに?"画面に文字を表示してみよう"って?よし、や

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

          今回はMSX-DOSならではのファイルアクセスを使ったプログラミングについてです。ちょっと時間がかかりましたが、、、 ネタさがし ファイルアクセスをネタにするために、なんかこう少しは面白そうなネタ、MSX-DOSだと便利だー!!と感じれるようなネタはないものかと探していました。そのため前回のMSX-DOS記事から少し時間があきました。 筆者は絵が得意ではないので綺麗なアニメ絵とかは題材にしづらく、かといってマップエディタでハイドライドのようなタイル絵を作るのもしんどい。

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

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

          いままでの記事ではすべて整数値でなおかつ斜め方向をプログラムには 取り込んでいませんでした。 なぜなら「面倒くさいから」という理由です。 今回の記事ではその面倒くさいを実現させてみたいと思います。 思い立ったが吉日 いったんゲームプログラムを作り終わると次のプログラムのことを考えたりします。次のプログラムではキャラの動きに曲線的な動きを持たせないな。と考えたりしました。ギャラガとかゼビウスとかでもクルクルーっと回るような動きをするキャラがいました。 あんなのをどうやってや

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

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

          MSX-DOSプログラミングに最適なアドレス構成 MSXではスロットとページという概念があるのは前の記事で説明しました。 このスロットとページを意識してプログラミングしないと思いもよらない事象が発生します。そのため、今回では筆者がようやく整理できてきたのでMSX-DOSプログラミングの王道というかメモリ配置について説明します。 スロットとページ スロットとページについてMSX2テクハンでは次のように記載されています。 システム用スロット0には純粋な状態でのMSXのメモ

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

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

          ソースコード解析 今回は前回Gitにアップしたソースコードの説明です。 前回アップしましたがちょこちょこと修正したので最新版をゲットしてください。 https://github.com/sailorman-msx/games/tree/main/src/sample019 DOSMAC01.asm メインとなるプログラムはDOSMAC01.asmです。 基本的にはArkosTracker2のお勉強用の記事のそれと変わりありませんが、ポイントだけ説明します。 0100H

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

          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)の2種類があります。MSX-DOS2のほうは階層ディレクトリに対応してたりパイ

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

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

          タイトル:Mountain of The Mage - 魔導士の山 - https://webmsx.org/?MACHINE=MSX1J&ROM=https://github.com/sailorman-msx/games/raw/main/mom/mom.rom ゲームができた!といいつつもベータテストバージョン(最後のバグだしフェーズ)です。バグがあったらご報告ください。 今回のゲームでは32KB制限をほぼ使い果たす感じで制作を行いました。 総容量は32738バイ

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

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

          師走ですね。忙しいです。 今回はIF分岐をテーブルにまとめてしまうロジックについて紹介します。 まあどちらかというとMSXに限らずのZ80プログラミングテクニックですね。あわせてCフラグを使った加算ADC命令と、JP (HL)についても説明します。 CPを羅列するとどーなるか 仮にジョイスティックの状態を判定するロジックをCPとJPを使って判定すると次のような感じになります。 CALL GTSTCKOR A ; 押されてない?JP Z,PRCENDCP 1 ; 上が押さ

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

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

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

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

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

          今回でArkos Tracker2(AT2)での音づくりの連載は最終回となります。 ま、とりあえずサンプルをゲットするところからはじめましょう。 https://github.com/sailorman-msx/games/tree/main/src/at2study2 AT2での効果音の位置付け AT2では効果音(SoundEffect, SFX)はAKGPlayer本体ではなくAKGPlayer_SoundEffectというやつで分割されています。理由はよくわかりませ

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

          AT2で曲作り:作った音を自分のプログラムに取り込む

          前回までの記事でArkos Tracker2(AT2)で曲が作れるようになったと思います。今回の記事ではその曲を自分のプログラムに取り込む方法について説明します。と、とりあえず今回はサンプルコードもついてますのでそちらを先にゲットしてください https://github.com/sailorman-msx/games/tree/main/src/at2study サブソングをまとめたやつがファイルとして出力される Song propertiesの一番上に表示されているS

          AT2で曲作り:作った音を自分のプログラムに取り込む

          AT2で曲作り:Arkos Tracker2 音を作ろう

          AT2連載記事。いよいよ音を鳴らしてみます。 今回は「曲の作りかた編」です。 最初に忘れずに。 重要なのは「Source profiles」の指定です。Export結果はZ80ASMのソースコードでなければならないため、図のように入力する必要があります。 「File」→「Setup」で設定してください。 Arkos Tracker2での曲データの構成 曲データの構成は次のようになっています。 音楽ファイル(.aks)の中にサブソングデータがあり、サブソングデータの中に

          AT2で曲作り:Arkos Tracker2 音を作ろう