2022年3月14日月曜日

[スポット][埼玉] ゲームセンター・スターダスト



















[スポット][埼玉] ゲームセンター・スターダスト
2007/1/1  3:59
「12年間通いました」  
その他ゲーム関連
去る12/30、スターダストが閉店しました。
でもね、本当は12/31のはずだったんですよ。それが、12/30、買い物ついでにふらっとスターダストに寄ると・・・今日でおしまいだよと、店員さんに突然言われました。
 え?
 まじ??
 今日???
時刻は既に16時過ぎ。奇しくも、今日はHEYやミカドでシューティングのイベントが行われており、今から知人に連絡がとれるか、とれたとしても、こっちに来れるかわかりません。
正直、その時点で
     今日、このゲーセンを見送るのは私だけかな・・・
と覚悟したんですよ。でも、それから僅か数時間の間に、想像以上に多くの人が来てくれました。本当にありがとうございました。いくら感謝してもし足りないくらいです。(そのくらい救われました)
・・・残り数時間。
懇意にしていた店員さんと語ったり、この後に及んでレバーのメンテを頼んだり(笑)、久しぶりにビートマニアをプレイし、最後はKOUYOUでしめたり、各ゲームをプレイした記憶を遡りながら、筐体を眺めたりしました。そして、最後にプレイするのはやっぱりこれです。
といっても、何度がプレイしたものの雑念が入りまくり、結局は緋蜂まですら行けませんでした。2-5の全繋ぎが出来たくらいしかいいとこなかった・・・
んで、時刻はとうとう24:00。すぐには閉店しそうに無かったので、なんとなく
 ゲームプレイ中に閉店を迎えたいな
と思い立ち、再度50円を投入。そのまま、1-3道中後半809Hitのところで、電源が切られました。これらの筐体が、この場所で稼動することはもうありません・・・これが1人だったとしたら、閉店後、多分かなりキツかったのではと思います。でも、みんなが来てくれたおかげで、一時的とは言え、
 かつてのスターダストの風景
が甦ったのを見れたので、とても嬉しかったです。来て下さった方々、本当にありがとうございました。 
<今日の一言>
その後、皆に飲みに誘ってもらったおかげで元気が出ました。というか、面白過ぎて悲しみがどっかに飛んで行きました(笑)

ひとりよがり日記
https://moon.ap.teacup.com/applet/qwertyuiop/msgsearch?0str=%82%A0&skey=%83Q%81%5b%83Z%83%93&inside=1&b=42
https://moon.ap.teacup.com/applet/qwertyuiop/msgsearch?0str=%82%A0&skey=%83Q%81%5b%83Z%83%93&inside=1&b=96
https://moon.ap.teacup.com/qwertyuiop/811.html





[スポット][広島] 芸州屋




















[スポット][広島] 芸州屋
2016/3/4
芸州屋でテーブル型ブロック崩し筐体  
西条プラザ閉店の日,一度広島市内へ寄り芸州屋に行って来ました。
するとテーブル型筐体のブロック崩しがアルカノイドの前身ですね。
しかもこれは多分バブルの時代にゲームセンター事業が始まった頃の初期のテーブル型筐体ですね。
僕は幼稚園の頃からゲームセンター通いしてましたがこの筐体に生でお目にかかったのは初めてです。
初代のブロック崩しはやった事はありませんしプレイして行きませんでしたが(アルカノイドなら何回もやった事はありますが)
跳ね返って来たボールを受け止められず画面下に落としてしまうとアウトです。
いやー行ってよかったー。
しかし近くの紙屋町の駐車場は高いですね。一時間も停めてなかったのですが800円も取られました。
    
CHOCOCOALATE☆ちょここあれいと
https://orange.ap.teacup.com/imazatochunli/199.html
https://orange.ap.teacup.com/imazatochunli/201.html
https://orange.ap.teacup.com/imazatochunli/

牌子のブログ
https://sky.ap.teacup.com/paizah-blog/52.html
















2016/2/2
芸州屋その2  
ゲーム
◆ゼビウス
僕は小学校の時はまりました。
今でもエミュ台で時々やりますが
あの時みたいにどうしても30万点以上出せません。自慢じゃないが僕は元小学生ハイスコアラーでした(笑)
◆2000in1
約2000作品のレトロゲームが収録されているエミュレータ台です。店内にやりたいゲームとかがなければこれでどうぞ。僕もアミパラキャッスルでは、これでダブルドラゴンやファイナルファイトとかやってます。
◆スクランブル
これもよくやりました。どのミサイルが飛んでくるか、またなかなか燃料が補給(燃料タンクを破壊する)できずにヒヤヒヤしました。後のグラディウスシリーズの基礎になった作品です。
◆64in1
1942 1943 バーガータイム Mr.Doなど縦スクロールのシューティングゲームが64種類収録されているエミュレータ台です。実はこの基盤でゼビウスをプレイするとバグりますのでゼビウス禁止です。
◆スペースインベーダー
当時のアップライト筐体。この目でお目にかかれるなんて
◆パックマン
この作品はアーケードだけじゃなくファミコンでもゲームウォッチでも電子ゲームでもやりました。
対戦格闘ゲーム、リアルバウト餓狼伝説のポスター。サウスタウンの支配者ギース・ハワードと右腕で棒術使いのビリー・カーンそして側近のリッパーとホッパーが描かれてます。

CHOCOCOALATE☆ちょここあれいと
https://orange.ap.teacup.com/applet/imazatochunli/201602/archive?b=15
https://orange.ap.teacup.com/applet/imazatochunli/201602/archive
https://orange.ap.teacup.com/imazatochunli/199.html
https://orange.ap.teacup.com/imazatochunli/201.html




2022年3月13日日曜日

[スポット][広島] 西条プラザ/ゲームコーナー































[スポット][広島] 西条プラザ/ゲームコーナー
2015/9/23
西条プラザかつてのスト2の聖地  
ストリートファイター2対戦記
シルバーウィーク連休中、西条と広島市内をドライブして来た。かつての広島のスト2の聖地である西条プラザにも行てきた。
西条プラザは西条(東広島市)の大きなショッピングセンターであったが、今ではフジグランや、ゆめマートなどライバル社が乱立し
更にリーマンショックによる不況の影響もあり経営はあまり良くはないようじゃ。後で書くが、その為ゲーセンは店舗縮小を余儀なくされ
ゲーセンだけじゃなく撤退した店舗は幾つかあり空きテナントをちらほら見る。
◆一階のスーパー
マルショクが入っているが鮮魚コーナーでは今でも「おさかな天国」が流れて来る。また西条は日本酒の酒蔵が多いので地酒が沢山ある。
◆一階軽食コーナー
かつてはマクドナルドが入っていた所。地元のおばちゃんが切り盛りし麺類 粉モン ソフトクリームなどが売ってある。
◆二階の飲食グルメコーナー
お好み焼きの徳川やカルダン うどん屋、本格インドカレー屋、喫茶店そしてYMCAのスポーツセンターがある。ここも何度か店舗の入れ替わりがあったが徳川と、うどん屋だけは健在じゃ。かつてのゲームコーナーと同様プラザの外れにあるベーカリー「リュラル」。ここのパン屋は美味しいらしい。
◆ペットショップ
ゲームコーナー向かいのペットショップ
以前に比べだいぶ減ったのう
◆ゲームセンター
かつてゲームセンターのあったテナント。ゲーセンが退去しプラザ内に店舗縮小後、接骨院が入っていたがいまではずっと空きテナント。
あの頃は広島のスト2の聖地として定期的に大会も行われ、闘劇の予選会場としても使われていた。また関西 関東 中部勢から遠征した人も数多くいた。ショッピングプラザの閉店は19時じゃったがここだけは22時まで営業しょうた。ワシも当時は大阪で暮らしょうたけどGW 盆 年末年始の帰省の際には必ず行って対戦してました。
しかし今ではこの有様、外のテナントから脱却し、元々ペットショップの向かいにあった店舗に凝縮縮小されスト2は辛うじて残ったものの今では対戦台でなくなっており、閉店時間も19時となってしまっている。
対戦は出来んかったけどスト2あるかぎりワシはプレーする。100円2クレぢゃけ赤ケンとチュンリで軽くCPU戦。確かに対戦環境はなくなったけどワシは西条プラザの雰囲気が何か好きぢゃ。また来るよ。

CHOCOCOALATE☆ちょここあれいと
https://orange.ap.teacup.com/imazatochunli/199.html
https://orange.ap.teacup.com/imazatochunli/201.html
https://orange.ap.teacup.com/imazatochunli/

牌子のブログ
https://sky.ap.teacup.com/paizah-blog/52.html







2016/2/28
西条プラザ ゲームコーナー閉店  ストリートファイター2対戦記
かつての広島のスト2の聖地
西条プラザゲームコーナーは2016年2月28日を以て残念ながら閉店となりました。
関係者の方々長い間お疲れ様有難う御座いました。
この日はスト2は100円3クレでT長やUnjama氏たちが閉店の準備をしている最中,僕は他の常連さんと西条における最後の対戦を楽しんでおりました。
撤去されていく筐体の数々です。ハイパースト2とホットギミックとパチスロ台を除き,プライズは次々と分解撤去されていきました。
店舗は元々外側のテナントにあり22時まで営業されていましたが,四年前に従来のショッピングセンター内に統合され営業時間も19時に短縮されて以来,プレイヤーは激減し広島市内に移転して行き
次第に対戦台もなくなってしまいましたが,最後に対戦台を復活させてくれたT長とUnjama君には非常に感謝しております。
長瀬UFO & あうとばぁん 天満橋ベガス 今里ソフテム 渋谷会館
そして西条プラザ
僕はスト2プレイヤーとして自称、平成のゲームセンターあらしとしてそれらのゲームセンターの閉店を目の当たりにして非常に悲しい気持ちでいっぱいです。
今まで店を守ってくれた店員さんや対戦してくれた皆様重ねて本当に有難う御座いました。
ショッピングセンター自体は今年の8月31日まで営業されますがゲームコーナーや、お好み焼きのカルダンのように閉店を待たず撤退する店舗は今後も出てくるとは思います。
帰宅後は一階にあるスーパーのマルショクで買った惣菜をつまみに西条の酒の1つである白牡丹の純米で一杯やりました。
    
CHOCOCOALATE☆ちょここあれいと
https://orange.ap.teacup.com/imazatochunli/

牌子のブログ
https://sky.ap.teacup.com/paizah-blog/52.html








2022年3月11日金曜日

[スポット][東京日暮里] 自遊空間セルフ日暮里店




[スポット][東京日暮里] 自遊空間セルフ日暮里店
22.3.11利用。
この数年,さしたるシステム障害もなく,ネカフェに行く事もなかったとはいえ,そろそろ行こうとは思っていた。木曜日夜は無人の上に客もいなくてほぼ完ソロ状態。。その後数人の来客。ドリンクバーコーナーが進化。なんと朝食の炊きたてのご飯が追加。で9h1600円。多分常駐で一人はスタッフがいるんだが,人件費少ない分,サービスに還元出来るという事なんかな?

yghhhhhh pc













[障害] Motrola MotoE5, ブートループからの復旧方法





22.3.11
Android障害。機種はMotorola MOTO。中古で2年前に買って以降,さしたるトラブルもなく使ってきただけにショックは大きい。本体に入れてる64MBのSDチップにデータの9割は移してるものの,未だSDに移動出来てない本体の1割のデータに未練が出来るという毎度のルーチン(笑)
◆状態
リブート(再起動)を繰り返す状態になる。その度に「Google Play開発者サービスが繰り返し停止しています」の表示。電話アイコンが点滅しているので,障害はその辺りだろうか??
最後に使ったアプリは電話なので原因はそこ?
◆対処
考えうる策を40回ほどやった結果,小康状態へ。。ドロイド君にまた会うとは思っていなかった。。リカバリーモードでは電源と音量の3つのボタンだけで操作する。リブートが止まって大人しくなったうちに恐る恐る本体データをSDチップに移動。。約600MBのデータがまだ本体に残っていた。
[やった事]
▽Google Playのキャッシュデータ削除
▽Google Playのデータ削除
▽電話アプリのキャッシュデータ削除
▽使わないアプリの削除
▽リカバリモード下で全キャッシュデータ削除
▽リカバリモード下から再起動
▽小康状態下で本体データ移動

ygghhh pc   













[障害] Motrola Moto G4 Plus, ブートループからの復旧方法
「Moto G4 Plus SIMフリー」のクチコミ掲示板
Moto G4 Plus SIMフリーを新規書き込みMoto G4 Plus SIMフリー
再起動を繰り返す
2017/01/17 21:46(1年以上前)
スマートフォン・携帯電話 > MOTOROLA > Moto G4 Plus SIMフリー
スレ主 ボサノバ青い鳥さん
クチコミ投稿数:8件
◆再起動を繰り返す
Android7.0にバージョンアップ
しばらく使用して、ある日突然再起動を繰り返す。
電源+Vol down長押しでブート選択画面にいくも、どのメニューを選んでも同様の状態に逆戻り。
モトローラサポートサイトに、別機種での類似の事象への対処法あるけど効果なし。
サポートにメールしたが、同様の事象の方、対処法をご存知であればお願いします。
書込番号:20578268 
ナイスクチコミ!10点
mxg03301jpさん
2017/05/10 18:05(1年以上前)
ボサノバ青い鳥さん、私も再起動を繰り返す症状がOSのアップデート後に起こるようになりました。
いろいろ試してみたところ、手間はかかりますが、以下のようにすると起動できるときが多いです。
▽再起動を繰り返している最中であっても、充電ケーブル、SIMカード2枚、microSDをすべて取り外す。
▽電源ボタンとボリュームダウンを長押ししてブート選択画面にする。
▽RESTART BOOTLOADERを選択
▽電源ボタンを一回押す。
▽再びブート選択画面になります
▽ここでSTARTを選択して電源ボタンを一回押す。
私の場合はこの手順で起動できることが多いです。
この後、SIMカード2枚、microSDを挿入して、SIMカードの設定やAPNの設定を確認して使用しています。
書込番号:20882084

価格.com










[障害] Motrola Moto X Play, ブートループからの復旧方法
“No Command”表示が出たときは、電源ボタンと音量上ボタンの同時押しで、いつものメニューが出てきたのですね。

wakaiy





Moto X Play ブートループと復旧
投稿日: 12/03/2017 
作成者: wakaiy
昨年 12 月に安くなったタイミングでうっかり購入してしまった Moto X Play さん。 
Moto G 3rd. が5 inch の画面サイズで大きすぎると感じていたところに、 4.6 inch で一瞬コンパクトかと噂の流れた Moto M が実は 5.5 inch だったことからの、うっかり購入です。
で、普段使いのスマホホルダーに収まらないため休日くらいしか出番がなかったわけですが、この度セキュリティアップデートの際、無情な “Error” 表示で停止してしまい、再起動させたところブートループに陥ってしまいました。
とりあえずブートメニューを出してリカバリーモードに入ろうとしたところ、今度は “No Command” 表示で停止。挫けずに再起動させると、ブートループは抜け出せたのですが、 
“com.motorola.process.system has stopped” 
のポップアップが何度も出てくるようになってしまい、操作不能に。
仕方がないので [GUIDE] How to flash a factory image | Return to stock, Moto X Play から factory image (X_Play_UK_Retail_XT1562_LPD23.118-10_CFC.xml.zip) を拾ってきて作業開始。 
しかし、最初の fastboot flash partition gpt.bin の時点で “Preflash validation failed.”の表示が出てしまったので、 bootloader unlock してみるものの、状況は改善せず。挫けずに別の factory image (XT1562_LUX_RETASIA_DS_6.0.1_MPD24.107-70-1_cid7_subsidy-DEFAULT_CFC.xml.zip) でチャレンジしたところ、今度こそ上手く行き、無事復旧しました。
後で知ったのですが、リカバリーモードで “No Command”表示が出たときは、電源ボタンと音量上ボタンの同時押しで、いつものメニューが出てきたのですね。もしこれで復旧できていたら bootloader unlock する必要がなかったのではという考えも頭を過ぎりましたが、それはまた次の機会に取っておくことにします。
※ 追記 bootloader re-lock

wakaiy






[障害] Android OS,ブートループからの復旧方法
2021.11.04
GooglePlay開発者サービスのエラーが頻発・繰り返し停止する時の対処法
Androidのスマホやタブレットを使用していると突然「問題が発生したため、Google Play開発者サービスを終了します」といったエラーメッセージが表示されることがあります。
一度だけであれば特に問題はないため放っておいても構いませんが、何度もエラーが繰り返し表示される場合は対処が必要です。
本記事では、GooglePlay開発者サービスのエラーが頻発する・停止する時の対処法について紹介します。
◆対処1: デバイスを再起動する
まだ試していなければGoogle Playアプリを1度終了してみてください。
それでも解決しない場合は、スマホやタブレットの電源を完全に切ってから再起動してみてください。
◆対処2: デバイスのシステムをアップデートする
まずはOSを最新のバージョンにアップデートしてみてください。
アップデートの手順についてはGoogleの公式Androidヘルプページをご確認ください。
参考:Android のバージョンを確認して更新する - Androidヘルプ
◆対処3: Playストアのアップデートを削除する
Playストアアプリ本体に異常がある、またはアップデートが正常に行われていない可能性があります。
次の手順でPlayストアのアップデートを一旦削除してから再度アップデートをインストールし直してみてください。
ホーム画面またはアプリ一覧画面から「設定」アプリを起動します。
「アプリ」項目をタップします。
デバイスにインストールされているアプリ一覧が表示されます。下へスクロールし、「Google Playストア」の項目を探してタップします。
アプリ情報画面が表示されます。「アップデートのアンインストール」ボタンをタップします。
確認ポップアップが表示されたら「OK」をタップしてアップデートをアンインストールします。
アンインストールが完了すると自動で再アップデートが開始されます。処理が完了するまでしばらく待ちます。
もし自動でアップデートが行われない場合はインターネットの接続をご確認ください。
◆対処4: Playストアアプリのキャッシュを削除する
Playストアアプリのキャッシュを削除することで改善する場合があります。アプリのキャッシュは次の手順で行います。
「設定」アプリを開き、「アプリ」→「Google Playストア」の順にタップして進みます。
アプリ情報画面が表示されたら「強制停止」をタップしてアプリを一旦停止させます。
「ストレージ」をタップします。
「キャッシュを消去」をタップします。
設定画面を閉じ、PlayストアアプリをタップしてPlayストアアプリを再起動します。
アプリ再起動後、エラーメッセージが表示されなくなったか確認します。
◆対処5: キャッシュを一括削除する
アプリのキャッシュを削除しても問題が解決しない場合はキャッシュの一括削除も試してみてください。
「設定」アプリを開きます。
「ストレージ」をタップします。
「空き容量の確保」または「空き容量を増やす」ボタンをタップします。
「キャッシュデータの削除」ボタンをタップします。
機種やシステムのバージョンによっては画面や操作手順が異なる場合があります。具体的な操作手順についてはデバイスの操作マニュアル等をご参照ください。
◆対処6: Googleに再ログインする
アカウントの認証に問題があるケースが考えられます。1度Googleアカウントの連携を解除した後、再度アカウント設定をしてログインし直してみてください。
「設定」アプリを開きます。
「アカウント」または「アカウントと同期」をタップします。
アカウントを解除する前にデータの同期を行います。右上の点アイコンをタップし、「同期」を選びます。
同期が完了したらアカウント一覧から「Google」アカウントを探してタップします。
「アカウントを削除」ボタンをタップします。
確認メッセージが表示されます。「連絡先が削除されます」といった内容が表示されますが、後ほどログインし直すことで全て元に戻るためデータの損失を心配する必要はありません。内容を確認してからOKをタップします。
複数Googleアカウントを登録している場合はすべてのGoogleアカウントをデバイスから削除します。
Googleアカウントを登録し直します。「アカウントを追加」をタップし、リストから「Google」を選びます。
Googleのアカウント情報を入力してログインします。
◆解決しない時は
インターネットの接続を確認してください。必要に応じてネットワーク設定のリセットや、別のアクセスポイントへの接続も試してみてください。
セキュリティアプリやアンチウイルスアプリを使用している場合はそのようなアプリの動作を一時的に停止させてみるか、設定を確認してPlayストアアプリの機能やアクセスを制限していないか調べてみてください。
「設定」→「日時設定」からデバイスの設定日時が正しいか確認してみてください。また、日時の自動設定を有効にしてください。
デバイスにSIMカードをセットし直してみてください。
いずれの方法でも解決しない場合はデバイスの初期化を行ってください。また可能であればスマートフォンデバイスのサポートサービスなどの利用もご検討ください。

IT Hook








【解決】「GooglePlay開発者サービスが繰り返し停止しています」と表示された場合の対処方法
公開日: 2018/05/10 : 最終更新日:2021/03/23 
GooglePlayストア, まとめ記事, 解決方法
Googleから配信中の「Android8.0」「Android7.0」「Android6.0」を搭載したスマートフォン・タブレットを利用している際に「『GooglePlay開発者サービスが繰り返し停止しています』という通知が表示され、アプリが強制終了する!起動しない!開かない!」などの使い方や設定方法が分からない一部のユーザーが慢性的に発生しているようです
下記が『【解決】『GooglePlay開発者サービスが繰り返し停止しています』と表示される場合の対処方法』についてのまとめです
◆対処方法
「ホーム画面」→「Chrome」などのブラウザから「GooglePlay開発者サービス」の「アップデート」もしくは「アンインストール」を選択し、再度同アプリをインストールしてください
「ホーム画面」→「設定」→「アプリ」→「GooglePlayストア」→「データを消去」を選択してください
「ホーム画面」→「GooglePlayストア」を開く→「三(画面右上)」を選択→「マイアプリ&ゲーム」を開く→「インストール済み」タブから「AndroidシステムのWebView」「GoogleChrome」を開き、「アップデート」を選択してください(治らない場合は「アンイストール」を選択し、本体を再起動してください
「ホーム画面」→「設定アプリ」→「アプリと通知」→「すべてのアプリ」→「AndroidシステムのWebView」を選択→「・・・(画面右上)」を選択し、「アンイストール」を選択してください
「ホーム画面」→「設定アプリ」→「アプリと通知」→「すべてのアプリ」から「Chrome」を選択→「アプリ情報」画面から「停止」もしくは「更新アンイストール」を選択してください
◆解決できない場合の設定方法
上記の設定でもAndroidスマートフォン・タブレットの問題を解決できない場合の設定方法についてのまとめです
「ホーム画面」→「GooglePlayストア」の「アップデート」から全てアプリを最新バージョンにアップデートしてください
「ホーム画面」→「設定」→「機内モード」をオン・オフを繰り返し、もしくは「通知パネル」から「機内モード」をオン・オフを繰り返してください
「ホーム画面」→「設定」→「端末情報」→「システム・アップデート」から最新バージョンにアップデートしてください
「ホーム画面」→「設定」→「端末情報」からお使いの「Android」のバージョンが不具合の発生しているアプリに対応しているか確認してください
「ホーム画面」→「設定」→「Wi-Fi」から現在接続している公衆無線LAN・Wi-Fiスポット以外の別の接続先を選択してください
「ホーム画面」→「設定」→「アプリ」から「GooglePlayストア」以外からインストールしたアプリがある場合は削除してください
「ホーム画面」→「設定」→「アプリ」→「GooglePlayストア」アプリの「強制終了」もしくは「停止する」を選択します
「ホーム画面」→「設定」→「アプリ」→「GooglePlayストア」アプリの「ストレージ」の「キャッシュを削除」を選択します
「ホーム画面」→「設定」→「アプリ」→「アプリ情報」画面から直近にインストールしたアプリをアンインストールしてください
「ホーム画面」→「設定」→「ストレージ」→「キャッシュ」から不要なキャッシュファイルを削除してください
「ホーム画面」→「設定」→「アプリ」からバッググラウンド上にて起動しているアプリのプロセスを停止してください
「ホーム画面」の「戻る(画面右下)」を選択→バッググラウンド画面から全てのアプリを横にスワイプし、アプリの動作を停止してください
「音量ボタン」と「電源ボタン」を同時押し、「Android」スマートフォン・タブレットを強制的に再起動してください

スマホ評判・不具合ニュース速報





2022年3月10日木曜日

[言語] MSX-DOS

[言語] MSX-DOS
命令セット一覧:Z80マシン語/MSX-DOS上級編20011年3月第16改訂版
[FULLMSX.COM]
[やってみましょうBASIC]-[グラフィック]-[サウンドとミュージック]-[マシン語]-[ダウンロード]
mon-girl
<< MSXの動画による使い方もご覧ください >>
SUPER-Xでマシン語モニタ:
http://zoome.jp/fullmsx-movies/diary/4/
SUPER-Xのダウンロードできるサイトがありません。
現在、MSX版のZ80のマシン語モニタアセンブラを制作中です。
FULLMSX:MONASM
逆アセンブラ方式の記述であれば
BIOSのコールなど小さなプログラムを実行できます。
実行はMSXパソコンで使用できるMSXファイルになっています。
ORG機能が備わっていないため9000hからになります。
基本的な命令とBIOSのコールなどできますが、保存ができません。
<< monasm20110313.lzh を ダウンロード >>
開発の状況はモニタ、アセンブラを制作しています。
ダウンロードするとマシン語モニタはメモリの内容を表示させることができます。
FULLMSX:MON 1000H
MSXテキストでは00~07Hと08H~FHまでの32文字の表示ですが、
制作中のものはSCREEN7では横ドットがハイレゾになって64文字の表示になり
MSX2で88のような小さな文字を表示することができるわけです。
画面は1000HのMSXのBASICのROMの内容です。
コンソール部もSCREEN7で表示できます。
■体験してみたい
マシン語は誰でもプログラムできます!体験してみてください。
やってみましょうZ80マシン語 初心者でマシン 語を始めたい人向けです
MSXマシン語適当講座その1 マシン語からBASICの変数を取得、LD、CALL、INC
MSXマシン語適当講座その2 SUPER-X、実行、アセンブラ、ソースを書く
MSXマシン語適当講座その3 一時的にレジスタを使う、フラグ、レジスタ、転送
MSXでマシン語BASIC 中級編 ハンド アセンブルからの話題です。続編へのリンクあり。
*命令セット一覧:Z80マシン語/MSX-DOS上級編 Z80、モニタアセンブラ、テキストエディタ

やってみましょう!MSXBASIC
http://www.geocities.jp/fullmsx2/u-yan/mon.html
http://www.geocities.jp/fullmsx2/u-yan/msxi-hi1.html
http://www.geocities.jp/fullmsx2/u-yan/mb-quick.html

ドナドナを聴きながら
http://www.geocities.jp/galfned/mou/mou.htm
http://www.geocities.p/galfned/xanadu/xanadu.htm









★はじめに
マシン語はどんなパソコンでもあります。MSXはWindowsより古いパソコンです。
コードを書き換えた経験はありませんか?
一般には0~10の数字ですが、パソコンでは0~15の数字です。
これは2進数が進化して16進数になったものです。
マシン語は決められたコードで書くことができれば
MSXBASICよりも高速に動作することができます。
ではどういうことか?と、言えばたとえば
電源ボタンを押せば、リモコンからテレビに
信号が送られます。このように動作の手順をコードにしています。
例えば地デジの1チャンネルとか、入力切替えとかありますね。
このコードを読むことができる小さなメモリがリモコンに入っています。
このコードを読んで、送信させることで、ビデオデッキの受信機が読み取ります。
言語はこの機械的な操作を補助させて言語拡張にすることで、
マシン語を言語にして簡略化させることができます。
そして、このように外部で操作できるようにするために入出力して通信できる
I/Oポートを使います。
MSXBASICが遅いのはBASIC言語をマシン語に実行させながら
変換するインタプリタという処理をするために
速度が遅くなることが一般的に知られています。
BASICはカンタンな命令でマシン語を動作させる魅力があります。
C言語はソースをマシン語すべて変換させて行うコンパイルが遅いですが、
実行中はマシン語に変換することがないので、コンパイル後の動作は速いです。
■Z80のCPUは
処理能力が8ビットという代表的なCPUです。ご存知のように
0と1で1ビットの処理の2通り、00と01と10と11で2ビットの4通りのように
ゼロとイチが8つ並ぶ通りの処理を行えます。これは16進数で参照してください。
このようなCPUはPC8801、MZ、X1など多くのパソコンに搭載されていました。
ハードウェアを単純にしてソフトウェアを複雑にしていたのが昔のPCです。
現在とは正反対で処理は遅いのですが凄い技術を使ったものが多いです。
ただZ80のCPUから大きく拡張されたハードウェアを操作する事には変わりはないです。
マシン語をCPU(中央演算装置)に命令を送ることができれば
理論的にはどんなPCもハードウェアも動かせます。
また、ハードウェアを使わないでメモリとCPUだけを使えば
MSX以外の他機種でも動作させることができます。
この場合はメモリマップに従ってプログラミングします。
ORGのロード域が変わりますが意外と安易にできると思います。
Z80インストラクション表:http://www.geocities.jp/fullmsx2/u-yan/msx-mac1.html
■マシン語モニタ
マシン語モニタはメモリとレジスタの情報を表示するソフトです。
レジスタは電卓の1234567890というものを16進数値であらわし
メモリはレジスタの数値を記憶領域を指定して記憶するものです。
数値をメモリ/レジスタにロード。レジスタからメモリ(アドレス)にロード。
メモリ(アドレス)からレジスタにロードというLD(ロード)表記から
MOV(ムーブ)移動表記にインテル製では変わっていますが、
実行した後にメモリ、レジスタに正しく数値が入っているかを
確認することができるプログラムです。
またプログラムではなく画像データまたは文字コードもアドレスに書くことができます。
メモリには何でも入れることができる特長があります。
16進数:http://www.geocities.jp/fullmsx2/u-yan/basic/hexa.htm
MSX-DOS:SHEM
MSX-DOSのフリーソフトウェアSHEMのマシン語モニタ画面
SHEM::http://www.geocities.jp/fullmsx2/u-yan/shem.html
MSXのゼロはゼロスラッシュになっています。これは数値の0です。
画面は0100Hから1バイトごとにE7 ED 5B 06 00 21…となっています。
EDが0100Hで5Dが0102Hです。ADRSがアドレスで
0105Hは0100H+5で21が入っています。
16進数の右側はASCIIのコードです。
ここにMSXと書けば
書いたアドレスに16進数のコードが入ります。
さらに16進数コードで矢印パターンを書くと
GraphicWindowにグラフィックが表示されます。
画面はRes:でレジスタペアで表記されています。
HLはHレジスタとLレジスタのペアとなります。
Fはフラグの数値が入り、右からFのビット情報が
順に呼んでいくと、
AFレジスタ、
サインフラグ(S)、
ゼロフラグ(Z)、
なし(-)
ハーフキャリーフラグ(H)、
なし(-)、
パリティオーバーフローフラグ(P)
減算フラグ(N)、
キャリーフラグ(C)となり
BCレジスタ、
DEレジスタ、
HLレジスタ、
IXレジスタ、
IYレジスタ
です。
下段の情報はMSX-ROMのスロット情報です。
あとはアレやコレやと初心者にはどうでもいい情報ですが、長く使っていく方には便利な情報になっています。
レジスタは00HからFFHまでですが、
レジスタペアは0000HからFFFFHの数値を使うことができます。
0150H以降が00になっています。
もし、何かを書くならばこの00の領域に書くとよいでしょうね。
詳しくは後ほど解説しています。
■Z80命令変換表
高性能なアセンブラがない場合はハンドアセンブルになります。
最初は00~FFのニーモニックの1バイトコードが記されていますが、
CBとDDとEDとFDはCB XXとXXは00~FFのコードで
2バイト以上のコードになります。
さらにDDCB、FDCBの場合で例えばSLA (IX+d)は26ですが
このdに02Hが入る場合はDDCB0226となります。
これはインデックスレジスタの特殊な例ですから一般的には不要でしょう。
Z80マシン語ニーモニック変換表:
http://www.geocities.jp/fullmsx2/u-yan/msx-mac1.html
■MSXのマシン語モニタは難しい?
確かに何が何だかわからないかもしれませんが、
メモリに何が入っているかを見たり、書き込んだりできます。
もちろん、マシン語を見るための画面です。
マシン語は計算したりメモリ操作するもので、
データはデータエリアを作って文字をあらかじめ入れておきます。
MSXパソコンのメモリを調べていくとエラーメッセージなどが
入っている場所があったりします。
上の画像は16進コード、MSXの文字コードなど何のコードが
入っているかを見ることができます。
モニタによって表示は異なりますが、基本的に同じような機能があります。
Z80のCPUについてはZ80 - Wikipedia を参考にしてください。
今回はSEO対策ということでMSX-DOS編とBASIC編と分けて解説をしています。
MSXパソコンは今のPCに比べておもちゃのマシン語ですが味わってみてください。
■開発環境を選ぶ
この16通りの数値を言語化してわかりやすくしたものがニーモニックと呼ばれるものです。
このニーモニックから16進数に変換して組み込むものがアセンブラです。
MSXでは残念な事にモニタアセンブラが内蔵されていません。
16進数:
http://www.geocities.jp/fullmsx2/u-yan/basic/hexa.htm
ここで述べている内蔵というのはボードの中に記憶装置(ROM)を指しています。
記憶装置のデータを実行するプログラムをソフトウェアと呼んでいました。
今現在のPCの内蔵はオンボード、ハードウェアのロジック回路に組み込まれた
もので本質は全く異なります。
そこで、いずれかのソフトウェアを揃える必要があります。
1.プログラムをテキストファイルに書く、ファイル書き込み方式
2.モニタアセンブラから書く、メモリ直接変換方式
3.BASICから行番号方式で書く、メモリー書き込み方式
プログラムをテキストファイルに書く方法ですすめていきます。
ここからはマシン語MSX-DOS 上級編です。
当時DOSがなかった時代にはテープで行っていました。
当時の記憶媒体はパソコンの補助するものとしていました。
ですから、パソコンの機能をそのまま使うことができました。
MSX-DOSは記憶媒体を補助するものという考え方だろうと思います。
これは記憶媒体のディスクの機能をそのまま使うことができる考え方です。
このようにすればパソコンが異なってもMS-DOS互換のフォーマットが
あれば移植などが行いやすくなったのでしょうね。
MSX-DOS2はあまり普及しなかったのですが、
MS-DOSで動作するプログラムをMSXに移植したりしたものが多くあります。
当時の一般的なMS-DOSのプログラミングはCOM(EXE)ファイルを書いて、
DATファイルかOBJファイルを読み込むという流れでやっていたようです。
MS-DOSは16ビットOSでCが快適に動作していたからでしょう。
残念ながらMSX-DOS2では8ビットのOS(CP/M)からの流れがあり、
テープがディスクに引き継いだマシン語プログラムが主流になっています。
どちらかと言えばPC-8801程度の開発環境が大半ではないかと、思います。
MS-DOS以前のマシンを調べることには適していると思います。
■テキストエディタ
テキストエディタで1行に1つの命令をプログラムとして書き、ソースリストを作ります。
テキストファイルはASCII(半角英数)コードを使うことができます。
ASCIIコードはMSX-DOS、CP/M、MS-DOSなど異なるPC環境でも使うことができます。
MSX-DOSではディスク操作と限定されますがMSXBASICよりもメモリが少ないために
MSXBASICのマシン語エリアよりも広いエリアを使うことができます。
MSX-DOS TOOLSでは行単位で文字を操作するコマンドがあります。
メモリが少なく、ファイルを操作したり、コマンドを作ったりすることができるようになった為に
大規模なソフト開発ができるようになりました。
この環境であれば、まずメモリの制約を受けることは少ないでしょう。
自由にプログラミングできます。アセンブラは無理でもMSXでC言語もあります。
V&Z2editor  ViperとZeroさんの開発しVZライクなエディタ(ASCATさんサイト)
APED  AKID/KIDライクなエディタ
Wikipedia:WZeditor
テキストエディタは1つのファイルはもちろん、ファイルを追加して途中からでも加えることができます。
MSXBASICのマシン語と違ってメモリに書き込まないために自由にソースを組むことができます。
昔のほとんどのエディタはラインエディタベースで作られているため
カット&アンドコピーペーストができませんでしたが、このエディタであれば楽にできるでしょう。
また、プログラムを行単位で編集したい場合はテキストカッターを探すとよいでしょう。
後はMSX-DOS TOOLSのユーティリティか、自前で組むかでしょうね。
★テキストエディタで日本語入力の表示をしたい
;入力枠消去
LD   A,03H
ソースコード入力は日本語で書くことが多いのではないでしょうか?
8ビットのMSXマシンではシフトJISの2バイト系コードの入力には
適さない環境ですが、拡張したものが漢字BASICです。
MSX2で漢字ROMがあれば表示は可能です。
MSX2+以降のマシンでは漢字BASIC有効にします。
■マシン語モニタ・アセンブラ
SUPER-X  「SUPER-X」はMSXBASIC用の高機能なモニタ・デバッガです。
SHEM  プログラマ必須の高機能なMSX-DOSマシン語モニタです。おすすめです。
SUPER-XはMSXBASICからのマシン語モニタですが、いろいろと使えます。
MSX-DOS(2)であればSHEMがよいでしょうね。
SHEMの特集もしています。
http://www.geocities.jp/fullmsx2/u-yan/shem.html
マシン語の2進数を16進数の表にして操作できるのが、マシン語モニタです。
このページでは16進数コードをマシン語として話していますが^^;
私の知り合いの紅茶さんがA1WXでMSX-DOSで開発していて、
SHEMの作者であるSherryさんはA1GTでしたが、
こんな感じでMSX2+程度のマシンであれば十分です。
■MSXの書籍から
まぁ何とかなるなら、この方法もあります。
最初はMSXマガジン永久保存版1 p177にあるMSX self assembler、もっとMSXを極めるならば
MSXマガジン永久保存版3 p118にあるM80のあるMSX-DOS2 TOOLSもよいでしょう。
MSX-DOS(2) TOOLS
http://www.geocities.jp/fullmsx2/u-yan/msxdos-tools.html
■マシン語モニタ基本命令
一般的なZ80マシン語モニタのコマンドです。
A(アセンブラ)-アセンブラ
B(ベーシック)-BASICに戻る。
D(ダンプ)-ダンプ。メモリの内容を表示する
S(サブスティテュート)-メモリの内容を変更する
X(イグザミン)-レジスタの内容の表示と変更する
G(ゴー)-マシン語プログラムを実行する
R(リード)-VRAMからVRAMへ転送
L(リスト)-プリンタ
参考ですがWindowsXP/Vista/7でもデバッグモード(モニタ)があります。
cmdでコマンドプロンプトに入って、debugコマンドで入ります。
QでMS-DOSへ戻ります。
★シンプルなタイプ
 D000   00 11
 D001   20 22
 D002   03 33
 D003   00 _ 
                      
1アドレスごとに表示するモニタもある。左からアドレス、書き換え前のコード、後のコードになっている。
_をカーソルにしてみた。入力は2バイト入力してRETURNを繰り返す。
1つ前のアドレスへ修正したい場合
D004    00 33^_
と、^を入れると、
D003    33 _
になる。さらに.の場合は
D003    33 C9.
とする。
◆高性能なモニタなら、
例:D(ダンプ)のA000Hの場合

>DA000
0 +1  +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F -CHR-
A000:4D 53 58 20 42 41 53 49 20 76 65 72 73 69 6F 6E MSX BASIC version
と何がなんだかよくわかりませんが、これはメモリのA000~A00Fの内容をモニタしたものです。
CHRはキャラクタコード256種類を表示させています。
A000:4D 53 58 20 42 41 53 49 20 76 65 72 73 69 6F 6E MSX BASIC version
コードとキャラクタコードの表示があります。
入力は続けてコード、またはキャラクタを入力できます。
★ASCIIコードを調べる
右のキャラクタのMSXのMは4Dですが、
この4Dを調べる方法はBASICで
? chr$("&H4D")
M                       
        
となり、Mを調べたい場合は
? hex$(asc("M"))
4D
このようにマシン語は変数などはありません。いたってシンプルなものです。
ニーモニックを判別してマシン語に変換。その後、モニターから実行することができます。
コメント:おすすめはM80のテキストファイルでしょうね。慣れてくればSHEMの逆アセンブラ方式でもOKになります。
■アセンブル
マシン語(オペレーションコード)をわかりやすくしたものをニーモニックと呼びます。
POPとかLDとかCALLとかのことですね。ニーモニックを記述する方法は
テキストファイル、BASICファイルの場合はジャンプの記述はラベルで、
どちらもテキスト形式として保存します。アドレスは決まっていないので再配置が可能です。
アセンブラ方式はフリーエリアにロードするアドレスを変えることがことができます。
普通はORG命令であらかじめ番地を決めますが、
MSX-DOS TOOLSでは複数のソース(ライブラリ)を1つのソース(オブジェクト)に構築もできます。
それがリンカです。
その後、アセンブラを実行してエラーチェック後にマシン語に変換されます。
メモリ直接書き込みの場合はメモリダンプされたものがアセンブルする逆アセンブラで
ジャンプの記述はアドレスで、バイナリ形式として保存します。
アドレスは決まっているので再配置はできません。
このようなプログラムは逆アセンブラでソースファイルに戻します。
◆アドレスを決める
自分で変数、文字情報、オブジェクトと領域を決めていかなければなりません。
でも難しくはありません。全てアドレスです。ユーザーエリア内で決めればよいです。
文字データであれば128バイト、変数データであれば12バイトくらいとワークエリアを仮に決めます。
D321HとD322Hの間にプログラムを加えたい場合など
プログラムを加えたい場合はD322H以降のプログラムのアドレスをずらすブロック転送を使います。
◆メモリのデータ
データは「1つアドレスを読んで、この座標に文字を表示」という繰り返しで表示します。
EOFなどがないので、ASCIIの終了コードなどに決めます。
BASICがわからなくても、「マシン語(アセンブラ)?あ~わかるよ。」という意外な方が多いです。
マシン語はモニタするだけで全て見ることができます。
決められたコードのパターンがありますから、コレを書き換えれば
例えばPORT1接続をPORT2接続にできます。
■ソースコードの入力
ORG  100H
LD       A,00H
LD   C,01FH 
CALL 0005H
残念ながらWindowsではTTFで微妙に狂いますが
TABキーで水平タブを使えば揃います。揃えていくと見栄えがよくなります。
最初はシステムコールなどを使ってMSX-DOSでいたずらをする程度から
始めると飽きがこないでしょう。こんな感じでよいです。
◆バイト数とステート
インストラクション表があれば
使用するバイト数とステート(処理の単位)を少なくすることで
さらに高速に処理をさせることができます。
◆Z80には掛け算命令はない
掛け算命令がないCPUではBレジスタ×Cレジスタを
バイナリに分解して筆算をします。
Aレジスタは計算用に空けておきます。
ここでつまずくところは2の繰り上がりの時です。
アセンブラでのかけ算例
私もわからなくなってしまうことがありますが、
このように整理するとわかります。
加算の方法は2はバイナリで10とやってはいけませんよっ。
1+1=0で繰り上がり1、1+1+1=1で繰り上がり1
1+1+1+1=0で繰り上がり2の1、1で
1+1+1+1+1=1で繰り上がり2の1、1となります。
通常の10進の筆算よりも面倒なところがありますが、
このように1を足していきます。
■アセンブラの実行方法
CP/MのZASMをMSX-DOSで実行する方法です。
A>ZASM ZTYPE.ASZ -C
Z80アセンブラZASM:
http://www.vector.co.jp/soft/dos/prog/se010314.html
どうやらパソコン通信版CP/M80とパッケージが異なるようです。
MSX-DOSはMS-DOSバージョン3と互換性があるらしいのですが、
CP/M版のみ実行が可能でMSX-DOSはどうなっているのか
比較しないとよくわからないです。
■環境を考える
これでソースを書くエディタ、マシン語モニタ、アセンブラが決まってきたと思います。
フロッピーから必要なファイルを仮想ドライブに置きます。
MSX-DOS2が起動できる環境でラムディスクをマウントして仮想ドライブ(H:\)を有効にする。
MACファイル、DATファイルをHドライブにコピーする。
KAIHATU.BATを作成すればKAIHATUで実行できるようになる。
■環境を設定する
MSX-DOS(2)を使ってもラムディスクでした。
MSX-DOS1はラムディスク機能がないのですが、フリーソフトでラクにラムディスクが使えます。
なお、1chipMSXではSDカードのアクセスが速いのでそのまま設定でよいです。
このソフトはMSX -DOS(2)フリーソフト編で紹介しています。
A>COPY CON KAIHATU.BAT
RAMDISK 4048
COPY *.MAC H: + COPY *.DAT H:
COPY L80.COM + M80.COM H:
^Z
1 file copied.
最後の^zはCTRL+Zで閉じる。
こんな具合で入れていきます。
■ラムディスクドライブH:を使う
ラムディスクはパソコンが起動中に使うことができますが
電源を切ったり、パソコンが暴走するとデータが消えます。
1.プロンプトの設定
H:\U-YAN\TEST\のアドレスにいるようでしたら
H>SET PROMPT ON
H:\U-YAN\TEST\>
のほうがいいかもしれません。シンプルに戻したい場合は
H>SET PROMPT OFF
H>
でもよいです。
2.別のドライブからカレントへコピーする
たとえばA:\U-YAN\C.ASMをコピーしたい場合
H>COPY A:\U-YAN\C.ASM *.*
と最後に*.*を加えます。
3.別のドライブへコピーする
たとえばC.ASMをA:\U-YAN\TEST\へコピーしたい場合
H>COPY C.ASM A:\U-YAN\TEST\
となります。
これは仮保存したものを保存したい場合に
ファイルをコピーします。
4.ラムディスクを開放する
メモリマッパを使ったアプリケーションを使いたい場合などに
ラムディスクを使わないようにするにはデータをコピーした後に
H>A:
A>RAMDISK 0
ここでYを押します。これでH:\ドライブは消えました。
5.リセットしてもラムディスクを復帰するようにする
暴走して誤動作した場合は通常はリセットされて初期化されますが、
起動中の状態にラムディスクを戻すようにするRRAMDISKのフリーソフトがありました。
MSXパソコンはリセットしても消える部分は一部分ですから、
消えない領域にデータを保存する技があったりします。
そういえば…
イースのタイトルなどの画像をキャプチャしたりすることが流行りましたね。
6.その他の設定方法
詳しくはよ り高度なMSX-DOS2を参照してください。このへんにしておきます。
※RRAMDISKコマンドは1chipMSXでは動作しません。
■アセンブラソースの見方
ニーモニック以外にプログラムを補助するマクロ機能が加わっています。
逆アセンブラと違いアセンブラソースはアドレスをラベルになったり
アセンブラ、マクロを操作する命令、BASICなどの簡易言語などがあります。
ここでは代表的なコマンドを載せて置きます。
WHITE   EQU 15 
EQUate、イコールと呼びます。
SimpleASMなどでは
WHITE:   EQU 15
と書く場合もあります。
WHITEと書くと15という数値に変わります。
たとえば
LD A,WHITE

という記述ができますが、再定義する場合は
MAX        ASET  15
と、再定義できるコマンドもあります。
ORG 0D000H
オリジンは0D000Hにオブジェクトを配置します。
CAPSON: POP AF
これはジャンプポイントのラベルです。
PUBLIC   CIRCLE2
これはCIRCLE2というマシン語サブソースを作ります。
長いプログラムになる場合に分割して使うことができます。
EXTRN   CIRCLE2
これはCIRCLE2というマシン語サブソースをコールします。
DB      ’U-YAN’ 
データバイト。これはU-YANというデータを入れます。
プログラムエリアの後にワークエリアを加えて
U-YANと書き込んでください。DBはDEFBと書く場合もあります。
DS               16
データーストレージで16は16個データ用に空ける意味です。
■MSXパソコンの調べかた
数行でマシン語ソースができる。
もっとMSXを知りたいならば下のリンクを辿って見よう。
http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan
MSX2テクニカルハンドブックのwiki
さらにMSX2テクニカルハンドブックをユーザーが補足した
MSXテクニカルガイドブックもあります。
http://fetish-jp.org/ascat/index.htm
http://www.ascat.jp/index.htm
MSXでよくわからない事の参考になります。PDFファイルで全文読むことができます。
星印の見出しは 専門用語が多くMSX-DOS、モニタアセンブラの操作の経験がある
マシン語中級者向けに書かれています。
見出しが競合しているのですが、そろそろページを分割しないと(ボソ)
■ROMとRAM
これから、さらにMSXパソコンのシステムに入ってみましょう。
MSXユーザーの知りたい情報の1つでもあります!
スロットを操作してみるであります!よく考えないと後々とんでもないことになる部分です。
誰でもわかる程度に書きましたが、まだ不十分かもしれません。
ROM(リードオンリーメモリ)は読むことができるメモリです。
ROMには内臓ROMと外付けROMがあります。
外付けROMはと「ROMを差し込む(カートリッジ)ことで動作することができる」
画期的なものでした。
それがシンプルになってPCの中に差し込むカバーのいらないボードがあります。
このメモリに書き込むことをROMに焼くといいます。
MSXは今までROMにBASICインタプリタとRAMに動作に必要なデータの構成で
0000H~7FFFHまでがROM 32K、8000H~FFFFHまでがRAM 32Kでした。
■MSXのROMと拡張スロット
スロット切り替えどういうものでしょうか?
メモリスロットには読むだけのメモリ(ROM),読み書きできるメモリ(RAM)の
大きく分けて2つの種類があります。
スロット切り替えはメモリスロット0000-FFFFhの64KBを4つに
切り替えて使うことができます。
メモリ構成が
#0がROM,ROM,なし,なし
#1がRAM,RAM,RAM.RAM
とある場合
メモリスロットがROM,ROM,RAM,RAM とか
メモリスロットがRAM,RAM,RAM,RAM とか
考えられますね。、これをインタースロットコールと呼びます。
ね?ここまではわかるでしょう?
ROM(#0)とRAM(#1)の2つを例えましたが、実際には0#~3#の4つあります。
これが1つメモリスロットに16KBの4ページ(MSXの4セグメント)の構成で
説明すると例えばMAIN(#0)、MAIN(#0)、#3-0、#3-0
これがMSXのBASICの起動状態です。
そして、このメモリは
さらに基本スロットが4つですからROMかRAMを4つ置けます。
さらにさらにこの1つのスロットに4つのスロットを拡張できます。
Sherryさん口調のような感じですが^^;ほとんどSHEMの解説のような…
MAINで基本スロットの1番目、SUBで基本スロットの2番の拡張スロットの3番
とできます。これがMSX2+までの説明です。
■MSXのROM構成
MSX2を例にしてみます。4つのROMは0(ゼロ)を含む0,1,2,3です。
スロット0:MAIN-ROM(32K)
スロット1:ROMカートリッジ1
スロット2:ROMカートリッジ2
スロット3:RAM(64K)
MSXBASICの場合はMAIN(0),MAIN(0),RAM(3),RAM(3)になっています。
MSXBASICで使用できるのはRAMは通常32KBまでですが、
MSXBASICのワークエリアがありますので25298バイト程度と少ないです。
起動時に出る64KBはこのスロット3のRAMの容量を計算していますが、
実際にはRAM,RAMの32KBですね?残りはMAINですから通常では使えません。
この領域32KBを通称:裏RAMと呼びます。これを拡張するのがCALLMEMINIです。
そして、MSX2+になるとスロット3が4つに分かれて拡張されます。
スロット3-0:RAM(64K)
スロット3-1:SUB-ROM、漢字ドライバ、単漢字辞書
スロット3-2:なし、DISK-ROM(option)
スロット3-3:なし、MUSIC(option)
となります。
MSXグラフィックプログラミング講座:第6回スロット指定のしかた
http://www.geocities.jp/fullmsx2/u-yan/msxi-hi2.html
■メモリマッパとは
この1セグメント16KBを256個で切り替える方式で
64KBのDRAMを切り替えることで最大4096KBまで拡張できる。
MSXturboRは256KB、1chipMSXで2MB、1chipMSX改で4MB
になる。メモリマッパをアクセスするにはマッパBIOSを使う。
1chipMSXでは#3-0がRAMスロットになっている。
そのほかにメガROMはゲームで128KB(1メガ)、
512KB(4メガ)などがあります。これも切り替えて使っています。
■MSX常駐ソフトの可能性
MSX-DOS2でMSXのメモリ管理が大きく変わってきたこで
PC-9801などに見られた、いつでも起動可能な「常駐ソフト」
というアプリケーションが可能になりました。
Windowsでは右下のボリュームなどのお馴染みのアイコンですね。
MSXで特長のソフトといえば割り込みフックを使ったMGSDRVの音楽演奏機能です。
有効にすることでMSX-DOS2またはMSXBASICでもMGSデータを演奏することができます。
これは高度な例ですが、
例えばですね、MSX2ではメモリディスクのCALLMEMINI命令があります。
コールメミニ、正式にはコール、メモリ、イニシャライズでしょうね。
これを使えばMSXBASICのプログラムを裏RAMのメモリに保存できます。
SAVE"MEM:INC.BAS"という具合です。
要するに使っていないアドレスを使うようにすれば常駐のようにできます。
■MSXのメモリ管理の構成
MSXは0000H~FFFFHの64KBを4つを切り替える
スロット切り替え(インタースロットコール)と呼ばれる方法が一般的でした。(前述)
スロットは0000H~FFFFHの64KB以上の管理ができないことから
MSXturboR以降で16Kバイト(0000H~3FFFH)ごとの4つを切り替える
メモリマッパという別の方式が採用されました。
このメモリマッパは1セグメントで64ページの切り替えで64セグメント
メモリマッパRAM搭載量に限られますが、
64*4の最大256セグメント(4MB)まで扱うことができます。
これでスロット1かスロット2に64KB以上のRAMを差し込むことができます。
1chipMSXでも動作可能です。
■OSがない、ファイルがなくても起動できるパソコン
MS-DOSでAUTOEXEC.BATとかCONFIG.SYSがないと動かないと思ってはいないでしょうか?
プログラムのハードウェアの操作する部分ではトラック、セクタという単位で読み書きをしています。
フォーマットというのはMS-DOS方式で読み書きを行うということです。
ブートセクタにMSX-DOSありか?なしかの情報を書き込むエリアがあります。
ここで判別して、ある場合はMSX-DOS.SYSを読み込むというわけです。
ない場合はMSX-DOSではないとディスク異常になりますが、
指定がない限りは上から順に読み込んでいきます。
そこにマシン語プログラムで指定したセクタに移動するなどの事をすればいいのです。
このようなディスクの中を見る時にセクターダンプというものを使います。
ですからよく、ファイル名のような謎のデータがあったりします。
シフトJISだったりキャラクターデータだったりすることもあります。
ディスクファイルの構造、システムコールなどわかってくれば
自分だけのOSを作ることも夢ではないでしょう。
■COMファイルの解析しかた★
MSX-DOSはMSX版のMS-DOSです。
MS-DOSシステムを解析した経験があれば違いがわかります。
ファイルの読み書きできる逆アセンブラと言えば
開発環境は「ほおじゃあ」を使います。
http://sakuramail.net/fswold/tool.html
■解析元のマスターファイルを残す★
まず、U.COMならばU3.COMという仮ファイルにコピー
してマスターファイルU.COMを残しておきます。
このU3.COMが解析用のファイルになります。
■モニタアセンブラの操作★
このファイルを「ほおじゃあ」に読み込みます。
開始アドレスから逆アセンブラします。
これでアセンブラソースが表示されました。
■HOJAでソースの解析★
アセンブラの書式はプログラムの後にワークエリアが一般的なものです。
ここで話すワークエリアはMSXシステムワークエリアの話ではなくて
ユーザーが作ったワークエリアのことです。
ワークエリアは文字表示データなどプログラムに使用するデータです。
またソースの種類によっては絶対ジャンプで飛ばしている場合があります。
これは初期設定の処理をプログラム、データとモジュールにしている
プロセスごとにソースが分かれている場合を指します。
この場合、プログラムがどこのアドレスにあるか調べる必要があります。
ジャンプしたアドレスから逆アセンブラしないとプログラムかデータか判別がつきません。
アセンブラソースを出力したASMファイルのソースをチェックして書き換えたら、
M80、L80のアセンブラを実行します。
■バイナリファイルとアスキーファイルの違い★
MSXBASICから読み込む場合はバイナリファイルをアスキーファイルに読み込みます。
通常の方法では
0030cd2233441aで止まり後が読めません。
これを
0030cd2233441acdd3e83230c9
まで読み込めるようにします。解説すると
これも裏テクでEOF(1AH)をカットする方法です。
通常MSXのアスキーファイルは終了コードでファイルを閉じますが、
バイナリファイルは終了コードはありませんし、テキストファイルは終了コードがないです。
そこで終了コードを検出した場合、一発エラー回避でレコードを変えて読み込みを行います。
逆にヘッダ部を作りたい場合です。
ファイルの頭にタイトル名を入れたりして以後のデータを表示しないようにする
やり方もあります。
これは何かの時に参考にしてください。
■COMファイルをRAMに読み込むプログラムなら
SHEMまたはSUPER-Xでロードコマンドを使います。
開始番地0100HからA000H以降に変更します。
■1バイトごとに読み出す方法
アスキーファイルは256文字を越えるとDirect statement in fileというエラーに遭ってしまいます。
ですから、1バイトごとにA$=INPUT(1,#1)で、1つ1つ読み込みオペコードを表示していきます。
どうもEOFに引っかかり簡単にはいかないようです。
ひきつづきFile-R.BASを作っていきます。
■MSX-DOSはかなり奥が深い
MSX-DOSは かなり奥が深い ので簡単な設定を載せてみます。
うまい上達方法はMSX-DOSのシステムコールなどをうまく使った
MSX-DOSの補助的なプログラムを作り、それから本格的にやりましょう。
まずはMSX-DOSをマシン語から見てみることから始めましょう。
終わりにマシン語とはどんなマシン、ハードウェアにも存在しています。
他機種でCPU命令がわからなくても、こういう動作になるとか今まで知らなかった事が見えてきます。
今までパソコンがわからなかったが、プログラミングをすると何となくPCの不具合の見当がつきそうな事もあります。
BASICでマシン語はいかがだったでしょうか?
簡単すぎる説明で不足なところが多かったのですが、
こんな感じでテクニカルハンドブックなどでラーニングしてみてください。
マクロ入りソースは他のアセンブラには使えません。
とりあえず、心当たりの人を探して見ました。
http://www.interq.or.jp/white/white/fswold/data.html
http://sakuramail.net/fswold/data.html
Z80アセンブラ講座を青河さんがやってました。MSX-DOS TOOLSからやりたい人向けです。
■ブログなど
M80のソースを見ることができます。MSXのマシン語開発の雰囲気が味わえます。
KIKI氏のMSXの周辺機器関連の記事。2007 年8月の記事がちょうどいいです。
Dr.KIKKIE (KIKI) MSX DeuxLaque
MARIO-NET,NATSUME-NETのMSX記事。
MSX パソコン通信ログ 
■その他のZ80アセンブラ講座
Z80アセンブラ 講座入門編 SYSTEMAXさんのZ80アセンブラ講座
新日本プログラミ ング情報 Z80教室。リスト表など

■最後に
マシン語をマスターしたい方のためにページを作り始めました。
講座ではMSX-DOSからVRAMの使い方を解説します。
マシン語BASIC中級編からの続編でSCREEN5を使って
ビットマップに点を打つことからスプライトまで
ベテラン向けのかなり多くのテクニックを載せています。
「AレジスタだったりBレジスタだったりCレジスタだったりと」
「圧倒されてしまうんじゃ?」
そういう事はあまり、ありません。Aレジスタを使って
同じような反復する命令で書いていますので
テクニックと言ってもSHEMを使ったりBASICを使ったりと
プログラミングは少ないです。技術は道具と腕です!
プログラムは2の次でツールを使いこなすことが先です。
どこのマシン語ページよりも覚えやすいと思います。
ただ徐々にレベルが上がってくる感じがするでしょうね。
きっとマシン語の道も拓けると思います。
第18回まで解説しています。
2010/06/13現在

やってみましょう!MSXBASIC
http://www.geocities.jp/fullmsx2/u-yan/mon.html
http://www.geocities.jp/fullmsx2/u-yan/msxi-hi1.html
http://www.geocities.jp/fullmsx2/u-yan/mb-quick.html

ドナドナを聴きながら
http://www.geocities.jp/galfned/mou/mou.htm
http://www.geocities.p/galfned/xanadu/xanadu.htm











[機器][PC] General PAXON~統一規格MSX登場





[機器][PC] General PAXON~統一規格MSX登場
■統一規格への挑戦
私の知る限り,「始めての」パソコン統一規格は3つあります。最初がMSX,次がTRON,最後がSVR4です。
この3つはそれぞれ違う性格をもった「統一」なのですが,技術にうとい新聞各社はすべて「世界初のパソコン統一規格」として扱っていました。
今回から数回の予定で,真の意味で「初」であったMSXパソコンを取り上げる予定です。
■MSXの誕生
MSXが産声を上げたのは1983年の秋でした。
当時のパソコン業界は混沌としており,各社がそれぞれに工夫を凝らしたハードを作っていました。
当時のパソコンはスペック性能よりもむしろアイディアの良さが競われており,たった1点を除いて性能が同じのパソコン,などというのは山ほどありました。また,それを逆手にとって,さまざまな機能をチップに収めたLSIなどがたくさん作られていましたので,それを組み合わせただけのパソコンも多数ありました。
詳しい歴史はこの連載の趣旨から外れますので取り上げませんが,規格統一を望む声が上がったのは当然といえましょう。しかも,その声はユーザーサイドよりもソフトメーカー各社から強く出ていました。同じような機械がたくさんあると移植に手間がかかり,効率が悪いからです。
そして,ついに当時からすでに大手ソフトメーカーであったマイクロソフト社と,日本のコンピューター界を牽引していたアスキーの共同規格でMSXが誕生することになります。
MSXはマイクロソフトのBASICを搭載し,CPUにZ80,VDPにTMS9918,音源にAY-3-8910を搭載したコンピューターの規格で,これらのLSIの組み合わせは,当時のパソコンでは最も平均的なものでした。
当時,同じ様な構成の機械としては,SC-3000や,M-5などがありました。
また,CPUは違うものの,ぴゅう太,MAX MACHINEなどもこの仲間と思われます(情報不足で自信はないが)。
ただ平均的でなかったのは,拡張性を最大限に考慮していたことです。これは,統一規格を作る必然性から,絶対必要なことでした。当時のパソコンはメーカーの個性を出したものが多く,統一規格・・・すなわち,個性のないパソコンなどというのは売れるとは思えませんでしたから,メーカー毎に工夫を凝らして拡張出来る余地を残す必要があったのです。
MSXという名称も,マイクロソフト社のMSに,無限の可能性(拡張性)を意味する未知数Xをつけたものだとされています。
GENERAL PAXON広告  
MSX初期の名品「PAXON」。
家庭用テレビを使用できるMSXで,あえて専用モニターを使用。現在のような「モニタ一体型」ではなく「パソコン内蔵テレビ」と,高級家電品としてMSXを売り込んでいた。
MSXの頃は(現在でもそうだが)パソコンに拒否反応を示す人が多く,MSXは統一規格ゆえに「家電品としてのパソコン」として注目されていた。
■MSXのメモリ構成
MSXの最大の特徴は,地味ながらもよく考えられたメモリシステムでしょう。
メモリはすべてスロットの形で用意され,スロットは4つ用意されていました。
これらのスロットは,さらに4つに拡張することが出来ました。これにより,スロットは最大16個となります(拡張したスロットは信号のタイミングが若干変わるため,動かない周辺機器も多かったのですが)。
スロット1つあたり,64Kbyteのメモリ空間を持っていましたから,MSXは全体で1Mbyteものメモリを持てることになります。これは,当時としては驚異的なメモリ搭載量でした。
もっとも,CPUであるZ80は64Kbyteのメモリ空間しか持っていません。
そこで,メモリは64Kbyteを切り替えて使用することになります。メモリ全部を一遍に切り替えたのではプログラムの整合性が取れずに暴走してしまうので,メモリは16Kbyteづつ4つのページにわけられ,ページ単位で切り替え可能となっていました。
ここでは最後のスロット/拡張スロットのみを詳しく書いていますが,他のスロットも構成は同じです。また,拡張スロットを使わずにスロットからページを参照することも出来ます。
16Kのページが4枚64Kで1スロット,4つのスロットがさらに4つに拡張できるため,全部で16スロット,64K*16で1024K = 1Mbyteのメモリ空間となります。
BASICやBIOS(BasicInputOutputSystem)のROMは,ページ1,2に配置されていました。
ユーザーメモリはページ1?4のどこにでも配置できましたが,BASIC使用時は3,4しか使用出来ないために,初期のMSXでは32KのRAMをページ3,4に配置するのが一般的でした。
MSXの特徴であるカートリッジのゲームなども,システム側からはスロットにROMメモリが拡張された形で認識されます。
MSXは立ち上げシーケンスのなかで,全てのスロットの,全ての拡張スロットの,全てのページの先頭2byteを調べ,これがアスキー文字の「AB」だった場合にはそのページを呼び出す決まりになっていました。
カートリッジに挿されたものが拡張ハードウェアであった場合はこのプログラムで初期化/デバイスドライバの登録を行い,ゲームなどの場合にはプログラムを実行します。これにより,MSXでは現在でいうPlug&Playを実現していました。
■MSXの個性
最初に述べたように,MSXを成功させるためには,それを作ってくれるメーカーが独自の特色をだせる必要がありました。当時新しくパソコン業界に参入しようとするメーカーは,すなわち「他社とは違うことがしたい」から入ってくるのが普通でしたから,互換性という言葉はかえって邪魔なものだったのです。
MSXはスロットに独自のハードウェアを搭載することで,この条件を満たしていました。出来合いのコンピューターを買ってきて,そこに部品を一つ付け加えるだけでそのメーカー独自のコンピューターが作れるのです。これに家電品メーカー各社が飛びつきました。
多くのメーカーは内蔵ROMにさまざまなソフトを搭載するにとどまりましたが,ソニーは数色のカラーバリエーションを発表し,コンピューターにファッション性を持たせようとしました。
YAMAHAはFM音源や音声合成,ミュージックキーボードなどのハードウェアを拡張出来る専用スロットを作成しました。このスロットはどうも拡張スロットに特殊なハードウェアを接続し,コネクタ形状を通常のコネクタとは変えて外に引き出したものだったようです。
富士通は同社のパソコンFM-7と接続できるようにしました。接続した場合は,ゲームに適したMSXのハードウェアをFM-7の高速なCPUで操作することが出来るようになり,メモリも拡張メモリとして無駄にならないようになっていました。
日立もカセットレコーダーと手書き文字入力パッドを備えたMSXを作っていますが,この文字入力パッドはアルファベットしか入力できなかったようです。
このように,MSXは出来合いのコンピューターを安価に用意した上で,さらにその上に拡張が可能で,しかもそれによって互換性が失われることはない,という,非常に巧妙な作りをしていました。
しかし安価なことを最優先したために,画面周りの性能が特に劣っていました。ゲームに使うには色数が足りなく,実務に使うには解像度が足りない・・・
この悩みはMSX2が発売になるまで続くことになります。
MSX初期の名品,ヤマハの「YIS503」。
ヤマハ独自のカートリッジスロットを持ち,音楽関係の拡張機能を豊富にしていた。
この独自スロットはのちに別売りカートリッジで他のMSXでも使用できるようになり,急速にYISは存在意義を失うが,「楽器メーカーが作った,楽器としてのパソコン」は他に例がないのではなかろうか。
■MSXの周辺ペリフェラル
MSXの2回目は,周辺ペリフェラルの話をしようと思います。MSXに使用されたチップは,どれも廉価なもので,「MSX独自の」特徴といえるほどのものはありません。しかし,それは裏を返せば当時のパソコンに共通して見られる仕様でもあるのです。
VDP・TMS9918
MSXに使用されたVDP「TMS9918」は,決して高性能ではありませんが,少ないメモリで多くの色数を出せる,優れたものでした。
また,このチップではスプライトも使用出来るため,ゲーム用途に性能を発揮します。MSXがパソコンとしてよりも「ゲーム機」として捉えられ,低い地位に甘んじたのは残念なことですが,どちらにせよ当時のパソコンの(そして現在も)使用目的の多くはゲームであったことは否めません。その点でこのVDPを選んだのは間違いではなかったと思います。
TMS9918は,CPUのメモリ空間とは別に独自のメモリ空間を16Kbyte持ち,CPUからは周辺デバイスとしてI/Oポートを使ってアクセスされるように設計されていました。
このメモリ空間は通常全てRAMで埋められ,文字コードだけでなく文字フォントもここに置かれました。そのため画面上の文字フォントは変更が可能で,絵にしてゲームなどに利用することも出来ました。(このような方式の画面をProgramable Character Generator : PCGと呼びます)
また,スプライトのドット絵データや表示位置,色のデータなど,画面表示に関するデータはすべてVRAMに置かれました。
TMS9918の基本的な解像度は256×192dotで,表示色数は16色でした。この解像度は当時でも低めの部類に入りましたが,家庭用テレビを使用することを考えると妥当な数値だったと思います。また,16色という色数はデジタル8色が同然だった当時としては,多い色数でした。
TMS9918には4つの画面モードがありました。それぞれ,テキストモード,マルチカラーモード,グラフィック1モード,グラフィック2モードと呼びます。
テキストモードは,その名のとおりテキストの表示を目的としたモードです。画面には横40文字×縦24行のテキスト表示が可能でしたが,1文字の大きさは6×8dotという中途半端なものとなるため,アルファベットはともかく,ひらがなの表示には向きませんでした(注:MSXの標準キャラクタセットにはひらがなが含まれていた)。
そのため,ひらがな混じりのプログラムでは,ひらがなの端が切れて読みにくかった覚えがあります。
マルチカラーモードはいわゆるローレゾグラフィックです。他のモードの4×4dot分の大きさのドットに16色中の任意の色をつけて絵が描けます。このモードでは1dotを4bitで表わしており,1dotを1bitで表わす他のモードと比べてみるとドットの大きさが4倍であることの正当性がわかります(縦方向まで大きくすることはないのだが)。
グラフィック1モードは,グラフィックとは呼んでいますが,MSXの標準テキスト画面です。テキストモードとの違いは,横32文字になり,その代わりに1文字の大きさが8×8dotになることです。
このモードでは,キャラクタセット8文字毎に文字色・背景色を変更することが可能でした。文字は全部で256文字ありますから,32種類のグループが出来ることになり,PCGで自由な文字を作れることと組み合わせて絵を描くことも出来ます。これがグラフィックモードと呼ばれる由縁でしょう。
写真はグラフィック1モードで作られたと思われる初期のMSXゲーム,「MAPPY」(ナムコ)。部品が全て単色で表現されているのがわかる。
グラフィック2モードは,正真正銘のグラフィックモードです。とはいっても,やはりPCGを利用して絵を描きます。
このモードではPCGのキャラクタ定義数が,256個から一気に3倍の768個に増えます。ただし,画面は上段,中段,下段の3段に別けられ,それぞれに256個という形です。
それでも,これで画面の全てを,別々のキャラクターで覆い尽くすことが可能になります。あらかじめ覆い尽くした後でPCGを変更することで,疑似的にグラフィック画面とすることも可能です。
テグザー
写真はグラフィック2モードで作られたと思われる,「TEXDER」(ゲームアーツ)。敵キャラクタに影や光がついていたり,自分のロボットが多色で描かれている。
このモードでのPCGは,1ライン毎に前景色・背景色をもつことが可能でした。つまり,画面上では横8dot毎に任意の2色が使えることになります。これは4bitの色情報2色分をまとめた1byteと,横8dotのbit毎にどちらの色を使うかを示す1byteの,合計2byteの情報で制御されていました。
この2色を超える色を使うような複雑なグラフィックでは,いわゆる「にじみ」「色化け」などと呼ばれる現象が起こりますが,そうでない限り,ドット当たり2bitで16色を出せることになります。これはメモリが高価だった当時,非常に優れた方式だったと思います。
MSXの初期のころはともかく,使いこなされてからはほとんどのゲームがこの「グラフィック2」モードで作成されることになりました。しかも,それは使用法として想定されたような「グラフィック」ではなく,多色PCGとしての使用でした。
この方法も,初期のころは上・中・下の各256個のキャラクターに同じ絵を割り振り管理を楽にしていたようですが,使いこなされたころにはそれぞれの段に別々の絵を割り振るようになってきます。
このような方法では上下方向にキャラクターを移動させるのは難しく,必然的に多くのゲームは「グラディウス」のような横スクロールものになっていきます。
しかし,私が覚えているなかでいちばんグラフィック2モードの特徴を巧みに利用していたのは,コナミの「F1スピリット」でした。
このゲームは縦スクロールのカーレースゲームだったのですが,上段,中段,下段と風景が通りすぎるあいだに,絵が微妙に変化して視差を感じさせるようになっていました。これは同じキャラクターコードでも画面の上中下段でキャラクターが変わってしまうことを逆手に取った演出で,画面は上空からカメラで撮影しているような実在感をもっていました。
スプライト
以上の4つの画面モードのうち,テキストモード以外ではスプライトが使用出来ます。スプライトは16×16dot,又は8×8dotの単色のものが32枚表示でき,横には4つまで並べることが出来ました。(4つを超えると番号の若い方から4つだけ表示される)
また,特殊機能としては2倍の拡大,衝突判定がありましたが,グラフィックとのプライオリティ等はありませんでした。
スプライト機能はTMS9918の大きな特徴ではありますが,スプライト自体に工夫はそれ程見られませんので,今は詳しく扱いません。(MSX2の時に詳しくやりましょう)
後日追記 2013.7.29
MSX・ファミコン 30周年記念で,GRAPHIC2 とスプライトの詳細を説明する記事を書きました。
基礎技術,ファミコン編も含めて3本だてです。上記説明で「もっと詳細を知りたい」と思った方や,当時のゲームなどで「どうやって処理していたのか」と疑問がある方は読んでみてください。
PSG・AY-3-8910
AY-3-8910というのは,当時最も使われていた音源チップです。VDPは独自に開発しても音源はこのチップを使っているパソコンがたくさんあったことからも,普及の度合がわかります。(あるいは,見た目ですぐに違いがわかるVDPほど,音源が重視されていなかったのかもしれません)
AY-3-8910には3チャンネルの発声器があり,同時に3音までの和音を出すことが出来ます。これらの発声器は独立に4096段階(8オクターブ)の音階と,16段階の音量を指定することが出来ました。
このほか,3チャンネルに共通したものとして,ノイズ発生器とエンベロープ機能がありました。
ノイズ発生器はその名のとおりノイズを発生するもので,どこか1チャンネルを通して出力されることになります。ノイズはいわゆる白色雑音ではなく,平均周波数をもつことが出来ます。
エンベロープ機能は連続的に音量を変更する機能で,8種類の波形から変化のパターンを選び,変加速度を設定することで,さまざまな楽器の音に音色を似せることが出来ました。
このチップには音源以外に汎用入出力ポートが備えられており,MSXではこのポートをジョイスティック端子として利用していました。
このジョイスティックポートの規格自体はATARI社が作成したもので「アタリジョイスティック」規格として有名ですが,MSX規格ではこの概念をさらに押し進め,パドルやタッチパネル,ライトペン,マウス,トラックボールまで接続出来るようにしました。
そのため,現在ではこれらの機器は「MSXジョイスティック」「MSXマウス」などと呼ばれています。(FM-Townsでもこの規格が採用されていたため,さらに「Townsマウス」などとも呼ばれますが)
たった3チャンネルの単純な音源ではありますが,工夫次第で多彩な音を出すことも可能です。あえて2つのチャンネルで同じ音をだすことで,厚みのある音にしたり逆に透明感のある音にしたり…というような技法も良く使われました。
MSXに限らず広く使われていた音源だからこそ,その使いこなしにもさまざまなテクニックがありました。私は音楽に疎いため,このチップの使いこなしについては残念ながらあまりお話しできませんが,今でもその独特の音色が好きだ,という人もいるくらいの音源です。
PSGについては,後藤さんのMSXお達者倶楽部に詳しいです
 …っていうか,ページ開設時にリンクさせてもらい,その後たびたび行方不明になるものを,2012.3に発見,再リンク。
彼のページのプロフィールに書いてある「MagicalKid Wiz」ってのは僕が聞いたものですね (^^;
■MSXのBIOSシステム
MSXのBIOS(Basic Input Output System)は,8bit機だとは思えないくらい充実した作りとなっています。ここまでBIOSを充実させた理由はいくつかあると思いますが,MSXが「共通規格」であることが一番の理由なようです。
このBIOSには,MSXの規格で完全に定められているはずの入出力ポートを,単に「アクセスする」だけの機能も用意されていますから,これらの機能は将来規格が変更になったときでも「共通性」を確保するためだったのでしょう。
また,BIOSによって機能を提供することで,新しい周辺機器が開発されたときにもBIOSを拡張するだけで対応出来るメリットもあります。
たとえば,「マウス」「トラックボール」「ライトペン」「タブレット」はいずれも同じ「ポインティングデバイス用BIOS」を呼び出すことで扱えました。これ以外の新しいデバイスが開発された場合も,このBIOSを書き換えることで互換を保つことが出来ます。
BASICもBIOSを呼び出すことで動作しているので,BIOSの変更はMSXで動作する全てのプログラムを変更することになります。
BIOSはアドレス0000から4byte置きにエントリされており,機能に応じたアドレスを呼び出すことで実行するようになっていました。実際にはこれらのアドレスには無条件ジャンプ命令が並んでいるだけなのですが,これも将来BIOSを書き換える場合にアドレスがずれないようにするための工夫です(そして実際に,MSX2になったときにBIOSは書き換えられました)。
■MSX-DOS
MSX-DOSの存在も忘れるわけにはいきません。
MSX-DOSは(名前も似ている)MS-DOSの8bit版というような見た目をもっています。
実際にはMSX-DOSはCP/MというOSを拡張したもの(CP/Mのプログラムを実行可能),MS-DOSはCP/Mを16bitに移植したものなので,どちらが本家やらわかりませんが。
MSX-DOSとCP/Mの違いは,MSX-DOSがフォーマット形式にMS-DOS形式を採用したことです。MSX-DOSの開発時にはすでにMS-DOSは標準フォーマットの座を確立していましたから,これは正しい選択であったと言えます。
しかし問題もありました。マイクロソフトとしては,会社でMS-DOSで作成したファイルを,家に帰ってMSX-DOSで修正する・・・などという使用法を想定していたようですが,MS-DOSはこの後すぐにバージョンアップしてフォーマットが拡張されましたし,日本においてはMSXで漢字を扱う方法を定めなかったなどの問題があり,思惑通りにはいかなかったようです。
MSXにディスクドライブを拡張するとDISK-BASICが使用可能となりましたが,このBASICのフォーマットもMSX-DOSと同じ形式でした。
現在ではこれはあたりまえのように感じますが,DOSの有用性が認識されていなかった当時としては画期的なことでした。(当時の98では,DOSとBASICは違うフォーマットでした)
MSXにおけるMSX-DOSの導入は早すぎたようで,本当にDOSが活用されるようになるまでにはながい時間が必要となります。MSX-DOSが表舞台にたつのは,MSX2後期?MSXturboRの時代まで待たなくてはならないのです。
H25カタログ
MSX後期の低価格機の1つ,日立のH25。メモリ32Kで¥34800.-
日立のHシリーズはユニークな設計をしており,H1ではキャリングハンドル付,H2ではカセットレコーダー内蔵,MSX2となったH3では手書きタブレットを標準装備していた。
しかしH3よりも後に登場したH25ではMSXに戻り,低価格にするためか無難な構成となっている。なお,この後H25よりも安く,しかし高級感を出したH50を発売してHシリーズは完結する。
MSX発売から普及まで
MSX発売当時は,「共通規格」という意味が理解されなかったこともあり,MSXはなかなか普及しませんでした。理由のひとつには「おもちゃのコンピューター」といった認識が広まってしまったことも挙げられるでしょう。
また,MSXを発売していたメーカーは独自色を出すためにさまざまな拡張を施していましたが,この拡張のせいで必要以上に値段が高くなっていたのも普及を妨げた原因のようです。
MSXの普及に失敗したアスキー/マイクロソフトは,わずか2年間で「共通規格」の拡張であるMSX2を発表します。これには発表当初から意見がわかれ,機能が上がったことに対する賛成派と,共通の意味が薄れることに対する反対派が現われました。
消費者の嗜好が2つにわかれれば,供給するメーカーも2つにわかれます。いくつかのメーカーは高級路線としてMSX2を作り,いくつかのメーカーはMSXを作り続けることになります。
状況だけを見ると悲劇的ですが,これが効を奏しました。MSXを作るメーカーはどんなに機能を拡張してもMSX2には追い付けないので,機能を切り詰めて安い機械を発売することになります。しかも,作るメーカーが複数あるので,競争が始まります。MSXの値段はどんどん下がり,普及を助ける事になりました。
そしてついに勝者があらわれます。CASIOのPVシリーズ,そしてMX-10がそれでした。
PVシリーズには,PV-7,PV-16という2つの機種があります。PV-7はRAM容量を8Kに抑えることで29800円という破格値で発売され,人気を呼びました。
しかし8Kではカセットテープのソフトはおろか,ROMカートリッジのゲームにも動かないものがありました。そこで,値段はそのままにメモリを倍の16Kに増やしたのがPV-16です。
その後,メモリ量はそのままに値段を19800円と下げたMX-10が発売されます。MX-10はカートリッジスロットを1つしかもたず,しかもそのスロットは+12Vを必要とする拡張機器が接続出来ないという,簡略化されたものでした。
プリンタ,RS-232C,DISKなどは当然もたず,カセットインターフェイスは簡略化された特殊なもの,キーボードはゴム製という仕様でしたが,ジョイスティック端子だけはちゃんと2つあり,しかもキーボードの上にジョイスティックの役割を果たすキーまで配置されていました。
CASIO MX-10外箱
右手にある青いカーソルキーのようなものは実はジョイパッドであり,カーソルキーはその上に横一列に並んでいる。このことからも,カーソルキーを駆使するようなプログラム作成・ワープロなどに使用する機種ではなく,ゲーム機なんだという主張がうかがい知れる。
なお,ジョイスティックのボタンは左下に2つついている,やはり青いボタンである。
つまり,MX-10はMSXの格好をしたゲーム機なのです。この割り切りが安さの秘密でしたが,それでもMX-10は爆発的なヒットとなります。
個人的には,このヒットの裏には,ちょうどこの頃NEOSが発売した「MSX2拡張アダプタ」の存在があるような気がします。
このアダプタはMSXをMSX2に拡張するというとんでもないもので,MX-10とMX-10拡張ボックス(これを使用するとカートリッジスロットが増え,拡張機器も接続出来た)と拡張アダプタを足しても,MSX2を買うのと同等の値段でした。そのため,皆が「今はMSXを使っておいて,将来拡張しよう」と考えたのではないでしょうか?
しかし,ROMゲームで遊ぶのが精一杯でプログラムに向かないMX-10は,買ったもののもてあます人も多かったようです。私もいらないという友人から3千円で購入したのがMX-10との出会いです。
そして,「拡張によって,市販より安くMSX2を入手できる」ということは,MSX2も切り詰めれば安く出来る事を意味します
。実際この半年後にはMSX2は劇的な値下げによって一気に底辺を広げ,やっと「共通規格」としての面目を保つことになるのです。
(ページ作成 1996-10-13)
                            
魔法使いの森
https://www.wizforest.com/
https://www.wizforest.com/OldGood/