<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>マシン語 &#8211; EXPERTGIG</title>
	<atom:link href="https://expertgig.jp/tag/%E3%83%9E%E3%82%B7%E3%83%B3%E8%AA%9E/feed/" rel="self" type="application/rss+xml" />
	<link>https://expertgig.jp</link>
	<description>工場IoT に特化したシステム開発</description>
	<lastBuildDate>Sat, 07 Mar 2026 01:18:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>PC-8001 の BASIC ROMを Ver1.0 → 1.1 に (2364 → 2764 換装)</title>
		<link>https://expertgig.jp/2026/03/07/pc-8001-%e3%81%ae-basic-rom%e3%82%92-ver1-0-%e2%86%92-1-1-%e3%81%ab-2364-%e2%86%92-2764-%e6%8f%9b%e8%a3%85/</link>
					<comments>https://expertgig.jp/2026/03/07/pc-8001-%e3%81%ae-basic-rom%e3%82%92-ver1-0-%e2%86%92-1-1-%e3%81%ab-2364-%e2%86%92-2764-%e6%8f%9b%e8%a3%85/#respond</comments>
		
		<dc:creator><![CDATA[Ariyuki Tano]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 01:18:02 +0000</pubDate>
				<category><![CDATA[マイコン]]></category>
		<category><![CDATA[情報発信基地]]></category>
		<category><![CDATA[2364]]></category>
		<category><![CDATA[2764]]></category>
		<category><![CDATA[BASIC ROM換装]]></category>
		<category><![CDATA[EPROM]]></category>
		<category><![CDATA[N-BASIC]]></category>
		<category><![CDATA[PC-8001]]></category>
		<category><![CDATA[Z-80]]></category>
		<category><![CDATA[マシン語]]></category>
		<guid isPermaLink="false">https://expertgig.jp/?p=6219</guid>

					<description><![CDATA[最近、PC-8001 で microSDカードから .CMT形式のファイルを読み込むボードを手に入れました。 詳しくは、下記サイトをご確認ください。 GitHub &#8211; yanataka60/PC-8001_S [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>最近、PC-8001 で microSDカードから .CMT形式のファイルを読み込むボードを手に入れました。</p>



<p>詳しくは、下記サイトをご確認ください。</p>



<p><a href="https://github.com/yanataka60/PC-8001_SD">GitHub &#8211; yanataka60/PC-8001_SD: PC-8001でSD-CARDからCMT形式ファイルのロード、セーブ機能を実現するものです。</a></p>



<p>さっそく手持ちの PC-8001 で実行しようと思ったら、N-BASIC の バージョンが 1.0  (初期の複数バグありバージョン) であったため、拡張ROM の検出ができないというPC-8001側の致命的なバグにより、そのまま実行できないことが判明。 (回避方法もありますが) </p>



<p>それじゃ、ROMのバージョンを 1.1 にということで、秋葉原のラジ館 Bit-INNに買いに行こう!<br>と思ったけど、それは45年以上前の話で、2026年現在では自分でなんとかするしかありません。</p>



<p>まずは、PC-8001の御開帳ということで、本体裏の 四つ角のネジを外してオープン。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="768" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063552-1-1024x768.jpg" alt="" class="wp-image-6223" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063552-1-1024x768.jpg 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063552-1-300x225.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063552-1-768x576.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063552-1-1536x1152.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063552-1-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>  写真の基板の中央より左側に、縦に3つ PROM (2364)が並んでいますが、これが N-BASIC のROMです。</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="768" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063543-1-768x1024.jpg" alt="" class="wp-image-6224" style="width:497px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063543-1-768x1024.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063543-1-225x300.jpg 225w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063543-1-1152x1536.jpg 1152w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063543-1-1536x2048.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063543-1-scaled.jpg 1920w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p>2364 は、その型番からわかるように、64KBit (8KB) のPROMで、3つで 24KB。その下の拡張ROMソケットに青いソケットに刺さった 2516がありますが、これは何でしょうね? と思って中身を軽く解析したら当時のドットインパクトプリンタのコントロール用の何かが書いてあるようでした。不要なので外しちゃいます。</p>



<h2 class="wp-block-heading">EPROM 2764 に換装する</h2>



<p>今回使う EPROM は、富士通の MBM2764-30 (30と25がありますがこれは、応答速度で 300msと 250ms) です。<br>ヤフオクでまとめて購入したので、消費しないとね。</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="768" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/14581-768x1024.jpg" alt="" class="wp-image-6225" style="width:381px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/14581-768x1024.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14581-225x300.jpg 225w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14581-1152x1536.jpg 1152w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14581-1536x2048.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14581-scaled.jpg 1920w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/14579-768x1024.jpg" alt="" class="wp-image-6226" style="width:375px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/14579-768x1024.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14579-225x300.jpg 225w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14579-1152x1536.jpg 1152w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14579-1536x2048.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14579-scaled.jpg 1920w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p>窓から見える細い配線がきれいですね。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063737-1024x768.jpg" alt="" class="wp-image-6227" style="width:409px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063737-1024x768.jpg 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063737-300x225.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063737-768x576.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063737-1536x1152.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260214_063737-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>EPROMライター GQ-4&#215;4 でチェックしたらすべて何か書き込み済みだったので、紫外線で消去する ERASER で一気に消去。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/14580-768x1024.jpg" alt="" class="wp-image-6228" style="aspect-ratio:0.7500061678138801;width:374px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/14580-768x1024.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14580-225x300.jpg 225w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14580-1152x1536.jpg 1152w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14580-1536x2048.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14580-scaled.jpg 1920w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p>30年ぶりくらいの倉庫から探し出してきました。使えるかな?</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/14586-768x1024.jpg" alt="" class="wp-image-6229" style="width:442px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/14586-768x1024.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14586-225x300.jpg 225w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14586-1152x1536.jpg 1152w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14586-1536x2048.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14586-scaled.jpg 1920w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p>両サイドに EPROMを並べて差し込んで、蓋を閉めてスイッチオン!</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="768" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/14587-768x1024.jpg" alt="" class="wp-image-6230" style="width:446px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/14587-768x1024.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14587-225x300.jpg 225w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14587-1152x1536.jpg 1152w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14587-1536x2048.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/14587-scaled.jpg 1920w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p>30分程度で、消去完了。</p>



<h2 class="wp-block-heading">変換基板をつくる</h2>



<p>2364 と 2764 はピン数が違いますが、アドレス バスとデータ バスの位置はほとんど一緒 (A12以外)なので、回路図はそんなに難しくありません。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="642" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-4-1024x642.png" alt="" class="wp-image-6231" style="aspect-ratio:1.5950518464617063;width:708px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-4-1024x642.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-4-300x188.png 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-4-768x481.png 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-4.png 1284w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p> </p>



<p>上記の図では、ジャンパ線だけ書いてあります。その他は同じ位置でブリッジ ハンダです。</p>



<p>とりあえず、1つ分だけ作成して、N-BASICの 1番目だけテストで換装してみる。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064646-1024x768.jpg" alt="" class="wp-image-6232" style="width:431px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064646-1024x768.jpg 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064646-300x225.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064646-768x576.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064646-1536x1152.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064646-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>3つの ROMの間は、2ピン分しか空いていないので、かなりコンパクトにぴっちり作成しないと干渉しちゃいますね。</p>



<p>もしくは、1枚の基板にすべて乗せてという手もありますが、ハンダ付けが結構難しい。これはちょっと悩みどころ。</p>



<h2 class="wp-block-heading">電源投入してテスト</h2>



<p>1つのROMだけ換装して、ちゃんと機能するかテスト。わかりやすいように  (C) を (@) に書き換えてEPROMに書き込みました。<br></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="672" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-5-1024x672.png" alt="" class="wp-image-6236" style="width:617px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-5-1024x672.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-5-300x197.png 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-5-768x504.png 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-5.png 1526w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064618-1024x768.jpg" alt="" class="wp-image-6233" style="width:573px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064618-1024x768.jpg 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064618-300x225.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064618-768x576.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064618-1536x1152.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260307_064618-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>無事うまくいきましたね。</p>



<p>あとは、3つ分の換装でOKですね。</p>



<h2 class="wp-block-heading">microSDからマシン語ゲームをロード</h2>



<p>最初に紹介した、microSDから .cmtファイルを読み込む基板を取り付けて、当時衝撃的だったラリーXの読み込みテストをしてみました。無事に動きました。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191318-1024x768.jpg" alt="" class="wp-image-6234" style="width:387px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191318-1024x768.jpg 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191318-300x225.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191318-768x576.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191318-1536x1152.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191318-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191325-1024x768.jpg" alt="" class="wp-image-6235" style="width:397px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191325-1024x768.jpg 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191325-300x225.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191325-768x576.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191325-1536x1152.jpg 1536w, https://expertgig.jp/wp/wp-content/uploads/2026/03/IMG_20260215_191325-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>これで、ようやく PC-8001の快適な環境が出来上がりました。</p>



<h2 class="wp-block-heading">PC-8001のマシン語開発について</h2>



<p>今は 2026年です。21世紀に入ってから四半世紀が立ってしまった現在、正直なところ実機でプログラム開発はしんどすぎるので、私は、秀丸でソースコードを書いて、AILZ80ASM でコンパイルして、DumpListEditor で .cmt ファイルを作成して、XM8 というエミュレータで動作テストという手順でクロス開発しています。なかなか快適です。</p>



<p>また、画面の設計も方眼紙ではきついので、IORI を利用させていただいております。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="821" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-6-821x1024.png" alt="" class="wp-image-6237" style="aspect-ratio:0.8017718715393134;width:368px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-6-821x1024.png 821w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-6-241x300.png 241w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-6-768x958.png 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-6-1231x1536.png 1231w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-6.png 1346w" sizes="(max-width: 821px) 100vw, 821px" /></figure>



<p>あとは、PC-8001でグラフィカルなタイトル画面を作成するときに、凝ったものを描画するのは大変なので、Photo Shop や Illustrator で作成した画像ファイルを最終的には Photo Shop で8色の GIFファイルにします。</p>



<p>これをDelphi で自作したツールで、読み込んで 160×100 (PC8001のグラフィックス解像度) の16進数データに変換して、マシン語データとして組み込みます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="593" src="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-7-1024x593.png" alt="" class="wp-image-6238" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/03/image-7-1024x593.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-7-300x174.png 300w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-7-768x444.png 768w, https://expertgig.jp/wp/wp-content/uploads/2026/03/image-7.png 1194w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>実際 PC8001 で画面いっぱいのグラフィクスを描くとなると、テキスト画面で 40×25の 1000byteとアトリビュートエリア (色付けなどの装飾データ) 1,000byte の 合計2,000byte をデータとして持たなければならないので、フル増設 32KBしたPC-8001でもフリーエリアは最大で27KB前後しかありませんので、ゲーム本体をかなりコンパクトにつくらなければなりません。</p>



<div class="wp-block-essential-blocks-advanced-video  root-eb-advanced-video-92dns"><div class="eb-parent-wrapper eb-parent-eb-advanced-video-92dns "><div class="eb-advanced-video-wrapper eb-advanced-video-92dns none" data-id="eb-advanced-video-92dns"><div class="eb-player-wrapper eb-advanced-video-92dns"><div class="eb-player-option none right" data-id="eb-advanced-video-92dns" data-url="https://youtu.be/sXZLCdzft7s" data-option="none" data-controls="false" data-loop="false" data-muted="false" data-playing="false" data-overlay="false" data-light="https://expertgig.jp/wp/wp-content/plugins/essential-blocks/assets/images/adv-video-placeholder.png" data-customplayicontype="image" data-customplayiconlib="fas fa-play-circle" data-customplayicon="true" data-playicon="https://expertgig.jp/wp/wp-content/plugins/essential-blocks/assets/images/adv-video-playicon.svg" data-download="false"></div></div></div></div></div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<p class="responsive-video-wrap clr"><iframe title="血球パニック for PC-8001 (BASIC+マシン語)" width="1200" height="900" src="https://www.youtube.com/embed/6uamtzlzEP8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
</div></figure>



<p>この制約の中での開発はなかなか痺れます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://expertgig.jp/2026/03/07/pc-8001-%e3%81%ae-basic-rom%e3%82%92-ver1-0-%e2%86%92-1-1-%e3%81%ab-2364-%e2%86%92-2764-%e6%8f%9b%e8%a3%85/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>今年は細々とMZ80Kのマシン語を組む</title>
		<link>https://expertgig.jp/2026/01/30/%e4%bb%8a%e5%b9%b4%e3%81%af%e7%b4%b0%e3%80%85%e3%81%a8mz80k%e3%81%ae%e3%83%9e%e3%82%b7%e3%83%b3%e8%aa%9e%e3%82%92%e7%b5%84%e3%82%80/</link>
					<comments>https://expertgig.jp/2026/01/30/%e4%bb%8a%e5%b9%b4%e3%81%af%e7%b4%b0%e3%80%85%e3%81%a8mz80k%e3%81%ae%e3%83%9e%e3%82%b7%e3%83%b3%e8%aa%9e%e3%82%92%e7%b5%84%e3%82%80/#respond</comments>
		
		<dc:creator><![CDATA[Ariyuki Tano]]></dc:creator>
		<pubDate>Fri, 30 Jan 2026 12:45:46 +0000</pubDate>
				<category><![CDATA[マイコン]]></category>
		<category><![CDATA[情報発信基地]]></category>
		<category><![CDATA[MZ-80]]></category>
		<category><![CDATA[Z80]]></category>
		<category><![CDATA[エミュレータ]]></category>
		<category><![CDATA[マシン語]]></category>
		<guid isPermaLink="false">https://expertgig.jp/?p=6118</guid>

					<description><![CDATA[去年(2025) はPC-8001向けに、マシン語のゲームを2つ作成したので、今年(2026) は来年の干支 「羊」をテーマにしたゲームをMZ-80Kのマシン語で開発することにする。同じZ80なのでPC-8001向けにプ [&#8230;]]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6118" class="elementor elementor-6118" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-b7754f7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b7754f7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2734d9b" data-id="2734d9b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3ffaf46 elementor-widget elementor-widget-text-editor" data-id="3ffaf46" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>去年(2025) はPC-8001向けに、マシン語のゲームを2つ作成したので、今年(2026) は来年の干支 「羊」をテーマにしたゲームをMZ-80Kのマシン語で開発することにする。同じZ80なのでPC-8001向けにプログラミングするのとそんなに違いはありませんが、私の一番思い入れの強いMZ-80K2向けにオールマシン語でゲームを開発するというのは大変意味のある事なんです(笑)。</p>
<p>とはいえ、実機を使って当時のアセンブラで開発するというは、現代ではなかなかの苦行ですので、例によってクロス開発環境を整える。</p>
<p>Z80のアセンブリコードは秀丸を利用。<br />アセンブラは AILZ80ASM を利用。<br />.mztファイルの生成には DumpListEditor Ver 0.80を利用。</p>
<p>こんな構成で行きます。<br />PC8001のときから少し時間がたってしまったので、手順をおさらいします。</p>
<p>テストコードとして、「VRAMをクリアして、VRAMの先頭からディスプレイコードすべてを書き込む」というプログラムを作成します。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-8aa20da elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8aa20da" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9def595" data-id="9def595" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7b0831b elementor-widget elementor-widget-heading" data-id="7b0831b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">1. 秀丸でアセンブリコードを記述して保存</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-9b183a7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="9b183a7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e742c15" data-id="e742c15" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-d8863a6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d8863a6" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ab333d3" data-id="ab333d3" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-0221cb6 elementor-widget elementor-widget-code-highlight" data-id="0221cb6" data-element_type="widget" data-e-type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-less line-numbers">
				<code readonly="true" class="language-less">
					<xmp>;============================================================
; MZ-80K Display Code Table Viewer
;============================================================

            ORG     1200h

;----------------------------
; MZ-80K 定義
;----------------------------
VRAM        EQU     0D000h	; テキストVRAM先頭
COLS        EQU     40		; 画面の横文字数
ROWS        EQU     25		; 画面の縦文字数
VRAM_SIZE   EQU     COLS*ROWS	; 1000 bytes
SPC         EQU     00h		; スペース

;============================================================
START:
;----------------------------
; 1) VRAMクリア（SPC=$00）
;----------------------------
	LD	HL, VRAM
	LD	(HL), SPC
	LD	DE, VRAM+1
	LD	BC, VRAM_SIZE-1
	LDIR

;----------------------------
; 2) 表示コードを 00h→FFh 順に書く
;----------------------------
	LD	HL, VRAM
	LD	A, 00h

DISP_LOOP:
	LD	(HL), A		; VRAMに文字を書きこむ
	INC	HL		;
	INC	A		; 00→01→…→FF→00…

	CP	FFh
	JR	NZ, DISP_LOOP

;----------------------------
; 3) CPU停止
;----------------------------
STOP_CPU:
	HALT

END
</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-51db709 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="51db709" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-754ae2c" data-id="754ae2c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8a5ff8e elementor-widget elementor-widget-text-editor" data-id="8a5ff8e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>保存するファイル名を VRAMTEST.z80 として保存します。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-b969496 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b969496" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b041249" data-id="b041249" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9de71e2 elementor-widget elementor-widget-heading" data-id="9de71e2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">2. アセンブラでバイナリファイルを生成</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-514a902 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="514a902" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3edb7f9" data-id="3edb7f9" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-78561bd elementor-widget elementor-widget-text-editor" data-id="78561bd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>AILZ80ASMはコマンドラインで利用するアセンブラですので、次のような batファイルを作成すると便利だろう。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-36dc421 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="36dc421" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5006cc2" data-id="5006cc2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-da1badc elementor-widget elementor-widget-code-highlight" data-id="da1badc" data-element_type="widget" data-e-type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-bash line-numbers">
				<code readonly="true" class="language-bash">
					<xmp>cd C:\work\2025\05_PERSONAL\Emulator\MZ80マシン語テスト
ailz80asm VRAMTEST.z80 -bin -lst -sym -f
pause
</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-1372c60 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1372c60" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7b98f83" data-id="7b98f83" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7101b05 elementor-widget elementor-widget-text-editor" data-id="7101b05" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>バッチファイルを実行すると次のようなファイルが生成される。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-4a140fa elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4a140fa" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d79166a" data-id="d79166a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-221e551 elementor-widget elementor-widget-image" data-id="221e551" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="211" height="148" src="https://expertgig.jp/wp/wp-content/uploads/2026/01/d432fa515bd7e8287f17d9ec63d019b9.jpg" class="attachment-large size-large wp-image-6123" alt="" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-94ef25a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="94ef25a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f72296f" data-id="f72296f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-bf9f0d2 elementor-widget elementor-widget-text-editor" data-id="bf9f0d2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>*.sym はシンボリックファイルで、アセンブリソース記述した「EQU」で設定した値と「ラベル」の位置のアドレスが一覧になっている。EQUは、他の言語で言えば const である。これを頼りにしてソースコードとにらめっこしてデバッグしていくのである。</p>
<p>*.lst は、アドレス、クロック数、アセンブルした16進数のコード、アセンブリソースを一体化したもので、プログラムの解析に利用する。</p>
<p>*.bin はアセンブリソースをマシン語に変換したバイナリプログラムでこれが実行プログラムになる。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-9564ebe elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="9564ebe" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-04fef43" data-id="04fef43" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-39bbd5f elementor-widget elementor-widget-heading" data-id="39bbd5f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">3. DumpListEditor で mztファイルを生成する</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2a68c05 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2a68c05" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-769dd4f" data-id="769dd4f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ade9856 elementor-widget elementor-widget-text-editor" data-id="ade9856" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>binファイルができたので、これをエミュレータで読み込める形式にするため、このツールを使う。</p>
<p>最初に「MZ-80K」モードにする。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-8109d20 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8109d20" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b4640b0" data-id="b4640b0" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-93b5e0b elementor-widget elementor-widget-image" data-id="93b5e0b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="424" height="223" src="https://expertgig.jp/wp/wp-content/uploads/2026/01/2b5c935017301a56d7ea9d97d8579833.jpg" class="attachment-large size-large wp-image-6124" alt="" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/01/2b5c935017301a56d7ea9d97d8579833.jpg 424w, https://expertgig.jp/wp/wp-content/uploads/2026/01/2b5c935017301a56d7ea9d97d8579833-300x158.jpg 300w" sizes="(max-width: 424px) 100vw, 424px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-1f58dde elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1f58dde" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d4db180" data-id="d4db180" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9881185 elementor-widget elementor-widget-text-editor" data-id="9881185" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>次に 「ファイル読み込み」メニューから「BINファイル読み込み&amp;ダンプリスト表示」で作ほど作成した「VRAMTEST.bin」を読み込む。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-f4fecfb elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="f4fecfb" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7af4204" data-id="7af4204" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-476408b elementor-widget elementor-widget-image" data-id="476408b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="870" height="343" src="https://expertgig.jp/wp/wp-content/uploads/2026/01/418c80b53d7d74248d924ba2c1823cee.jpg" class="attachment-large size-large wp-image-6125" alt="" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/01/418c80b53d7d74248d924ba2c1823cee.jpg 870w, https://expertgig.jp/wp/wp-content/uploads/2026/01/418c80b53d7d74248d924ba2c1823cee-300x118.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/01/418c80b53d7d74248d924ba2c1823cee-768x303.jpg 768w" sizes="(max-width: 870px) 100vw, 870px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ed6bf47 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ed6bf47" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-360432e" data-id="360432e" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-31a2c54 elementor-widget elementor-widget-text-editor" data-id="31a2c54" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>先頭の行に「$1200」と入力して、「アドレス補正」ボタンを押すと次のように水色にハイライトされる。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-3038de8 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="3038de8" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f2a0c54" data-id="f2a0c54" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-e51d061 elementor-widget elementor-widget-image" data-id="e51d061" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="834" height="413" src="https://expertgig.jp/wp/wp-content/uploads/2026/01/804784694ad54d387a75d33f157c5d76.jpg" class="attachment-large size-large wp-image-6126" alt="" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/01/804784694ad54d387a75d33f157c5d76.jpg 834w, https://expertgig.jp/wp/wp-content/uploads/2026/01/804784694ad54d387a75d33f157c5d76-300x149.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/01/804784694ad54d387a75d33f157c5d76-768x380.jpg 768w" sizes="(max-width: 834px) 100vw, 834px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-5930c2a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5930c2a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-63e6f89" data-id="63e6f89" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ff6925f elementor-widget elementor-widget-text-editor" data-id="ff6925f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>そして「形式変換」ボタンを押せばバイナリファイルの先頭アドレスが「1200」からとなる。</p>
<p>右側のファイル名を確認して、必要であれば変更する。実行アドレスは先頭アドレスと同じであれば 1200とする。</p>
<p>「ファイル整理画面にPaste」ボタンを押すと「ファイル整理」タグに移動し、binファイルが生成される。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-609df14 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="609df14" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-07c0a55" data-id="07c0a55" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-98e8094 elementor-widget elementor-widget-image" data-id="98e8094" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="566" height="307" src="https://expertgig.jp/wp/wp-content/uploads/2026/01/becc0f2f7610b9f2ce6171bd5ded2453.jpg" class="attachment-large size-large wp-image-6127" alt="" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/01/becc0f2f7610b9f2ce6171bd5ded2453.jpg 566w, https://expertgig.jp/wp/wp-content/uploads/2026/01/becc0f2f7610b9f2ce6171bd5ded2453-300x163.jpg 300w" sizes="(max-width: 566px) 100vw, 566px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-8bcb05b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8bcb05b" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-179ddd2" data-id="179ddd2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-396a505 elementor-widget elementor-widget-text-editor" data-id="396a505" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>これで、「mzt書出し」ボタンを押して、保存すれば mztファイルの出来上がり。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-4b5d406 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4b5d406" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3946583" data-id="3946583" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-037c950 elementor-widget elementor-widget-image" data-id="037c950" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="646" height="163" src="https://expertgig.jp/wp/wp-content/uploads/2026/01/987e362b24a78f2af719a296c3f96c94.jpg" class="attachment-large size-large wp-image-6128" alt="" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/01/987e362b24a78f2af719a296c3f96c94.jpg 646w, https://expertgig.jp/wp/wp-content/uploads/2026/01/987e362b24a78f2af719a296c3f96c94-300x76.jpg 300w" sizes="(max-width: 646px) 100vw, 646px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-6170b3f elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="6170b3f" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cca4ce4" data-id="cca4ce4" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-2add1d4 elementor-widget elementor-widget-heading" data-id="2add1d4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">4. MZ-80Kのエミュレータで実行させる</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-f5df6b5 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="f5df6b5" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f0677b" data-id="2f0677b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-37803c3 elementor-widget elementor-widget-text-editor" data-id="37803c3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Emulator を起動して、生成した VRAMTEST.mzt を選択して、「LOAD」+ CR (Enter) でプログラムがロードされます。mzt ファイルにはプログラムの読み込みアドレス、実行アドレスが書き込まれているので、読み込むが完了すると自動的に実行されます。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-0ec9bb9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0ec9bb9" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-44f9ae6" data-id="44f9ae6" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-dc900c2 elementor-widget elementor-widget-image" data-id="dc900c2" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="717" src="https://expertgig.jp/wp/wp-content/uploads/2026/01/57cb2d8bad3c0566ad951fbbad01f1bc-1024x717.jpg" class="attachment-large size-large wp-image-6129" alt="" srcset="https://expertgig.jp/wp/wp-content/uploads/2026/01/57cb2d8bad3c0566ad951fbbad01f1bc-1024x717.jpg 1024w, https://expertgig.jp/wp/wp-content/uploads/2026/01/57cb2d8bad3c0566ad951fbbad01f1bc-300x210.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2026/01/57cb2d8bad3c0566ad951fbbad01f1bc-768x538.jpg 768w, https://expertgig.jp/wp/wp-content/uploads/2026/01/57cb2d8bad3c0566ad951fbbad01f1bc.jpg 1440w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-15e3ec1 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="15e3ec1" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-657cb63" data-id="657cb63" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-6a95f89 elementor-widget elementor-widget-text-editor" data-id="6a95f89" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>おー、パチパチパチ。<br />めでたく実行されました。MZ-80Kに設定されているキャラクタはちょっと楽しい感じですね。グラフィクスを描画できないので、ゲームをつくるときは、この文字を組み合わせて、それっぽい感じにすることになります。センスが問われるのがおもしろいところ。</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		]]></content:encoded>
					
					<wfw:commentRss>https://expertgig.jp/2026/01/30/%e4%bb%8a%e5%b9%b4%e3%81%af%e7%b4%b0%e3%80%85%e3%81%a8mz80k%e3%81%ae%e3%83%9e%e3%82%b7%e3%83%b3%e8%aa%9e%e3%82%92%e7%b5%84%e3%82%80/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DumpListEditor の使い方  (PC-8001編)</title>
		<link>https://expertgig.jp/2025/05/17/dumplisteditor-%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9-pc-8001%e7%b7%a8/</link>
					<comments>https://expertgig.jp/2025/05/17/dumplisteditor-%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9-pc-8001%e7%b7%a8/#respond</comments>
		
		<dc:creator><![CDATA[Ariyuki Tano]]></dc:creator>
		<pubDate>Sat, 17 May 2025 13:15:52 +0000</pubDate>
				<category><![CDATA[情報発信基地]]></category>
		<category><![CDATA[cmt形式]]></category>
		<category><![CDATA[PC-8001]]></category>
		<category><![CDATA[エディタ]]></category>
		<category><![CDATA[マシン語]]></category>
		<guid isPermaLink="false">https://expertgig.jp/?p=5984</guid>

					<description><![CDATA[DumpListEditor は、レトロPC向けのプログラムをWindows でクロス開発するときには欠かせない テキストエディタ + ファイル書き出し機能が盛りだくさん。 これがないとレトロPC向けのプログラム開発はか [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>DumpListEditor は、レトロPC向けのプログラムをWindows でクロス開発するときには欠かせない テキストエディタ + ファイル書き出し機能が盛りだくさん。</p>



<p>これがないとレトロPC向けのプログラム開発はかなりしんどいことになります。<br>私が久々にPC-8001用にプログラムを開発しようと思えたのは、このツールを発見したからです。</p>



<p>さて、それでは早速使い方について</p>



<h2 class="wp-block-heading">アセンブリ済みのマシン語ファイルをcmt形式で書き出す手順</h2>



<p>cmt ファイル形式とは、PC-8001エミュレータで読込できる形式にしたものです。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="660" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-6-1024x660.png" alt="" class="wp-image-5985" style="aspect-ratio:1.5515151515151515;width:694px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-6-1024x660.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-6-300x193.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-6-768x495.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-6-1536x990.png 1536w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-6.png 1544w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>起動するとこんな感じ。初期画面ではタブが「マシン語入力」になっています。<br>ここで、「ファイル読込み」→「BINファイル読み込み &amp; ダンプリスト表示」を選択</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="480" height="385" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-7.png" alt="" class="wp-image-5986" style="aspect-ratio:1.2467532467532467;width:227px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-7.png 480w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-7-300x241.png 300w" sizes="(max-width: 480px) 100vw, 480px" /></figure>



<p>アセンブラでアセンブリ済みのbinファイルを選択して読み込みます。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="866" height="947" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-8.png" alt="" class="wp-image-5987" style="aspect-ratio:0.914466737064414;width:369px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-8.png 866w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-8-274x300.png 274w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-8-768x840.png 768w" sizes="(max-width: 866px) 100vw, 866px" /></figure>



<p>読み込むととりあえず0000番地をスタートにして読み込まれます。ここは実際にアセンブラで定義したORGのアドレスに変換する必要があります。ここでは、$A800を設定してみます。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="585" height="283" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-9.png" alt="" class="wp-image-5988" style="aspect-ratio:2.067137809187279;width:265px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-9.png 585w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-9-300x145.png 300w" sizes="(max-width: 585px) 100vw, 585px" /></figure>



<p>最初の行に $A800 と打ち込んで ( 2行目のコメントに書いてあるように) 「アドレス補正」ボタンをクリック。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="663" height="690" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-10.png" alt="" class="wp-image-5989" style="aspect-ratio:0.9608695652173913;width:413px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-10.png 663w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-10-288x300.png 288w" sizes="(max-width: 663px) 100vw, 663px" /></figure>



<p>するとこんな感じに水色のマーカーがつきます。<br>「形式変換」ボタンがアクティブになりますので、これをクリックすると変換されます。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="851" height="759" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-11.png" alt="" class="wp-image-5990" style="aspect-ratio:1.121212121212121;width:445px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-11.png 851w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-11-300x268.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-11-768x685.png 768w" sizes="(max-width: 851px) 100vw, 851px" /></figure>



<p>次に、右側の「実行アドレス」項目に a800 と入力して、「ファイル整理画面にPaste」ボタンをクリック</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="140" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-12-1024x140.png" alt="" class="wp-image-5991" style="aspect-ratio:7.314285714285714;width:753px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-12-1024x140.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-12-300x41.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-12-768x105.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-12.png 1525w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>すると、タブが「ファイル整理」を選択した状態になり、次のように表示されます。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="660" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-13-1024x660.png" alt="" class="wp-image-5992" style="aspect-ratio:1.5515151515151515;width:532px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-13-1024x660.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-13-300x193.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-13-768x495.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-13-1536x990.png 1536w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-13.png 1541w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ここに操作説明が書いてありますが、詳しく知りたい方は読みてください。</p>



<p>エディタ部分の左上に 「obsidian.BIN」というオブジェクトが出来上がっています。<br>ここで「cmt書出し」ボタンをクリックしてファイル名を指定すれば下記書き出し完了。</p>



<h2 class="wp-block-heading">エミュレータでの読込 (マシン語編)</h2>



<p>ここでは、XM8 での操作について説明します。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="959" height="666" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-14.png" alt="" class="wp-image-5993" style="aspect-ratio:1.43993993993994;width:403px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-14.png 959w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-14-300x208.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-14-768x533.png 768w" sizes="(max-width: 959px) 100vw, 959px" /></figure>



<p>右クリックで表示される CMT をクリック</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="958" height="667" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-15.png" alt="" class="wp-image-5994" style="aspect-ratio:1.4362818590704647;width:396px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-15.png 958w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-15-300x209.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-15-768x535.png 768w" sizes="(max-width: 958px) 100vw, 958px" /></figure>



<p>次に 「Play」をクリックして、対称となる cmt ファイルを選択します。<br>これで 内部的にはカセットデータレコーダーにカセットがセットされた状態で巻き戻しがされた状態になっています。<br>「Esc」キーを2回押してメニューから抜けます。</p>



<p>mon コマンドで モニターモードに入って、Lコマンドでプログラムをロードします。<br>実際のテープを読み込むスピードで読込がはじまりますが、とても遅いのでマウス右クリックで、再度メニューを表示して「Full Speed」にしてメニューを抜けて、読み込みが完了してカーソルが点滅したら、再度メニューを開いて 「Normal Speed」にすると時短になります。Ctrl + B でモニタモードを抜ければ、マシン語の読み込み完了です。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="785" height="303" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-16.png" alt="" class="wp-image-5995" style="aspect-ratio:2.5907590759075907;width:415px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-16.png 785w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-16-300x116.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-16-768x296.png 768w" sizes="(max-width: 785px) 100vw, 785px" /></figure>



<p>SXという1/4文字が表示されるのは、Ctrl + B を押したからです。</p>



<h2 class="wp-block-heading">BASIC プログラムの書き出し</h2>



<p>BASICの場合は、「BASIC入力」タブに切り替えて、ファイル読み込みからプログラムソースファイルを読込ます。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="716" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-17-1024x716.png" alt="" class="wp-image-5996" style="aspect-ratio:1.4294930875576037;width:645px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-17-1024x716.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-17-300x210.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-17-768x537.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-17-1536x1075.png 1536w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-17.png 1551w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ファイル名を付けて (6文字まで)  「ファイル整理画面にPaste」ボタンをクリック。<br>ここではOBSIDIANの最初の6文字をファイル名にしました。「OBSIDI」</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="519" height="117" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-18.png" alt="" class="wp-image-5997" style="aspect-ratio:4.435897435897436;width:271px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-18.png 519w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-18-300x68.png 300w" sizes="(max-width: 519px) 100vw, 519px" /></figure>



<p>次のように「OBSIDI.BAS」オブジェクトが出来上がりますので、「cmt書き出し」ボタンで書き出します。<br></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="500" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-20-1024x500.png" alt="" class="wp-image-5999" style="aspect-ratio:2.048;width:500px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-20-1024x500.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-20-300x146.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-20-768x375.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-20.png 1041w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>「cmt書出し」ボタンで書き出します。</p>



<h2 class="wp-block-heading">エミュレータで読込 (BASIC編)</h2>



<p>マシン語と同様に cmt ファイルを指定したら、 cload&#8221;(ファイル名)&#8221; で読み込みが始まります。<br>指定したファイル名のプログラムを発見したら「FOUND:(ファイル名)」と表示されて読込が完了するとカーソルが点滅しますので、「RUN」コマンドでBASICプログラムを実行します。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="963" height="669" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-19.png" alt="" class="wp-image-5998" style="aspect-ratio:1.4394618834080717;width:367px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-19.png 963w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-19-300x208.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-19-768x534.png 768w" sizes="(max-width: 963px) 100vw, 963px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://expertgig.jp/2025/05/17/dumplisteditor-%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9-pc-8001%e7%b7%a8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PC-8001 のマシン語開発 (環境構築編)</title>
		<link>https://expertgig.jp/2025/05/17/pc-8001-%e3%81%ae%e3%83%9e%e3%82%b7%e3%83%b3%e8%aa%9e%e9%96%8b%e7%99%ba-%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e7%b7%a8/</link>
					<comments>https://expertgig.jp/2025/05/17/pc-8001-%e3%81%ae%e3%83%9e%e3%82%b7%e3%83%b3%e8%aa%9e%e9%96%8b%e7%99%ba-%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e7%b7%a8/#respond</comments>
		
		<dc:creator><![CDATA[Ariyuki Tano]]></dc:creator>
		<pubDate>Sat, 17 May 2025 05:20:06 +0000</pubDate>
				<category><![CDATA[マイコン]]></category>
		<category><![CDATA[情報発信基地]]></category>
		<category><![CDATA[PC-8001]]></category>
		<category><![CDATA[Z80]]></category>
		<category><![CDATA[アセンブラ]]></category>
		<category><![CDATA[エミュレータ]]></category>
		<category><![CDATA[マシン語]]></category>
		<guid isPermaLink="false">https://expertgig.jp/?p=5968</guid>

					<description><![CDATA[PC-8001 でオールマシン語のプログラムを実機でやろうと思うと気持ちが折れてしまいますので、2025年現在の方法で考えてみましょう。ちなみにこれは私の備忘録としての意味合いが強いです。最近忘れやすくて、細かく手順とか [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>PC-8001 でオールマシン語のプログラムを実機でやろうと思うと気持ちが折れてしまいますので、2025年現在の方法で考えてみましょう。ちなみにこれは私の備忘録としての意味合いが強いです。最近忘れやすくて、細かく手順とかをまとめておかないと本当にきれいさっぱり忘れてしまいます。</p>



<h2 class="wp-block-heading">まずはPC8001のエミュレータを準備</h2>



<p>PC-8001 は人気機種だけあって、エミュレータは多数存在します。それぞれ好みはあると思いますが、私は XM8 というエミュレータを利用しています。これはPC-8801MAのエミュレータなのですが、Nモードもありますので大丈夫です。</p>



<p>下記よりダウンロードできます。</p>



<p><a href="http://retropc.net/pi/xm8/index.html">http://retropc.net/pi/xm8/index.html</a></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="951" height="666" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-4.png" alt="" class="wp-image-5974" style="aspect-ratio:1.427927927927928;width:463px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-4.png 951w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-4-300x210.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-4-768x538.png 768w" sizes="(max-width: 951px) 100vw, 951px" /></figure>



<h2 class="wp-block-heading">専用エディタの準備 (BASIC打ちこみ用)</h2>



<p>いわゆるテキストエディタなのですが、当時のマイコンのASCIIコードは各社独自で、キャラ文字も独自に設定されていますので、これに対応しないといけません。</p>



<p>下記より N-FONT をダウンロード (OUT of STANDARD さんのページ )させていただいて、</p>



<p><a href="http://upd780c1.g1.xrea.com/pc-8001/index.html">http://upd780c1.g1.xrea.com/pc-8001/index.html</a></p>



<p>エディタは、DumpListEditor 一択でしょう。エディタだけでなく、エミュ用のファイル出力なども統合されています。<br>正直これがないと、どうにもなりません。2025年現在もアップデートされ続けています。<br><a href="https://bugfire2009.ojaru.jp/download.html#dleditor">https://bugfire2009.ojaru.jp/download.html#dleditor</a></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="654" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-5-1024x654.png" alt="" class="wp-image-5975" style="aspect-ratio:1.5657492354740061;width:463px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-5-1024x654.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-5-300x192.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-5-768x491.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-5-1536x982.png 1536w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-5.png 1549w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>使い方はこっちのページで。</p>



<p>/<a href="https://expertgig.jp/2025/05/17/dumplisteditor-%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9-pc-8001%e7%b7%a8/" data-type="post" data-id="5984">DumpListEditor の使い方  (PC-8001編)</a></p>



<p></p>



<p></p>



<h2 class="wp-block-heading">アセンブラ用エディタ</h2>



<p>これは何でもよいのですが、私は秀丸でやってます。色の設定などは 内藤氏の設定をまねてます。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1021" height="1024" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-2-1021x1024.png" alt="" class="wp-image-5972" style="aspect-ratio:0.9970703125;width:499px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-2-1021x1024.png 1021w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-2-300x300.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-2-150x150.png 150w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-2-768x770.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-2-1532x1536.png 1532w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-2.png 1585w" sizes="(max-width: 1021px) 100vw, 1021px" /></figure>



<p>この設定については、内藤氏が下記ページで説明されています。<br><a href="https://codeknowledge.livedoor.blog/archives/14714379.html">https://codeknowledge.livedoor.blog/archives/14714379.html</a></p>



<p>それで、最後に、『えーい面倒だ、これを食らえ!』となっていまして、私はこれをくらって設定しました。(笑)</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="292" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-3-1024x292.png" alt="" class="wp-image-5973" style="aspect-ratio:3.506849315068493;width:459px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image-3-1024x292.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-3-300x85.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-3-768x219.png 768w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-3.png 1208w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h2 class="wp-block-heading">Z80コンパイラ</h2>



<p>選択肢は数個ありますが、伝説のプログラマ 内藤氏 (ハイドライドなど開発された方) のおすすめが、AILZ80ASM ということで、それに倣って私も利用しています。</p>



<p><a href="https://github.com/AILight/AILZ80ASM">https://github.com/AILight/AILZ80ASM</a></p>



<h2 class="wp-block-heading">画面デザインツール</h2>



<p>上述の内藤氏作の 『IORI for PC-8001』をぜひ使っていただきたい。昔風に紙に書いてもいいのですが、PC-8001だとカラー画面を想定すると、カラー表示における制限事項がありますので、その辺のチェックもしてくれるこのツールはとても良いです。<br>これもダウンロードは、上記の DumpListEditor のダウンロードと同じ場所からお願いします。</p>



<p>下のスクリーンショットは、私が今回開発した OBSIDIAN のプレイ画面のデザインをしながら、1行の色数制限に引っ掛からないようにチェックした様子です。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="890" height="523" src="https://expertgig.jp/wp/wp-content/uploads/2025/05/image.png" alt="" class="wp-image-5969" style="aspect-ratio:1.7017208413001912;width:429px;height:auto" srcset="https://expertgig.jp/wp/wp-content/uploads/2025/05/image.png 890w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-300x176.png 300w, https://expertgig.jp/wp/wp-content/uploads/2025/05/image-768x451.png 768w" sizes="(max-width: 890px) 100vw, 890px" /></figure>



<p>ちなみにですが私が独自にEXCELで作成して、開発時に使っているファイルもアップしておきます。</p>



<div class="wp-block-file"><a id="wp-block-file--media-62162822-8f58-483d-8823-7cbf50afbe56" href="blob:https://expertgig.jp/6e255286-bcb9-4f66-842a-86d91cbc4d3d">画面デザインシート_OBSIDIAN.xlsx</a><a href="blob:https://expertgig.jp/6e255286-bcb9-4f66-842a-86d91cbc4d3d" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-62162822-8f58-483d-8823-7cbf50afbe56">ダウンロード</a></div>



<p>マシン語でプログラムする際にVRAMのアドレスを直接指定したいケースが多々あります。またカラーモードにするとBASICですと画面左の1列が書き込みできなくなり、WIDTH 40,25 としても実際は 39×25 になってしまいます。理由は不明。仕様です (笑)。ですがマシン語ではVRAMに直接書き込めます。ますます理由が不明。</p>



<h2 class="wp-block-heading">環境設定の次は実際のアセンブルから実行まで</h2>



<p>環境がなんとか整いましたら、次はコードを書いて、アセンブラでアセンブルして読込可能なファイルを書き出して、エミュで実行となります。ここはかなりキモになります。これがスムーズにできないとデバッグで気持ちが折れちゃいますので。。</p>



<p>今回は、環境整備編 ということでここまで。あまり親切に書いていないので、もしご要望があれば連絡ください。追記します。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://expertgig.jp/2025/05/17/pc-8001-%e3%81%ae%e3%83%9e%e3%82%b7%e3%83%b3%e8%aa%9e%e9%96%8b%e7%99%ba-%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e7%b7%a8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
