MSX関連の書籍を収集中!
8ビットパソコン MSX関連の書籍を地道に収集しています。
大きめの古書店でも見つからないため、ヤフオク等の出品をチェックしています。
欲しい書籍は高騰して買えませんので、比較的安く出回っているものを落札しています。
MSXが出回ったのは1983年頃からですから、30年前以上の書籍となります。
その一部ご紹介・・
当時のアイドル、松田聖子を全面に出している入門書
中身を見ると当然、聖子ちゃん本人が執筆しているわけでもなく、増してやMSXを使ったりしていません。
言葉使いが「・・・なんだから。」と女の子っぽくはなっていますが。
聖子ちゃんの書籍もそうですが、
当時のコンピュータ書籍、入門書と言えども、ほぼプログラミング解説がメインです。
フロチャートや、アルゴリズムの解説なんかも記述されています。
MSXを含め、当時のパソコンは起動するといきなりBASIC言語の入力待ち状態ですので、
「コンピュータの利用 = プログラミングを組んで利用する」
でした。
入門書を片手に、記載されているプログラムソースを、ちまちまと入力して
・意味は分からないけど、とりあえず、動かしてみる
・動いた挙動から、コマンドの意味と使い方を理解する
・ちょっと改造して(アレンジ)して、試行錯誤してみる
・応用してみる
みたいな感じで勉強(遊び?)していました。
トライ&ゴーに適したプログラミング言語のBASIC、コンピュータを学ぶには最適な言語でした。
プログラミングの入門・解説書としては、当時の書籍の方が充実して分かりやすい感があります。
内容的には今でも十分、プログラミングを学べます。
MSX、復活して欲しいなぁ
« 新型コロナウイルス対策のフェイス シールドを入手しました | トップページ | Arduino IDE 1.8.13が公開されています »
「日記・コラム・つぶやき」カテゴリの記事
- NHK R1 文芸選評 短歌 テーマ「猫」(*´ω`*)(2024.04.06)
- やはり、C言語は難しい(2024.03.15)
- 明けましておめでとう!(2024.01.01)
- 2023年もあっという間に最終日(2023.12.31)
- Pythonのpandasで分散の値を求めた時の疑問(メモ)(2023.03.10)
「書籍・雑誌」カテゴリの記事
- MSX関連の書籍を収集中!(2020.06.17)
- 書籍「Cの延長としての C++ 入門」購入、大変参考になりました(2020.04.07)
- 電子工作マガジン 2019年 秋号(2019.10.01)
- 久々にコンピュータ技術情報雑誌「I/O」を買いました(2019.09.22)
- FUSION-C、MSXの開発環境? (2)(2019.01.21)
「MSX・レトロPC」カテゴリの記事
- キーボードの黄ばみ落とし(2021.01.28)
- MSX関連の書籍を収集中!(2020.06.17)
- 東芝 MSX PASOPIA IQ(HX-10D)を入手しました(2019.09.18)
- SCART・HDMIコンバータを追加購入しました(2019.07.29)
コメント
« 新型コロナウイルス対策のフェイス シールドを入手しました | トップページ | Arduino IDE 1.8.13が公開されています »
初めまして。
ぶらぶらと検索していたら、辿り着きました。
BASICでゲームを作ってはいますが、1ステージ終了後に次のステージをディスクから読み込ませる命令文って分かりますか?
BLOAD で良いんだろうか?
投稿: ゴン太 | 2021年4月13日 (火) 06時31分
ゴン太さん
BLOADで、指定したアドレスでデータを読み込むの良いと思います。
その他にMSXにはファイル操作を行うDISK BASICというコマンド群があります。
・MSX DISK-BASICの命令
http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan?page=1%2E2+MSX+DISK%2DBASIC%A4%CE%CC%BF%CE%E1
指定したファイル内のデータアクセスする方式として、
シーケンシャルアクセスとランダムアクセスの2つのタイプの形式があり、どちらも
指定したファイルからデータを読み込んで変数に格納することで出来ます。
INPUT命令で、指定した変数にシーケンシャルにデータを読み込むのが簡単ですね。
書き込みはPRINT命令です。
画面への出力、入力と同じ感覚で、ファイルへの入出力が出来ます。
または、ファイルを固定長データの固まりとみなして、
ファイル内の任意の位置のデータを読み書き(ランダムアクセス)の場合は、
PUT、GETを使います。
投稿: たま吉さん(管理者) | 2021年4月13日 (火) 08時45分
BASICだと
10 LOAD"ファイル名",R
で良いようです。
BLOADはマシン語の命令文らしくbad file のエラーが出ました。
ファイル名の後のRは、
次の読み込み後、RUNという即実行と言う意味らしいです。
これでアドベンチャーゲームとかも作れそうです。
投稿: ゴン太 | 2021年4月13日 (火) 18時18分
ゴン太さん
ゴメンナサイ、早とちりして回答してしまいました。
てっきり、プログラムとデータを分離した構造で構築し、ステージデータ(マップ等のデータ)のみを読み込んで
次ステージに進む方式と思い込んで回答してしまいました。
私の頭の思考がプログラムとデータの分離前提になっちゃってました(;´Д`)
今動いているプログラムに上書きして、次ステージ用の別プログラムを丸々読む場合は、
10 LOAD"ファイル名",R
で良いですね。
BLOADはマシン語含め、RAMまたはVRAMの指定アドレスにバイナリデータを読み込むことが出来ます。
そのデータをステージデータとして利用する方法もあります。
これも、プログラムとデータを分離するプログラム構造前提の回答でした。
ちなみにBLOADの利用は、アドベンチャーゲーム的には、
VRAMの今表示しているページとは別ページに画像を読み込んだ後、メインのページに画像を転送して、
画像を切り替えたり、簡単なアニメーション表示なんかも出来ます。
投稿: たま吉さん(管理者) | 2021年4月13日 (火) 19時57分
BLOADにはアニメーション表示も出来るんですね。
回答ありがとうございます。
投稿: ゴン太 | 2021年4月14日 (水) 23時26分
BASICでBLOADは出来ないと言うことですかね?
RPGでいうHPやMPを持ち越すことは出来ないのでしょうか?
やはり、マシン語は分かりません。
投稿: ゴン太 | 2021年4月23日 (金) 07時49分
ゴン太さん
> BASICでBLOADは出来ないと言うことですかね?
BLOAD命令はBASICのプログラム内でも、もちろん実行出来ます。
マシン語を使う必要は無いです。
【書式】
BLOAD "<ファイル名>" [ {[,R]|[,S]}[,<オフセット>] ]
バイナリデータ(マシン語プログラムを含む)や画面データを、ファイルから読み込みます。
BLOAD命令は、単にバイナリデータを指定したアドレスにロードする命令です。
LOADのように、プログラムが置き換わったりせず、
マップデータだけを、メモリ上にロードしたり出来ますね。
Sオプションを使うと、画像ファイルを読み込んで、画面に表示出来ます。
> RPGでいうHPやMPを持ち越すことは出来ないのでしょうか?
やり方は色々あると思います。
LOAD命令の場合、プログラムが置き換わって変数も初期化されるので、
プログラム間でデータを受け渡す必要がありますね。
方法としては、
①RAM領域に一時的に保存する。
②フロッピディスクに一時的に保存する。
①の場合
LOAD命令を実行する前に、POKE命令で特定のRAM領域にHP、MPの値を保存しておいて、
LOAD命令実行後にPEEK命令で、RAM領域に保存したHPとMPの値を読み込めばよいです。
②の場合
LOAD前にPRINT命令でHP、MPの値をフロッピディスク上の指定したファイルに保存し
LOAD後、INPUT命令でファイルからHP、MPの値を読み込みですね。
他にも方法があると思います。
後ほど、時間が取れ次第、サンプルプログラムを作ってみます。
投稿: たま吉さん(管理者) | 2021年4月23日 (金) 09時27分
ご回答ありがとうございます。
一度、違うファイルで保存する事が出来れば、
アドベンチャーゲーム風のの野球ゲームが作れるかなと思っています。
「筋書きのないドラマ」なんで得点が入ると得点が一時的に保存できれば、
攻守変わった時など表示出来るなと思うのです。
投稿: ゴン太 | 2021年4月24日 (土) 17時36分
ゴン太さん
ファイルを使った、プログラム間でデータをやり取りする方法をご紹介します。
例として、変数HP、MPの値を渡します。
データを渡す側: PRG01.BAS
10 HP=1200
20 MP=300
30 'save
40 OPEN "HPMP.dat" FOR OUTPUT AS #1
50 PRINT #1,HP,MP
60 CLOSE #1
70 LOAD "PRG02.BAS",R
データを受け取る側: PRG02.BAS
10 HP=0
20 MP=0
30 'load
40 OPEN "HPMP.dat" FOR INPUT AS #1
50 INPUT #1,HP,MP
60 CLOSE #1
70 PRINT "HP:";HP;" MP:";MP
ファイル "HPMP.dat" はデータ用のファイルです。
PRG02.BASは、データ用ファイル"HPMP.dat"から値を読んで変数HP、MPに設定しています。
投稿: たま吉さん(管理者) | 2021年4月24日 (土) 19時36分
ご回答ありがとうございます。
早速打ち込んでみました。
主人公が死んだ後の復活までの処理としてのプログラムで感動しました。
改めてBASICで色々出来るんだなと思いました。
投稿: ゴン太 | 2021年4月27日 (火) 18時36分
最近、アクションゲームを作っております。
ステージクリア毎に挿絵を入れて次のステージという具合です。
プログラムを隠す命令文はあるのでしょうか?
投稿: ゴン太 | 2021年5月18日 (火) 08時44分
ゴン太さん
> 最近、アクションゲームを作っております。
いいですね~
> プログラムを隠す命令文はあるのでしょうか?
"プログラムを隠す"がどういうことなのか分かりません。
フロッピディスクでゲームを配布した場合に、プレーヤーがフロッピディスク内のプログラムを
見れないようにする感じでしょうか?
実行しているプログラムをSTOPキーで中断して、list命令でプログラムが見れちゃうのを
防ぐみたいな感じでしょうか?
投稿: たま吉さん(管理者) | 2021年5月20日 (木) 20時18分
>実行しているプログラムをSTOPキーで中断して、list命令でプログラムが見れちゃうのを
防ぐみたいな感じでしょうか?
そうです。
防ぐような事が出来るのでしょうか?
投稿: ゴン太 | 2021年5月23日 (日) 21時51分
ゴン太さん
すぐに思いつく方法は、ON STOP GOSUB命令です。
CTRL+STOPキーを押しても、プログラムを終了を出来なくし、
LISTコマンドの実行を出来なくします。
例:
---
10 ON STOP GOSUB 5000:STOP ON
<アクションゲーム 本体>
・・・・
5000 BEEP
5010 RETURN
---
例では、CTRL+STOPキーでプログラムを終了しようとすると
5000 行のサブルーチンを実行します。
ビープ音が鳴るだけで、プログラムは中断されません。
一度、動かすとプログラムが終了出来ないの注意が必要です。
5000行の処理を、特定のキーワードを入力したらプログラム終了するなどして、
作者のみが終了方法を知っているみたいな感じも良いかもしれません。
ほかの方法としては、LISTコマンドのフックを書き換えて、
LISTを実行しても何もしないようにする方法です。
フックエリア H.LIST(FF89H) : BINTRP LIST
上記のフックを変更します。
例:
10 POKE &HFF89,&hC3:POKE &HFF8A,&hC0:POKE &HFF8B,0
<アクションゲーム 本体>
・・・・
10行を実行すると、以後LISTを実行するとビープ音が鳴るだけで何もしません。
元に戻す場合は次のコマンドを実行します。
POKE &HFF89,&hC9
次のプログラムを実行後、LISTコマンドを実行すると、リストが表示されません。
10 POKE &HFF89,&hC3:POKE &HFF8A,&hC0:POKE &HFF8B,0
20 PRINT "Hello,World"
投稿: たま吉さん(管理者) | 2021年5月24日 (月) 15時15分
早速の回答ありがとうございます。
それと電源をオンと同時にディスク立ち上げの命令文もあるのでしょうか?
今までの質問を参考に完成しましたら、お礼という意味も込めてディスクをお送りしたいのですが。感想などを戴けたらと思います。
投稿: ゴン太 | 2021年5月24日 (月) 19時45分
ゴン太さん
MSXでは起動時にフロッピディスク内に
AUTOEXEC.BAS
というファイルがあると、それをロードして実行します。
AUTOEXEC.BASで実行したいプログラムを記述すると良いと思います。
10 RUN "MYGAME.BAS"
投稿: たま吉さん(管理者) | 2021年5月25日 (火) 08時33分
ありがとうございます。
後半をどう終わろうか模索中です。
投稿: ゴン太 | 2021年5月26日 (水) 06時49分
度々すみません。
X68000の方も扱えますか?
投稿: ゴン太 | 2021年5月27日 (木) 13時02分
ゴン太さん
X68000については、全く分からないです。
投稿: たま吉さん(管理者) | 2021年5月28日 (金) 08時27分
ふと思いついたゲームですが、
スプライト32個で鬼ごっこのようなゲームって重くなりますよね?
投稿: ゴン太 | 2021年6月 2日 (水) 07時59分
お久しぶりです。
質問ですが、
MSX2+FDDでもパナソニック製は起動して、ソニー製は起動しないということがあるのでしょうか?
投稿: ゴン太 | 2021年12月 7日 (火) 18時52分
ゴン太さん
ソニー製のドライブは不具合(バグ)だか欠陥があると聞いたことがあります。
具体的にどこがダメなのかまでは、知りませんが..
投稿: たま吉さん(管理者) | 2021年12月 7日 (火) 21時59分
書架を片付けていたら
ASCII出版 『MSX2テクニカルハンドブック』
1989年4月5日初版発行
1989年7月1日第1版9刷り
というのが出てきたのですが、ご入り用ですか?
※もうMSX、MSX2とも触ることが無いと思いますので・・・
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年3月29日 (火) 16時26分
居酒屋ガレージ店主(JH3DBO)さん
初めまして
ASCII出版 『MSX2テクニカルハンドブック』は、手に入れたいと思っていた書籍です。
是非とも頂きたいです。
現状は下記のサイトの情報を参照しているのですが、
全てを網羅していないようです。
http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan
投稿: たま吉さん(管理者) | 2022年3月30日 (水) 06時36分
たま吉さん(管理者)、どうも。
その後の整理で、同じ本が2冊出てきました。
なんでかは不明。
記憶にない。
とりあえず1冊だけお送りします。
厚み30mm内ですので、クリックポスト(198円)で行けます。
お届け先(郵便番号、住所、氏名、電話番号)をメールしてください。
運賃198円はご負担ください。
郵便ポストにA4サイズの本が入らなければ、手渡しのレターパックプラスにします。
※運賃は、お駄賃をプラスしてビール券(缶2本で544円)にしてお送りいただければと。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年3月30日 (水) 08時40分
本のサイズはB5です。
A4の封筒に入れてお送りしますので。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年3月30日 (水) 08時46分
居酒屋ガレージ店主(JH3DBO)さん
運賃198円の件、承知致しました。
メールにて送付先をご連絡いたします。
お手数ですが、よろしくお願いいたいますm(__)m
投稿: たま吉さん(管理者) | 2022年3月31日 (木) 06時35分
居酒屋ガレージ店主(JH3DBO)さん
書籍届きました。ありがとうございました (*´ω`*)
投稿: たま吉さん(管理者) | 2022年4月 3日 (日) 11時08分
こちらにも「お駄賃」到着です。
ハイカラな草加せんべい、お気を使ってもらい恐縮です。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年4月 6日 (水) 08時55分