MSX-BASICの奥義を伝授するスレ
■ このスレッドは過去ログ倉庫に格納されています
忘れない内に皆に伝授しときましょう。 ・多色刷り、 ・ドット単位横スクロール、 ・エスケープシークエンス・・・ 色々ありましたよね。 思い出したらなんでも書き込みよろしく。 とりあえず多色刷りの前振り 10 SCREEN1:WIDTH32:DEFUSR=&H7E:A=USR(0) ドット単位横スクロールはVDP命令を使うんだったよな。 SETADJUSTだと画面位置がバックアップされてしまうから。 でも肝心のVDP(N)のNの値が思い出せない。。。 R#26 VDP(27) 画面の水平スクロール量 (High) R#27 VDP(28) 画面の水平スクロール量 (Low) 何故かあったM・FAN95年6月号より。 でも、もうVDPの弄くりかたも忘れたなあ。。。 A1-WX(WSX) クロック周波数アップ OUT 64, 8 OUT 65, 1 ちょっと、自信ない・・・ >>6 サンクス。 しかしこの情報を何に生かしたらよいのやら・・・w >しかしこの情報を何に生かしたらよいのやら・・・w (苦笑 まあ、うちのMSXはとっくの昔にぶっ壊れましたけど、TVに直接出せるし 一応持ち運べるし、A1GTならMIDIポートついてるし、なんかの時に何か の役にたつこともないことはないかも(いや、多分ないが(藁 >>10 MSXエミュは結構いいのがいろいろ出てますぜ。 もっとも、実機もちゃんと持ってますが、いつ壊れるかわからんからな〜。 ひょっとすると、知らないうちに壊れてたりして。 家のMSX(A1ST)君はスペースキーが効きません、助けてアルゴマン! >>12 実機をもってても、フロッピーの保管が大変じゃない? どんなに、厳重にしまっていても、3〜5年で壊れるでしょ。 FS-A1Mk2だった。あのキーボードの押しにくさが忘れられない。 >>8 out64,8:out65,0じゃないかな。 ASCATのテクニカルガイドではFS-A1WX/FX/WSXで使えるとある。 あと、BASIC ROMを覗いてDSKI$, DSKI$を発見して使ったはいいが、 ディスク壊してしまったこともあったなあ。 リストを見れなくするのってどうやるんだっけ? たしか行番号のあたりに直接 最終行番号の値を書いちまう方法があったが どこの番地にナニを書けばいいか忘れた 実機があればリスト格納先頭番地からダンプするところだけど MSXのエロゲーは良かったなァ。 あの時代のエロゲーには現代にはない何かがあった・・・ 俺は98時代の同人エロゲーに、現代にはない良さを感じる。 >>21 TXTTAB(0F676H,2)の値+2と+3のアドレスにそれぞれ&HFFを書けばいいらしいな。 つーか、これも受け売りだけど(w あと>>20 はDSKI$, DSKO$な。DSKI$じゃディスク壊せん。 そういやOPLLデータをmidiに変換するやつ作ったっけ。 Mファンのタイトル音楽を久々に聴く。なつかし。 X=X+(STICK(6)=1)-(STICK(2)=1)+(X>39)-(X<0) 今なら普通に if で書くけどな。 うわ〜、大間違いっス。 ホントは、こうね。 ' ジキ イドウ X=X+(STICK(0)=6)-(STICK(0)=2)+(X>39)-(X<0) 鬱だァァァァ。 >>28 それも間違ってるぞ(w X=X-(STICK(0)=7)*(X>0)+(STICK(0)=3)*(X<39) が正解かと。 >+(X>39)-(X<0) にしちゃうと、端まで行った時に1ドット跳ね返るからね。 あとスティック関数値も間違いw >>27-29 配列使った方が読みやすいしスピードが少しはあがるんじゃない? なんでみんなこの方法を使ったんだろ。 >>30 配列つかうと行数とメモリ使用量増えるから >>31 なんとなくかっこいいからという理由もあったかも。 行番号0の行を作る ↓ LISTで表示 ↓ 表示された0行にカーソル移動 ↓ RETURNキー押す ↓ もう一度LIST ↓ 行番号直後の空白が1つ増える ↓ (゜д゜)バグー というワケで(?)、簡単にスカッシュを作ってみました(w (所要時間40分) 10 SCREEN1,0,0:WIDTH32:KEYOFF:COLOR1,14,1 20 X=112:BX=112:BY=4:MX=2:MY=2:SC=0 40 FOR J=0 TO 23:PRINT"########## ##########";:NEXT J 60 SPRITE$(0)="" 70 SPRITE$(2)="タタ" 80 REM =========ball move===== 90 BX=BX+MX:BY=BY+MY 100 MX=MX*((BX=78)*2+1)*((BX=174)*2+1) 110 PUTSPRITE2,(BX,BY),1 120 REM =======key input======== 130 T=STRIG(0) 140 X=X-(T=0)*(X>78)+(T=-1)*(X<166) 150 PUTSPRITE0,(X,160),1 160 REM =======judge========= 170 IF BY=158 AND BX>X-1 AND BX<X+9 THEN MY=-2:SC=SC+1 180 IF BY=170 THEN 220 190 IF BY=2 THEN MY=2 200 GOTO 90 210 REM ===========game over======= 220 PRINT"SCORE=";SC*10:FOR I=0 TO 500:NEXT 230 FOR I=0 TO 1:I=-STRIG(0):NEXT I:GOTO 10 Ruでのみ動作確認してます。 (まぁ、動作確認とるまでもないショボプログラムだがw) ちなみに最後の までを含めたリストをメモ帳等にコピってSAVEした後、 そのTXTファイルをDISK-manegerでDSKイメージに突っ込んでsaveすれば、 いちいちプログラムを入力しなくてもOKなんで楽チンです。 >>35 こんな時間になにやっとるんだ(藁 オレモナー 補足 またエミュ上でプログラムをアスキーセーブすれば(save"*****.bas",a) Win上でプログラムの閲覧、編集等ができます。 手順は、そのプログラムを・・・ ・DISK-MANEGERでEXTRACTを選択してデスクトップ等に出す。 ・拡張子をTXTに変更 ・メモ帳で開く という手順です。 その際プログラム末尾に” ”が付きますが、 これはアスキーセーブを有効にする為に必要なので削除しないで下さい。 おぉ!! つー事は2chで簡単な自作プログラムの公開なんかもできるワケですな! まぁ、漏れは公開するようなブツは持ち合わせてないんダガナ…(藁 皆さんの日の目を見なかった作品のうpをキボンしてよいですか? ところで>>35 のプログラムの40行は ###と###の間に12個のスペースが入ると解釈してよいんですね? そうしないとワケワカラン画面になりましたぜ〜。 つーかムズ過ぎ! ラリー10回すら続かない… 鬱駄氏脳 ファンダムの1画面モノとか勝手に2chに載せたらズイマーかなー? 著作権関係の問題ってやっぱあるよなー。 >>43 ココを読むべし。 ttp://www.msxnet.org/gtinter/diskmgrj.htm >>44 >>45 いや、でも著作権云々よりも、作者さんが気分悪くしたりしねーの? (俺ならむしろ嬉しいけどネ) >49 先生! MSXはカーソル点滅しないと思います! VDPコマンドとか、懐かしいフレーズだけど、全部忘れちゃったよ。 実家に帰れば、MSXテクニカルハンドブックがまだあるかな。 あのころは、3500円が激高価におもえたよ(リアル厨房だったし)。 いまなら、専門書で3500円ならやすい!とおもうが。 Illegal function call in >>49 MSXは凄いぜ! なんたって、カーソルが斜めに動ける。 >>53 3つ以上のキーを押しても マトリクス上不都合なければいくらでも キーリピートが可能だったのは 優秀な設計の証なのか 優れた手抜きなのか M5の方がずーーーっといいのにな 40桁表示だし グラフィック画面とテキスト画面は独立しているし カーソルが点滅しているし Z80CTCを積んでるし VDPの使い方がアンポンタンだぞ>>MSX >>56 アンポンタンぶりが却って良い結果を生んでたと思う。 >>56 MSXにも40桁の表示モード(VDPのTEXT1モード)はあるよ。 あと、MSX2以降なら80桁の表示モード(VDPのTEXT2モード)もある。 ※MSXクリエイターズガイドブックで確認 なんかどうにかして 25行表示にすることってできなかったですかね 勘違いかな・・・ まあ、MSXのVDPがクソなのは何を置いても認めよう。 >>60 でもあれってぴゅう太にも使われてるし 安くて安定してて使いやすくて 適当に使う分にはそこそこ速い 妥協するポイントとしてはまあ良かったんじゃないかな? >>61 ぴゅう太に使われてるってのは評価する所じゃなかろう(藁 個人的にはスピードに不満があるなぁ、やっぱり。 >>63 あれってさ、VDPに命令投げたらあとはほったらかしでオッケーじゃん だからCPUも遅かったからそこだけマルチタスクって感じで よかったんじゃないかなぁ? と適当なことを言ってみる ヤフーオークションで、凄い人気商品、発見!!! コピーガードキャンセラー↓ http://page2.auctions.yahoo.co.jp/jp/auction/b18032656 注目のオークションに適用される事、 間違いないですね。 私も買いました。 皆も買いましょう。 >>64 もちろんそういう面で便利な代物なんだけど、あのVDPに まかせると結構遅くなってしまうんですよ。 Z80のアセンブラ表にない隠し命令ってどこまで発見されてましたっけ? 10 'MSX物理的劣化プログラム(MSX,MSX2,MSX2+用) 20 'このプログラムは決して実機で動かさないで下さい。 30 ON STOP GOSUB 60 40 STOP ON 50 MOTOR:GOTO 50 60 RETURN >>70 ガガガガガガ・・・・ AVフォーラムでは禁じ手でしたね。 そういえばMOTOR使ったお遊びプログラムを店頭展示マシンで実行してたな。 何かキーを押すと始動か時限式かで(w >>73 こんな感じ? A$=INPUT$(1):FOR I=0 TO 1:I=0:MOTOR:NEXT TIME=0:FOR I=0 TO 10000:I=TIME:NEXT:FOR I=0 TO 1:I=0:MOTOR:NEXT 10 CLEAR:DIM SX(8),SY(8),TX(9),TY(9) 20 RESUME 30:FOR A=1 TO 8:READ SX(A),SY(A):NEXT 30 RESUME 40:FOR A=1 TO 9:READ TX(A),TY(A):NEXT 40 DATA 0,-1,1,-1,1,0,1,1,0,1,-1,1,-1,0,-1,-1 50 DATA -1,1,0,1,1,1,-1,0,0,0,1,0,-1,-1,0,-1,1,-1 60 X=X+SX(STICK(0))+TX(VAL(INKEY$)) 70 Y=Y+SY(STICK(0))+TY(VAL(INKEY$)) ジョイスティックの番号あってるかな?ちと自信無し。 上が1だったらこれで動く・・・はず。誰か検証して。 >40 DATA 0,-1,1,-1,1,0,1,1,0,1,-1,1,-1,0,-1,-1 >50 DATA -1,1,0,1,1,1,-1,0,0,0,1,0,-1,-1,0,-1,1,-1 MSX-FANに載ってたシューティングの自機移動速度が遅かったので バイナリで上のテーブル見つけ出して書き換えたことがあるな。 あの頃ってファンダムの影響で行番号を1行刻み、コロンでひたすらネスト っていう書き方のプログラムばっかだったな(藁 >>79 「左右から雌雄のペンギンで挟み込んで」の意 がんばれ、ゲイツ君 むかしから中村さんって気に入らなかったんだけど よくよんでたらこの人、MSXを馬鹿にしまくってるのな。 頃すぞ! と思った夕食時でした >85 まあトノサキって中村のコピーみたいなもんだし >>77 2進数 >>ALL UBASICでAUTOでプログラムリストを書いてその後そこから出る方法 教えて下さい。 >>89 二千数百桁までの数値が使えるPC-98やDOS/V用のBASICだよ。 まぁ、このスレとは関係ないけど。 ちなみに、MSX-BASICの浮動小数点型の内部表現は 10進で持ってるんだよね。 だから、他の大多数のマシンでは浮動小数点値を 内部では2進で値を持ってる。だから、 FOR I= 0.1 TO 1 STEP 0.1:NEXT I とやると無限ループになるけどMSXではちゃんと10回回って抜ける。 #無限ループするのは0.1を2進数で表すと循環小数になるので #切捨て誤差が発生して10回足してもきっちり1にはならない為。 この辺は直感に反しないし、変な誤差も出ないから良いよね。 ここまで、DEFINTが1度ものってないなんて・・・ DEFSTRってFM音楽館(だっけ?)のプログラムで良く使われてたよね。 $無しの変数に文字列入ってたのにはカナーリビクーリしたよ。 @Niftyでは、MSX-BASICで年賀状作るコーナーがあったな。 そろそろ干支が1周して再利用できるようになる、かも。 TurboRのMIDI関係の命令が解りません。 何処かに資料は無いでしょうか? 最近、MSXユーザーになったばかりであります。 エミュってキーボードのエミュレーションに不具合があるの? なんか打ち込めない文字があるんだけど。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる