トップページ⇒tech
755コメント212KB

MSX-BASICの奥義を伝授するスレ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
忘れない内に皆に伝授しときましょう。

・多色刷り、
・ドット単位横スクロール、
・エスケープシークエンス・・・
色々ありましたよね。
思い出したらなんでも書き込みよろしく。
0022デフォルトの名無しさんNGNG
MSXのエロゲーは良かったなァ。
あの時代のエロゲーには現代にはない何かがあった・・・
0023デフォルトの名無しさんNGNG
俺は98時代の同人エロゲーに、現代にはない良さを感じる。
00241ch.tvへ逝けNGNG
>>21
TXTTAB(0F676H,2)の値+2と+3のアドレスにそれぞれ&HFFを書けばいいらしいな。
つーか、これも受け売りだけど(w
あと>>20はDSKI$, DSKO$な。DSKI$じゃディスク壊せん。
0025デフォルトの名無しさんNGNG
そういやOPLLデータをmidiに変換するやつ作ったっけ。
Mファンのタイトル音楽を久々に聴く。なつかし。
0026仕様書無しさんNGNG
>>16
セミコロンじゃなく、コロンだと思われ。
0027仕様書無しさんNGNG
X=X+(STICK(6)=1)-(STICK(2)=1)+(X>39)-(X<0)

今なら普通に if で書くけどな。
002827NGNG
うわ〜、大間違いっス。
ホントは、こうね。

' ジキ イドウ
X=X+(STICK(0)=6)-(STICK(0)=2)+(X>39)-(X<0)

鬱だァァァァ。
0029デフォルトの名無しさんNGNG
>>28
それも間違ってるぞ(w

X=X-(STICK(0)=7)*(X>0)+(STICK(0)=3)*(X<39)
が正解かと。

>+(X>39)-(X<0)
にしちゃうと、端まで行った時に1ドット跳ね返るからね。
あとスティック関数値も間違いw
0030デフォルトの名無しさんNGNG
>>27-29
配列使った方が読みやすいしスピードが少しはあがるんじゃない?
なんでみんなこの方法を使ったんだろ。
0031デフォルトの名無しさんNGNG
>>30
配列つかうと行数とメモリ使用量増えるから
0032デフォルトの名無しさんNGNG
1画面プログラムとか向けの手法だな>論理式
0033デフォルトの名無しさんNGNG
>>31
なんとなくかっこいいからという理由もあったかも。
0034デフォルトの名無しさんNGNG
行番号0の行を作る
↓
LISTで表示
↓
表示された0行にカーソル移動
↓
RETURNキー押す
↓
もう一度LIST
↓
行番号直後の空白が1つ増える
↓
(゜д゜)バグー
00351NGNG
というワケで(?)、簡単にスカッシュを作ってみました(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なんで楽チンです。
0036デフォルトの名無しさんNGNG
>>35
こんな時間になにやっとるんだ(藁
オレモナー
00371NGNG
補足

またエミュ上でプログラムをアスキーセーブすれば(save"*****.bas",a)
Win上でプログラムの閲覧、編集等ができます。

手順は、そのプログラムを・・・
・DISK-MANEGERでEXTRACTを選択してデスクトップ等に出す。
・拡張子をTXTに変更
・メモ帳で開く
という手順です。
その際プログラム末尾に” ”が付きますが、
これはアスキーセーブを有効にする為に必要なので削除しないで下さい。
00381NGNG
>>36
ぐは!ソレは突っ込まないで・・・(w
0039デフォルトの名無しさんNGNG
おぉ!!
つー事は2chで簡単な自作プログラムの公開なんかもできるワケですな!
まぁ、漏れは公開するようなブツは持ち合わせてないんダガナ…(藁
皆さんの日の目を見なかった作品のうpをキボンしてよいですか?
0040デフォルトの名無しさんNGNG
ところで>>35のプログラムの40行は
###と###の間に12個のスペースが入ると解釈してよいんですね?
そうしないとワケワカラン画面になりましたぜ〜。
0041デフォルトの名無しさんNGNG
つーかムズ過ぎ!
ラリー10回すら続かない…
鬱駄氏脳
0042デフォルトの名無しさんNGNG
ファンダムの1画面モノとか勝手に2chに載せたらズイマーかなー?
著作権関係の問題ってやっぱあるよなー。
0043デフォルトの名無しさんNGNG
Disk-Managerってなんじゃらホイ?
0044デフォルトの名無しさんNGNG
>>42
時効。気にすんな。
0045デフォルトの名無しさんNGNG
今ごろMSXPGで著作権を気にする奴はいないだろ
0046デフォルトの名無しさんNGNG
>>43
ココを読むべし。
ttp://www.msxnet.org/gtinter/diskmgrj.htm
0047デフォルトの名無しさんNGNG
>>44>>45
いや、でも著作権云々よりも、作者さんが気分悪くしたりしねーの?
(俺ならむしろ嬉しいけどネ)
0048デフォルトの名無しさんNGNG
age
Syntax error
Ok
■
0049デフォルトの名無しさんNGNG
先生!暴走してます、カーソルが点滅していません
0050デフォルトの名無しさんNGNG
>49
先生! MSXはカーソル点滅しないと思います!
0051デフォルトの名無しさんNGNG
VDPコマンドとか、懐かしいフレーズだけど、全部忘れちゃったよ。
実家に帰れば、MSXテクニカルハンドブックがまだあるかな。
あのころは、3500円が激高価におもえたよ(リアル厨房だったし)。
いまなら、専門書で3500円ならやすい!とおもうが。
0052デフォルトの名無しさんNGNG
Illegal function call in >>49
0053デフォルトの名無しさんNGNG
MSXは凄いぜ!
なんたって、カーソルが斜めに動ける。
0054デフォルトの名無しさんNGNG
>>53
3つ以上のキーを押しても
マトリクス上不都合なければいくらでも
キーリピートが可能だったのは
優秀な設計の証なのか
優れた手抜きなのか
0055デフォルトの名無しさんNGNG
コスト削減のためとか
0056デフォルトの名無しさんNGNG
M5の方がずーーーっといいのにな
40桁表示だし
グラフィック画面とテキスト画面は独立しているし
カーソルが点滅しているし
Z80CTCを積んでるし
VDPの使い方がアンポンタンだぞ>>MSX
0057デフォルトの名無しさんNGNG
>>56
アンポンタンぶりが却って良い結果を生んでたと思う。
0058デフォルトの名無しさんNGNG
>>56
MSXにも40桁の表示モード(VDPのTEXT1モード)はあるよ。
あと、MSX2以降なら80桁の表示モード(VDPのTEXT2モード)もある。
※MSXクリエイターズガイドブックで確認
0059デフォルトの名無しさんNGNG
なんかどうにかして 25行表示にすることってできなかったですかね
勘違いかな・・・
0060デフォルトの名無しさんNGNG
まあ、MSXのVDPがクソなのは何を置いても認めよう。
0061デフォルトの名無しさんNGNG
>>60
でもあれってぴゅう太にも使われてるし
安くて安定してて使いやすくて
適当に使う分にはそこそこ速い
妥協するポイントとしてはまあ良かったんじゃないかな?
0062デフォルトの名無しさんNGNG
>>59
POKE &HF3B1,25
0063デフォルトの名無しさんNGNG
>>61
ぴゅう太に使われてるってのは評価する所じゃなかろう(藁
個人的にはスピードに不満があるなぁ、やっぱり。
0064デフォルトの名無しさんNGNG
>>63
あれってさ、VDPに命令投げたらあとはほったらかしでオッケーじゃん
だからCPUも遅かったからそこだけマルチタスクって感じで
よかったんじゃないかなぁ?
と適当なことを言ってみる
0065親切な人NGNG

ヤフーオークションで、凄い人気商品、発見!!!

コピーガードキャンセラー↓
http://page2.auctions.yahoo.co.jp/jp/auction/b18032656

注目のオークションに適用される事、
間違いないですね。

私も買いました。

皆も買いましょう。
0066デフォルトの名無しさんNGNG
>>64
もちろんそういう面で便利な代物なんだけど、あのVDPに
まかせると結構遅くなってしまうんですよ。
0067デフォルトの名無しさんNGNG
Z80のアセンブラ表にない隠し命令ってどこまで発見されてましたっけ?
0068デフォルトの名無しさんNGNG
>>67
隠し命令とは、初耳。
0069デフォルトの名無しさんNGNG
>>68
http://www.geocities.com/SiliconValley/Peaks/3938/z80undoc.htm
全部かどうかは知らない。けど、turboRのR800では「正式」な命令になったはず。
0070デフォルトの名無しさんNGNG
10 'MSX物理的劣化プログラム(MSX,MSX2,MSX2+用)
20 'このプログラムは決して実機で動かさないで下さい。
30 ON STOP GOSUB 60
40 STOP ON
50 MOTOR:GOTO 50
60 RETURN
0071デフォルトの名無しさんNGNG
>>70
ミシンだな。
0072デフォルトの名無しさんNGNG
>>70
ガガガガガガ・・・・
AVフォーラムでは禁じ手でしたね。
0073デフォルトの名無しさんNGNG
そういえばMOTOR使ったお遊びプログラムを店頭展示マシンで実行してたな。
何かキーを押すと始動か時限式かで(w
0074デフォルトの名無しさんNGNG
>>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
0075名梨産NGNG
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だったらこれで動く・・・はず。誰か検証して。
0076デフォルトの名無しさんNGNG
奥義

1 'CSAVE "TEST.BAS"
0077デフォルトの名無しさんNGNG
>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に載ってたシューティングの自機移動速度が遅かったので
バイナリで上のテーブル見つけ出して書き換えたことがあるな。
0078名梨産NGNG
あの頃ってファンダムの影響で行番号を1行刻み、コロンでひたすらネスト
っていう書き方のプログラムばっかだったな(藁
0079デフォルトの名無しさんNGNG
>>77
「バイナリで」ってどういう意味?
0080デフォルトの名無しさんNGNG
>>79
「左右から雌雄のペンギンで挟み込んで」の意
0081三村NGNG
バイナリーランドかよ!
0082デフォルトの名無しさんNGNG
バシシのほうがイイ
008377NGNG
>>79
機械語のゲームだったのだ。
0084デフォルトの名無しさんNGNG
がんばれ、ゲイツ君

むかしから中村さんって気に入らなかったんだけど
よくよんでたらこの人、MSXを馬鹿にしまくってるのな。

頃すぞ! と思った夕食時でした
0085デフォルトの名無しさんNGNG
中村さんってなんだ?
間違えたよ宇津田詩嚢
0086デフォルトの名無しさんNGNG
>85
まあトノサキって中村のコピーみたいなもんだし
0087デフォルトの名無しさんNGNG
中村さん?
なんのこと?(what's?)
0088BASICERNGNG
>>77
2進数
>>ALL
UBASICでAUTOでプログラムリストを書いてその後そこから出る方法
教えて下さい。
0089デフォルトの名無しさんNGNG
UBASIC?
0090デフォルトの名無しさんNGNG
>>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にはならない為。

この辺は直感に反しないし、変な誤差も出ないから良いよね。
0091デフォルトの名無しさんNGNG
昔のPC板ができております。おいでませい。
http://pc.2ch.net/i4004/
0092デフォルトの名無しさんNGNG
ここまで、DEFINTが1度ものってないなんて・・・
0093デフォルトの名無しさんNGNG
DEFINTA -Z です。
0094デフォルトの名無しさんNGNG
DEFSTRってFM音楽館(だっけ?)のプログラムで良く使われてたよね。
$無しの変数に文字列入ってたのにはカナーリビクーリしたよ。
0095もう忘れましたNGNG
@Niftyでは、MSX-BASICで年賀状作るコーナーがあったな。
そろそろ干支が1周して再利用できるようになる、かも。
0096デフォルトの名無しさんNGNG
保全sage
0097デフォルトの名無しさん NGNG
TurboRのMIDI関係の命令が解りません。
何処かに資料は無いでしょうか?
最近、MSXユーザーになったばかりであります。
0098デフォルトの名無しさんNGNG
>>97
こっちの掲示板で聞いた方がいいよん。
http://www.baboo.net/
0099デフォルトの名無しさんNGNG
エミュってキーボードのエミュレーションに不具合があるの?
なんか打ち込めない文字があるんだけど。
0100⊂(゚д゚⊂NGNG
今だ!100ゲットォォ
0101デフォルトの名無しさんNGNG
奥義もっと伝授しる!
0102デフォルトの名無しさんNGNG
POKE&HFBB1,1でCTRL-STOPの禁止。0で解除。
但しこの方法だとCTRL-STOPが押されたときにPSGが初期化される。

ただON STOP GOSUBだとプログラム移動時にスキが出るので
TPOで使い分ける。
0103デフォルトの名無しさんNGNG
DOS1ディスクから起動していない場合は call system が出来ないが
poke &hf346,1 を実行すると call system が出来るようになる。
DOS2は無条件で出来るのでする必要が無い。
0104デフォルトの名無しさんNGNG
age
0105デフォルトの名無しさんNGNG
奥義!ハァハァ
0106デフォルトの名無しさんNGNG
行番号は10、20、30ではなく1、2、3と使え。
0107デフォルトの名無しさんNGNG
プロポシェの1行プログラム、投稿燃えたよね〜
常連と称されたときは嬉しくてマジ涙出た。
0108デフォルトの名無しさんNGNG
作ったプログラムを保存するのって
やっぱりデーターレコーダーですよね♪
(フロッピーなんて野暮な機器は使わない方向で)
で、最近、そのデーターレコーダーは、手に入らないじゃないですか
(普通にラジカセ使うって野暮な話は無しの方向で)
そんな時は、MDを使ってみましょう♪
最初は、非可逆圧縮なので駄目かと思ったんですが
何となくやってみると、さすが1200(2400)ボー
上手く録音レベルを調節すれば、使えるんですね
(自分のがLPx非対応の為、標準でしか試してませんが)
と言う訳で、Rは、ほぼ確実に使えると思うので
チャレンジャーな方は、MP3やLPxモードに挑戦してみてください♪
(普通に(?)データを吸い出すって野暮な話は無しの方向で…)
また、ビデオデッキも試してみたのですが
Hi-Fiだと、ヘッドの回転ノイズが大きい為、上手くいかないようです
もしかしたら、ノーマル音声なら上手くいくかも知れないので
同じく、チャレンジャーな方は挑戦してみてください

って、こんな奥義じゃないのかな…。(^^;
0109デフォルトの名無しさんNGNG
デーレコ今でも大切に保管してます
しかも、なぜかこいつだけ、箱や発泡スチロールごと残っている。
PHC-DR2。倍速読み込みモード付き。

しかし、本体はすでに捨ててたりするし。
0110 NGNG
0111デフォルトの名無しさんNGNG
はやく免許皆伝ください
0112デフォルトの名無しさんNGNG
auto 10
0113デフォルトの名無しさんNGNG
TRON
0114デフォルトの名無しさんNGNG
KEY OFF:FOR I=1 TO 10:KEY I,"NEW"+CHR$(13):NEXT I
0115デフォルトの名無しさんNGNG
10 SCREEN 1:WIDTH 32:CLS
20 FOR I=0 TO 255:PRINT CHR$(I);:NEXT I:PRINT
30 FOR AD=1*8 TO 255*8-1:VPOKE AD-8,VPEEK(AD):NEXT AD
40 LIST
50 END
0116デフォルトの名無しさんNGNG
へー、おめでたいな。厨房くん
MSX-BASICだって?なんじゃそりゃ
そんな過去の遺物の話してんのかい。板違いじゃねーの?
昔のパソコン板逝けば?
http://pc.2ch.net/i4004/
おまえら今話題のこれ知らないのかよ
これだよこれ
http://www.sharp.co.jp/corporate/news/011105.html
0117デフォルトの名無しさんNGNG
test
0118デフォルトの名無しさんNGNG
test
0119デフォルトの名無しさんNGNG
( ´,_ゝ`)
0120デフォルトの名無しさんNGNG
>>116
basicは立派なプログラム言語ですが?
つか、やられてるし…(w
0121デフォルトの名無しさんNGNG
>>115
0から255を画面に出したらコントロールコードまで吐いちゃうよ!
■ このスレッドは過去ログ倉庫に格納されています