<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/"
>

<channel rdf:about="https://winwin0424terra.seesaa.net/">
<title>Windows　実験室</title>
<link>https://winwin0424terra.seesaa.net/</link>
<description>Windowsを便利に・賢く手なずける　Winndwsの困ったを解決！</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="https://blog.seesaa.jp/" />
<items>
<rdf:Seq>
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521394376.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521366285.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521360361.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521348419.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521341785.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521335000.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521319133.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521310021.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521301190.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521292765.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521287652.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521281769.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521255555.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521242832.html" />
<rdf:li rdf:resource="https://winwin0424terra.seesaa.net/article/521230501.html" />
</rdf:Seq>
</items>
</channel>

<item rdf:about="https://winwin0424terra.seesaa.net/article/521394376.html">
<link>https://winwin0424terra.seesaa.net/article/521394376.html</link>
<title>今更 Z80マシン語　の次のお話</title>
<description>　　こんばんは、まだまだ命令コードの解説も足りてないですが、短いコードを書いてみてアセンブルするのは、　どうやるのか？、について書いてみたいと思います。　　まずアセンブル以前に、ニーモニックで書かれたソースプログラムを作るのはどうするのか？。　　こちらは、エディタ（windows）ならメモ帳でもOKです、勿論他の高機能なものでもOKです。　　　　過去記事でも紹介しましたが、使い慣れたもので良いと思います。　　作ったプログラムを、EmyZ-2200などで走らせてみたいなら、アセ..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-22T01:00:48+09:00</dc:date>
<content:encoded><![CDATA[
　　こんばんは、まだまだ命令コードの解説も足りてないですが、短いコードを書いてみてアセンブルするのは、<br />　どうやるのか？、について書いてみたいと思います。<br /><br />　　まずアセンブル以前に、ニーモニックで書かれたソースプログラムを作るのはどうするのか？。<br /><br />　　こちらは、エディタ（windows）ならメモ帳でもOKです、勿論他の高機能なものでもOKです。<br />　　<br />　　過去記事でも紹介しましたが、使い慣れたもので良いと思います。<br /><br />　　作ったプログラムを、EmyZ-2200などで走らせてみたいなら、アセンブラプログラムはZ80as  が良いです。<br /><br />　　EmyZ-2200で読み込める形式でファイルを出力してくれますから！。<br /><br />　　ただしコマンドプロンプトのDOS画面上での操作（CUI）になりますので、そちら方面の多少の知識は<br />　必要かもしれませんが、それほど難しくはありませんので、Z80as の解説を読めば簡単に試せるでしょう！。<br /><br />　　ってことで、アセンブルを試すなら、Z80as をダウンロードして解凍からになります。<br /><br />　　解凍できたフォルダには、使い方の html ファイルが有りますので、そちらを読んでください。<br /><br />　　これでハンドアセンブルする場合の数分の一の手間で、MZエミュ用のファイルが作れますので、<br />　試してほしいと思います。<br /><br />　　ってことです、自分の設計通りにマシン語のプログラムが動いたら、感動しますよ～！？。<br />　<br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521366285.html">
<link>https://winwin0424terra.seesaa.net/article/521366285.html</link>
<title>今更 Z80マシン語 ＃１６</title>
<description>　　こんばんは、短いアセンブラソースだったけれど、細かく解説したつもりなので、改造したりしてみれば、　このソースでまだ遊べるんじゃないでしょうか？。　　記事のどこかで、アセンブラソフトも紹介した気がするので、アセンブルを試したりしてみれば、　まだまだ遊べそうな気がします。　　使った命令の種類も少ないし、意味はフンワリ理解できたんじゃないでしょうか？。　　横４０桁表示のモードにしてみたり、表示する文字列データを変更してみたりして、遊んでみてください。　　そうして慣れてきたら、他..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-17T22:12:44+09:00</dc:date>
<content:encoded><![CDATA[
　　こんばんは、短いアセンブラソースだったけれど、細かく解説したつもりなので、改造したりしてみれば、<br />　このソースでまだ遊べるんじゃないでしょうか？。<br /><br />　　記事のどこかで、アセンブラソフトも紹介した気がするので、アセンブルを試したりしてみれば、<br />　まだまだ遊べそうな気がします。<br /><br />　　使った命令の種類も少ないし、意味はフンワリ理解できたんじゃないでしょうか？。<br /><br />　　横４０桁表示のモードにしてみたり、表示する文字列データを変更してみたりして、遊んでみてください。<br /><br />　　そうして慣れてきたら、他の命令も習っていけば、簡単なゲームっぽいものも作れるようになるかも知れません？。<br /><br />　　飽きてきたら、8086CPUに挑戦してみたり、C言語などの理解にも役立てれると思います。<br /><br />　　パソコンの趣味は、体力無くても出来ますので、年令に関係なく続けられますので、なが～く楽しんでいきましょう。<br /><br />　　ってことで今更シリーズ終了します、見に来てくれた方には感謝します、ありがとうございました。<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521360361.html">
<link>https://winwin0424terra.seesaa.net/article/521360361.html</link>
<title>今更 Z80マシン語 ＃１５</title>
<description>　　おはようございます、文字列表示のニーモニック解説も１５回目、前回でどのようにすれば文字列が　表示できるのかは、ほぼ解ってきたのでは？、と思いますメモリにデータを書き込むってことでした。　https://www.dropbox.com/scl/fi/hl19hm25t9ff5ef9uxiag/.txt?rlkey=bqs731nvhaldba4bmtkgghlqa&amp;st=wsgef7g6&amp;dl=0　　↑　↑　↑　ソースの表示はこちらです。　　　　２４行から３４行までの間を、..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-17T00:11:54+09:00</dc:date>
<content:encoded><![CDATA[
　　おはようございます、文字列表示のニーモニック解説も１５回目、前回でどのようにすれば文字列が<br />　表示できるのかは、ほぼ解ってきたのでは？、と思いますメモリにデータを書き込むってことでした。<br /><br />　<a href="https://www.dropbox.com/scl/fi/hl19hm25t9ff5ef9uxiag/.txt?rlkey=bqs731nvhaldba4bmtkgghlqa&st=wsgef7g6&dl=0" target="_blank">https://www.dropbox.com/scl/fi/hl19hm25t9ff5ef9uxiag/.txt?rlkey=bqs731nvhaldba4bmtkgghlqa&st=wsgef7g6&dl=0</a><br />　　↑　↑　↑<br />　ソースの表示はこちらです。<br />　　<br />　　２４行から３４行までの間を、文字列の終了マークである　０Dh　が見つかるまでループすることで文字列を<br />　表示していることが解ってもらえましたか？。<br /><br />　　データ部分の文字列を表示し終わったので、次行の３５行　＃END　へ分岐します、分岐先は CALL    T_OFF<br />　となっています、CALL　T_ON　でメモリのバンクを切り替えましたので、ここを元に戻して RETURN　しよう<br />　ってことです。<br /><br />　　プログラムはここで終了ですが、ソースはまだ続いています、先のプログラム部分で　CALL　していたサブルーチン<br />　とデータ部分です。<br /><br />　　ラベル　T_ON　が３９行から46行までと、T_OFF　が47行から50行に出てきます。<br /><br />　　まずテキスト画面をメモリ上にセッティングする、T_ONから。<br /><br />　　<a href="https://archive.org/details/personal-computer-mz-2000-basic-monitor-manual-sharp/Personal%20Computer%20mz-2000%20OWNERS%20MANUAL%20SHARP/page/59/mode/2up" target="_blank">https://archive.org/details/personal-computer-mz-2000-basic-monitor-manual-sharp/Personal%20Computer%20mz-2000%20OWNERS%20MANUAL%20SHARP/page/59/mode/2up</a><br />　　↑　↑　↑<br />　こちらはMZ-2000/2200のオーナーズマニュアルのページです。<br /><br />　　こちらの左上にポートアドレス＄E８の内容の解説が有ります、右下の虫眼鏡アイコンを操作して適度に拡大して<br />　眺めてください、ビット７～5をHにすれば良さそうなのがわかりますね？、ビットは０と１しか表せませんので<br />　この3ビットを1にしてやると座標Xが８０桁のモードに切り替えられそうです。<br /><br />　　これが３９行から４６行で行っている、サブルーチンの内容です。<br /><br />　　４０行で IN      A,(0E8H)　これは現在の＄E８ポートの状態をAレジスタに読み出しています。<br />　 IN      A,(E8H)　でなく IN      A,(0E8H)　とカッコの中が０E８Ｈとなっているのは E8H と書くとアセンブラが E８を<br />　ラベルだと思ってしまうからです、よくやりがちなミスなのでしつこいですが、また書きました。<br /><br />　　４１行　LD      (E8_DAT),A　こちらのE8_DATはラベルです、今読み出した＄E8ポートのデータを保存しています。<br /><br />　　４２行から４４行でビット７～5をHにしています、 SET命令はAレジスタに対してしか使えない命令だと思います？。<br />　SET＊で＊のビットを１に出来ます、RESでビットを０に出来るんじゃなかったかな？。<br /><br />　　ここではSET命令３回で行っていますが、論理演算でやれば１回の操作でも同じ事ができそうです。<br /><br />　　４５行で　OUT     (0E8H),A 　とやって変更したデータをポート＄E8に出力しています、これで文字画面への<br />　バンク切り替えが出来たはずです、４６行では処理が終わったので、RETで呼び出した次の行へ戻ります。<br /><br />　　４８行からは　T_OFF　切り替えたメモリをもとに戻す処理です、あらかじめ保存しておいたデータを<br />　＄E8ポートに出力することで、テキスト画面をメインメモリに切り替えてもとに戻しています。<br /><br />　　５２行からは表示する文字列のデータが並べて格納されています、DBはデータが１バイトであることを表す<br />　疑似命令です。<br /><br />　　５５行　E8_DAT:  はラベルで、＄E8ポートの元のデータの保存場所として使っています。<br /><br />　　以上で全ての行が終了しました、５７行の　END　はアセンブラにここまでと知らせる疑似命令です。<br /><br />　　お疲れ様でした、たった５５行のニーモニックでしたが、文章で解説すると長い！、というのが感想です。<br /><br />　　命令は細かいけれど、割と簡単でしょ？、特にZ80は理解しやすいと思いますので、ある程度つかえると<br />　１６ビットCPUの8086などへステップアップする時の知識の積み重ねにはなると思います。<br /><br />　　それではまた。<br /><br />　　<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521348419.html">
<link>https://winwin0424terra.seesaa.net/article/521348419.html</link>
<title>今更 Z80マシン語 ＃１４</title>
<description>　　こんばんは、前回からの続きになります、２６行の　JR    Z,#END　の所からでした。　ここがとてもいい所だったのですが、ここではデータが０Dhか？、どうか調べて０Dhだったら、＃ENDへ行け。　　の意味でした、＃END　は文字列表示の終わりを示します、０Dhは文字列のエンドマークなのでした、　ということで、ここではデータが０Dhでなかったので＃END には行かず、次の２８行へ進みます、LD      (HL),A 　 HLレジスタにカッコが付いています、アドレスを表..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-15T01:06:33+09:00</dc:date>
<content:encoded><![CDATA[
　　こんばんは、前回からの続きになります、２６行の　JR    Z,#END　の所からでした。<br /><br />　ここがとてもいい所だったのですが、ここではデータが０Dhか？、どうか調べて０Dhだったら、＃ENDへ行け。<br /><br />　　の意味でした、＃END　は文字列表示の終わりを示します、０Dhは文字列のエンドマークなのでした、<br /><br />　ということで、ここではデータが０Dhでなかったので＃END には行かず、次の２８行へ進みます、LD      (HL),A <br />　 HLレジスタにカッコが付いています、アドレスを表すHLレジスタにカッコが付いた場合には、HLで示される<br />　アドレスにAレジスタの値を書き込む命令になります、他のCPUとかだとメモリに値を書き込む命令は、LD　でなく<br />　STR（ストア）だったりするのですが、Z80は　LD      (HL),A　のような書き方となっているので注意が必要かも<br />　しれせん？。<br /><br />　　このおかげで、Z80のアセンブラコードは、他CPUよりも　LD　で始まるコードが多いと思われます、どちらが<br />　良いのかは判りませんが、１６ビットレジスタがカッコで囲まれているとアドレスへのストアであると読み替えましょう。<br /><br />　　ってことで、HLレジスタで表されるアドレスへ、Aレジスタの内容を文字表示用のメモリに書き込めました。<br /><br />　　でもこれで、まだ１文字だけです、３０行・３１行には　INC　HL・INC　DE　です、インクリメントの意味になります。<br /><br />　　インクリメント命令は単純にレジスタの値を+１する命令です、表示位置とデータのポインタを１増やしているのです。<br /><br />　　次の３３行では、JR    NEXT　の単純なジャンプ命令です、このようにして、文字列のエンドマークが現れるまで<br />　ここをぐるぐる回ります、これでめでたく文字列データとして格納していた文字データが画面に表示されたことに<br />　なりました。<br /><br />　　これでひとまず、文字画面に文字列が表示されました、お疲れ様でした。<br /><br />　　続きはまた次回にします。<br />　<br />　　<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521341785.html">
<link>https://winwin0424terra.seesaa.net/article/521341785.html</link>
<title>今更 Z80マシン語 ＃１３</title>
<description>　　こんばんは、今日は前回の続きで MAIN: 以降をやっていこうとおもいます。　　まず HLレジスタに、＄D000ｈ をロードしています（ロードはレジスタへの値のセットです）LD　HL,0D000ｈ　とアドレスの頭に０が付いているのは、アセンブラプログラムの決まりで、先頭が数値でないと、ラベルと　解釈されてしまって、アセンブル時にエラーになってしまうからです。　　次行からの行は、全てコメントです、画面の真ん中あたりに表示するには、HLの値を変更しないといけないからです。　　..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-14T00:17:06+09:00</dc:date>
<content:encoded><![CDATA[
　　こんばんは、今日は前回の続きで MAIN: 以降をやっていこうとおもいます。<br /><br />　　まず HLレジスタに、＄D000ｈ をロードしています（ロードはレジスタへの値のセットです）LD　HL,0D000ｈ<br />　とアドレスの頭に０が付いているのは、アセンブラプログラムの決まりで、先頭が数値でないと、ラベルと<br />　解釈されてしまって、アセンブル時にエラーになってしまうからです。<br /><br />　　次行からの行は、全てコメントです、画面の真ん中あたりに表示するには、HLの値を変更しないといけないからです。<br /><br />　　この例では、画面の座標（BASICでなら、CURSORで表されるX,Y 座標の値）をX座標を20・Y座標を10として<br />　表示位置を計算させています、即値のみでなく、式で書いてもアセンブラは計算結果を入力してくれます。<br /><br />　　20行で DEレジスタに計算式で表した数値を入力しています。<br /><br />　　この数値（DEレジスタの値）をHLレジスタの値（画面の左上ホーム位置）に加算 ADDしてやれば表示位置が<br />　求まります、ADD　HL,DE は BASIC での HL=HL+DE と同じ意味になります、８ビットの加算では必ず結果が<br />　Aレジスタに求まるように、16ビットの加算の場合HLレジスタに求まるCPUの設計になっています。<br /><br />　　これで画面上の表示開始位置が求まりましたので、これ以降で文字画面のアドレスに文字データを書き込む<br />　作業に進みます。<br /><br />　　次行の23行では書き込むデータを MOJI_DAT （ラベルです）で示されたアドレスより読み込むためアドレスを<br />　DEレジスタに代入しています、データのアドレスが16進数で解っていなくてもDEレジスタに指定できるので<br />　ラベルってとても便利です。<br /><br />　　次の24行  LD      A,(DE)  ここではDEレジスタで表されたアドレスに有るデータ（文字データなので1バイト）<br />　をAレジスタに代入します、文字のデータはアスキーコードです。<br /><br />　　次の25行  CP      0DH  この CP はコンペア命令と言って、Aレジスタの内容が  0DHと等しいか比較しています。<br /><br />　　比較するってどう言う意味でしょう？、このコンペア命令はAレジスタからデータ部分の 0DH を引き算シている<br />　イメージです、Aレジスタと0DHが等しい場合のみ、計算結果は ０になります、ここでフラグってものが登場<br />　します、Fレジスタは８ビットの計算結果により、ゼロフラグ・キャリフラグなどいろいろなフラグがビット毎に<br />　０と１とに変化して居るレジスタで、プログラマは結果を参照するだけ？のレジスタです。<br /><br />　　ですので次の２６行の JR      Z,#END  で文字列が終了したのか？まだ続いているのか？によって分岐しています。<br /><br />　　JP・JR　どちらもジャンプ命令で同じ分岐命令ですが、JP は絶対ジャンプ・JR は相対ジャンプの違いがあって、<br />　JPは３バイト命令・JRは２バイト命令で近所への分岐にはJRがよく使われます、私はハンドアセンブルではJR命令は<br />　使いませんでした、だってアドレスの計算が面倒だったから！？、アセンブラでなら自動で確実に計算してくれて<br />　とても便利です。<br /><br />　　たったこれくらいのプログラムでも、文章として説明すると長くなるので、途中ですがここまでにします。<br /><br />　　お疲れ様でした、おやすみなさい。<br />　　<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521335000.html">
<link>https://winwin0424terra.seesaa.net/article/521335000.html</link>
<title>今更 Z80マシン語 ＃１２</title>
<description>　　こんばんは、前記事を観て、アセンブラプログラムを理解してやるぞ！、と思われた方は、ソースファイル　をダウンロードシてくれたんではないでしょうか？。　　　　別にダウンロードはしなくても、リンクをクリックすれば、観られたはずです？、ただ文字化けしてるので　右上の UTF-８となっている所を、シフト-JISに切り替えれば、正しく表示できます。　　順に説明したいと思います、一番左の数字1～・・・は単純に何行目かを表しているだけの、めやすの数字です。　　行頭から４行目までは、先頭が..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-12T21:31:53+09:00</dc:date>
<content:encoded><![CDATA[
　　こんばんは、前記事を観て、アセンブラプログラムを理解してやるぞ！、と思われた方は、ソースファイル<br />　をダウンロードシてくれたんではないでしょうか？。<br />　　<br />　　別にダウンロードはしなくても、リンクをクリックすれば、観られたはずです？、ただ文字化けしてるので<br />　右上の UTF-８となっている所を、シフト-JISに切り替えれば、正しく表示できます。<br /><br />　　順に説明したいと思います、一番左の数字1～・・・は単純に何行目かを表しているだけの、めやすの数字です。<br /><br />　　行頭から４行目までは、先頭が；（セミコロン）になっています、セミコロン以降は単なるメモです。<br /><br />　　５行目の ORG　4000H はアセンブラプログラムに、マシン語をメモリアドレス＄4000からとして、<br />　出力 してね！の意味になります、アセンブラプログラムへの指示であって、CPU Z80への指示（命令ではない）です。<br /><br />　　７行目の START: はラベルという、目印です マシン語プログラムは、アドレスを指定して走らせますので、このラベル<br />　は無くても問題はありませんが、ここが先頭である事を表すために START: のラベルを付けておきました。<br /><br />　　続くCALL　T_ON はサブルーチンコールです、ソースの後半に有る、ラベル T_ONへ行ってメインメモリの<br />　０D０００H~を文字表示用のメモリに切り替えてきてね！との指示をしています。<br /><br />　　続いて８行目から１３行目は文字表示様に切り替えたメモリに、Aレジスタに入れた20H（空白文字）を07D0H<br />　分書き込んでと指示しています、07D０H=2000文字分のことです、画面クリアを実行するってことです。<br /><br />　　07D0H（16進数）は2000（10進数）と等価なので、この行は LD　BC,2000 と書いたほうが解りやすいかも？。<br />　　<br />　　有る領域を特定の文字で埋めたい場合などに、多用される書き方なので、覚えておくと便利です。<br /><br />　　LDIR＝（ロード・インクリメント・リピート）命令で、HL レジスタで示されたアドレスのデータを DE レジスタで<br />　示されたアドレスにコピーしろって意味になります、本来LDIR 命令は（ブロック転送命令なので）メモリ上の<br />　ある範囲のメモリ内容をを別のアドレスに転送（位置をずらしてコピー）する命令なのですが、ここでは HLレジスタと<br />　DEレジスタのアドレスが1しか違いませんので、バケツリレー的に？、Aレジスタの内容で2000文字分埋めろの意味<br />　になっています。（画面を空白文字で埋めるので、画面クリアになる。）<br />　　<br />　　ここまでで、画面に文字を書く準備が整いました、15行目 MAIN: ここからが画面に文字を書くってことで、ラベルを<br />　MAIN: としましたが、このプログラムではここは、1度しか通過しないので、ラベルは無くても良いと思われます。<br /><br />　　疲れたので？、今回はここまでにします？、興味を持って観ていただいた方にもお疲れ様でした。<br /><br />　　それでは次回までさようなら。　<br /><br /><br /><br /><br /><br /><br /><br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521319133.html">
<link>https://winwin0424terra.seesaa.net/article/521319133.html</link>
<title>今更 Z80マシン語 ＃１１</title>
<description>　　前回のアセンブラソースコードが見づらかったので、ファイル自体をアップロードすることにしました。　　https://www.dropbox.com/scl/fi/hl19hm25t9ff5ef9uxiag/.txt?rlkey=bqs731nvhaldba4bmtkgghlqa&amp;st=wsgef7g6&amp;dl=0　　上記リンクからダウンロード出来ます、説明も多く付けたので、どの様に動くのか解りやすいかも知れません。　開いた画面にソースコードは表示されますが、文字化けしています..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-10T11:59:56+09:00</dc:date>
<content:encoded><![CDATA[
　　前回のアセンブラソースコードが見づらかったので、ファイル自体をアップロードすることにしました。<br /><br />　　<a href="https://www.dropbox.com/scl/fi/hl19hm25t9ff5ef9uxiag/.txt?rlkey=bqs731nvhaldba4bmtkgghlqa&st=wsgef7g6&dl=0" target="_blank">https://www.dropbox.com/scl/fi/hl19hm25t9ff5ef9uxiag/.txt?rlkey=bqs731nvhaldba4bmtkgghlqa&st=wsgef7g6&dl=0</a><br /><br />　　上記リンクからダウンロード出来ます、説明も多く付けたので、どの様に動くのか解りやすいかも知れません。<br />　開いた画面にソースコードは表示されますが、文字化けしています、シフトJISにすればOKです。<br /><br />　　ただのテキストファイルですので、メモ帳他で開けると思います。<br /><br />　　たったこれだけのソースコードでも、ハンドアセンブルすると結構時間食いそうですね！。<br /><br />　　その手間を省けるのが、アセンブラプログラムです、「このソースプログラムをマシン語に変換してちょーだい！」<br />　　と頼むだけで、EmyZ-2000で使える形式でマシンコードを吐き出してくれます。<br /><br />　　私の使っているアセンブラプログラムはZ80 Absolute Assembler 'Z80AS'です。<br /><br />　　こちらからダウンロードできます。<br />　　<a href="http://www.maroon.dti.ne.jp/youkan/mz700/index.html" target="_blank">http://www.maroon.dti.ne.jp/youkan/mz700/index.html</a><br /><br />　　MZ系列の便利なソフトも多く作成されていて、感動します。<br /><br />　　過去記事でも紹介していますので、そちらを参考にして、遊んでみてください。<br /><br />　　<a href="https://winwin0424terra.seesaa.net/article/483454257.html" target="_blank">https://winwin0424terra.seesaa.net/article/483454257.html</a><br /><br />　　それでは次回まで～！。<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521310021.html">
<link>https://winwin0424terra.seesaa.net/article/521310021.html</link>
<title>C-DOSのイメージファイルについて。</title>
<description>　　本日の訪問者様が興味を示されている？、記事で 猛暑のＣ－ＤＯＳ　シリーズが結構多いのが解りました。　以前よりC-DOS・ＷICSを記事にしてきましたが、こちらで提供していたディスクイメージは、多少問題の有るものでした。　何時だったか、訪問者様より提供されたイメージが有り、提供者様からは配布しても良いと言われていました。　ですが、不特定多数にばら撒かれても、情報がここに集まるわけでもないと思い、こちらからの配布はしていませんでした。　　本日の訪問者様で多くの方が、猛暑のＣ－..</description>
<dc:subject>MZ-2000</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-08T23:14:01+09:00</dc:date>
<content:encoded><![CDATA[
　　本日の訪問者様が興味を示されている？、記事で 猛暑のＣ－ＤＯＳ　シリーズが結構多いのが解りました。<br /><br />　以前よりC-DOS・ＷICSを記事にしてきましたが、こちらで提供していたディスクイメージは、多少問題の有るものでした。<br /><br />　何時だったか、訪問者様より提供されたイメージが有り、提供者様からは配布しても良いと言われていました。<br /><br />　ですが、不特定多数にばら撒かれても、情報がここに集まるわけでもないと思い、こちらからの配布はしていませんでした。<br /><br />　　本日の訪問者様で多くの方が、猛暑のＣ－ＤＯＳ　シリーズを見に来ているようでしたので、<br />　イメージをアップしようと思います。<br /><br />　　ダウンロードは以下よりお願いします。<br />　<a href="https://www.dropbox.com/scl/fi/qczkk6bl2csh7u3he13bl/C-DOS-2023-rot-N.D88?rlkey=vrawft1q20j5tvoz9wlvnu9md&st=zc4rosss&dl=0" target="_blank">https://www.dropbox.com/scl/fi/qczkk6bl2csh7u3he13bl/C-DOS-2023-rot-N.D88?rlkey=vrawft1q20j5tvoz9wlvnu9md&st=zc4rosss&dl=0</a><br /><br />　　操作法その他は、過去記事を観てもらうか・コメント欄で対応しますが、１００％答えられるかどうかは？。<br />　　<br />　　私の方で試した限りは、最も完成度が高いと思います。<br /><br />　　出来るなら研究成果をコメント欄に書き込んで、読者様で情報共有してもらえれば！と思います。<br />　　<br />　　WICSはBASIC風コンパイラです、BASEはキャリーラボ製のアセンブラです、どちらも高機能・高性能ですが、<br />　使いこなすには多少の技術と能力は必要かもしれません、レトロパソコンでのプログラミングに挑戦してみてくださいませ！。<br />　<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521301190.html">
<link>https://winwin0424terra.seesaa.net/article/521301190.html</link>
<title>今更 Z80マシン語 ＃１０</title>
<description>　　　今日は金曜日。　　アセンブラでのプログラムの書き方、イメージできたでしょうか？。　　行いたい作業をニーモニックへ変換しながら、１行ずつ書いていきましょう、最初は複雑なことは出来ないので、　文字画面に文字でも表示してみたりして、遊んでみましょう。　　初めてのプログラムは数行のニーモニックをハンドアセンブル（命令表とにらめっこ？）でいいと思います。　　MZ-2000/2200では、メインメモリの１部を、文字画面のメモリに切り替え（バンク切り替え）が必用です。　　文字画面のア..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-07T19:56:22+09:00</dc:date>
<content:encoded><![CDATA[
　　　今日は金曜日。<br /><br />　　アセンブラでのプログラムの書き方、イメージできたでしょうか？。<br /><br />　　行いたい作業をニーモニックへ変換しながら、１行ずつ書いていきましょう、最初は複雑なことは出来ないので、<br />　文字画面に文字でも表示してみたりして、遊んでみましょう。<br /><br />　　初めてのプログラムは数行のニーモニックをハンドアセンブル（命令表とにらめっこ？）でいいと思います。<br /><br />　　MZ-2000/2200では、メインメモリの１部を、文字画面のメモリに切り替え（バンク切り替え）が必用です。<br /><br />　　文字画面のアドレスは、＄D000～2000文字分のアドレスです。<br /><br />　　2000をWindowsの電卓で、16進数に変換してみました、7D0hと出ました、80文字＊25行の2000文字分です。<br /><br />　　バンク切り替え後、＄D000～＄D7D0 の範囲のメモリに、アスキーコード表の文字コードを書き込めばOKです。<br /><span style="color:#0000ff;"><br /><br />;----------------------------<br />;  画面に文字列表示　<br />;----------------------------<br />;<br />                ORG     4000H<br /><br />START:      CALL    T_ON 　      ; 文字表示画面にバンク切り替えのサブルーチン<br />S_CLEAR:  LD      A,20H      　  ; 空白文字のアスキーコード<br />                LD      (0D000H),A<br />                LD      HL,0D000H   ; 以下4行で（LDIR）までで                <br />                LD      DE,0D001H   ; 文字画面がクリアできます<br />                LD      BC,07D0H<br />                LDIR                ; 文字画面のクリアを追加してみた<br />                ;<br />MAIN:      LD      HL,0D000H<br />                ;　ＭＺ-2000の文字画面は＄Ｄ000が画面左上（0，0）<br />                ;　X方向は80文字　Y方向は24ラインの　2000マトリクス<br />                ;　(20,10)の位置より文字表示を開始したければ<br />                ;　表示開始位置のアドレスは（10＊80+20）をＨＬに加算すれば良い<br />                LD      DE,10*80+20<br />                ADD     HL,DE<br />                ;　これでHLに表示開始位置がセットされたはず？<br />                LD      DE,MOJI_DAT<br />NEXT:       LD      A,(DE)<br />                CP      0DH<br />                JR      Z,#END<br />                ;　MOJI_DATのデータが '0DH' なら表示終わり<br />                LD      (HL),A<br />                ;　これで画面の指定位置にに1文字書き込めたはず？<br />                INC     HL<br />                INC     DE<br />                ;　表示位置と、文字データを進める<br />                JR      NEXT<br />                ;　次の文字を表示するためNEXTへ戻る（'0DH' が現れるまでループする）<br />#END:      CALL    T_OFF<br />                RET<br />                ;　文字表示を終了しモニタへリターンする<br />                ;-----------------------------------<br />T_ON:      ;  CALLされるサブルーチン<br />                IN      A,(0E8H)　　; 現在のポート0E8ｈのデータ読み込み<br />                LD      (E8_DAT),A　; 現在のポート0E8ｈのデータ保存<br />                SET     7,A　　　　; 7・6・5のビットを1にする<br />                SET     6,A<br />                SET     5,A         <br />                OUT     (0E8H),A    ; 文字画面にバンク切り替え<br />                RET<br />T_OFF:<br />                LD      A,(E8_DAT)<br />                OUT     (0E8H),A    ; 切り替えたバンクをもとに戻す<br />                RET<br />                ;　以下データ領域<br />MOJI_DAT: DB      48H,65H,6CH,6CH,6FH,20H,45H,6DH,75H,5AH,2DH,32H,30H,30H<br />                  DB      30H,2FH,32H,32H,30H,30H,20H,21H,21H,0DH<br />                  ;　Hello EmuZ-2000/2200の文字データ(ASCII CODE)<br />E8_DAT:     DB      00H　　; バンク切り替え前のデータの保存場所<br />                  ;　変更前のデータを保存している<br />                 END     ;アセンブラに、ここまでで終わり、と伝える。</span>   <br /><br />　以上が文字画面に、文字列表示のプログラムになります。<br />    Tab が無視されて、見にくいですね・・。<br /><br />　BASICだと<br />　<br />　10　PRINT CHR($6)<br />     20   CURSOR 20,10<br />     30　PRINT ”Hello MZ-2000/2200”<br />　40　END<br /><br />　と同じ事を実行するプログラムとなります。<br /><br />　とんでもなく面倒ですね、でも実行スピードは、BASICプログラムの何十倍か高速に実行されます。<br /><br />　このスピードこそマシン語の利点ですので、ゲーム作成には必須なのでしょう。<br /><br />　今日はここまで、新しく出てきた命令・疑似命令もあって、いつものように手抜きです・・。（笑）<br /><br />　ではまた次回まで。<br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521292765.html">
<link>https://winwin0424terra.seesaa.net/article/521292765.html</link>
<title>今更 Z80マシン語 ＃９</title>
<description>　　今日も暑いですね？、少し慣れてきたけどね・・。　昨日は手抜き記事でしたので、少しだけ説明を書いてみます。　最初に出てきたニーモニックの EQU・ORG ですが、これはCPUに備わった命令ではありません。　　アセンブラ（ニーモニックの翻訳プログラム）に備わった命令で、CPUが持っている命令でないので、疑似命令、　と言われたりします、その他にもプログラムを作りやすくするために、ラベルなんてのもあったりします。　　まず EQU ですがイコールと読み替えれば良いと思います、ここで..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-06T15:05:38+09:00</dc:date>
<content:encoded><![CDATA[
　　今日も暑いですね？、少し慣れてきたけどね・・。<br /><br />　昨日は手抜き記事でしたので、少しだけ説明を書いてみます。<br /><br />　最初に出てきたニーモニックの EQU・ORG ですが、これはCPUに備わった命令ではありません。<br /><br />　　アセンブラ（ニーモニックの翻訳プログラム）に備わった命令で、CPUが持っている命令でないので、疑似命令、<br />　と言われたりします、その他にもプログラムを作りやすくするために、ラベルなんてのもあったりします。<br /><br />　　まず EQU ですがイコールと読み替えれば良いと思います、ここで P とか出てきますが、0F✗✗✗ｈはメモリの<br />　アドレスのことですね！、アドレスでは＄F100とか、先頭がアルファベットのばあいがあります、先に書いた<br />　ラベルと区別するため、先頭がアルファベットのアドレスの場合、頭に０を付けて記述する決まりになっています。<br /><br />　　４桁のアドレスよりも、覚えやすいので、プログラムの先頭で、３個のアドレスをアルファベット文字に定義<br />　しているのでしょう。<br /><br />　　２つ目の ORG （オリジン）はこのアドレスから、マシン語に翻訳を始めてね！、の意味になります。<br /><br />　　３っつ目のラベルですが、アセンブラプログラムには行番号とかありませんので、JP・JR・CALLなどのジャンプ先は<br />　アドレスで指定する必用が有ります、でもこれでは不便なので、ラベルが使えるようになっています。<br /><br />　　BASICでもラベルの使える物があったとおもいます、ニーモニックでプログラムを書く時にアドレスを意識せずに<br />　書くことが出来れば便利なのです。<br /><br />　　ラベルについての決まりは、先頭が数字でないこと！？、行の先頭に書くこと、ラベルの終わりには”：” コロン<br />　を付ける、などの決まりがあったと思います。<br /><br />　　これらに注意して、昨日の手抜き記事を復習すれば、いいのかな？、と思います。<br /><br />　　本日はここまでにしたいと思います、お付き合いいただき感謝します。　<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521287652.html">
<link>https://winwin0424terra.seesaa.net/article/521287652.html</link>
<title>今更 Z80マシン語 ＃８</title>
<description>　　こんにちは、今更Z80も今回で８回目になりました、基礎的な事項を観てもらったので、書籍の記事も読める　程度にはなったかな？。　　ってことで、当時の記事を読んでもらおうと思います。　　　　↓　↓　↓　　https://archive.org/details/Io19834/page/318/mode/2up　　まだ知らないことも出てきたりしますが、なんとなく読み進められると思います。　　本日は手抜きです、記事を見て（読んで）雰囲気を掴んでみてください。　　そてではまた～。</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-05T19:30:09+09:00</dc:date>
<content:encoded><![CDATA[
　　こんにちは、今更Z80も今回で８回目になりました、基礎的な事項を観てもらったので、書籍の記事も読める<br />　程度にはなったかな？。<br /><br />　　ってことで、当時の記事を読んでもらおうと思います。<br />　　　　↓　↓　↓<br />　　<a href="https://archive.org/details/Io19834/page/318/mode/2up" target="_blank">https://archive.org/details/Io19834/page/318/mode/2up</a><br /><br />　　まだ知らないことも出てきたりしますが、なんとなく読み進められると思います。<br /><br />　　本日は手抜きです、記事を見て（読んで）雰囲気を掴んでみてください。<br /><br />　　そてではまた～。<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521281769.html">
<link>https://winwin0424terra.seesaa.net/article/521281769.html</link>
<title>今更 Z80マシン語 ＃7</title>
<description>　　マシン語が難しい原因に、2進数だとか・ニーモニックとか、馴染みのない事柄が多いのも有りますが。　　更に手を焼くのが、機種が違うとプログラムの手順（書き方？）が違ってくる点もあったりします。　　ここはMZ-2000でのプログラムが主ですので、その点を書いてみたいと思います。　　EmyZ-2000（エミュレータ）でなら、現在もプログラムを試してみれますので、手軽に楽しんでみてください。　　まず、まだ出てこなかった CALL命令ですが、BASIC などのサブルーチンコールと同じ..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-04T21:39:20+09:00</dc:date>
<content:encoded><![CDATA[
　　マシン語が難しい原因に、2進数だとか・ニーモニックとか、馴染みのない事柄が多いのも有りますが。<br /><br />　　更に手を焼くのが、機種が違うとプログラムの手順（書き方？）が違ってくる点もあったりします。<br /><br />　　ここはMZ-2000でのプログラムが主ですので、その点を書いてみたいと思います。<br /><br />　　EmyZ-2000（エミュレータ）でなら、現在もプログラムを試してみれますので、手軽に楽しんでみてください。<br /><br />　　まず、まだ出てこなかった CALL命令ですが、BASIC などのサブルーチンコールと同じで、飛び先で仕事した後に、<br />　RET命令が有ると、飛び先のCALL命令の次の命令まで、戻ってくることが出来ます。<br /><br />　　CALL命令のマシンコードは CD  です、CD 00 12 とあれば、＄1200のサブルーチンへ行けとなります。<br /><br />　　＄1200からのプログラムはサブルーチンですので、最後にはRET（リターン命令）C9 を書いておく必用が有ります。<br /><br />　　こうすることによって、メインルーチンからサブルーチンへ、サブルーチンからメインルーチンへの流れを<br />　作ることが出来ます。<br /><br />　　CALL は CD　RETは C9ですので、2個セットで記憶しておけば覚えやすいと思います。<br /><br />　　もう一つ新しい命令を解説しておくと、PUSH・POPの命令ってのがあって、スタック（積み重ねる）イメージで<br /><br />　　あらかじめ指定した領域（アドレス）へ順番に積み重なっていきます、先入れ・後出しの構造になっています。<br /><br />　　このアドレスはスタックポインタとして、CPUに備わった仕組みです。<br /><br />　　８ビットのCPUだとレジスタの種類が少ないので、変数としてすぐに足りなくなってしまいます。<br /><br />　　そんな時にPUSH A として、スタックに積み上げておきます、こうすれば現在のAレジスタの内容は保存されますので、<br />　Aレジスタは、他の演算に使えます、他の演算が終われば、POP Aとしてやれば、Aレジスタの内容が以前の内容に戻せます。<br /><br />　　こんな仕組みなんですが、イメージできますか？、これをイメージするには先に出てきた、CALL・RETを例にして考える<br />　と良いです、Z80CPUはCALL命令が見つかると、戻りアドレスをスタックに積んで、サブルーチンへジャンプ、<br />　していたんです、そしてRET命令を見つけると、スタックから戻りアドレスをPOPして、CALLの次のアドレスへジャンプ<br />　していたのでした、とても良く出来た仕組みだと思います。<br /><br />　　本日はCALL命令・RET命令・PUSH命令・POP命令・スタック機構などの、新たな命令他を解説してみました。<br /><br />　　今回までの命令　LD（ロード）・STR（ストア）・ADD（加算命令）などの７個の命令とスタック機構の解説をしました。<br /><br />　　たったこれだけでも、組み合わせればプログラムが書けます、ってことで本日はここまでです。<br /><br />　　それでは次回まで、さようなら！。<br /><br /><span style="color:#ff0000;">ここ間違ってるよ！、意味がわからない！など、質問があればコメント欄へお気軽に～。</span>　<br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521255555.html">
<link>https://winwin0424terra.seesaa.net/article/521255555.html</link>
<title>今更 Z80マシン語 ＃6</title>
<description>　　こんにちは～、8／1　今日は港まつり・夜は花火があがります、会場への道路脇に住んでいるので、夕方からの　大渋滞は見ものです！？。　　現在まだお昼なので、そうでもないですが、15時・16時になると・・・。　　知り合いは会場近くに住んでいますが、歩いて10～15分のところ、車だと帰りは2時間くらい掛かるって言ってたな～。　　私は部屋でインターネット中継観ます、でも実物をリアルで観るほうが、音とともに迫力は大違いなんだけどね！。　　今は日本全国各地で、花火大会は開かれていますが..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-08-01T12:59:20+09:00</dc:date>
<content:encoded><![CDATA[
　　こんにちは～、8／1　今日は港まつり・夜は花火があがります、会場への道路脇に住んでいるので、夕方からの<br />　大渋滞は見ものです！？。<br /><br />　　現在まだお昼なので、そうでもないですが、15時・16時になると・・・。<br /><br />　　知り合いは会場近くに住んでいますが、歩いて10～15分のところ、車だと帰りは2時間くらい掛かるって言ってたな～。<br /><br />　　私は部屋でインターネット中継観ます、でも実物をリアルで観るほうが、音とともに迫力は大違いなんだけどね！。<br /><br />　　今は日本全国各地で、花火大会は開かれていますが、観てみたければ、『三津浜 港まつり 花火 2026』などで<br />　検索すれば見つかるでしょう、日が沈んでからなので、時間は19：30～21：00位じゃないかな～？？。<br /><br />　　完全にタイトル詐欺で始まった、”今更 Z80マシン語 ＃6”　今日のお題は『定型句的』な事について幾つか書いてみます。<br /><br />　　例１　Aレジスタは８ビット計算の主役です、ADD  A,B　（A=A+B）のニーモニックは有りますが、ADD  B,C　は無い。<br /><br />　　完全に覚えている訳ではないので、確認しましたが、合っていました・・、８ビットの演算はAレジスタに対してのみ<br />　のようです、最近のCPUだとレジスタは多いので、この制限はないのだと思います？。<br /><br />　　例２　上記の制限から、演算前にAレジスタをクリアする（０にする）ことも多いと思われますが、この場合XOR  A,A<br />　など書くことが多いです、LD  A,0 でもAレジスタを０に出来ますが、これだとマシン語では ３E 00 の２バイト必用です、<br />　ですが、XOR A,Aだと１バイトで済む上、実行速度も早いはずです。<br /><br />　　例３　特定回数のループを実現する場合、ループ数のカウンタには、Bレジスタがよく使われます、これはBレジスタを<br />　カウンタとした専用の命令、DJNZ （デクリメント・ジャンプ・ノンゼロ）命令が備わっているからです。<br />　　他のレジスタをカウンタ（ループの）に使っても出来ますが、特別な事情のない場合、Bレジスタを使います。<br /><br />　　他にも色々有ると思いますが、思いつかないので？、本日はこの程度にしておくことにします。<br /><br />　　それではまた次回まで・・。<br /><br />　<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521242832.html">
<link>https://winwin0424terra.seesaa.net/article/521242832.html</link>
<title>今更 Z80マシン語 ＃5</title>
<description>　　こんにちは、毎日暑いですね！。　こんな暑い季節に、お勉強？なんて出来な～い、ってことです？、　Z80インストラクションコード（ニーモニックコード）見て、Print文もFor文もIf文無いじゃないか！、こんなのでどうやって　プログラムしろって言うんだ！？、って思いましたよね？。　私は入門当初そう思いました、レジスタに数値をセットしたり、コピーしたりで一体どうしろっていうんだ～！。　って思ったものです、BASICで覚えた命令みたいなのは無いのか？、解説されている本を読んでみて..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-07-30T15:20:04+09:00</dc:date>
<content:encoded><![CDATA[
　　こんにちは、毎日暑いですね！。<br /><br />　こんな暑い季節に、お勉強？なんて出来な～い、ってことです？、<br /><br />　Z80インストラクションコード（ニーモニックコード）見て、Print文もFor文もIf文無いじゃないか！、こんなのでどうやって<br />　プログラムしろって言うんだ！？、って思いましたよね？。<br /><br />　私は入門当初そう思いました、レジスタに数値をセットしたり、コピーしたりで一体どうしろっていうんだ～！。<br /><br />　って思ったものです、BASICで覚えた命令みたいなのは無いのか？、解説されている本を読んでみても、ロードだのストアだの<br />　フラグだののカタカナ語ばかり・・。<br /><br />　ニーモニックコード眺めて沢山の種類の命令が用意されているのは、解りましたが全く意味が解りませんでした。<br /><br />　こんなまま、何ヶ月かまったく理解は進みませんでした・・。<br /><br />　未だに全て理解できてる訳でもないんですが、ある程度の行数のコードを書けば一定の仕事（操作）を行うことは出来るのが<br />　解ってきました・・。<br /><br />　BASICのダイレクトモードで、Print　1+2 みたいな簡単な（単純な）ことならなんとか理解できてきました。<br /><br />　上の例なら<br /><br />　ニーモニック　　　　　　　　　　　  BASIC風<br />　LD A,1　　　　　　　　　　　　　　　A=1<br />    LD B,2　　　　　　　　　　　　　　　B=2　　　<br />　LD HL,8000ｈ　　　　　　　　　　　　HL=$8000<br />　ADD A,B   　　　　　　　　　　　　　  A=A+B<br />　LD (HL),A　　　　　　　　　　　　　　POKE $8000，A<br /><br />　みたいに書いてやればいいのが、なんとなく解ってきました、上の例だと答えの3が8000h番地のメモリに保存される、<br />　のが解りましたが、たったこれだけのことに手間がかかりすぎ・・！<br /><br />　更に言うとCPUは上記のニーモニックコードを実行できませんので、マシン語に変換しなくてはダメです。<br /><br /><a href="http://njprog.com/z80_007.htm" target="_blank">http://njprog.com/z80_007.htm</a><br />この表から LD A,1 は　3E 01　LD B,2 は　06 02　LD HL,8000ｈは　21 00 80　ADD A,Bは　80　LD(HL),Aは　77となるようです。<br /><br />　モニタなどで、＄7000 から　3E 01 06 02 21 00 80 80 77 C9　と打ち込んで J 7000でプログラムを走らせると、＄8000に<br />　計算結果の03ｈがストア（メモリに書き込むこと）されているはずです。<br /><br />　LD HL,8000ｈ がマシン語で21 80 00 でなく 21 00 80 となるのは、インテル系列特有のスモールエンディアンの特徴で<br />　アドレスの16バイトの前後を入れ替えて、書くルールになっています。<br /><br />　3E 01 06 02 21 00 80 80 77 C9　の最後のC9はモニタに戻れ RETURN の意味のマシン語で、RET のマシン語です。<br /><br />　<a href="https://winwin0424terra.up.seesaa.net/image/E383A1E383A2E383AA.bmp" target="_blank"><img border="0" alt="メモリ.bmp" src="https://winwin0424terra.up.seesaa.net/image/E383A1E383A2E383AA-thumbnail2.bmp" width="150" height="30"></a><br /><br />　実行してみましたが、うまくいっているようで、一安心でした・・。（笑）<br /><br />　走らせてモニタに帰ってきた後、＄8000を確認すると、03ｈになっているのを確認できました。<br />　<br />　本日はここまでです・・。<br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="https://winwin0424terra.seesaa.net/article/521230501.html">
<link>https://winwin0424terra.seesaa.net/article/521230501.html</link>
<title>今更 Z80マシン語 ＃4</title>
<description>　　はい、4回目で～す。　＃３でニーモニックとアセンブラについてを観てもらいました、ここまで一通り観てもらった方なら、ニーモニック（命令コード）　を見てもらっうのもいいかな？、とおもいます・・。　ニーモニックコードなど　　↓　↓　↓　http://njprog.com/z80_room.htm　この中の機械語・ニーモニック対応表（1）～（3）がZ80機械語（命令）の全てです。　PrintfもForもありません00～FFまで1バイトの命令が列挙されています。　これだけで256種..</description>
<dc:subject>プログラミング</dc:subject>
<dc:creator>Terra</dc:creator>
<dc:date>2026-07-28T16:47:28+09:00</dc:date>
<content:encoded><![CDATA[
　　はい、4回目で～す。<br /><br />　＃３でニーモニックとアセンブラについてを観てもらいました、ここまで一通り観てもらった方なら、ニーモニック（命令コード）<br />　を見てもらっうのもいいかな？、とおもいます・・。<br /><br />　ニーモニックコードなど<br />　　↓　↓　↓<br />　<a href="http://njprog.com/z80_room.htm" target="_blank">http://njprog.com/z80_room.htm</a><br /><br />　この中の機械語・ニーモニック対応表（1）～（3）がZ80機械語（命令）の全てです。<br /><br />　PrintfもForもありません00～FFまで1バイトの命令が列挙されています。<br /><br />　これだけで256種類の命令（インストラクションコード）があるってことです。<br /><br />　でもこれだけでは、足りないので命令を２バイトに拡張して５１２種類分に増やしました。<br /><br />　機械語・ニーモニック対応表（1）は隙間無く並んでいましたが、機械語・ニーモニック対応表（2）には抜けている部分があります。<br /><br />　これ全部覚えないといけないの？、当時の技術職の人は暗記してたのでしょうね？、ま～暗記しなくてもこの表を持ってればOK<br />　だったかも知れません。<br /><br />　これじゃ機械語でプログラム書ける人なんて生まれないわけで？、実際にニーモニックでプログラム書く場合には<br /><br />　ニーモニック⇔機械語対照表の方を参照したと思います、これらを組み合わせて目的の処理を実現します。<br /><br />　あ・・地震だ！、九州の人大丈夫だと良いな。<br /><br />　本日はここまでにします、ニーモニック⇔機械語対照表を眺めて楽しんでください！？。<br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
</rdf:RDF>

