忘れない内に皆に伝授しときましょう。
・多色刷り、
・ドット単位横スクロール、
・エスケープシークエンス・・・
色々ありましたよね。
思い出したらなんでも書き込みよろしく。
MSX-BASICの奥義を伝授するスレ
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
NGNG371デフォルトの名無しさん
2005/08/13(土) 17:52:54 アンカーで検索結果を増やそうってな魂胆か?
372デフォルトの名無しさん
2005/08/14(日) 00:41:13 3000くらいまで行けばなんとかなるかもしれへんよ?
373デフォルトの名無しさん
2005/08/14(日) 13:55:36374デフォルトの名無しさん
2005/09/26(月) 19:12:23 >現状ではmixi内のMSXユーザーズコミュニティでスロット数に関するアンケートを取っている場所がありまして、画像のように
>面白い結果になっています。
>ttp://mixi.jp/view_enquete.pl?id=1873267
>mixiは「招待されないと入れない」という大問題があるものの、ここなら「投票は一人一回まで」が守られるし、第三者機関が
>管理しているので信頼され易いと思われます。まだ投票数が40強と少ないのですが、それなりに数がまとまれば説得力を持つ
>でしょう(結果として1スロットに傾くかもしれませんけど)。
そういう閉鎖されたアンケートに対し、取り敢えずここで回答。
「予約数が5000に遠く及ばなかったんだから、集計中とかアスキーからは出さないがMSXAから出すよう交渉中とか、女の腐ったのみてぇにぐたぐた言ってねえで即刻発売中止にしろ!!」
>面白い結果になっています。
>ttp://mixi.jp/view_enquete.pl?id=1873267
>mixiは「招待されないと入れない」という大問題があるものの、ここなら「投票は一人一回まで」が守られるし、第三者機関が
>管理しているので信頼され易いと思われます。まだ投票数が40強と少ないのですが、それなりに数がまとまれば説得力を持つ
>でしょう(結果として1スロットに傾くかもしれませんけど)。
そういう閉鎖されたアンケートに対し、取り敢えずここで回答。
「予約数が5000に遠く及ばなかったんだから、集計中とかアスキーからは出さないがMSXAから出すよう交渉中とか、女の腐ったのみてぇにぐたぐた言ってねえで即刻発売中止にしろ!!」
375デフォルトの名無しさん
2005/09/26(月) 21:44:34 mixiって最近流行ってるみたいだけど、どれくらい人いんの?
376デフォルトの名無しさん
2005/09/26(月) 23:17:03 むかP板によるとMSXユーザーズコミュニティだけで1100人余だって
377デフォルトの名無しさん
2005/09/27(火) 00:14:18 MSXか、なつかしいなぁ。ロードランナーばっかりやってたなぁ。
378デフォルトの名無しさん
2005/11/05(土) 18:37:57 mixiの他にMSXで盛り上がってそうな場所はあるの?
379デフォルトの名無しさん
2005/11/05(土) 19:33:59 >>378
ttp://www.msx.org/
ttp://www.msx.org/
380デフォルトの名無しさん
2005/11/06(日) 01:41:11381デフォルトの名無しさん
2005/11/06(日) 09:16:02 >>378
,′ //,,-‐"//ヽ ヽ
l |'〆-‐/' ‐-ゞ l
| |' _ l| |
| l ,r7〒 〒=、/ l
l∧.,∧|',弋ノ‐、 ,弋ノ、/l
l:;、;:::;:lヘ_ _.ノ ̄、_ _ノ:;l
. || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
.__ || |
ヽヽ|| トイレ |
t==、 ,=、
l '=', 行ってくるね `=3
ヽ'||' |`′
. || |
. || |
. ||______________|
,′ //,,-‐"//ヽ ヽ
l |'〆-‐/' ‐-ゞ l
| |' _ l| |
| l ,r7〒 〒=、/ l
l∧.,∧|',弋ノ‐、 ,弋ノ、/l
l:;、;:::;:lヘ_ _.ノ ̄、_ _ノ:;l
. || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
.__ || |
ヽヽ|| トイレ |
t==、 ,=、
l '=', 行ってくるね `=3
ヽ'||' |`′
. || |
. || |
. ||______________|
382警告
2005/12/07(水) 19:54:52 ヤフオクMSX 吊上げ屋に注意
http://snow.prohosting.com/retropc/img-box/img20051207170957.jpg
↓
http://snow.prohosting.com/retropc/img-box/img20051207181315.jpg
emiri1ban=linecraft1
http://snow.prohosting.com/retropc/img-box/img20051207170957.jpg
↓
http://snow.prohosting.com/retropc/img-box/img20051207181315.jpg
emiri1ban=linecraft1
383デフォルトの名無しさん
2005/12/07(水) 20:04:00 おお、警告サンクス!
384デフォルトの名無しさん
2005/12/23(金) 00:33:50 どう見てもMSX支持者の落胆です。本当にありがとうございました。
385デフォルトの名無しさん
2006/01/16(月) 23:01:49 MSX−BASICの詳しい解説してくれてるサイトはないものか・・・
386デフォルトの名無しさん
2006/01/17(火) 06:25:24 ここで聞けよww
387デフォルトの名無しさん
2006/01/17(火) 10:23:23 >>385
何が聞きたいんだ?
何が聞きたいんだ?
388デフォルトの名無しさん
2006/01/17(火) 10:32:47 LD BC,$0501
389デフォルトの名無しさん
2006/01/17(火) 21:50:27 76
390デフォルトの名無しさん
2006/01/18(水) 10:14:06 さっさと 318 が流れてくれるとありがたいんだがなあ
391デフォルトの名無しさん
2006/01/29(日) 01:02:37 今でも、アルゴリズムっていうほどでもないんだけど‥
考え方なんかは、VisualBasicで利用できるものが多いと思う。
Mid$("123456789ABCDEF",A,1) とかで、簡単に1〜16の、10進数の変数Aを
16進数に変換できる。とかね。
考え方なんかは、VisualBasicで利用できるものが多いと思う。
Mid$("123456789ABCDEF",A,1) とかで、簡単に1〜16の、10進数の変数Aを
16進数に変換できる。とかね。
392デフォルトの名無しさん
2006/01/29(日) 01:05:08 間違った、0〜15までの10進数だった。
393デフォルトの名無しさん
2006/01/29(日) 13:35:09 つ Hex$
394デフォルトの名無しさん
2006/01/29(日) 14:05:34 何で最近のVBとかにはHEXは会ってもBINはないのかねぇ
395デフォルトの名無しさん
2006/02/11(土) 10:44:02396デフォルトの名無しさん
2006/02/11(土) 19:58:13 62進数・・・64進数(BASE64)じゃねーの?
397デフォルトの名無しさん
2006/02/13(月) 19:10:22 >>396が何を言いたいのかさっぱりわからん。
398395
2006/02/18(土) 10:13:10俺もなんとなくしか解らなかったけど、
BASE64って64進数だったのか…って事が解って勉強になった。
(参考)
http://search.yahoo.co.jp/bin/search?p=MIME*BASE64
399デフォルトの名無しさん
2006/02/18(土) 22:15:02 n進数のnのことを基数って言うでしょ
それはbaseの訳なのよ
それはbaseの訳なのよ
400デフォルトの名無しさん
2006/02/18(土) 22:16:22 >>397
62進数じゃ使いにくいから64進数じゃないの?ってことでしょ
62進数じゃ使いにくいから64進数じゃないの?ってことでしょ
401デフォルトの名無しさん
2006/02/25(土) 22:23:56 >>382
新着スレ
【M S X】maebashi301=sanibu1818【吊上注意】
http://pc7.2ch.net/test/read.cgi/yahoo/1140692617/l50
新着スレ
【M S X】maebashi301=sanibu1818【吊上注意】
http://pc7.2ch.net/test/read.cgi/yahoo/1140692617/l50
402デフォルトの名無しさん
2006/04/02(日) 01:12:33 漢字BASICで、テキスト表示とLINE文とが同時に混在させられるって
あったような
あったような
403デフォルトの名無しさん
2006/04/10(月) 23:16:18 87 :名無しさん(新規) :2006/04/09(日) 14:38:45 ID:R8bwXkp00
ヴァーラ=エンジョゲ!?
【永遠に】 MSXスレ Part15 【集計作業中】
http://bubble4.2ch.net/test/read.cgi/i4004/1132584409/l50
88 :名無しさん(新規) :2006/04/10(月) 15:49:14 ID:qeIF0Rhr0
正義は武器に似たものである。武器は金を出しさえすれば、敵にも味方にも買われるであろう。
正義も理屈さえつけさえすれば、敵にも味方にも買われるものである。
− 芥川龍之介 −
89 :名無しさん(新規) :2006/04/10(月) 22:09:26 ID:+psJvhrV0
ハァ?
90 :名無しさん(新規) :2006/04/10(月) 23:02:37 ID:OSgWs4AU0
敵だの味方だのって‥‥‥。
どう見てもヴァーラ=エンジョゲです。
本当にありがとうございました。
ヴァーラ=エンジョゲ!?
【永遠に】 MSXスレ Part15 【集計作業中】
http://bubble4.2ch.net/test/read.cgi/i4004/1132584409/l50
88 :名無しさん(新規) :2006/04/10(月) 15:49:14 ID:qeIF0Rhr0
正義は武器に似たものである。武器は金を出しさえすれば、敵にも味方にも買われるであろう。
正義も理屈さえつけさえすれば、敵にも味方にも買われるものである。
− 芥川龍之介 −
89 :名無しさん(新規) :2006/04/10(月) 22:09:26 ID:+psJvhrV0
ハァ?
90 :名無しさん(新規) :2006/04/10(月) 23:02:37 ID:OSgWs4AU0
敵だの味方だのって‥‥‥。
どう見てもヴァーラ=エンジョゲです。
本当にありがとうございました。
404デフォルトの名無しさん
2006/04/11(火) 10:37:54405デフォルトの名無しさん
2006/04/26(水) 20:47:24 >>404
人の訂正をするときに間違えると、恥ずかしさ倍増だよねw
人の訂正をするときに間違えると、恥ずかしさ倍増だよねw
406デフォルトの名無しさん
2006/05/27(土) 04:33:48407デフォルトの名無しさん
2006/06/12(月) 13:39:41 on A gosub(goto) 200,300,400,500,600
みたいな制御構文大好きだったな
みたいな制御構文大好きだったな
408デフォルトの名無しさん
2006/06/13(火) 22:49:27 後追い者(リアルタイムに触ってない)からの質問ですが
MSX-BASIC+マシン語プログラムの場合、どんな処理を
マシン語に任せてたんですか?
MSX-BASIC+マシン語プログラムの場合、どんな処理を
マシン語に任せてたんですか?
409デフォルトの名無しさん
2006/06/13(火) 23:25:00410デフォルトの名無しさん
2006/06/14(水) 23:05:26 >>409
なるほどー。素早いレスありがとうございました。
なるほどー。素早いレスありがとうございました。
411デフォルトの名無しさん
2006/06/17(土) 00:36:09412デフォルトの名無しさん
2006/06/17(土) 01:06:54 極まったのでは、水平帰線割り込みでカラーパレットやスプライトパターンテーブルを書き換えて、
スペックよりも色数やパターン数を多く見せるのもあった。
スペックよりも色数やパターン数を多く見せるのもあった。
413デフォルトの名無しさん
2006/07/03(月) 04:06:49414デフォルトの名無しさん
2006/07/20(木) 11:37:34 V&Zエディタの日本語表示のデカさは今でも覚えているぜ
415デフォルトの名無しさん
2006/08/06(日) 00:13:53 >>414
目にやさしいマシンだったな…
目にやさしいマシンだったな…
416るぶ
2006/09/03(日) 21:30:56 MSXのBASICでロードランナーのような壁を表示させるにはどうしたらよいのでしょうか?
VPOKEを使っているみたいだけどよくわかりません
サンプルプログラムがあれば教えてください
VPOKEを使っているみたいだけどよくわかりません
サンプルプログラムがあれば教えてください
417デフォルトの名無しさん
2006/09/04(月) 14:52:36 MSX-BASIC初心者の漏れがエミュレータ使いながら頑張って答えてみる。
VPOKE使うってことはVRAMを直接操作するって事ね。
VRAMのどの番地がどんな役割をもっているかは、多分Google検索でもすれば見つかると思う。
-- SCREEN1(32x24,TEXT)で座標(X,Y)にA(キャラクターコード&H41)を表示するには
VPOKE &H1800 + 32*Y + X, &H41
-- キャラクタコード&H41のキャラクタを再定義するには
VPOKE &H41*8+0, &B11111110
VPOKE &H41*8+1, &B11111110
VPOKE &H41*8+2, &B11111110
VPOKE &H41*8+3, &B11111110
VPOKE &H41*8+4, &B10111111
VPOKE &H41*8+5, &B10111111
VPOKE &H41*8+6, &B10111111
VPOKE &H41*8+7, &B10111111
SCREEN1したあとに上だけやればAが表示されて、
下をやるとAが再定義されたキャラクタに変わるはず。
Aを入力しようとしても再定義されたキャラクタが表示される。
あとはいろいろいじくってみて。
色を変える方法については目下勉強中。
VPOKE使うってことはVRAMを直接操作するって事ね。
VRAMのどの番地がどんな役割をもっているかは、多分Google検索でもすれば見つかると思う。
-- SCREEN1(32x24,TEXT)で座標(X,Y)にA(キャラクターコード&H41)を表示するには
VPOKE &H1800 + 32*Y + X, &H41
-- キャラクタコード&H41のキャラクタを再定義するには
VPOKE &H41*8+0, &B11111110
VPOKE &H41*8+1, &B11111110
VPOKE &H41*8+2, &B11111110
VPOKE &H41*8+3, &B11111110
VPOKE &H41*8+4, &B10111111
VPOKE &H41*8+5, &B10111111
VPOKE &H41*8+6, &B10111111
VPOKE &H41*8+7, &B10111111
SCREEN1したあとに上だけやればAが表示されて、
下をやるとAが再定義されたキャラクタに変わるはず。
Aを入力しようとしても再定義されたキャラクタが表示される。
あとはいろいろいじくってみて。
色を変える方法については目下勉強中。
418デフォルトの名無しさん
2006/09/04(月) 18:12:01 つ【多色刷り】
419デフォルトの名無しさん
2006/09/05(火) 02:35:48 多色刷り、最近始めた初心者だから何か新鮮な言葉に感じるぜーーー!
いろいろググりながら試してみたけど、BASICのみでやると準備が激しく遅いね。
あと、ちゃんとした資料が手元にない状態でいじるのは激しくつらい。
テクニカルハンドブックとかPDF化して販売してくれないかなぁ。
いろいろググりながら試してみたけど、BASICのみでやると準備が激しく遅いね。
あと、ちゃんとした資料が手元にない状態でいじるのは激しくつらい。
テクニカルハンドブックとかPDF化して販売してくれないかなぁ。
420るぶ
2006/09/05(火) 06:30:25 416の回答ありがとうございました
入力して確認とれました
入力して確認とれました
421るぶ
2006/09/27(水) 20:37:43 MSXのBASICで8キャラスクロールをさせるには
どの命令文を使うのでしょうか?
どの命令文を使うのでしょうか?
422デフォルトの名無しさん
2006/09/28(木) 14:56:15 自力
423デフォルトの名無しさん
2006/09/30(土) 18:12:30 >>421
下スクロールなら、PRINT1個かますだけで楽なんだけどな…
下スクロールなら、PRINT1個かますだけで楽なんだけどな…
424デフォルトの名無しさん
2006/10/09(月) 20:19:31 >>421
左スクロール:
FOR I=&H1ADE TO &H1820 STEP -1:VPOKE I+1,VPEEK(I):NEXT
ベーシックからマシン語のスクロールルーチンを読み出すのが普通と思う。
21,DE,1A,01,9F,02,CD,4A,00,23,CD,4D,00,2B,2B,0B,78,B1,20,F2,C9
左スクロール:
FOR I=&H1ADE TO &H1820 STEP -1:VPOKE I+1,VPEEK(I):NEXT
ベーシックからマシン語のスクロールルーチンを読み出すのが普通と思う。
21,DE,1A,01,9F,02,CD,4A,00,23,CD,4D,00,2B,2B,0B,78,B1,20,F2,C9
425デフォルトの名無しさん
2006/10/09(月) 20:28:24 >>417
スクリーン1の場合、
FOR I=0 TO 255:VPOKE &H1800+I,I:NEXT
で全文字を画面に表示させ、
VPOKE &H2000,&HF1
と実行すると、色の変わるのが分かる。8文字ずつ文字色(F)+背景(1)で指定。
多色刷りモードの場合、1文字に8バイトで、文字の横列ごとに指定できる。
また、8行目まで・16行目まで・24行目までの3ブロックで別々に指定できる。
初心者は応援するぞ、ガンガレ。
スクリーン1の場合、
FOR I=0 TO 255:VPOKE &H1800+I,I:NEXT
で全文字を画面に表示させ、
VPOKE &H2000,&HF1
と実行すると、色の変わるのが分かる。8文字ずつ文字色(F)+背景(1)で指定。
多色刷りモードの場合、1文字に8バイトで、文字の横列ごとに指定できる。
また、8行目まで・16行目まで・24行目までの3ブロックで別々に指定できる。
初心者は応援するぞ、ガンガレ。
426デフォルトの名無しさん
2006/12/03(日) 23:05:13 このスレ開くとブラウザの行間がおかしくなるんだけど
なんで?
なんで?
427デフォルトの名無しさん
2006/12/04(月) 00:05:56428デフォルトの名無しさん
2006/12/04(月) 04:25:15429デフォルトの名無しさん
2007/01/29(月) 20:24:45 保守
430デフォルトの名無しさん
2007/02/08(木) 01:45:09 保守
431デフォルトの名無しさん
2007/02/12(月) 19:09:28 既出ならスマソ
MSXのBIOSはUNIXマシンで開発され
ソースコードは8進数で記述されていたことをご存知でしたか?
MSXのBIOSはUNIXマシンで開発され
ソースコードは8進数で記述されていたことをご存知でしたか?
432デフォルトの名無しさん
2007/02/12(月) 23:54:17 1チップMSX2が出たってのに相変わらず盛り下がってるな。
結局、割れ物のゲーム動かすだけで満足しちゃってるんだろうか。
結局、割れ物のゲーム動かすだけで満足しちゃってるんだろうか。
433デフォルトの名無しさん
2007/02/18(日) 11:47:39 保守
434デフォルトの名無しさん
2007/02/24(土) 14:18:48 定期点検
435デフォルトの名無しさん
2007/02/25(日) 00:02:00 すっかり忘れてた。
FPGAキットとして欲しかったけど、もう熱冷めた。
FPGAキットとして欲しかったけど、もう熱冷めた。
436デフォルトの名無しさん
2007/02/25(日) 00:27:08 9800円のターボRに期待
437デフォルトの名無しさん
2007/03/26(月) 14:58:27 気が向いたんで1ChipMSXを買ってみたMSX初心者なんだが
グラフィック画面に文字を出力したいんだ。
で、書いてみたのが↓のプログラム。
10 screen2:cls:open"grp:"foroutputas#1
20 print#1,"Hello, MSX World"
30 i$=inkey$:ifi$=""then30
実行すると確かに文字は表示される事はされるんだが、実行する度に
表示位置が8ドットずつ下にずれていくんだ。なんでだろう?
printの時はlocateで出力位置指定できるけど、print#の時はどうしたらいいの?
グラフィック画面に文字を出力したいんだ。
で、書いてみたのが↓のプログラム。
10 screen2:cls:open"grp:"foroutputas#1
20 print#1,"Hello, MSX World"
30 i$=inkey$:ifi$=""then30
実行すると確かに文字は表示される事はされるんだが、実行する度に
表示位置が8ドットずつ下にずれていくんだ。なんでだろう?
printの時はlocateで出力位置指定できるけど、print#の時はどうしたらいいの?
438デフォルトの名無しさん
2007/03/26(月) 21:12:47439デフォルトの名無しさん
2007/03/26(月) 22:32:50 15 PRESET (x,y),c
440デフォルトの名無しさん
2007/03/27(火) 11:18:28 お、ほぼ期待した通りの動作をした。
ありがとう。
ありがとう。
441デフォルトの名無しさん
2007/03/27(火) 14:15:59 ロードランナー
442デフォルトの名無しさん
2007/03/29(木) 12:10:27 _fmpac
エミュには大抵FMPAC.ROM付いてるから(公式は知らない)できるはず・・
エミュには大抵FMPAC.ROM付いてるから(公式は知らない)できるはず・・
443デフォルトの名無しさん
2007/03/31(土) 17:31:38 そういやMSX FANにFinal Fantasy の戦闘時BGMをMSX-MUSICで再現した投稿はすげーと思った。
444デフォルトの名無しさん
2007/03/31(土) 18:50:05445デフォルトの名無しさん
2007/03/31(土) 19:27:51446デフォルトの名無しさん
2007/03/31(土) 21:19:40 同じピコピコだけどね
447デフォルトの名無しさん
2007/04/01(日) 16:11:51 ぜんぜん違う。
エミュしか知らねーんだろ。
エミュしか知らねーんだろ。
448デフォルトの名無しさん
2007/04/01(日) 20:07:34 というか、なんで内蔵音源だけで再現できなかったんだろう?
どこにmsx-music使うの?ユーザ音色1色しか同時に使えないアホ音源。
どこにmsx-music使うの?ユーザ音色1色しか同時に使えないアホ音源。
449デフォルトの名無しさん
2007/04/01(日) 21:57:54 誘導されてきた者です。
実は、中学生の頃から疑問に思っていて、いまだに解けない問題があります。
それは、on sprite gosub命令で、どのスプライトとどのスプライトが衝突したのかを
サブルーチン内で判定する方法はないのでしょうか?ということです。
これができないことにはシューティングゲームが作れません。
だって自機と自機の玉と敵機と敵機の玉と何が何に衝突しても同じ処理になるからです。
実は、中学生の頃から疑問に思っていて、いまだに解けない問題があります。
それは、on sprite gosub命令で、どのスプライトとどのスプライトが衝突したのかを
サブルーチン内で判定する方法はないのでしょうか?ということです。
これができないことにはシューティングゲームが作れません。
だって自機と自機の玉と敵機と敵機の玉と何が何に衝突しても同じ処理になるからです。
450デフォルトの名無しさん
2007/04/02(月) 00:24:02 どの種類のスプライトを移動したかを記憶しておく変数を用意して
ON SPRITE GOSUBで飛んだ先で、ON 変数 GOSUBで分岐。
分岐先で衝突しうるスプライトの座標を比較する。
とかじゃダメなの?
ON SPRITE GOSUBで飛んだ先で、ON 変数 GOSUBで分岐。
分岐先で衝突しうるスプライトの座標を比較する。
とかじゃダメなの?
451デフォルトの名無しさん
2007/04/02(月) 00:32:23 >>449
on sprite gosubで飛ぶサブルーチン側で、
当たったら処理しなきゃいけないスプライトを必死に探す。
449の例で言うなら自機と敵&敵の弾、自機の弾と敵について座標を比べまくって探すんだ。
それ以外が当たってるんだったら無視。
スピードが遅くなる?
そこは各自で工夫。
450の様に、動かしたスプライトについてだけ調べてみるとかも良い。
この判定処理を機械語ルーチン化するのは非常に有効な方法だ。
on sprite gosubで飛ぶサブルーチン側で、
当たったら処理しなきゃいけないスプライトを必死に探す。
449の例で言うなら自機と敵&敵の弾、自機の弾と敵について座標を比べまくって探すんだ。
それ以外が当たってるんだったら無視。
スピードが遅くなる?
そこは各自で工夫。
450の様に、動かしたスプライトについてだけ調べてみるとかも良い。
この判定処理を機械語ルーチン化するのは非常に有効な方法だ。
452デフォルトの名無しさん
2007/04/02(月) 00:40:36453デフォルトの名無しさん
2007/04/03(火) 15:31:31 >>449
基本的に on sprite gosub は、処理ムラや処理が重くなる原因なので
使わない方がよい。
以下のようにすれば、使わなくても判定できる。
5 ' スプライト しょうとつはんていサンプル
10 X=100:Y=100'じぶん
20 TX(0)=50:TY(0)=70'てき0
30 TX(1)=105:TY(1)=92'てき1
100 '
110 FOR I=0 TO 1
120 IF ABS(X-TX(I))<16 AND ABS(Y-TY(I))<16 THEN PRINT"てき";I;"とせっしょくしました"
130 NEXT
140 END
>>451のように、機械語にするのは有効。
MSXでは機械語をサブルーチンのように呼び出せるので、
ベーシックの一部分を少しずつ機械語にしていくと良い。
基本的に on sprite gosub は、処理ムラや処理が重くなる原因なので
使わない方がよい。
以下のようにすれば、使わなくても判定できる。
5 ' スプライト しょうとつはんていサンプル
10 X=100:Y=100'じぶん
20 TX(0)=50:TY(0)=70'てき0
30 TX(1)=105:TY(1)=92'てき1
100 '
110 FOR I=0 TO 1
120 IF ABS(X-TX(I))<16 AND ABS(Y-TY(I))<16 THEN PRINT"てき";I;"とせっしょくしました"
130 NEXT
140 END
>>451のように、機械語にするのは有効。
MSXでは機械語をサブルーチンのように呼び出せるので、
ベーシックの一部分を少しずつ機械語にしていくと良い。
454デフォルトの名無しさん
2007/04/03(火) 19:11:19 最近始めた初心者がいるのが驚きです
なんのメリットが・・・
なんのメリットが・・・
455デフォルトの名無しさん
2007/04/03(火) 19:34:36 折角なので、機械語で簡単に組んでみた。F020Hに、衝突元のスプライト番号を入れて、機械語を実行すると
F000HからF01FHに、スプライト番号0〜31と衝突したかどうかが入る。
(0なら衝突していない、1なら衝突している) F021H、F022Hも作業領域として使用している。
5 ' スプライト ショウトツハンテイサンプル
6 'F000~F01F ニ スプライトガ ショウトツシテイルカドウカガ ハイル(1:ショウトツ シテイル)
7 '
8 DEFINT A-Z:CLEAR 3000,&HCFFF:SCREEN 1,2,0:KEY OFF:WIDTH 32:SPRITE$(0)=STRING$(32,255)
9 GOSUB 1000
10 X=100:Y=100'ジブン
20 TX(0)=50:TY(0)=70'テキ1
30 TX(1)=105:TY(1)=92'テキ2
40 PUTSPRITE 0,(X,Y),15,0
50 FOR I=0 TO 1
60 PUTSPRITE I+1,(TX(I),TY(I)),8,0
70 NEXT
80 POKE &HF020,0:A=USR(0):'F020ニ ハンテイモト ノ スプライトバンゴウ ヲ イレル
90 FOR I=0 TO 31:VPOKE 6144+32*10+I,PEEK(&HF000+I)+48:NEXT:END
1000 '
1010 FOR I=0 TO &H5E
1020 READ A$
1030 POKE &HD000+I,VAL("&H"+A$)
1040 NEXT
1050 DEFUSR=&HD000
1060 RETURN
1070 '
1080 DATA 3a,20,f0,87,87,26,1b,6f, cd,4a,00,32,21,f0,23,cd
1090 DATA 4a,00,32,22,f0,06,00,78, 87,87,26,1b,6f,cd,4a,00
1100 DATA 4f,3a,21,f0,b9,28,0e,30, 05,57,79,92,18,01,91,fe
1110 DATA 10,38,02,18,17,23,cd,4a, 00,4f,3a,22,f0,b9,28,10
1120 DATA 30,05,57,79,92,18,01,91, fe,10,38,04,1e,00,18,02,1e
1130 DATA 01,78,26,f0,6f,7b,77,04, 78,fe,20,20,b9,c9
F000HからF01FHに、スプライト番号0〜31と衝突したかどうかが入る。
(0なら衝突していない、1なら衝突している) F021H、F022Hも作業領域として使用している。
5 ' スプライト ショウトツハンテイサンプル
6 'F000~F01F ニ スプライトガ ショウトツシテイルカドウカガ ハイル(1:ショウトツ シテイル)
7 '
8 DEFINT A-Z:CLEAR 3000,&HCFFF:SCREEN 1,2,0:KEY OFF:WIDTH 32:SPRITE$(0)=STRING$(32,255)
9 GOSUB 1000
10 X=100:Y=100'ジブン
20 TX(0)=50:TY(0)=70'テキ1
30 TX(1)=105:TY(1)=92'テキ2
40 PUTSPRITE 0,(X,Y),15,0
50 FOR I=0 TO 1
60 PUTSPRITE I+1,(TX(I),TY(I)),8,0
70 NEXT
80 POKE &HF020,0:A=USR(0):'F020ニ ハンテイモト ノ スプライトバンゴウ ヲ イレル
90 FOR I=0 TO 31:VPOKE 6144+32*10+I,PEEK(&HF000+I)+48:NEXT:END
1000 '
1010 FOR I=0 TO &H5E
1020 READ A$
1030 POKE &HD000+I,VAL("&H"+A$)
1040 NEXT
1050 DEFUSR=&HD000
1060 RETURN
1070 '
1080 DATA 3a,20,f0,87,87,26,1b,6f, cd,4a,00,32,21,f0,23,cd
1090 DATA 4a,00,32,22,f0,06,00,78, 87,87,26,1b,6f,cd,4a,00
1100 DATA 4f,3a,21,f0,b9,28,0e,30, 05,57,79,92,18,01,91,fe
1110 DATA 10,38,02,18,17,23,cd,4a, 00,4f,3a,22,f0,b9,28,10
1120 DATA 30,05,57,79,92,18,01,91, fe,10,38,04,1e,00,18,02,1e
1130 DATA 01,78,26,f0,6f,7b,77,04, 78,fe,20,20,b9,c9
456デフォルトの名無しさん
2007/04/04(水) 12:15:17 DEFINTとかPUTSPRITEとか…
懐かしくもせつない響きのステートメント
懐かしくもせつない響きのステートメント
458デフォルトの名無しさん
2007/04/04(水) 15:48:00 プログラムの入門用にいいのでは。
命令数が少なく覚えやすいし、インタプリタでエラーも分かりやすい。
機械語を覚えるにしても、さほど苦労しない。
枯れた技術だけど、資料はネットでも書籍でも手に入る。
エミュレータ(公式エミュが望ましいが)を使えば、世界も広がるし。
命令数が少なく覚えやすいし、インタプリタでエラーも分かりやすい。
機械語を覚えるにしても、さほど苦労しない。
枯れた技術だけど、資料はネットでも書籍でも手に入る。
エミュレータ(公式エミュが望ましいが)を使えば、世界も広がるし。
459デフォルトの名無しさん
2007/04/09(月) 19:34:51 X=X-(S=7)*(X>0)+(S=3)*(X<100)
Y=Y-(S=1)*(Y>0)+(S=5)*(Y<100)
スプライトの移動で、こういう書き方があったと思うのですが、
このままでは1ドット単位で移動することになるわけですが、
任意のドット単位で動かすにはどうすればいいんでしたっけ?
あと、斜め移動とかもどうしてたのか分からなくなってしましました。
Y=Y-(S=1)*(Y>0)+(S=5)*(Y<100)
スプライトの移動で、こういう書き方があったと思うのですが、
このままでは1ドット単位で移動することになるわけですが、
任意のドット単位で動かすにはどうすればいいんでしたっけ?
あと、斜め移動とかもどうしてたのか分からなくなってしましました。
460デフォルトの名無しさん
2007/04/09(月) 22:39:16 S=STICK(0)+STICK(1)
任意のドット数で動かす(この場合、2ドットずつ)
X=X-2*(S=7)*(X>0)+2*(S=3)*(X<100)
Y=Y-2*(S=1)*(Y>0)+2*(S=5)*(Y<100)
斜め移動
X=X-(S=2)-(S=3)-(S=4)+(S=6)+(S=7)+(S=8)
Y=Y-(S=4)-(S=5)-(S=6)+(S=8)+(S=1)+(S=2)
簡単に書けば、こうだな。カッコの中の条件が揃えば−1になるから、
そこから考えれば。
任意のドット数で動かす(この場合、2ドットずつ)
X=X-2*(S=7)*(X>0)+2*(S=3)*(X<100)
Y=Y-2*(S=1)*(Y>0)+2*(S=5)*(Y<100)
斜め移動
X=X-(S=2)-(S=3)-(S=4)+(S=6)+(S=7)+(S=8)
Y=Y-(S=4)-(S=5)-(S=6)+(S=8)+(S=1)+(S=2)
簡単に書けば、こうだな。カッコの中の条件が揃えば−1になるから、
そこから考えれば。
461デフォルトの名無しさん
2007/04/09(月) 23:20:51 ベーマガとかでは、この書き方が推奨されていたけど
漏れ自身は必ずしもこの書き方にこだわる必要もないと思っている。
べーしっ君(ベーシックコンパイラ)でもコンパイルできないし。
10 DEFINT A-Z:SCREEN1,2,0:KEYOFF:WIDTH32
20 SPRITE$(0)=STRING$(32,255)
30 X=100:Y=100
40 GOSUB 1000
100 S=STICK(0)+STICK(1)
110 X=X+MX(S):Y=Y+MY(S)
120 PUTSPRITE 0,(X,Y),15,0
130 GOTO 100
1000 '
1010 DIM MX(8),MY(8)
1020 FOR I=0 TO 8
1030 READ A,B
1040 MX(I)=A:MY(I)=B
1050 NEXT I
1060 RETURN
1070 DATA 0,0, 0,-2, 2,-2, 2,0, 2,2, 0,2, -2,2, -2,0, -2,-2
機械語ライクに考えると、こんな書き方になる。
ON S GOSUB〜よりもスッキリとして良かろう。
漏れ自身は必ずしもこの書き方にこだわる必要もないと思っている。
べーしっ君(ベーシックコンパイラ)でもコンパイルできないし。
10 DEFINT A-Z:SCREEN1,2,0:KEYOFF:WIDTH32
20 SPRITE$(0)=STRING$(32,255)
30 X=100:Y=100
40 GOSUB 1000
100 S=STICK(0)+STICK(1)
110 X=X+MX(S):Y=Y+MY(S)
120 PUTSPRITE 0,(X,Y),15,0
130 GOTO 100
1000 '
1010 DIM MX(8),MY(8)
1020 FOR I=0 TO 8
1030 READ A,B
1040 MX(I)=A:MY(I)=B
1050 NEXT I
1060 RETURN
1070 DATA 0,0, 0,-2, 2,-2, 2,0, 2,2, 0,2, -2,2, -2,0, -2,-2
機械語ライクに考えると、こんな書き方になる。
ON S GOSUB〜よりもスッキリとして良かろう。
462デフォルトの名無しさん
2007/04/10(火) 11:55:59463デフォルトの名無しさん
2007/04/14(土) 19:31:15 なるほど、べーしっ君に頼るという方法も在りますね、機械語わからんし。
CALL TURBO ONとか懐かしい‥
CALL TURBO ONとか懐かしい‥
464デフォルトの名無しさん
2007/04/15(日) 11:35:47 べーしっ君だとプログラムを組むのに限界がある上に、
作ったソフトを配布するなら相手もべーしっ君を持っていないといけないので、
機会があれば機械語に是非挑戦してもらいたいものだけど。
Z80はシンプルなので、考え方は難しくない。
PCG定義など時間のかかる処理を一部機械語に任せるだけでも劇的に違う。
10 DEFINT A-Z:SCREEN 1,2,0:KEY OFF:WIDTH 32
20 SPRITE$(0)=STRING$(32,255)
30 PUTSPRITE 0,(100,100),15,0
40 GOSUB 1000
100 A=USR(0):GOTO 100
1000 '
1010 FOR I=0 TO &H75
1020 READ A$
1030 POKE &HD000+I,VAL("&H"+A$)
1040 NEXT
1050 DEFUSR=&HD000
1060 RETURN
1070 DATA 3e,00,cd,d5,00,47,3e,01, c5,cd,d5,00,c1,80,47,21
1080 DATA 64,d0,7d,80,6f,7e,4f,21, 00,1b,cd,4a,00,81,57,79
1090 DATA fe,02,20,07,7a,fe,b0,28, 10,18,0a,79,fe,fe,20,09
1100 DATA 7a,fe,fe,28,04,7a,cd,4d, 00,21,6d,d0,7d,80,6f,7e
1110 DATA 4f,21,01,1b,cd,4a,00,81, 57,79,fe,02,20,07,7a,fe
1120 DATA f2,28,10,18,0a,79,fe,fe, 20,09,7a,fe,fe,28,04,7a
1130 DATA cd,4d,00,c9,00,fe,fe,00, 02,02,02,00,fe,00,00,02
1140 DATA 02,02,00,fe,fe,fe
>>461のプログラムのスティック判断部分・移動部分・画面外に行かないように
判定する部分・スプライト表示部分を機械語化すると、こうなる。
この例では1回1回ベーシックに戻っているが、完全機械語化すると
爆速過ぎて、60分の1秒ごとに動くようにウエイトを掛けなければいけない。
作ったソフトを配布するなら相手もべーしっ君を持っていないといけないので、
機会があれば機械語に是非挑戦してもらいたいものだけど。
Z80はシンプルなので、考え方は難しくない。
PCG定義など時間のかかる処理を一部機械語に任せるだけでも劇的に違う。
10 DEFINT A-Z:SCREEN 1,2,0:KEY OFF:WIDTH 32
20 SPRITE$(0)=STRING$(32,255)
30 PUTSPRITE 0,(100,100),15,0
40 GOSUB 1000
100 A=USR(0):GOTO 100
1000 '
1010 FOR I=0 TO &H75
1020 READ A$
1030 POKE &HD000+I,VAL("&H"+A$)
1040 NEXT
1050 DEFUSR=&HD000
1060 RETURN
1070 DATA 3e,00,cd,d5,00,47,3e,01, c5,cd,d5,00,c1,80,47,21
1080 DATA 64,d0,7d,80,6f,7e,4f,21, 00,1b,cd,4a,00,81,57,79
1090 DATA fe,02,20,07,7a,fe,b0,28, 10,18,0a,79,fe,fe,20,09
1100 DATA 7a,fe,fe,28,04,7a,cd,4d, 00,21,6d,d0,7d,80,6f,7e
1110 DATA 4f,21,01,1b,cd,4a,00,81, 57,79,fe,02,20,07,7a,fe
1120 DATA f2,28,10,18,0a,79,fe,fe, 20,09,7a,fe,fe,28,04,7a
1130 DATA cd,4d,00,c9,00,fe,fe,00, 02,02,02,00,fe,00,00,02
1140 DATA 02,02,00,fe,fe,fe
>>461のプログラムのスティック判断部分・移動部分・画面外に行かないように
判定する部分・スプライト表示部分を機械語化すると、こうなる。
この例では1回1回ベーシックに戻っているが、完全機械語化すると
爆速過ぎて、60分の1秒ごとに動くようにウエイトを掛けなければいけない。
465デフォルトの名無しさん
2007/04/16(月) 08:42:16 機械語覚えたい。
当時はDATA 3e,00,cd,d5,00,47,3e,01とか書かれてるのを見ると、
神かと思ったものだ。
当時はDATA 3e,00,cd,d5,00,47,3e,01とか書かれてるのを見ると、
神かと思ったものだ。
466デフォルトの名無しさん
2007/04/16(月) 20:52:38 機械語の習得は、入門書なりネットなりで基本をあらかた掴んで、
人が作ったプログラムを逆アセンブルしてみるのが一番かな。
プログラムは人のソースを見るのが一番の教材だわな、昔から。
「この機械語は、こんなことをしている」という情報が
予め分かっているプログラムの方がなお良し。
上のプログラムだと 3e 00 でAレジスタに0を代入、
cd d5 00 でスティック情報を調べるBIOSにアクセス…という感じ。
つまり、S=STICK(0) 相当。
プログラムの速度向上なら、MSXのCを覚えるという方法もあるけど
漏れはMSXのCは分からん。Cだと「BASICの奥義」からも外れちゃうし。
どちらにしても、画面表示の場合はVRAM(やVDP)を直接いじるので、
その辺のハードの資料なり知識も必要になってくる。
とは言っても、資料はネットで出てくるので問題ない。
また、ハードの知識はBASICのプログラム作成にも有効。
MSXのプログラム作成は、Winでプログラムを組むのと違って
「おもちゃをいらっている」感があって、純粋に面白いと思う。
人が作ったプログラムを逆アセンブルしてみるのが一番かな。
プログラムは人のソースを見るのが一番の教材だわな、昔から。
「この機械語は、こんなことをしている」という情報が
予め分かっているプログラムの方がなお良し。
上のプログラムだと 3e 00 でAレジスタに0を代入、
cd d5 00 でスティック情報を調べるBIOSにアクセス…という感じ。
つまり、S=STICK(0) 相当。
プログラムの速度向上なら、MSXのCを覚えるという方法もあるけど
漏れはMSXのCは分からん。Cだと「BASICの奥義」からも外れちゃうし。
どちらにしても、画面表示の場合はVRAM(やVDP)を直接いじるので、
その辺のハードの資料なり知識も必要になってくる。
とは言っても、資料はネットで出てくるので問題ない。
また、ハードの知識はBASICのプログラム作成にも有効。
MSXのプログラム作成は、Winでプログラムを組むのと違って
「おもちゃをいらっている」感があって、純粋に面白いと思う。
467デフォルトの名無しさん
2007/04/25(水) 21:05:47 キーワード【 MSX MSX プログラム NEXT PRINT FOR BASIC 】
468デフォルトの名無しさん
2007/04/25(水) 21:13:47469デフォルトの名無しさん
2007/04/25(水) 21:18:59 限定5千台まだ売れ残ってる見たいな
ttp://www.msx.d4e.co.jp/
ttp://www.msx.d4e.co.jp/
470デフォルトの名無しさん
2007/04/26(木) 03:08:29 MSXだけでプログラムを組むのは、純粋に苦痛でしかない。
マクロアセンブラが標準で付属してないし、高機能なモニタもない。
ハンドアセンブルして機械語直打ちなんて正気の沙汰じゃあない。
実行するだけならファミコンよりかなり見劣りけど我慢できるけどさ。
入門用の環境としては最悪だね。
マクロアセンブラが標準で付属してないし、高機能なモニタもない。
ハンドアセンブルして機械語直打ちなんて正気の沙汰じゃあない。
実行するだけならファミコンよりかなり見劣りけど我慢できるけどさ。
入門用の環境としては最悪だね。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日中「貿易依存度」を最新データから読解く 中国の輸出入における日本の存在感が薄れる一方、日本の中国依存は依然として高水準 [煮卵★]
- 国民健康保険料、外国人だけ前払いしてもらう? 厚生労働省が提案した未納対策 日本人も滞納は多いわけだが:東京新聞 [少考さん★]
- 働いて働いて働いても生活は…円安に歯止めが掛からず生活は苦しくなるばかり…サナエノミクスの限界で「高市不況」がやってくる ★8 [ぐれ★]
- 「仮放免家族」で育ったクルド系24歳が語る希望、幼少期に「国へ帰れ」と言われた日本社会で [少考さん★]
- 【サッカー】上田綺世が衝撃の4ゴール&PK奪取の大暴れ!驚異のリーグ戦15戦18発、オランダの日本人最多得点記録を更新 [征夷大将軍★]
- 「ジェンダー」と言っただけなのに…なぜ敬遠される? 研究者が語る気づきの大切さ [少考さん★]
- 【悲報】日本と中国、ガチのマジで戦争しそう。高市さん助けて [811796219]
- ほらみたことか、おらの言った通りだべ?おまえらもうアベノマスクもってねえべ? [974680522]
- 電車の中で高市早苗連呼したらみんな車両移動しだしてワロタ どんだけ嫌われているんだあのババア [903775116]
- 【高市悲報】自衛隊単独で中国軍と戦争になったら速攻で負けることが判明 [931948549]
- 高級折りたたみ自転車ポチりそうたすけて、、、。
- スマホ、microSDカードスロット復活へ。メモリがガンガン高騰してスマホも高価になる見込みのため [838847604]
