1read 100read
2011年10月1期プログラムMSX-BASICの奥義を伝授するスレ TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
ソフトウェア開発技術者取れた奴の集い
Silverlight登場で.NET使い大勝利!!! Part2
【糞.NET】裏切り者には死を【アンチゲイツ】
Visual BasicでOSを作らしてくれ!!


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


1 :01/11/25 〜 最終レス :12/01/02
忘れない内に皆に伝授しときましょう。
・多色刷り、
・ドット単位横スクロール、
・エスケープシークエンス・・・
色々ありましたよね。
思い出したらなんでも書き込みよろしく。

2 :
とりあえず多色刷りの前振り
10 SCREEN1:WIDTH32:DEFUSR=&H7E:A=USR(0)

3 :
PCG の弄り方忘れた。

4 :
POKE(&HFDCC,119)

5 :
ドット単位横スクロールはVDP命令を使うんだったよな。
SETADJUSTだと画面位置がバックアップされてしまうから。
でも肝心のVDP(N)のNの値が思い出せない。。。

6 :
R#26 VDP(27) 画面の水平スクロール量 (High)
R#27 VDP(28) 画面の水平スクロール量 (Low)
何故かあったM・FAN95年6月号より。
でも、もうVDPの弄くりかたも忘れたなあ。。。

7 :
SPRITE$(0)="■♥♥♥♥♥♥■"

8 :
A1-WX(WSX) クロック周波数アップ
OUT 64, 8
OUT 65, 1
ちょっと、自信ない・・・

9 :
OPEN"GRP"ほにゃららAS#1

10 :
>>6
サンクス。
しかしこの情報を何に生かしたらよいのやら・・・w

11 :
>しかしこの情報を何に生かしたらよいのやら・・・w
(苦笑
まあ、うちのMSXはとっくの昔にぶっ壊れましたけど、TVに直接出せるし
一応持ち運べるし、A1GTならMIDIポートついてるし、なんかの時に何か
の役にたつこともないことはないかも(いや、多分ないが(藁

12 :
>>10
MSXエミュは結構いいのがいろいろ出てますぜ。
もっとも、実機もちゃんと持ってますが、いつ壊れるかわからんからな〜。
ひょっとすると、知らないうちに壊れてたりして。

13 :
defusr=0:a=usr(0)

14 :
>>9
ほにゃらら = FOR OUTPUT ?

15 :
家のMSX(A1ST)君はスペースキーが効きません、助けてアルゴマン!

16 :
>>9
セミコロンが抜けてると思われ

17 :
実家にFDD2ドライブのMSX2+がありまっせ。

18 :
>>12
実機をもってても、フロッピーの保管が大変じゃない?
どんなに、厳重にしまっていても、3〜5年で壊れるでしょ。

19 :
FS-A1Mk2だった。あのキーボードの押しにくさが忘れられない。

20 :
>>8
out64,8:out65,0じゃないかな。
ASCATのテクニカルガイドではFS-A1WX/FX/WSXで使えるとある。
あと、BASIC ROMを覗いてDSKI$, DSKI$を発見して使ったはいいが、
ディスク壊してしまったこともあったなあ。

21 :
リストを見れなくするのってどうやるんだっけ?
たしか行番号のあたりに直接
最終行番号の値を書いちまう方法があったが
どこの番地にナニを書けばいいか忘れた
実機があればリスト格納先頭番地からダンプするところだけど

22 :
MSXのエロゲーは良かったなァ。
あの時代のエロゲーには現代にはない何かがあった・・・

23 :
俺は98時代の同人エロゲーに、現代にはない良さを感じる。

24 :
>>21
TXTTAB(0F676H,2)の値+2と+3のアドレスにそれぞれ&HFFを書けばいいらしいな。
つーか、これも受け売りだけど(w
あと>>20はDSKI$, DSKO$な。DSKI$じゃディスク壊せん。

25 :
そういやOPLLデータをmidiに変換するやつ作ったっけ。
Mファンのタイトル音楽を久々に聴く。なつかし。

26 :
>>16
セミコロンじゃなく、コロンだと思われ。

27 :
X=X+(STICK(6)=1)-(STICK(2)=1)+(X>39)-(X<0)
今なら普通に if で書くけどな。

28 :
うわ〜、大間違いっス。
ホントは、こうね。
' ジキ イドウ
X=X+(STICK(0)=6)-(STICK(0)=2)+(X>39)-(X<0)
鬱だァァァァ。

29 :
>>28
それも間違ってるぞ(w
X=X-(STICK(0)=7)*(X>0)+(STICK(0)=3)*(X<39)
が正解かと。
>+(X>39)-(X<0)
にしちゃうと、端まで行った時に1ドット跳ね返るからね。
あとスティック関数値も間違いw

30 :
>>27-29
配列使った方が読みやすいしスピードが少しはあがるんじゃない?
なんでみんなこの方法を使ったんだろ。

31 :
>>30
配列つかうと行数とメモリ使用量増えるから

32 :
1画面プログラムとか向けの手法だな>論理式

33 :
>>31
なんとなくかっこいいからという理由もあったかも。

34 :
行番号0の行を作る

LISTで表示

表示された0行にカーソル移動

RETURNキー押す

もう一度LIST

行番号直後の空白が1つ増える

(゜д゜)バグー

35 :
というワケで(?)、簡単にスカッシュを作ってみました(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なんで楽チンです。

36 :
>>35
こんな時間になにやっとるんだ(藁
オレモナー

37 :
補足
またエミュ上でプログラムをアスキーセーブすれば(save"*****.bas",a)
Win上でプログラムの閲覧、編集等ができます。
手順は、そのプログラムを・・・
・DISK-MANEGERでEXTRACTを選択してデスクトップ等に出す。
・拡張子をTXTに変更
・メモ帳で開く
という手順です。
その際プログラム末尾に” ”が付きますが、
これはアスキーセーブを有効にする為に必要なので削除しないで下さい。

38 :
>>36
ぐは!ソレは突っ込まないで・・・(w

39 :
おぉ!!
つー事は2chで簡単な自作プログラムの公開なんかもできるワケですな!
まぁ、漏れは公開するようなブツは持ち合わせてないんダガナ…(藁
皆さんの日の目を見なかった作品のうpをキボンしてよいですか?

40 :
ところで>>35のプログラムの40行は
###と###の間に12個のスペースが入ると解釈してよいんですね?
そうしないとワケワカラン画面になりましたぜ〜。

41 :
つーかムズ過ぎ!
ラリー10回すら続かない…
鬱駄氏脳

42 :
ファンダムの1画面モノとか勝手に2chに載せたらズイマーかなー?
著作権関係の問題ってやっぱあるよなー。

43 :
Disk-Managerってなんじゃらホイ?

44 :
>>42
時効。気にすんな。

45 :
今ごろMSXPGで著作権を気にする奴はいないだろ

46 :
>>43
ココを読むべし。
ttp://www.msxnet.org/gtinter/diskmgrj.htm

47 :
>>44>>45
いや、でも著作権云々よりも、作者さんが気分悪くしたりしねーの?
(俺ならむしろ嬉しいけどネ)

48 :
age
Syntax error
Ok

49 :
先生!暴走してます、カーソルが点滅していません

50 :
>49
先生! MSXはカーソル点滅しないと思います!

51 :
VDPコマンドとか、懐かしいフレーズだけど、全部忘れちゃったよ。
実家に帰れば、MSXテクニカルハンドブックがまだあるかな。
あのころは、3500円が激高価におもえたよ(リアル厨房だったし)。
いまなら、専門書で3500円ならやすい!とおもうが。

52 :
Illegal function call in >>49

53 :
MSXは凄いぜ!
なんたって、カーソルが斜めに動ける。

54 :
>>53
3つ以上のキーを押しても
マトリクス上不都合なければいくらでも
キーリピートが可能だったのは
優秀な設計の証なのか
優れた手抜きなのか

55 :
コスト削減のためとか

56 :
M5の方がずーーーっといいのにな
40桁表示だし
グラフィック画面とテキスト画面は独立しているし
カーソルが点滅しているし
Z80CTCを積んでるし
VDPの使い方がアンポンタンだぞ>>MSX

57 :
>>56
アンポンタンぶりが却って良い結果を生んでたと思う。

58 :
>>56
MSXにも40桁の表示モード(VDPのTEXT1モード)はあるよ。
あと、MSX2以降なら80桁の表示モード(VDPのTEXT2モード)もある。
※MSXクリエイターズガイドブックで確認

59 :
なんかどうにかして 25行表示にすることってできなかったですかね
勘違いかな・・・

60 :
まあ、MSXのVDPがクソなのは何を置いても認めよう。

61 :
>>60
でもあれってぴゅう太にも使われてるし
安くて安定してて使いやすくて
適当に使う分にはそこそこ速い
妥協するポイントとしてはまあ良かったんじゃないかな?

62 :
>>59
POKE &HF3B1,25

63 :
>>61
ぴゅう太に使われてるってのは評価する所じゃなかろう(藁
個人的にはスピードに不満があるなぁ、やっぱり。

64 :
>>63
あれってさ、VDPに命令投げたらあとはほったらかしでオッケーじゃん
だからCPUも遅かったからそこだけマルチタスクって感じで
よかったんじゃないかなぁ?
と適当なことを言ってみる

65 :

ヤフーオークションで、凄い人気商品、発見!!!
コピーガードキャンセラー↓
http://page2.auctions.yahoo.co.jp/jp/auction/b18032656
注目のオークションに適用される事、
間違いないですね。
私も買いました。
皆も買いましょう。

66 :
>>64
もちろんそういう面で便利な代物なんだけど、あのVDPに
まかせると結構遅くなってしまうんですよ。

67 :
Z80のアセンブラ表にない隠し命令ってどこまで発見されてましたっけ?

68 :
>>67
隠し命令とは、初耳。

69 :
>>68
http://www.geocities.com/SiliconValley/Peaks/3938/z80undoc.htm
全部かどうかは知らない。けど、turboRのR800では「正式」な命令になったはず。

70 :
10 'MSX物理的劣化プログラム(MSX,MSX2,MSX2+用)
20 'このプログラムは決して実機で動かさないで下さい。
30 ON STOP GOSUB 60
40 STOP ON
50 MOTOR:GOTO 50
60 RETURN

71 :
>>70
ミシンだな。

72 :
>>70
ガガガガガガ・・・・
フォーラムでは禁じ手でしたね。

73 :
そういえばMOTOR使ったお遊びプログラムを店頭展示マシンで実行してたな。
何かキーを押すと始動か時限式かで(w

74 :
>>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

75 :
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だったらこれで動く・・・はず。誰か検証して。

76 :
奥義
1 'CSAVE "TEST.BAS"

77 :
>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に載ってたシューティングの自機移動速度が遅かったので
バイナリで上のテーブル見つけ出して書き換えたことがあるな。

78 :
あの頃ってファンダムの影響で行番号を1行刻み、コロンでひたすらネスト
っていう書き方のプログラムばっかだったな(藁

79 :
>>77
「バイナリで」ってどういう意味?

80 :
>>79
「左右から雌雄のペンギンで挟み込んで」の意

81 :
バイナリーランドかよ!

82 :
バシシのほうがイイ

83 :
>>79
機械語のゲームだったのだ。

84 :
がんばれ、ゲイツ君
むかしから中村さんって気に入らなかったんだけど
よくよんでたらこの人、MSXを馬鹿にしまくってるのな。
頃すぞ! と思った夕食時でした

85 :
中村さんってなんだ?
間違えたよ宇津田詩嚢

86 :
>85
まあトノサキって中村のコピーみたいなもんだし

87 :
中村さん?
なんのこと?(what's?)

88 :
>>77
2進数
>>ALL
UBASICでAUTOでプログラムリストを書いてその後そこから出る方法
教えて下さい。

89 :
UBASIC?

90 :
>>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にはならない為。
この辺は直感に反しないし、変な誤差も出ないから良いよね。

91 :
昔のPC板ができております。おいでませい。
http://pc.2ch.net/i4004/

92 :
ここまで、DEFINTが1度ものってないなんて・・・

93 :
DEFINTA -Z です。

94 :
DEFSTRってFM音楽館(だっけ?)のプログラムで良く使われてたよね。
$無しの変数に文字列入ってたのにはカナーリビクーリしたよ。

95 :
@Niftyでは、MSX-BASICで年賀状作るコーナーがあったな。
そろそろ干支が1周して再利用できるようになる、かも。

96 :
保全sage

97 :
TurboRのMIDI関係の命令が解りません。
何処かに資料は無いでしょうか?
最近、MSXユーザーになったばかりであります。

98 :
>>97
こっちの掲示板で聞いた方がいいよん。
http://www.baboo.net/

99 :
エミュってキーボードのエミュレーションに不具合があるの?
なんか打ち込めない文字があるんだけど。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
ソフトウェア開発技術者取れた奴の集い
Silverlight登場で.NET使い大勝利!!! Part2
【糞.NET】裏切り者には死を【アンチゲイツ】
Visual BasicでOSを作らしてくれ!!