<?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>Z-80 &#8211; EXPERTGIG</title>
	<atom:link href="https://expertgig.jp/tag/z-80/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>MZ-80K2のエミュレーター作りを再開 (Delphi 10.4.2)</title>
		<link>https://expertgig.jp/2021/02/28/mz-80k2%e3%81%ae%e3%82%a8%e3%83%9f%e3%83%a5%e3%83%ac%e3%83%bc%e3%82%bf%e3%83%bc%e4%bd%9c%e3%82%8a%e3%82%92%e5%86%8d%e9%96%8b-delphi-10-4-2/</link>
					<comments>https://expertgig.jp/2021/02/28/mz-80k2%e3%81%ae%e3%82%a8%e3%83%9f%e3%83%a5%e3%83%ac%e3%83%bc%e3%82%bf%e3%83%bc%e4%bd%9c%e3%82%8a%e3%82%92%e5%86%8d%e9%96%8b-delphi-10-4-2/#respond</comments>
		
		<dc:creator><![CDATA[Ariyuki Tano]]></dc:creator>
		<pubDate>Sun, 28 Feb 2021 00:38:20 +0000</pubDate>
				<category><![CDATA[マイコン]]></category>
		<category><![CDATA[情報発信基地]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[MZ-80]]></category>
		<category><![CDATA[Z-80]]></category>
		<category><![CDATA[エミュレータ]]></category>
		<guid isPermaLink="false">https://expertgig.jp/?p=5016</guid>

					<description><![CDATA[最近、週末に PC-8001 でプログラムしていて、一部マシン語にしようとZ80を触っていたら、Z80沼にはまってしまい、興味の対象が MZ-80K2のエミュレーションに移ってしまいました (笑) 。 興味が移ってしまっ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>最近、週末に PC-8001 でプログラムしていて、一部マシン語にしようとZ80を触っていたら、Z80沼にはまってしまい、興味の対象が MZ-80K2のエミュレーションに移ってしまいました (笑) 。</p>



<p>興味が移ってしまったものは仕方ないということで、約1年ぶりに プロジェクトを開いて、自分で書いたコードのおさらい。(ほぼ記憶喪失なので) </p>



<p>実行させながら、挙動を確認。ようやく全貌を思い出しました。</p>



<h2 class="wp-block-heading">前回までのおさらい</h2>



<p>・Z80のすべての機能を実装 、未定義命令も含めて実装したつもり。。</p>



<p>・MZ-80のVRAM領域をできるだけ高速に描画できるように試行錯誤、満足まではいかないがとりあえず使えそうなレベルにしあげて、とはいえリフレッシュレート 60Hz は結構きつい。</p>



<p>・CGROMの読み込み</p>



<p>・モニタROM を 00000H～00FFFH にロード</p>



<p>・とりあえず、タイマーで 1ms間隔 で Z80 の命令を実行</p>



<p>・モニタROM を実行して、タイトル表示、入力待ちになるまでを確認。</p>



<h2 class="wp-block-heading">今回やったこと</h2>



<p> ・z80の実行を別スレッド化して、Z80のマシンサイクルも考慮して実行できるようにした</p>



<p>・レジスタの内容をビジュアルに表示できるようにした。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="607" src="https://expertgig.jp/wp/wp-content/uploads/2021/02/image-6-1024x607.png" alt="" class="wp-image-5017" srcset="https://expertgig.jp/wp/wp-content/uploads/2021/02/image-6-1024x607.png 1024w, https://expertgig.jp/wp/wp-content/uploads/2021/02/image-6-300x178.png 300w, https://expertgig.jp/wp/wp-content/uploads/2021/02/image-6-768x455.png 768w, https://expertgig.jp/wp/wp-content/uploads/2021/02/image-6-1536x910.png 1536w, https://expertgig.jp/wp/wp-content/uploads/2021/02/image-6.png 1930w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">問題発生</h2>



<p>2MHz までスピードがあげられない!! という大きな問題に直面中。</p>



<p>Z-80 だけ実行 &#8212;&gt; 1.2MHz </p>



<p>Z-80 + VRAM描画 &#8212;&gt; 0.8MHz</p>



<p>Z-80 + VRAM描画 + レジスタな内容表示 &#8212;&gt; 0.6MHz</p>



<p>Corei7のマシンで、2MHzのマシンエミュレーションができないのは問題ですね。</p>



<p>まずは何としても Z-80実行で 4MHz程度、VRAM描画して 3MHz 程度は出せるようにしたいですね。。そうしないとエミュレーションスピードの選択メニューに 1.5倍、2倍、Full とか表示できないよ～。</p>



<p>Delphi で開発しているので、描画部分はちょっと高速化が難しいところありますが、Z80の実行は余裕で 10MHz くらい出したい!  </p>



<p>Delphi は一部アセンブラで記述もできるけど、そうすると Android で動かないプログラムになっちゃうんだよね。しかもDelphi のコンパイラが吐き出すマシン語に勝てる気がしない (笑)。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1000" height="750" src="https://expertgig.jp/wp/wp-content/uploads/2021/02/IMG20210228091442.jpg" alt="" class="wp-image-5019" srcset="https://expertgig.jp/wp/wp-content/uploads/2021/02/IMG20210228091442.jpg 1000w, https://expertgig.jp/wp/wp-content/uploads/2021/02/IMG20210228091442-300x225.jpg 300w, https://expertgig.jp/wp/wp-content/uploads/2021/02/IMG20210228091442-768x576.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>1980年に購入した、40年来の愛機 MZ-80K2。。カセットデッキのプーリーのゴムを交換したりヘッドを綺麗にして使えるようになっていますが、ちょっとキー入力に難ありなので、接点復活剤でもためそうかな。。</p>



<p>目標は、MZ-80至上最高のゲームプログラムを作成すること。</p>



<p>メモリ48KB、CPU Z80 2MHz 、キャラグラのみという厳しい制約の中でどこまでできるのか。</p>



<p>なぜ MZ-80K2 のエミュレーターを作成しているのかという、純粋にエミュレーターを作りたいというのもありますが、MZ-80K2 実機でコーディングするのはさすがに骨が折れるので、現代的に上下スクロールできるエディタを使ってコーディングしてZ80アセンブラでコンパイルして実機で読み込むということがしたいだけです。</p>



<p>しかし、MZ-80の場合は、カセットデッキ内蔵なので、読み込みに問題があるのですが、 MZ-700も所有していので、MZ-700のRS232C通信でマシン語を書き込んで、いったんMZ-700でカセットにSAVE してから、MZ-80でLOADかなと思っています。</p>



<p>もしくはエミュレータで動作確認した、16進数のダンプリストを印刷して、マシン語の打ち込みかな? </p>



<p>打ち込みはもちろん RaspberryPi を使って、OCRして、ロボットハンドをコントロールして打ち込みかな。 (ローテクとハイテクの融合)　24時間ダンプリスト打ち込みロボ!!</p>



<p>当然ロボットハンドは、Solidworks で設計して、3Dプリントして、小型のサーボ組み込んで。。。</p>



<p>夢はふくらむ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://expertgig.jp/2021/02/28/mz-80k2%e3%81%ae%e3%82%a8%e3%83%9f%e3%83%a5%e3%83%ac%e3%83%bc%e3%82%bf%e3%83%bc%e4%bd%9c%e3%82%8a%e3%82%92%e5%86%8d%e9%96%8b-delphi-10-4-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
