GIGAMIXて、他人のプログラムの寄せ集めじゃん。
370 :
デフォルトの名無しさん:2005/08/13(土) 05:40:54
>>353 現在の予約注文数:2900台
商品化決定まで、あと2100台
予約受付終了まで、あと7日
もうだめぽ
アンカーで検索結果を増やそうってな魂胆か?
3000くらいまで行けばなんとかなるかもしれへんよ?
>>370 残り7000台をポケットマネーで買う羽目になった西さんですね。
1億4000万円用意しておいて下さいよお〜w
374 :
デフォルトの名無しさん:2005/09/26(月) 19:12:23
>現状ではmixi内のMSXユーザーズコミュニティでスロット数に関するアンケートを取っている場所がありまして、画像のように
>面白い結果になっています。
>
ttp://mixi.jp/view_enquete.pl?id=1873267 >mixiは「招待されないと入れない」という大問題があるものの、ここなら「投票は一人一回まで」が守られるし、第三者機関が
>管理しているので信頼され易いと思われます。まだ投票数が40強と少ないのですが、それなりに数がまとまれば説得力を持つ
>でしょう(結果として1スロットに傾くかもしれませんけど)。
そういう閉鎖されたアンケートに対し、取り敢えずここで回答。
「予約数が5000に遠く及ばなかったんだから、集計中とかアスキーからは出さないがMSXAから出すよう交渉中とか、女の腐ったのみてぇにぐたぐた言ってねえで即刻発売中止にしろ!!」
mixiって最近流行ってるみたいだけど、どれくらい人いんの?
むかP板によるとMSXユーザーズコミュニティだけで1100人余だって
377 :
デフォルトの名無しさん:2005/09/27(火) 00:14:18
MSXか、なつかしいなぁ。ロードランナーばっかりやってたなぁ。
378 :
デフォルトの名無しさん:2005/11/05(土) 18:37:57
mixiの他にMSXで盛り上がってそうな場所はあるの?
>>378 ,′ //,,-‐"//ヽ ヽ
l |'〆-‐/' ‐-ゞ l
| |' _ l| |
| l ,r7〒 〒=、/ l
l∧.,∧|',弋ノ‐、 ,弋ノ、/l
l:;、;:::;:lヘ_ _.ノ ̄、_ _ノ:;l
. || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
.__ || |
ヽヽ|| トイレ |
t==、 ,=、
l '=', 行ってくるね `=3
ヽ'||' |`′
. || |
. || |
. ||______________|
382 :
警告:2005/12/07(水) 19:54:52
おお、警告サンクス!
384 :
デフォルトの名無しさん:2005/12/23(金) 00:33:50
どう見てもMSX支持者の落胆です。本当にありがとうございました。
385 :
デフォルトの名無しさん:2006/01/16(月) 23:01:49
MSX−BASICの詳しい解説してくれてるサイトはないものか・・・
ここで聞けよww
387 :
デフォルトの名無しさん:2006/01/17(火) 10:23:23
388 :
デフォルトの名無しさん:2006/01/17(火) 10:32:47
LD BC,$0501
76
さっさと 318 が流れてくれるとありがたいんだがなあ
今でも、アルゴリズムっていうほどでもないんだけど‥
考え方なんかは、VisualBasicで利用できるものが多いと思う。
Mid$("123456789ABCDEF",A,1) とかで、簡単に1〜16の、10進数の変数Aを
16進数に変換できる。とかね。
間違った、0〜15までの10進数だった。
つ Hex$
何で最近のVBとかにはHEXは会ってもBINはないのかねぇ
>>391 独自仕様の62進数(数字10+英小26+英大26)とかが
手軽に変換できるってやつじゃのー
20年も前の雑誌とかではよく使われてたのー
62進数・・・64進数(BASE64)じゃねーの?
398 :
395:2006/02/18(土) 10:13:10
n進数のnのことを基数って言うでしょ
それはbaseの訳なのよ
>>397 62進数じゃ使いにくいから64進数じゃないの?ってことでしょ
401 :
デフォルトの名無しさん:2006/02/25(土) 22:23:56
漢字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
敵だの味方だのって‥‥‥。
どう見てもヴァーラ=エンジョゲです。
本当にありがとうございました。
404 :
デフォルトの名無しさん:2006/04/11(火) 10:37:54
>>391 つうかそんなの他の言語でも文字変換や文字種判定なんかで普通に使うじゃん
ちなみにmid$(”0123456789ABCDEF",a-1,1)でないと使えないけどな
>>404 人の訂正をするときに間違えると、恥ずかしさ倍増だよねw
on A gosub(goto) 200,300,400,500,600
みたいな制御構文大好きだったな
後追い者(リアルタイムに触ってない)からの質問ですが
MSX-BASIC+マシン語プログラムの場合、どんな処理を
マシン語に任せてたんですか?
>>408 ループが大量に回ったり、連続するアドレスを読み書きするケースが多かった。
もちろん全てマシン語なんていうのも結構あったぞ。
>>409 なるほどー。素早いレスありがとうございました。
>>408 ループが回る系の処理で、スプライトに対して場所&移動データを用意して一斉に動かすルーチンと
スプライトの当たり判定とかだけやらせてるってのもみた事あるな。
極まったのでは、水平帰線割り込みでカラーパレットやスプライトパターンテーブルを書き換えて、
スペックよりも色数やパターン数を多く見せるのもあった。
V&Zエディタの日本語表示のデカさは今でも覚えているぜ
416 :
るぶ:2006/09/03(日) 21:30:56
MSXのBASICでロードランナーのような壁を表示させるにはどうしたらよいのでしょうか?
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を入力しようとしても再定義されたキャラクタが表示される。
あとはいろいろいじくってみて。
色を変える方法については目下勉強中。
つ【多色刷り】
多色刷り、最近始めた初心者だから何か新鮮な言葉に感じるぜーーー!
いろいろググりながら試してみたけど、BASICのみでやると準備が激しく遅いね。
あと、ちゃんとした資料が手元にない状態でいじるのは激しくつらい。
テクニカルハンドブックとかPDF化して販売してくれないかなぁ。
420 :
るぶ:2006/09/05(火) 06:30:25
416の回答ありがとうございました
入力して確認とれました
421 :
るぶ:2006/09/27(水) 20:37:43
MSXのBASICで8キャラスクロールをさせるには
どの命令文を使うのでしょうか?
自力
>>421 下スクロールなら、PRINT1個かますだけで楽なんだけどな…
>>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
>>417 スクリーン1の場合、
FOR I=0 TO 255:VPOKE &H1800+I,I:NEXT
で全文字を画面に表示させ、
VPOKE &H2000,&HF1
と実行すると、色の変わるのが分かる。8文字ずつ文字色(F)+背景(1)で指定。
多色刷りモードの場合、1文字に8バイトで、文字の横列ごとに指定できる。
また、8行目まで・16行目まで・24行目までの3ブロックで別々に指定できる。
初心者は応援するぞ、ガンガレ。
このスレ開くとブラウザの行間がおかしくなるんだけど
なんで?
>>427 ありがとう
とりあえずl50で解決しますた
保守
保守
既出ならスマソ
MSXのBIOSはUNIXマシンで開発され
ソースコードは8進数で記述されていたことをご存知でしたか?
1チップMSX2が出たってのに相変わらず盛り下がってるな。
結局、割れ物のゲーム動かすだけで満足しちゃってるんだろうか。
保守
定期点検
すっかり忘れてた。
FPGAキットとして欲しかったけど、もう熱冷めた。
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#の時はどうしたらいいの?
>>437 確かグラフィック命令で使われる現在位置が流用されてて、
PSET とかで背景色で点を打って位置指定してたような気がする。
439 :
デフォルトの名無しさん: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
ロードランナー
_fmpac
エミュには大抵FMPAC.ROM付いてるから(公式は知らない)できるはず・・
そういやMSX FANにFinal Fantasy の戦闘時BGMをMSX-MUSICで再現した投稿はすげーと思った。
>>443 いわゆる耳コピができる人間なら容易いことだとは思うけどな。
確か音源も同じPSGでしょ?
>>444 >確か音源も同じPSGでしょ?
空気嫁。FMPAC≒MSX-MUSIC
446 :
デフォルトの名無しさん:2007/03/31(土) 21:19:40
同じピコピコだけどね
ぜんぜん違う。
エミュしか知らねーんだろ。
448 :
デフォルトの名無しさん:2007/04/01(日) 20:07:34
というか、なんで内蔵音源だけで再現できなかったんだろう?
どこにmsx-music使うの?ユーザ音色1色しか同時に使えないアホ音源。
449 :
デフォルトの名無しさん:2007/04/01(日) 21:57:54
誘導されてきた者です。
実は、中学生の頃から疑問に思っていて、いまだに解けない問題があります。
それは、on sprite gosub命令で、どのスプライトとどのスプライトが衝突したのかを
サブルーチン内で判定する方法はないのでしょうか?ということです。
これができないことにはシューティングゲームが作れません。
だって自機と自機の玉と敵機と敵機の玉と何が何に衝突しても同じ処理になるからです。
どの種類のスプライトを移動したかを記憶しておく変数を用意して
ON SPRITE GOSUBで飛んだ先で、ON 変数 GOSUBで分岐。
分岐先で衝突しうるスプライトの座標を比較する。
とかじゃダメなの?
>>449 on sprite gosubで飛ぶサブルーチン側で、
当たったら処理しなきゃいけないスプライトを必死に探す。
449の例で言うなら自機と敵&敵の弾、自機の弾と敵について座標を比べまくって探すんだ。
それ以外が当たってるんだったら無視。
スピードが遅くなる?
そこは各自で工夫。
450の様に、動かしたスプライトについてだけ調べてみるとかも良い。
この判定処理を機械語ルーチン化するのは非常に有効な方法だ。
>>450-451 やはり用意された方法というのはなく、座標を探すということになるのですね。
参考になりました。本当にありがとうございました。
>>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では機械語をサブルーチンのように呼び出せるので、
ベーシックの一部分を少しずつ機械語にしていくと良い。
最近始めた初心者がいるのが驚きです
なんのメリットが・・・
折角なので、機械語で簡単に組んでみた。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
DEFINTとかPUTSPRITEとか…
懐かしくもせつない響きのステートメント
457 :
449:2007/04/04(水) 14:18:36
>>453 >>455 本当にすばらしいです。
目からうろこです。
今後の参考にしたいと思います。
本当にありがとうございました。
プログラムの入門用にいいのでは。
命令数が少なく覚えやすいし、インタプリタでエラーも分かりやすい。
機械語を覚えるにしても、さほど苦労しない。
枯れた技術だけど、資料はネットでも書籍でも手に入る。
エミュレータ(公式エミュが望ましいが)を使えば、世界も広がるし。
X=X-(S=7)*(X>0)+(S=3)*(X<100)
Y=Y-(S=1)*(Y>0)+(S=5)*(Y<100)
スプライトの移動で、こういう書き方があったと思うのですが、
このままでは1ドット単位で移動することになるわけですが、
任意のドット単位で動かすにはどうすればいいんでしたっけ?
あと、斜め移動とかもどうしてたのか分からなくなってしましました。
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になるから、
そこから考えれば。
ベーマガとかでは、この書き方が推奨されていたけど
漏れ自身は必ずしもこの書き方にこだわる必要もないと思っている。
べーしっ君(ベーシックコンパイラ)でもコンパイルできないし。
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〜よりもスッキリとして良かろう。
なるほど、べーしっ君に頼るという方法も在りますね、機械語わからんし。
CALL TURBO ONとか懐かしい‥
べーしっ君だとプログラムを組むのに限界がある上に、
作ったソフトを配布するなら相手もべーしっ君を持っていないといけないので、
機会があれば機械語に是非挑戦してもらいたいものだけど。
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秒ごとに動くようにウエイトを掛けなければいけない。
機械語覚えたい。
当時はDATA 3e,00,cd,d5,00,47,3e,01とか書かれてるのを見ると、
神かと思ったものだ。
機械語の習得は、入門書なりネットなりで基本をあらかた掴んで、
人が作ったプログラムを逆アセンブルしてみるのが一番かな。
プログラムは人のソースを見るのが一番の教材だわな、昔から。
「この機械語は、こんなことをしている」という情報が
予め分かっているプログラムの方がなお良し。
上のプログラムだと 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 】
>>465 機械と仲良くなると自然に覚えるよ
覚えられないとしたら
君が無意識で機械を拒絶してるってことだよ
MSXだけでプログラムを組むのは、純粋に苦痛でしかない。
マクロアセンブラが標準で付属してないし、高機能なモニタもない。
ハンドアセンブルして機械語直打ちなんて正気の沙汰じゃあない。
実行するだけならファミコンよりかなり見劣りけど我慢できるけどさ。
入門用の環境としては最悪だね。
エディタもない
>>470 お前、Z80のハンドアセンブルやったことないだろ?
Z80なんて命令セットもしれてるし、使えるメモリだってそんなにないんだから
よほど本格的なものでないかぎりそこまで言うほどじゃない。
ただ現在のリッチな環境に一度でも慣れてしまった者からすれば結構苦痛な作業だとは思う。
昔は、漏れもごく当たり前のようにハンドアセンブルしていたな。
相対ジャンプ命令を数え間違えたり、なぜか頭の中から命令が1個
抜けたり、ハンドアセンブルミスしたりでデバッグに3時間とかしょっちゅうだった。
大きなプログラムをハンドアセンブルは正気の沙汰じゃないけど、
小さなプログラムならパパッとチラシの裏にハンドアセンブルした方が速い。
今の時代なら、Win用のZ80アセンブラとかも使えば。
フロッピーで実機とやりとりできるわけだし。
ファミコンの開発だって、今はWin用の6502アセンブラ使うんだから。
MSXベーシックは命令数が少なく簡単なので、マニュアルなくてもパパッと書けるから
漏れにとっては思考を阻害されずにプログラムを書ける、有り難い機械だけど。
そんなのMSXから足抜けできなかった逸般人だけだろう・・・。
ま、いいんじゃね? MSXのスレだし。
HSPとかで書いた方がMSXの機械語より速いのに
愕然とはするけどさ、オモチャで遊びたいのよ。
MSXび最きぃ王
477 :
デフォルトの名無しさん:2007/05/16(水) 00:40:26
あげてもおいい
478 :
GIGAMIX撲殺委員会:2007/05/25(金) 12:24:33
オレはGIGAMIXが嫌いだ。
DM-SYSTEM2みたいな他人のプログラム寄せ集めただけのクズソフトがあるから
みんなそれに甘えてしまってマシン語の勉強すらしなくなってしまう。
いいかげんにしろGIGAMIX!!
MSXのユーザーレベルを落とした張本人はおまえらだ!
技術の蓄積もなけりゃ、他人へのフィードバックも無い状況なんてのは最悪。
ユーザのレベルを云々する前に、自分の胸に手を当てて考えてみるべきだ。
自分は、MSXユーザ全体の質を向上させるために、何か努力をしてきたか、と。
努力と苦行をはき違えてるのは痛々しい。
「自力で解析する能力が衰えるから、MSX内部の技術資料は抹殺するべき。」とか
「ハンドアセンブル能力が衰えるから、アセンブラはなくすべき。」とか
「漢字コードから漢字入力する能力を身につけるために、漢字変換FPはなくすべき。」とか考えるか?
そもそも、MSXユーザのレベル以前に、ろくな開発環境も構築できない
安物のオモチャだったせいで、人をつなぎ止められなかったろう。
こんな変な制限ばかりでプログラミングしづらいヘッポコ8bit機を
好んで使うような奴は、貧乏人か、変態か、その両方でしかない。
普通はみんなX68000みたいな開発のしやすい、ぬるま湯のような環境を好むんだよ。
>>479 で、今のオープン系の惨状があるわけか。
>>460 > 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)
この書き方は速度とスペースの観点からオススメしない。
(S=2)という書き方はマシン語レベルでは条件分岐になって
速度が落ちる大きな原因の1つだから
できるものは
>>461のようになるべく配列用意したほうが良いよ。
483 :
デフォルトの名無しさん:2007/07/31(火) 17:51:50
07/27 11:24 管理人 : 他にも言いたいことは山ほどありますが、ここでやるべきではないかな、と。
07/27 11:23 管理人 : 公開できない名前など使わないのが正しいと思いますが…。本名でもないのに何を言い出すのか。その態度が他人にとって迷惑なことに、いい加減気づいていただきたい。
07/23 03:08 名称未設定 : 前使っていた仮名の正体を思いっきりバラされてしまったもので……。というわけで、この名前ももう使えませんね。
07/21 17:55 管理人 : 名称未設定なんて名前をわざわざ設定してる時点で…。時間に関しては申し訳なかったです。もうここ需要無いと思ってたんですけどねぇ。
07/14 01:51 名称未設定 : 7/14の飲み会、何時から開催か書いてあれば助かりますですね……。
MSX系の某所掲示板より…
何この管理人、ホームラン級のバカだな、こいつ。
カキーン!!
ぱ
poke-869,1 STOPキーで解除。
poke-1,1 メモリマッパがあると爆走するらしい。
MSX2の縦スクロールゲームは1ドットだけスプライトが上か下にずれる箇所がある。
スプライト一斉消去ラインの座標。
MSX2以降はSHIFT+かなでロマかな打ちモード。
ROM版のべーしっ君は16KROMなので裏RAMに転送するプログラム作れば終わりだけど
配布はしない方がいいに決まっている。
作者の鈴木さんはオブジェクトコード直接吐く版も作りたいとか言ってたけど実現せず。
この人ビルゲイツにコード書きで勝利した逸話があるらしい。
&HF000はDISK-BASICのワークエリアにひっかかる。
RAM8Kのマシンがあったこともお忘れでいいです。
まあ、HC-90/95以外の高級機はゴミだし。
>オフジェクトコードを吐く版
あってもおかしくないな、とは思っていたけど。
実現していたら最強のベーシックコンパイラだっただけに、残念。
>490
⊇Mマガ保存版2
>>490 40過ぎてフリータ(で密航して捕まったの)はエメドラのコード書いた人
直人にょ.
ク ク || プ / ク ク || プ // ,へ ヘ
ス ク ス _ | | │ //. ス ク ス _ | | │ // /ハ \_/ 八
/ ス ─ | | ッ // / ス ─ | | ッ // /_______}
/ _____ // / // ..{_____ニート_|
. / l⌒l l⌒l \ )) ____ |ミ/ ー―◎-◎-)
. / / ̄| ,=| |=、| ̄ヾ / ____ヽ (6 u (_ _) )
/ ̄/ ̄. ー'●ー'  ̄l ̄ | | /, −、, -、l )) ―-、ノ/| .∴ ノ 3 ノ 直人にょ.
| ̄l ̄ ̄ __ |.  ̄l ̄.| _| -| ,=|=、 || | -⊂)/ _\_____ノ__
|. ̄| ̄ ̄ `Y⌒l__ ̄ノ ̄ (6. ー っ-´、} | |/ 粘 ≡ :::: (、 ヽ
ヽ ヽ 人_( ヾ ヽ `Y⌒l_ノ ヽ `\( 着 ≡ :::: |___|
>〓〓〓〓〓〓-イ /ヽ 人_( ヽ `− ´ ( .無職 ::::. | |
/ / Θ ヽ| /  ̄ ̄ ̄ ヽ-イ (うーたん萌え.(t )
MSX-DOSはどれくらいMS-DOSみたいに使えたのか・・・(´・ω・`)
CP/Mくらいかな?
BASICプログラムを保存する際、
拡張子.BASは付けなくても保存できますが、
拡張子は付けなくても問題はありませんか?
.BASを付けているが多いので気になります。
そりゃよかった
>>499 慣例みたいなものなんで、別に何でも良いよ
でも起動直後に実行させたいプログラムだけは
autoexec.basというファイル名にしないといけない
>>501 ありがとうございます。
では、autoexec.bas以外の自作ゲームのようなプログラムで
拡張子を付けずとも後々に困るというような局面はないということで宜しいでしょうか?
漏れは拡張子をつけることを勧める。
それが何のファイルかが拡張子で分かりやすいから。
つけないと、ファイル整理で困ることになると思われ。
なぜ付けたくないのかが気になる。
>>503 なるほど。整理用としての拡張子という訳ですね!
>>504 シンプル イズ ベストとか思ったりしまして・・・。
N88しか知らんが、save”program”だけなら勝手にprogram.basでsaveされる。
save”program.”だと拡張子なしのprogramでsaveされる。
別に同じ名前のファイルがなければ拡張子はあってもなくても問題はないが、loadするときbas以外は拡張子が省略できないので面倒。
507 :
デフォルトの名無しさん:2008/01/28(月) 14:09:32
MSX-BASICスレでN88の例を出されても・・・
拡張子つけないってアホか?と思ったけど、最近のWindowsは非表示ががデフォだからなぁ。
拡張子がないと「中身は独自バイナリかな?」と思ってしまう。
Macは拡張子が無いです。隠された属性になります。
MS-DOSには拡張子があります。
基本は、MS-DOSの流儀に従って拡張子を付けるべきです。
これはWindowsでも同じように通用します。
良く見たら、他のスレでも同じ質問しているな。
新手の釣りだったのか?
拡張子のあとにスペースを160個入れて最後に.scrをつけます
>>510 勝手にコピペしてあたかもマルチしているように邪魔されてるんです。
今、MSX-BASICをやる意義とは?
オモチャで遊ぶ感覚を楽しむこと。
MSXなら公式エミュもあるし、ワンチもあるし、
非公式エミュも発展しているしで、動作させるには困らない。
BASICマガジンなんかを中古で買った場合、
中にある手本のBASICプログラムをMSXに打ち出した場合、
ちゃんとRUNするのでしょうか?
BASICにも色々種類があるようですし、
「こんにはマイコン」でもMSX版とPC-6001版とかがあります。
中古でBASIC本を買うときはその辺りが難しいです。
中には表紙に対応ハードを書かずに単にBASICというだけのものもあり、
それがMSXでも使えるのかどうかなど。
MSX以外のBASIC本を買った場合、MSXユーザーとしては、
どういうところを読み替えたりする必要がありますでしょうか?
大抵は問題ありませんか?
MSX用のものは、MSXで間違いなく動作する。
MSXは下位完全互換なので、MSX1用のものはMSX2でも2+でも動く。
他機種のベーシックからの移植は、難しいと思う。
両機種のハードを知っていないといけないから。
MSXは、まず他機種よりも画面が狭いので、画面回りは
大きく手を入れる必要が出てくる。
なので、「MSX用」かどうかを確認してから打ち込まなければいけないし、
他機種用のベーシック本を買って勉強は間違っていると考えるべき。
資料なら、MSXの場合はネットで検索すればある程度は出てくる。
リストは、Win上のメモ帳とかに打って"xxxx.bas"と保存して、
そのファイルを実機や公式エミュなら2Dフロッピーに、
1チップならSDカードに、非公式エミュならdiskmgrとかでディスクファイルに
入れると動作するので、ひょっとしたらプログラムの入力は
OCRソフトが役に立つかも。
>>516 そういうのは上位互換って言うんだよ!
下位互換っていうのはturboRがMSX1でも動くようなことを言うんだよ!
ツッコミ乙
1チップMSXにてSDカードにSAVEすることはできましたが、
SAVEしたファイルを削除する方法が分かりません。
BASIC命令で削除するにはどうすれば良いのでしょうか?
KILL "ファイル名"
サブルーチンがやっと分かった!
マヂで今勉強してるやついんの?
悪いとは言わんが。
俺ももうちょっと年寄りになって余裕ができてきたら
また遊ぶかもしれん。
ム板最古スレ
>>521 KILL"ファイル名”で問題なくSDカードにあるファイルを削除できました。
ありがとうございます。
当方、手持ちのMSX1のマニュアルや全BASICコマンドのリファレンスカード、
またはテープレコーダーのマニュアルにもこのKILLコマンドは記載しておりません。
このコマンドは昔からあったコマンドでしょうか?
フロッピーディスク内のファイルをいじる際に使うコマンドだったのでしょうか?
をを〜っ、スバラシイページができてる!
DataPackのWiki化計画はないかな。
MSX DISK-BASICってFDD用ということでしょうか?
>ディスクシステムを使用している場合には、このver2.0に
>さらにディスク操作の命令が追加されたMSX DISK-BASICが利用できます
テクハンHPの、ベーシックの項目にちゃんと説明がある。
ゆっくり読んで勉強してくれ。
>>529 「DISK」ってのは、ドライブレター("A:"とか"B:"とか)でアクセスできる
デバイスの総称。RAMDISKも含まれる。
あとはのんびり勉強してくれ。
このスレって、意外と見ている人多いのか?
多色刷りを勉強し始めました・・・
シューティングゲームを作ろうとしたけどテキストとグラフィックが同時に使えないから
点数表示ができない。助けて!アルゴマン!
open "grp:" as #1
preset (x,y)
print #1, score
だっけ?
10 SCREEN 5,2,0:DEFINT A-Z
20 OPEN "GRP:" FOR OUTPUT AS #1
100 PRESET(100,100)
110 PRINT #1,"HELLO WORLD!"
120 GOTO 120
グラフィック画面でテキストを表示する場合、こうやる。
凝りたければ、COPY命令(またはそれに準じるもの)でスコアを表示するのもアリだな。
スクロールするゲームが作りたいという場合は、
スプライトでスコアを表示させるか、垂直帰線割り込みによる
画面分割というテクニックが必要になってくる。
■■■■■■■■□□□□
■■■■■■■■タイトル
■■■■■■■■□□□□
■■ゲーム画面■□点数□
■■■■■■■■□□□□
■縦スクロール■□残機□
■■■■■■■■□□□□
■■■■■■■■□□□□
こんな画面構成にしたいんですが
スクリーン4を使って、8ドットスクロールさせれ。
その画面割りで1ドットスクロールは、漏れにはでけん。
MSX-DOSの話題はスレ違いでしょうか?
新スレ立てるのもアレですし、
このスレに統合しても構わないですか?
>>537 垂直帰線(V-Sync)ではなく水平帰線(H-Sync)ね。念のため。
MS-DOSとMSX-DOSはどの程度共通しておりますか?
MSX-DOSを使いこなせれば、その知識でMS-DOSも使いこなせるものでしょうか?
MSX-DOS2だったら、結構近いけど、MSX-DOSだと微妙。
CD
MD (Mkdir)
RD (Rmdir)
がMSX-DOSには無かった記憶が。
結局、MSX-DOSもMS-DOSもMSX-DOS2も、そこから動かすコマンド次第なので、
使えるようにはなるけど使いこなせていない。と感じると思う。
PJだよ。PJ.PatternJack最高
>>544 すみません。私がやりたいのはMSX-DOS2の方ですね。
こちら方ではMS-DOSと共通部分が多いということですか?
MS-DOSは16ビットでMSX-DOSは8ビットの機能限定版と聞いたこともあります。
どのような事をもって使いこなせる。と感じるかだと思いますよ。
実際のプログラムは「まったく」使えないし。
ファイル管理方法が同じで、COMMAND2.COM(DOS2)とCOMMAND.COM(MS-DOS)上の
コマンドでよく使うのが同じ。ってくらい。
MS-DOSとの関係的に話を広げちゃうと
・CONFIG.SYSによるデバイスの設定
・常駐プログラムの概念
・EMS/BMSなどの追加メモリ管理の概念(デバイスドライバだけど)
とか、範囲が広がりすぎる。
MS-DOSで何をしたいんでしょう?
Windowsのコマンドプロンプトで詰まってる奴を見ると、
「プログラム書いててDOSも知らねーのかよ」と思うことがあるが、
今からDOSを学習しようとする奴を見ると、
「何で今頃DOS?」と思ってしまう、矛盾した俺。
>>547 なるほど。そういうレベルでの利用法ならMSX-DOS2でも勉強になるかもしれないな。
>>545 MSX-DOSはファイル形式とシェルがMS-DOS風味になったCP/Mです。
BDOSコールなどは完全にCP/Mですから。
>>546 1chipMSXやMSXPLAYerでのファイル管理です。
またMSX-DOS2を覚えることが、MS-DOSを覚えることと等しいのであれば、
ウインドウズでのコマンドプロンプトも使いこなせることになると思ったからです。
当方、今のところコマンドプロンプトを使えません。
>>550 ファイル名を指定して実行
cmd
でコマンドプロンプトを開けて、
help | more
DOSのシェルでやれることなんてしれてるからね。
シューティングの部分スクロールって
widthで幅を少なくして余白をずらすってテクニックがあったよな。
553 :
デフォルトの名無しさん:2008/02/09(土) 08:52:18
MSX1のゲームってシンプルなものが多いですが、
全てBASICで作られたものでしょうか?マシン語で作られたものでしょうか?
MSX1のボコスカウォーズのようなものが作りたいのですが、
BASICだけで再現できますか?マシン語は必要ですか?
Mマガに作者が大学生の時に作ったと言っていました。
一人であれだけのゲームを作れるなんて凄いですね。
当然、ベーシックでは速度的に限界があるので
マシン語で作られているのがほとんどだが、
ベーシックでも作れなくはない。まずは、作ってみればよい。
ベーシックで遅いと思ったら、処理の重い部分を一部マシン語にして
ベーシックからその部分を読み出すようにするだけで全然違う。
そうやって、徐々にマシン語にしていけばよい。
>>554 市販のパッケージソフトでオールBASICで作ったゲームタイトルはありましたか?
ミステリーハウスとかが、そうじゃねぇ?>オールベーシック
あれ、工夫したらリスト表示されたし。
ファンダムコレクションが市販パッケージだしROMカートリッジだしBASICだぞ。
こないだからずっとだが、多分MSXの事をかなり深く
知っていて、面白半分に質問していると思われ。
>Mマガに作者が大学生の時に作ったと言っていました。
この時点でイマドキノヒトではないな・・・
>>561 イマドキの新参者です。
Mマガ永久保存版にボコスカウォーズの作者が寄稿していたのです。
>>541 いいえ、最近1チップMSXを買って始めた初心者です。
>>538,
>>563 ほんとうにMSX初心者であるなら、とりあえず…
横に割るのはOKで、縦に割るのがNGな理由はハードウェア(というかビデオ信号の理屈)を知っていればすぐ判る
というか、判ってないならスクロール型のSTGなんかそうそう作れない
って書いてたら、ZANACのMSX1版とMSX2版の差を思い出した
ファミコンですら画面縦割りでスムーズスクロールするSTGなんて思いつかんしなあ
ええと、もしかしてMSXってグラフィック二画面の重ね合わせとか出来なかったりしますか?
できません。表示は1枚です。
SET PAGE の命令の説明を見れば分かるかと。
ってか、MSX発売当時のPCで、そんなことが出来る機械といえば16bit機ぐらいだな。X68000とか。
テキストが独立するけど単色しか出ない88や98ってのも、いちおーありか?
FM-77AVあたりだとテキストすらグラフィック画面に上書きで吹いた覚えがあるなあ
>564
ファミコンのロードファイターが画面縦割りだったぞ。
あれはスコアとかをオブジェでやってたんかな。
>>568 ついでにギャラガもそうだっけか
背景無地だし、多分、スコア部分はスプライトだろうかな。ロードファイターのロードマップは縦線だし
ギャラガぐらいの背景なら、書き換えてもチラつきは「演出です」でごまかせそうだが
スコア部背景無地なら擬似的にできる、ということになるか
ファミコンの場合、ギャラガはスコアをBGで表示している。
左メイン部分の星のスクロールをスプライトで描いている。
ロードファイターは、右のスコア部分全てをスプライトで描いている。
だから、画面を縦割りできている。
工夫の産物だな。
571 :
デフォルトの名無しさん:2008/02/11(月) 18:35:44
MSXなら8ドットスクロールで我慢汁
572 :
デフォルトの名無しさん:2008/02/11(月) 18:40:30
>>567 FM-7はテキストもグラフィックVRAM直書きなのを逆手にとって
RGM3プレーンまで文字重ねてかけるぞ。
パレットで色も合成も自在。
懐かしいなー。
PC-8801/PC-9801系は、テキスト+RGB3(98VM2以降はさらに+1)プレーンあったから
プレーンとパレットの割り振り次第では結構できるはず。Xanaduとか旨く利用してた。
MSXはプレーンタイプの割り振りじゃないから厳しいよね。
何だよロードファイターってwロードランナーだろww
知らないなら、せめてぐぐればいいのに。
|
|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
縦分割のSTGって話が出てたんでブラスターバーンを思い出した。
8ドット単位の潔いスクロールだったなぁ。そういえば。
でも回転する面はすばらしかった。
その回転する面のBGMが、ガーディックのアレンジだとわかったのはずいぶん後だった。
右側のスコア部分を、スクロールに合わせて毎回書き直すのでは
間に合いませんか?
まずは、自分でやってみれ。
どれだけのものを書き直すかにもよるだろ。
MSXでビットマップ描画をするのか
暇つぶしにBASICでやってみた
適当にゴミ描いて、85x10のサイズをYMMMでコピーしてスクロール
ページはスプライトエリア触るのがめどいから、1と3を使ってかぶらんよーに回避
画面の切り替わり部分で表示が消えるけどスルー
見た目の同期を取るためのウェイトも無し
310行目はZ80モードなら、YMMM終了にBASICが追いつかないから要らんけどね
100 SCREEN 5:OPEN"GRP:"FOR OUTPUT AS #1
120 SETPAGE 1,1:CLS:FOR I=0 TO 100
140 LINE(RND(1)*160,RND(1)*212)-(RND(1)*160,RND(1)*212),RND(1)*16
160 NEXT:COPY(0,100)-(255,200) TO (0,190)
170 SETPAGE 1,3:CLS:PSET(169,1),0:PRINT#1,"SCR:000000"
190 FOR I=0 TO 255
210 VDP(35)=0:VDP(36)=3:VDP(37)=170:VDP(38)=0:VDP(39)=(I+20)AND255
260 VDP(40)=1:VDP(43)=10:VDP(44)=0:VDP(46)=0:VDP(47)=&HE0
310 IF(VDP(-2)AND1)=1THEN310
340 VDP(24)=I:NEXT:GOTO 190
あー遅い。
前から思っていたが、VDPコマンドは知らない人が見てもさっぱりだな。
COPY文とかで描けない領域描くには、これしかないからなぁ
つくづく、そのあたりが面倒な画面仕様だな。
>>584 SETPAGEと送り先ページ指定で、どこからどこへもCOPYは出来ると思うが
SETPAGEとかの手続きがめどいってのは確かだな
でもページを1枚1枚分割するほうが、とっつきやすいからの
SCREEN3を使えば高速に画面をいじれるよ
その代わり、なんじゃこりゃな画面になるがなw
そのまえに本題の根底な「スコア」が書けない… スコア縦に2桁?
数字を色に置き換えれば1桁1ドットで…やっぱりなんじゃこりゃだな。
スコア用にスプライトを定義すればよかろうなのだ
>>590 >>570ですでにFCを例にしてその解決策が出ているにもかかわらず
>>579みたいな質問がキタからこの流れなわけだが…
もしや、SC3のなんじゃこりゃ画面にスプライトでスコア?
SC3に妖精だとおもってた
星のスクロールなら、1ドット毎にずれたキャラをつくっておいて書き換えれば済む。
グラディウスは星だけスムーズスクロール
おまいら、まずスクリーン3から頭を離せw
スクリーン3はネタだろww
595 :
デフォルトの名無しさん:2008/02/25(月) 21:44:10
>>594 スマン
俺がスクリーン3などと言ったばかりにw
でも、縦横回転スクロールをやりたかったのでスクリーン3を使ってお試しプログラムを書いたことがあるよ。
マシン語だったけど、グルグルグイグイ面白かった。
そこから何にも発展なかったけどw
なつかしいなw
それのサウンドドライバのMPKが使いやすくて好きだった
暇ながら、スプライトでスコアを表示するプログラムを簡単に作ってみた。
スコアの値をスプライトに定義するところだけ機械語。
10 SCREEN 5,2,0:CLEAR 200,&HCFFF:DEFINT A-Z
20 FOR I=&HD000 TO &HD039
30 READ A$:POKE I,VAL("&H"+A$)
40 NEXT
50 DEFUSR=&HD000
60 FOR I=0 TO 5:POKE &HF000+I,0:NEXT:'F000〜5に6桁の数字が入る
100 FOR I=0 TO 32767:A=I
110 FOR J=0 TO 2:PUTSPRITE J,(100+J*16,I MOD 190),15:NEXT
120 B=10000
130 FOR J=0 TO 4
140 POKE &HF000+J,ABS(A/B):A=A MOD B
150 B=B\10
160 NEXT:'F000〜5に表示させたい数字を1桁ずつ入れる
170 A=USR(0)
180 NEXT
190 GOTO 100
1000 'スコアの値(F000〜5)をスプライトに定義する
1010 DATA dd,21,00,f0,06,00,c5,dd, 7e,00,c6,30,26,00,6f,29
1020 DATA 29,29,44,4d,2a,04,00,09, c1,78,c5,e5,26,00,6f,29
1030 DATA 29,29,29,11,08,78,19,54, 5d,e1,01,08,00,cd,5c,00
1040 DATA dd,23,c1,04,78,fe,06,20, cd,c9
この例ではMSX内蔵フォントを読んでいるので、自分で定義したフォントを
使いたければ、1020行の 2a,04,00 のところを 22,nn,nn というように指定すればOK。
スクリーン5/6以外なら、1030行の 08,78 をスプライトジェネレータVRAMアドレス+8でOK。
遅いのは、他の処理がベーシックだからしょうがない。
最後の2文字がRETなのだけわかった
>>600 それが分かったら、マシン語の第一歩だな
C3 48 45 4C 4C
スレ違いだが相対ジャンプのアドレス計算が苦手だ。
パッと出てこない。
>>602 JP 4548h
LD C,H
LD C,H
二度転送するのは何かのおまじないであろうか?あろうか?
>>603 48 H
45 E
4C L
4C L
BASICではないが、オッサン臭がして面白い。
晒しは(゚听)イラネ
まじかよ、そいつひでーな
元気出せ
俺はおまえの味方だぞ
こんなとこまで出張してきてるのか…
>>599 せっかくだからマシン語もBASICにしようと思ってハンド逆汗しようとしたが
LD A,(IX+d) で「d」ってなんだっけっていう挫折… orz
>>611 dは、好きな数を入れる。dに8を指定したら、
IXの指定番地+8番地目の値をレジスタAに読む。
>>611 機械語でやっていることは、
(1)文字フォントを格納しているROMの番地を調べ、そこから(48+表示する数字)×8を
足して、表示する数字のフォント番地を求める
(2)7808h(SC5の場合)+16×桁(左から。十万→一万→…の順)から8バイトに
上で求めた数字フォントから8バイトを書き込む。つまりスプライトジェネレータの
下半分しか触っていないため、上半分は好きに使える
(3)これを6桁分行う(ので、スプライト定義番号0〜2を使う)
なので、この考えをベーシックにすればOKだな。
500 '
510 A=PEEK(4)+PEEK(5)*256
520 FOR K=0 TO 5
530 B=(PEEK(&HF000+K)+48)*8+A
540 FOR L=0 TO 7
550 VPOKE &H7808+K*16+L,PEEK(B+L)
560 NEXT
570 NEXT
580 RETURN
なのでベーシックならこのようにして、A=USR(0) を GOSUB 500 にすればOK。
614 :
611:2008/03/06(木) 10:20:21
>>612 せんくす
直接数値ってと[n]とか[m]しか記憶になかった。
ひさしぶりにべったりZ80触るかな…
>>613 やっぱりそういう流れだわね
ふと、先にROMをVRAMの空きに展開しておけば、
VDPの転送とか使えるな〜とかおもた。
ひさびさに逆汗して遊ぶ(゚∀゚)
616 :
デフォルトの名無しさん:2008/03/09(日) 22:33:40
ギザカワイソス
非常に良い出品者です。 評価者:x68000acehd2000 (3)
◆即決◆MSX グラディウスシリーズ5本+スペースマンボウ (終了日時:2008年 2月 21日 0時 18分)
コメント : 本日商品を受領しました。とても素早い対応で安心して取引が出来ました。
ただ、経年劣化が予想を超えてあまりに酷く、残念な結果でしたが、そこは賭けでしたので納得してます。ありがとうございました。 (評価日時 :2008年 2月 25日 22時 11分)
http://page8.auctions.yahoo.co.jp/jp/auction/h54614200
とりあえず投下。VDPコマンドがまともに動いてないのでCOPY文・・・orz
100 'COPY命令によるパレット切替テスト
110 DEFINTA-Z:P=3 'スクロール速度(P>18では正常に動作しません)
140 COLOR15,0,0:SCREEN5,0:SETPAGE1,1:CLS
160 FORI=0TO15:LINE(I*16,0)-(I*16+15,210),IXOR(I+1AND15):NEXT
170 COPY(0,0)-(254,210)TO(1,0),,XOR
180 FORI=16TO31:LINE(I,I)-(255-I,210-I),15,B,XOR:NEXT
190 SETPAGE1,0:IFSTICK(0)=0THEN220 'カーソルでデバッグモード
210 SETPAGE1,1:VDP(24)=128
220 CLS:vdp(9)=vdp(9)OR2
230 A=A*5+13AND4095
240 NR=A\8AND7:NG=A\64AND7:NB=A\512AND7
250 'パレット座標指定
260 SL=(SL)MODP+193:LL=SL*128
270 '色指定 (R,G,B のいずれか1つのみ、変化させる)
280 XB=XB+SGN(NB-XB)*(XR=NR)*(XG=NG):XG=XG-SGN(NG-XG)*(XR=NR):XR=XR+SGN(NR-XR)
310 'パレット情報を移動
320 COPY(59,SL)-(0,SL)TO(63,SL):VPOKELL,XR*16+XB:VPOKELL+1,XG
350 'RESTOREさせる座標にパレット情報複製(スプライト破壊が起きています)
360 COPY(0,SL-26)-STEP(63,26)TO(0,211):COLOR=RESTORE
380 IFSTRIG(0)THENEND
390 '色変化がなくなったときは色を再指定
400 IFNR=XRANDNG=XGANDNB=XBTHEN230ELSE260
書き換えても問題ないシステム用ワークエリアを拝借(ダイレクトモード専用命令のAUTO関係とか)
REM文上の文字が直接マシン語のコードになってるプログラムなどで自前のワークエリアを用意できないときに便利
INTFLG(FC9BH,)に3を入れるとMSX-BASICはCTRL+STOPが押されたときの処理をする
そこで、H.TIMIでキー入力を監視してINTFLGを操作することでCTRL+STOP以外でもCTRL+STOPできる
普通はPLAY文の演奏中にキー入力によって演奏を中断させようとすると、区切りのいいところまで演奏してから止まるけど
この技とON STOP GOSUBを使えば、PLAY文で作った音楽集で演奏中いつでもジョイスティックのトリガでメニューに戻るとかもできる
ダイレクトモードでカーソルを画面右端に置いてスペースキー
カーソルは次の行の左端に移動するが、このとき2行が接続される
バックスペースを押すとカーソルを先頭にした行が前の行を削っていくように見える
10 CLS ■
20 BEEP
↓
10 CLS
■0 BEEP
↓
10 CLS ■0 BEEP
のようにできて、最終的には
10 CLS:BEEP と1行にまとめることができる
DATA文をまとめたいときなどに便利
621 :
デフォルトの名無しさん:2008/04/27(日) 16:23:45
?1+1■
でリターンを押すと
?1+1
2
Ok
■
となるが、
SETPROMPT CHR$(30)でカーソルの上移動をプロンプトに設定すると
?1+1
2
■
となり、ダイレクトモードで何度も計算や実験をするときに便利
上に戻るカーソル移動量も減るし、必要だった文字をプロンプトに消されたりしないし
うっかりプロンプト上でリターンを押してシンタックスエラーが出るのともおさらば
プログラム実行中に使うとダイレクトモードに移行してしまうlist命令なども
キーバッファにrunやgotoとリターンコードを入れておけばプログラムに自動復帰できる
プログラム実行中にリストを表示したいときなどに便利
ためしてはいないけど、autoでこれをやるとプログラムの自己書き換えもできるかも?
>>622 キーバッファに書き込む方法ぷりーず
ワークエリアの指してるアドレスに書くだけ?
>>623 これをズラす
PUTPNT(F3F8H, 2)
初期値 KEYBUF(FBF0H)
内容 キーバッファへの書き込みを行う番地を指す
GETPNT(F3FAH, 2)
初期値 KEYBUF(FBF0H)
内容 キーバッファからの読み込みを行う番地を指す
>>624 やってみた
なんかできそーだったけど、バッファの使い方がいまいちわからなくて
てきとーにやってたら、延々自分を実行し続けたりして笑た
626 :
デフォルトの名無しさん:2008/04/30(水) 14:09:17
>>617 を応用して星を流してみた
ゲームとして使うには速度が足りない・・・ orz
10 'スプライトの擬似スクロール
11 '(初回起動時はカーソル右を押したまま実行してください)
12 CLEAR200:DEFINTA-Z:SCREEN5,3:COLOR15,0,0:CLS:DIMS$(7):A=RND(-TIME)
13 FORI=0TO15:SPRITE$(I)=STRING$(I,0)+" ":NEXT
14 SETPAGE0,1:IFSTICK(0)THENCLS
15 'スプライトカラー定義(コピー元)
16 FORI=0TO511:VPOKE&H6700+I,15:NEXT
17 'スプライト定義 (星)
18 'メイン処理 (スペースキーで終了)
19 X=RND(1)*25088:Y=X\128:G=XAND15:X=XAND255:P=P+1AND31
20 COPY(55,L)-(0,L)TO(63,L)
21 V=L*128:VPOKEV,Y:VPOKEV+1,X:VPOKEV+2,G
22 COPY(0,L)-(63,L)TO(0,210)
23 COPY(0,185)-(63,210)TO(192,211),0
24 G=G+4:L=L+1AND63
25 IFSTRIG(0)+1THENIFG>63THEN19ELSE20
擬似回転プログラム (不完全)
まじめに計算すると遅くなる人向け
スペースキーで終了ですが、長押ししないと効きません。
計算式は絶対間違ってるので、修正できる人に回します。
縦横比の修正だけでも処理できれば、
スプライトの回転グラフィック生成用に使えるかもしれません。
10 '_TURBO ON
20 SCREEN5:SZ=16 'MAX:64
30 FORI=3TOSZ\2STEP4:CIRCLE(SZ\2,SZ\2),I,I\3:NEXTI
40 LINE(0,0)-(SZ,SZ),14,B:LINE(0,0)-(SZ,SZ):LINE(SZ,0)-(0,SZ)
70 FORJ=1TO0STEP-.05:SX=J:SY=SQR(SX)/2
80 LINE(128,0)-STEP(SZ*2,SZ),0,BF
90 FORI=0TOSZ:COPY(0,I)-STEP(SZ,0)TO(I*SX+128,I):NEXTI
110 LINE(128,96-SZ\2)-STEP(SZ*2,SZ*2),0,BF
120 FORI=0TO(SX+1)*SZ:COPY(I+128,0)-STEP(0,SZ)TO(I+128,(SZ-I)*SY+96):NEXTI
150 COPY(128,96)-STEP((1+SX)*SZ+3,SZ)TO(0,96)
160 NEXTJ
165 IFSTRIG(0)THEN270
170 FORJ=0TO1STEP.05:SX=J:SY=SQR(SX)/2
180 LINE(128,0)-STEP(SZ*2,SZ),0,BF
190 FORI=0TOSZ:COPY(0,I)-STEP(SZ,0)TO((SZ-I)*SX+128,I):NEXTI
210 LINE(128,96-SZ\2)-STEP(SZ*2,SZ*2),0,BF
220 FORI=0TO(SX+1)*SZ:COPY(I+128,0)-STEP(0,SZ)TO(I+128,I*SY+96-J*SZ/2):NEXTI
250 COPY(128,96)-STEP((1+SX)*SZ+3,SZ)TO(0,96)
260 NEXTJ
270 IFSTRIG(0)+1THEN70
もし、
>>626 と
>>617 が動作しないときはツッコんで下さい
>>626 の 17行目は12行の後に移すか、見なかったことにしてください
COPY命令だけで色の置換を行うプログラム
応用すればVDPで乗除算も可能だが、実用になるかどうかはわからない。
10 'SAVE"colorchg.txt",a
20 'CALL TURBO ON
30 DEFINTA-Z:COLOR15,0,0:SCREEN8
40 FORI=1TO7:FORJ=0TO1:CIRCLE(31+J*64,31),31-I*4,I*(4+J*28):NEXTJ:PAINT(31,31),I*4:NEXTI
50 FORI=0TO7:COPY(0,I*8)-STEP(127,7)TO(0,64)
60 COPY(0,64)-(127,119)TO(0,72)
70 FORJ=0TO7:LINE(0,J*8+64)-STEP(127,7),2^J,BF,AND:LINE(0,J*8+64)-STEP(127,7),2^J,BF,XOR:NEXTJ
85 FORJ=2TO7:LINE(128,J*8+64)-STEP(127,7),2^JXOR2^((J+1)MOD6+2),BF:NEXTJ
90 COPY(0,64)-STEP(127,63)TO(128,64),,TPSET
95 FORJ=2TO7:LINE(128,J*8+64)-STEP(127,7),2^J,BF,XOR:NEXTJ
120 COPY(128,64)-(255,119)TO(128,72),,OR
130 COPY(128,120)-STEP(127,7)TO(128,I*8):NEXTI
140 IFSTRIG(0)+1THEN140
MSXマガジンに載ってた
BASICROMを音データにして演奏するやつ>>前衛ジャズそのもので聞き惚れ
テープI/Oを超高速で唸らせてサンプリング音再生するやつ>>機械語だったかもしれんが
630 :
デフォルトの名無しさん:2008/07/19(土) 05:47:56
ヘクスマップを描画する良い方法はありませんか?
いろいろあるのに、どこがダメなの?
どうやらMSXではヘクスマップを簡単に表示する方法は無いみたいですね。
残念です。
■■◎◎■■
■■☆☆■■
□□☆☆□□
□□★★□□
■■★★■■
■■◎◎■■
こんな感じの組み合わせでヘックスっぽく使ってたソフトもあったような。
ユニットの向きも視覚的に扱いたいのでヘクスでお願いします。
ユニットの向きを6方向分用意すればいいだけじゃ?
MSX限定でもないが、ヘクス升を画像データで用意しといて
中に四角の地形やキャラを置くというのはありそうだ。
方向が欲しいならキャラクタを用意するか、スプライトで方向矢印をだな…
まあ奥義ではないな。
ところで、MSX1なのか2以降なのかによって、盛大に話が変わると思うが
Screen3 か Screen12 でやれば漢
QVGAの携帯画面に縮小されてもバッチリ全部読めてワラタ
解像度的には確にそんなもんだったな。
>>639 8x8幅で収まるんだなーとおもたが、よく考えたら四角を半分ずらしたマップと一緒なんだな。
これは知らなかった。
あとは、中の24x24をどう埋めるかか。
| (縦線)と∧∨みたいなの使って、
| | | |
∨ ∨ ∨
| | |
∧ ∧ ∧
| | | |
ってやったらどうだろう。
同一フォントはないから、PCG使って。
縦線と縦線の間に、一文字分のスペースがとれるから、
そこにキャラのPCGを入れる。方向別に6種類の絵を作る必要があるけど。
(斜め上+横+斜め下の三種類に左右反転表示を組み合わせて6種類、または、斜め上のPCGを上下反転で斜め下とすれば2種類でもOk?)
僕は、エイダちゃん!
>>642 ズレとるズレとる
ちょっと縦長すぎやしまいか?
| | | |
∨ ∨ ∨
| | |
∧ ∧ ∧
| | | |
せめて横にも2キャラ
.| | | |
\/\/\/
. | | |
/\/\/\
.| | | |
2chらしからぬ親切レス。
647 は最上級に褒め称えられて良いし、もっとあれこれスレに投下すべき。
ヒマなんだろ。
こうしてみると、難しそうに見えるだけで
ムチャクチャ簡単な処理だな
LINE命令で作るとどうなる?
ここが一番古いのか
654 :
デフォルトの名無しさん:2008/08/26(火) 00:46:37
保守
PLAY"T40S8M60C1."
ぎょんぎょん
>>34 そのバグのせいで1画面におさまらなかったプログラムもあるんだろうな・・・。
サブルーチンを呼び出すとき、引数を渡す代わりに、変数領域をいじって変数名を書き換える。
X=.... : POKE VARPTR(X)-n,ASC("Y") : GOSUB ....
......
PRINT Y : RETURN
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
664 :
デフォルトの名無しさん:2008/10/31(金) 01:37:50
汚いスレだなあ
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
>>663 ホモセックス-ベーシックの奥義を伝授するスレか?奥が深そうだなあ〜
672 :
デフォルトの名無しさん:2008/10/31(金) 17:47:08
いつのまにシゲルのスレになってるんだ?
あぼーん
あぼーん
>>674 こっ、こんなこと初めてだけどいいんです…
ボッ、ボク…阿部さんみたいな人 好きですから…
変なホモネタ貼るのやめろよ!MSXの話ができねぇだろが!!
昔のPC板→レトロゲーム板→ここまで荒らしに来たか
荒らし野郎はアク禁にしてもらいたいものだが、
運営は何を放置しているのやら。スレの空気が悪くなるばかりだ。
あぼーん
あぼーん
680 :
デフォルトの名無しさん:2008/11/01(土) 23:01:51
クルルァ!スレ荒らすんじゃねぇよ。
AAの板でやってくれ!
MSXplayerのMusicaでSCCの音が鳴って感動した
>>681 なんかSCCはMSXの標準音源にされつつあるな
まあ今更SCCカートリッジを入手するのもめどいけど
ちなみに、MuSICA
24時間MSXカテに貼りついてるhellomsx(hotwaterplus)
買う気がないのは吊り上げ、欲しいものはスナイプ
ようちゅういw
↑藤原覚ってやつだな。コイツが入札してきたら削除しようw
686 :
デフォルトの名無しさん:2008/12/14(日) 12:20:09
吊り上げてきたら早期終了してやるよ
_memini
>>687 懐かしすぎて何の命令だったかしばらく思い出せなかった
質問
今さらハードを買ってmsxを知る価値はありますか?
ちなみに昔msxに憧れた世代だけど・・・
690 :
デフォルトの名無しさん:2008/12/21(日) 21:51:54
>>689 CPUとIOを直接いじくってなにかをするというのがやりやすい。
OSを介さずにグラフィックさわれるし、制限がきついので、コンピュータのアーキテクチャを感じやすい。
BASICだけさわったり、過去ゲームで遊ぶだけなら、あまり価値はないと思う。
>コンピュータのアーキテクチャを感じやすい。
名言の気がするぜ
アキティクチャいうても、スロットとVDP以外はZ80の基本だと思うけどね
Z80(つか、コンピュータのありよう)を知るにはいいと思う
MSXを知るってよりは、Z80を知るためにMSXを利用する、のほうが有意義な気がす
MSXがなかったら、俺はマイコンのPGなんかやってなかっただろうなあ…。
某工学社でバイト募集してて、応募したらPC歴を聞かれてMSXって言ったら鼻で笑われたおもひで・・・
98か68じゃないとパソコンとは言わないよーって言われたぜ・・・もう20年近く前になるのか・・・
あれは本当にPIOやI/Oの工学社だったのか?
>>692 スロットはMSXの特徴だろうね
あのスロットを選択する仕組み(Chip Selectみたいなピン)を
知ったときは、結構衝撃的だった。
VRAMがメモリマップでないのも、ビデオアクセラレータの流れと
似ていて古くて新しい感じ
>>693 まあ仕方ない
20年前じゃなく25年前なら少しは勝負できたかも
80年代終わりの頃には既にPCの32ビット時代が叫ばれていて
次世代の覇権OSはどれかとか
それでもまだまだ膨大な資産のある16ビットMS-DOSは安泰とか
そういう時代じゃなかったっけ
25年前ってちょど初代マックが発売されたころか。
勝負って何の勝負よ?
>>696 >>693の話からして「パソコンとして」の勝負じゃなかろか
98でいうとRAの頃かな?
そのころはまだ32ビットでも過去のアキティクチャ引きずったグダグダだし
MSXでもどこまで使い込んだか次第だと思うんだけどね
98の場合は漢字をテキストVRAMで表示できたのが大きいからなあ。
MSXでは、どう足掻いても一瞬で漢字を表示できなかったからなぁ。
ああMSXのVDP、遅ぇーー! って毎度叫ぶことになる。
そこでハイドライド3の漢字フォントですよ
たしか 8x8 サイズだったよね?多分PCG定義だから一瞬で表示可能
しいて欠点を言えば、マニュアルの対応表みないと判読できない
文字があるぐらい
MSXで利用されたことがあるかはわからいないが、りさふぉんとは8x8っすよ。
えりさ。ね。「え」が消えてた。。。
ググルと(画像検索すると)結構利用例が見つかるね
かな混じり文だと、脳内補完が働くから結構読めるな
メガデモといえば…
むかし、ANMAだかなんだかいうのが作ってたやつが回ってきてたなあ
64kbのMSX2用のはずなのに、メモリマッパ乗ってないと動かないという不思議な仕様だったが
poke&H8003,1:poke&H8004,0
709 :
デフォルトの名無しさん:2009/09/03(木) 10:21:43
BASIC繁栄時代?
全部読んだ〜。ハイドライドの説明書には漢字の判読表が付いてたね。
自作ゲームで英小文字や記号を漢字に書き換えたり、←↑キャラクタコードを使って濁点を一文字に含めなくしたりして悦に入っていたなぁ…。
wizardry風の曲がった矢印のフォント、Ultima風棒人間キャラ、32268階建ての塔を攻略するRPG…アホな事に真剣だったよ。
711 :
デフォルトの名無しさん:2010/08/03(火) 20:48:20
712 :
デフォルトの名無しさん:2010/09/17(金) 23:16:43
えむえすせっ○すべーしっく?
またえらい使い古されたネタを…酸素欠乏症?
昔、MSXで、2人対戦型の戦車ゲームで遊んだことあるのだが、どなたかご存知ないでしょうか?
・たぶん、雑誌の投稿コード。マシン語を多用。
・2D。上から見下ろし。
・画面は、左右に2つ、2人のプレイヤー別に表示。 中央に自機の戦車がある。
それぞれ、縦・横にスクロールする。画面の回転はしない。普通の2D見下ろし画面。
・マップが4つくらいある。2Dだけど、まあまあ広い。
・2人対戦が凄く面白かった。
知ってるよ
と言ったところで何になんの?
716 :
714:2010/09/18(土) 02:55:41
>>715 名称を知りたい。
ソースを見て、どんなコードになっていたのか見たい。
また遊びたい。
そんなに難しくなさそうだから作れば?
ム板なんだし
こんな古いスレがあったのか
>>714 そのゲーム知らんけどネットワーク越しに対戦出来たら確かに面白そうだ
>>714 フィールドマスターだな、ログインで掲載されていた
723 :
デフォルトの名無しさん:2010/09/20(月) 12:51:25
奥義を詰め込んだコードを見せてくれ
MSXナツカシー
かまぼこ板のプロトタイプとかすごくおもしろかった
開発の中心にいたASCIIの人たち今何やってるんだろう
725 :
714:2010/09/20(月) 20:41:52
そろそろ奥義をみせてくださいよw
せっかく伝授したのに・・・
なにを?だれに?いつ?どこで?どのように?
スレ読め
VDPの性能がファミコンのリアルタイム性に遠く及ばなかったのが
敗因だよなぁ
>VDPの性能がファミコンのリアルタイム性に遠く及ばなかったのが
背景とスプライトの色表現力で負けてるから
リアルタイム性は9918の方があるよ、ファミコンはDMAでVSYNC中に300バイト程度しか送れない
あんな表現力でリアルタイム性だけ勝っててもねえ。
比較するならせめて 9938 だろ。
734 :
デフォルトの名無しさん:2011/03/27(日) 20:22:50.35
10 print "名無し"
20 goto 10
end
10 POKE RND(1) * 65535, RND(1) * 255
20 GOTO 10
>>735 RNDって、0〜1未満じゃなかったっけ? で、RND(1) * 65536, RND(1) * 256 じゃない?
あと、BASIC上にいるときは、上32KBはROMだから、 RND(1)*32768+32768 じゃない?
上って0番地側か
ずっと8000H〜ffffHがROMだと思ってた
で,
>>735 は,どんなことが起こるの?
ひたすらランダムにメモリを破壊していくようにしか見えないが?
どうでもいいけど、「上」ってffffH寄りじゃないのか?
コードやデータを読むとき上から下にたどっていくって感覚だと先頭に近いほうのアドレスが上になる
>>738 0〜7FFFがROMだね。
ワークがFFFFからさかのぼってくるハズだから、MSX1の16KB機種はC000からRAMか。
>>739 どっかのワークに当たった瞬間に暴走するだけかと。
BlueMSXのturboR設定で試したら、しばらくしてイリーガルファンクションコールをはき続けたわ。
743 :
デフォルトの名無しさん:2011/04/24(日) 04:46:57.82
数々のMSBASICがあるなかでMSX-BASICは最低だったね
こういう事言うと必ず信者が噛み付いてくるけど
事実は事実として歪曲することなく認めないとね
まぁ今更なんだけど使っていた奴に同情するよ
反論があればよろしく
↓
何が最低なのかも書かないってのはアタマの悪い証拠にしかならんぞ
だってアホやもん
前スレから1ヶ月あいてるのに… もう一ヶ月放置しといたら独り相撲だったのに…
×前スレ
○前レス
やっちまったーい。
10 'LND712を仮定しGM管のパルス数(CPM)からシーベルト(uSv/h)へ単位変換
20 input "cpm";a
30 print a/108;"uSv/h"
10 '毎時の放射線量から一年間累積した時の実効線量を求める
20 input "uSv/h";a
30 print a*24*365;"uSv"
ガイガーカウンタのパルスをジョイスティックポート等に入力し、パルスをカウントすればデジタル方式の。
ガイガーカウンタになる。一分間のパルス数を計数したものがCPM。
シーベルトへ単位変換する際には、ガイガーカウンタがγ線のみを検出している事を前提とする。
ガイガーカウンタに金属製のシールドがしてあれば、ほぼγ線を検出していると考えられる。
このガイガーカウンタの値に対して時間累積すると線量計となる。1uSv/hの場所に4時間居れば1*4=4uSv。
線量計は累積した放射線量。年間20mSvという表現は、この線量計の一年間累積した値を示している。
復元
また復元
752 :
デフォルトの名無しさん:2011/11/29(火) 11:09:43.44
Xbox360/XNAで動くMSX-BASIC互換アプリってないの?
裏レジスタは癖が強くて使えない
裏レジスタは頭が弱くて使えない
IRQ処理で頻繁に使う者だとおもってた
756 :
デフォルトの名無しさん:2011/12/17(土) 14:53:45.63
>>756 >>1-1000って自分自身も入れてどうする。
あとCOBOLとBASICは全くの別言語。どちらかというとBASICはFortranの系譜だ
MSX-DOS用に一応COBOLもあったけど、使っていた人はわずかでしょう。
ちなみに自分はX1のCP/M 80用のFortranをMSX-DOSに移植して使っていた
おい、なんかマジっぽいレスしてる奴がいるぞ
そこは「マジレスしてる奴がいるぞ」にしとけ
「マジっぽいレス」だと理解不足なのが丸バレで757が図に乗るぞ
真面目な奴ほどキれると暴れるから荒れるのはカンベン
>>759 もしかしたら俺の理解できないボケかもしれないので、少し逃げた。
761 :
デフォルトの名無しさん:2011/12/26(月) 17:26:33.06
少し逃げたね。
うん、少し逃げたね
763 :
デフォルトの名無しさん:2012/09/03(月) 01:32:23.10
>2012年 9月 2日(日) 13:00〜
>MSX30周年が来年だと思ったら、ミナカンも今年15周年だった...
ふーん、よくやるね(呆…
∧_∧
( ・∀・) 人 ガッ
( つ―-‐-‐-‐-‐-‐○ < >__Λ∩
人 Y ノ. V`Д´)/
し(_) / ←
>>269
序破急(じょは きゅう)
奥義(おくぎ)
奥義(おうぎ)
どんだけ過疎ってんだよ。お前らのMSXに対する愛はそんなものか!
愛ってなんだ
振り向かないことさ
え?じゃあ若さって何だ?
アキムカないことさ
MSXFANの1画面プログラムは色々とマニアックなことが書いてあったな
STOPキー押すまで入力待ちとかあったような
なつかしい。昔ログインにゲーム投稿してお金貰ったわ
775 :
デフォルトの名無しさん:2013/09/27(金) 09:13:12.19
保守
776 :
デフォルトの名無しさん:2013/10/21(月) 19:41:55.44
バカな!
しかし、パッケージは紛れもなく本物……ッ!!
MSXちゃうやん
その人何の技術もないからフェイクしかできないでしょ
奥義伝承の儀とかやらんの?
>>776 MSXじゃなくてPC6Kシリーズじゃねぇか!!!
キーボードはパピコンだけど、こんなにカラフルで高精細な画面モード無いし
画面だけエミュで映し出してるな
>>461 配列の定義をサブルーチンの頭に挿れてるのはどうしてなの?
ベーマガではそういうプログラムの書き方は教えてないぞ
元ベーマガスタッフキタ━━ヽ(゚∀゚)ノ━━!!!!
でもプログラム末尾にDATA文で並べるより
使ってる近辺に書いたほうが分かりやすいよね今考えれば
エディタがまともならな
データとプログラムは分離されてた方が訂正するのは楽かな。
どうせ構造や意味は開発資料としてメモしておくでしょ。
配列の定義だから、DIMのことだろう
あれだけいろいろ作ってたのに今見たらもうBASIC読めないな。
配列の確保ってその行の実行時だったけ?
10個ぐらいだったら宣言しなくても使えたような気がする。忘れた。
そういうデフォルト設定や裏技を極限まで使いこなすのが「テクニック」だったよなあ。
今ではクソコードに分類されるけど。
>>791 >10個ぐらいだったら宣言しなくても使えたような気がする。
古いBASIC
>>790 時間があまりにも過ぎてるからじゃね?
俺もマシン語・アセンブラでバリバリやってて
ハードウェアの隅から隅まで知っていたつもりだけど
今じゃ何も思い出せないなw
まあ資料見ればすぐに思い出せるだろうけど
さすがに全く触らなくなってから時間が経ち過ぎてる
てきとーに配列に数値をぶち込むものを書いてみる。
10 DIM A(100)
20 CLS
30 FOR I=0 TO 100
40 A(I)=I
50 LOCATE 0,0:PRINT I
60 NEXT
10行がないと、I=10 の時点でエラーになるな。
ワ、ワタシハタダシイ
読める、読めるぞ〜、インストラクション表を片手に
しかしコードの真意は書いた本人にしかわからない
数年後には書いた本人にもわからない古文書となる
今回紹介するのはDarkBASIC Professinalフリーバージョン。
商用利用をしないと言う条件ですべての機能が使える。
DarkBASIC本体をダウンロードしたら、メールアドレスを送信してアンロックキーをメール受信する。
次にメールアドレスとアンロックキーをアクティベーション(認証)すればDarkBASICが使えるようになる。
さらに、最新バージョンアップデートを適用すれば、実行速度が高速になる。
DarkBASICはVisualBasic以前の古いBASICの延長上の別系統の設計にある最新BASICで、記述
が簡単で本格的な構造化もサポートしている。
簡単なゲームから大規模プロジェクトまで作成可能だ。
また、外部モデリングフォーマットを通さずにプログラム中で3Dオブジェクトの定義も可能で、非常に自由度
の高いプログラミングができる。
英語版と言うことであるが、BASICと3Dの基礎知識があれば、誰でも使える。
Mファン1990年9月号に掲載された1行プログラム(システム上の1行、の意)
「200年カレンダー」
(万年カレンダーから100年毎の閏年判定ルーチンを除いたもの、
1900年3月1日〜2100年2月28日に対応)
#SCREEN1:WIDTH29(以上)で実行すること
1 CLS:INPUT"年,月";Y,M:Y=(Y+4)MOD28:J=YMOD4:D=(Y\4)*5-(J>0)+J
:FORI=1TOM:D=(D+X)MOD7:READX:X=X+(I=2)*(J=0):NEXT:PRINT:PRINT
SPC(D*4);:FORI=1TOX+28:PRINTUSING" ## ";I;:A=D=6:A$=CHR$(A*-10)
+CHR$(A*-13):PRINTA$;A$;:D=(D+1)MOD7:NEXT:DATA3,,3,2,3,2,3,3,2,3,2,3
800 :
799:2014/03/14(金) 03:44:10.36 ID:Dt0a1Iuk
799の「200年カレンダー」を、Windows用の「99Basic」向けに作り直した
(「移植」とは呼べない。文字化けを除けばMSXでも動く。論理式を追放した。)
100 CLS
110 INPUT "年(1900〜2100),月 ";Y,M
120 IF Y<1900 OR Y>2100 OR M<1 OR M>12 THEN RUN
130 YY=Y:Y=(Y+4) MOD 28
140 J=Y MOD 4:D=INT(Y/4)*5+J
150 IF J>0 THEN D=D+1
160 IF YY=1900 THEN D=1
170 X=0
180 FOR I=1 TO 12
190 IF I<=M THEN D=(D+X) MOD 7
200 READ X
210 IF I=2 AND J=0 THEN X=1
220 IF (YY=1900 AND I=2) OR (YY=2100 AND I=2) THEN X=0
230 IF I=M THEN XX=X+28
240 NEXT
250 PRINT:PRINT
260 FOR I=1 TO 7
270 READ A$:PRINT " ";A$;" ";
280 NEXT
290 PRINT:PRINT:PRINT SPACE$(D*4);
(続く)
801 :
799:2014/03/14(金) 03:58:27.59 ID:Dt0a1Iuk
300 FOR I=1 TO XX
310 PRINT USING" ## ";I;:D=D+1
320 IF D=7 THEN D=0:PRINT:PRINT
330 NEXT
340 PRINT
350 IF D>0 THEN PRINT:PRINT
360 END
370 DATA 3,0,3,2,3,2,3,3,2,3,2,3
380 DATA "日","月","火","水","木","金","土"
主な修正点:1900年1・2月と2100年3月〜12月も表示できるように。
・MSXで実行するときの注意点
110行のINPUT文・380行のDATA文にある「年」「月」「火」などの全角文字、
場合によっては270行の曜日前後にある空白を修正する必要がある。
・MSXの漢字BASICで実行するときの注意点
最低でも100行を「100 _CLS」に修正する必要がある。
インターレスモード〜_KANJI2・_KANJI3でないと、上部が強制スクロールされる。
画面がちらつかない_KANJI・_KANJI1で実行するときは、改行の「PRINT」を削除する、
最後にINPUT$(1)やIF INKEY$="" THEN を加えるなどの工夫が必要。
802 :
799:2014/03/14(金) 04:13:09.54 ID:Dt0a1Iuk
もう一つ。海外のBASICのことを考え、140行は Y\4 から INT(Y/4) に変更した。
整数除算の"\"は、海外(日本語環境以外・日本のMSX以外)では半角"\"になる。
110行 INPUT"年(1900〜2100),月" ;Y,M → INPUT"M,Y(1900-2100)";M,Y
270行 PRINT " ";A$;" "; → PRINT A$;" "; (曜日名を英3文字にするため)
380行 DATA "日","月","火","水","木","金","土"
→DATA "SUN","MON","TUE","WED","THU","FRI","SAT"
それ以外の変更はなし……で動く海外のBASICはあるだろうか?
803 :
799:2014/03/15(土) 03:32:57.56 ID:GTtrbY0y
訂正。MSXと99Basicは問題ないが、
N88互換のBASICの一つ「MBASIC86」でエラーが出た。
99Basicは作者が元MSXユーザーなので、MSXとの互換性をある程度重視している。
けど、N88BASIC系統は空白の省略は許されない。
PRINT命令やPRINT USING命令などの次には、空白が必要。
310 PRINT USING " ## ";I;:D=D+1
↑310行を訂正してほしい。申し訳ない。
「MBASIC86」は、これで動作した。
なにこの独り相撲
IDありになって良かったな
806 :
799:2014/03/15(土) 22:22:48.57 ID:GTtrbY0y
807 :
799:2014/03/15(土) 22:31:04.32 ID:GTtrbY0y
ID制…といっても、末尾が「0」「O」「i」「P」ではないので、
ID云々で煽る板ではない気がする(少数だが、現時点でもIDがない板がある)。
内容はどうであれ、末尾が「P」はボロクソに罵倒される。
「P」はp2。p2はものすごく嫌われている。悪質な荒らしが多いのかも。
(そのせいで、荒らし以外が罵倒の被害に遭っている)
アク禁になったら、別の携帯電話や避難所のスレに代理書き込み依頼が多数のはず。
あと、書き込みが1日1回限定だとIDの意味をなさないと思う。
なんかよくわからんけど、どうせなら、この世の全ての BASIC で動くコード
とかだと面白いんだけどな
独り相撲してナンボのスレだけどな
まあ、番号コテの人にはスレタイくらい読んでおいてほしかったとは思うな
BASICでは、ダークと99はNGに入ってるわ、俺。
811 :
799:2014/03/16(日) 16:50:59.39 ID:P7mFBOx5
Wikiや他サイトを参考にし、カレンダーの曜日を求める式を作ったところ…
変数 H:曜日(0〜6、0=日・1=月…6=土)、Y:年(2014など) M:月(3など) D:日(今回は1のみ)
H=(365*Y+INT(Y/4)-INT(Y/100)+INT(Y/400)+INT((306*(M+1))/10)+D-428) MOD 7
N88互換系では実行できたけど……MSXでは"Overflow in xxx"エラー。
MSXのMOD演算子や整数除算"\(海外版は\)"は、
2バイトの整数型(-32768〜32767)の範囲に限られる。
365×西暦4桁がある時点でアウト。
……ので、MODの被除数を32767以下にしてみるか。7の倍数で最も32767に近い値を減算するとどうだろう。
MSXで動かないプログラムを作っても……と思うし。
行番号は追放する方針。>>800-
>>801のプログラムも、最初はDATA命令の行番号を指示する
"RESTORE 380"があったが、180〜240行を無駄ループにして回避。
100 CLS
110 INPUT "Y,M ";Y,M:MM=M:D=1:U=Y MOD 4
120 IF U=0 THEN UU=1
130 IF U=0 AND (Y MOD 100)=0 AND (Y MOD 400)>0 THEN UU=0
140 IF M=1 OR M=2 THEN M=M+12:Y=Y-1
150 IF Y<0 OR Y>9999 OR MM<1 OR MM>12 THEN RUN
160 H1=(365*Y+INT(Y/4)-INT(Y/100)+INT(Y/400)+INT((306*(M+1))/10)+D-428)
170 HH=INT(H1/32767):H=(H1-32767*HH) MOD 7
180 FOR I=1 TO 12
190 READ X
200 IF MM=I THEN D=X+28
210 IF MM=2 AND UU=1 THEN D=29
220 NEXT
230 PRINT:PRINT
240 FOR I=1 TO 7
250 READ A$:PRINT A$;" ";
260 NEXT
270 PRINT:PRINT:PRINT SPACE$(H*4);
280 FOR I=1 TO D
290 PRINT USING " ## ";I;:H=H+1
300 IF H=7 THEN H=0:PRINT:PRINT
310 NEXT
320 PRINT
330 IF H>0 THEN PRINT:PRINT
340 END
350 DATA 3,0,3,2,3,2,3,3,2,3,2,3
360 DATA "SUN","MON","TUE","WED","THU","FRI","SAT"
>>807 俺P2からの書き込みだけどPにならんよ
814 :
799:2014/03/17(月) 00:30:21.19 ID:wkMqB80o
>>813 この板ではならない。
末尾に"7"などの数字・"Q"などその他の英字がある時点で
「ここはp2・ガラケー・iPhone・PCなどその他 の判別がない」とわかるはず?
末尾が"P"になってもp2とは無関係。"0" "O" "i"も同様。
このような板だと、プロバイダがアク禁のときにp2から書き込んでもバレないけど。
>>809 >スレタイくらい読んでおいてほしかったとは思うな
MSXでMファンに採用された1行プログラムを作ったとき、「これはMSXの仕様に依存している」
と意識した。SPC関数はMSX独自。論理式の"A=D=6"は、正しくは"A=(D=6)"
(D=6のときAが-1に・その他はAが0に、の意)と書くべきだが、エラー覚悟で書いたところ実行できた。
99BasicやMBASIC86でも動く…を目指すと、どうしても脱MSXになる傾向が。
>>812のプログラムの160行・170行はMSX対策。
MODや整数除算"\"は、MSXは32767以下限定。「MSX対策」と書かないとなぜ?と聞かれると思う。
「これはMSXの仕様に依存している」…まさしくそれがスレタイの意味するところじゃねかしら?
ほかのBASICで動くなら、MSX-BASICの奥義でもなんでもないし
816 :
799:2014/03/17(月) 04:47:53.34 ID:wkMqB80o
>>812のカレンダーだけど、MSXでもエラーが出ない式があったので訂正。
160 '
170 H=(Y+INT(Y/4)-INT(Y/100)+INT(Y/400)+INT((13*M+8)/5)+D) MOD 7
(160行は削除してもよい。GOTO xxなどがないので、RENUMコマンドも問題ない。)
被除数は常に32767未満なので、MOD演算子でOverflowが出ることはない。
曜日は 0=日・1=月…6=土 なので使いやすい。
調べたところ、0=土・1=日…6=金 と返す式もあるから。
あとは…漢字BASICの_KANJI版を作ったら、カレンダーは終わりにするか。
_KANJI2・_KANJI3を除く漢字BASICは、いかに改行を減らすか…
改行の問題さえ解決すれば、数字が大きいので見やすいはず。
そのうち〜バスの電磁大光ブザーを真似た PLAY"S8M90O6G" とSOUND命令版も紹介するか。
これは自分で考えたもの。 PLAY"S8M90O7G" だと、通常のアナログブザーに。
…当時のMSXのクイズプログラムは、不正解の音は PLAY"O1C" などワンパターンだった。
ちなみにエミュレータのfMSXとRuMSXは、これらの音は再現できない=PSG再現に難がある。
100 _KANJI:WIDTH 29:_CLS
110 INPUT "Y,M ";Y,M:MM=M:D=1:U=Y MOD 4:UU=0
120 IF U=0 THEN UU=1
130 IF U=0 AND (Y MOD 100)=0 AND (Y MOD 400)>0 THEN UU=0
140 IF M=1 OR M=2 THEN M=M+12:Y=Y-1
150 IF Y<0 OR Y>9999 OR MM<1 OR MM>12 THEN RUN
160 H=(Y+INT(Y/4)-INT(Y/100)+INT(Y/400)+INT((13*M+8)/5)+D) MOD 7
170 D=31:M=MM
180 IF M=4 OR M=6 OR M=9 OR M=11 THEN D=30
190 IF M=2 THEN D=28+UU
200 PRINT:PRINT "SUN MON TUE WED THU FRI SAT"
210 PRINT SPACE$(H*4);
220 FOR I=1 TO D
230 PRINT USING " ## ";I;:H=H+1
240 IF H=7 THEN H=0:PRINT
250 NEXT
260 PRINT
270 IF H>0 THEN PRINT
280 END
ここもちらしの裏だし
まいっか
819 :
デフォルトの名無しさん:2014/06/04(水) 15:34:40.19 ID:ZiHf6GEW
揚げろや屑やろう!
断る
821 :
デフォルトの名無しさん:2014/07/09(水) 09:59:00.63 ID:jeW2TfnT
保守
822 :
デフォルトの名無しさん:2014/07/12(土) 17:02:47.46 ID:dhVKd2av
奥義はよ
823 :
デフォルトの名無しさん:2014/07/14(月) 22:42:26.64 ID:4A74nF8C
奥義マダー?
奥義・光子力まるはだか!
ジャパニウム、だっけ?
そのジャパニウムの力で、
小学4年生の江久保葉子ちゃんをまるはだかにむくのじゃあ!
828 :
デフォルトの名無しさん:2014/07/28(月) 11:47:27.95 ID:XCE2nVfS
★2ch勢いランキングサイトリスト★
◎ +ニュース
・ 2NN
・ 2chTimes
◎ +ニュース新着
・ 2NN新着
・ Headline BBY
◎ +ニュース他
・ Desktop2ch
・ 記者別一覧
◎ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
◎ 実況込み
・ 2勢
・ READ2CH
・ i-ikioi
※ 要サイト名検索
2001年の生き残りはこのスレだけ
最長老ごきげんよろし
830 :
デフォルトの名無しさん:2014/09/26(金) 15:40:44.73 ID:cDF8qWEh
多色刷りって、BIOS使わずVDP直接操作だけでやるとしたら
どうやるんだろうか…(市販ゲームとか)
BIOSのINIT32(006FH)とかSETGRP(007EH)とかを解析したら良いんだろうけど、
めんどいなw
スクリーンモードってVDPのR#0と#1だけで決めていると思ってるんだけど、
それ以外に何かいじらないと多色刷りモードにはならないってことか
多色刷りってのは BASIC で手軽に Graphic 2 の性能を引き出す手法の俗称だろ。
市販ゲームなんかは、それこそすべての操作を VDP に直接アクセスしてやってるから、
多色刷り云々の話ではないよ。
832 :
デフォルトの名無しさん:2014/09/28(日) 11:28:05.44 ID:/z7vQ2zP
反応するのに12年もかかるのかよ
12年後が楽しみだ
836 :
830:2014/09/29(月) 00:58:02.60 ID:EDDV56hZ
>>831 それは知ってるんだが、
なぜVDPがscreen2であるにも関わらず、
VDPに対してprint文などでキャラクタコードで書けるのかが不思議だったんだよ
screen2はパターンジェネレータテーブルとカラーテーブルだけが有効で、
パターンネームテーブルは無効だと思ってたから。
…と思いながら、screen2をテクハン片手にvpokeでいじってたら、
screen2でもパターンネームテーブルは生きてるんだな。
今ごろになって気が付いたwこれでスッとしたわ…自己解決。
screen2のパターンネームテーブルは&h1800から値が順に01,02,03,…とデフォでは入っていて、
これによってパターンジェネレータテーブルの定義内容が順に表示されるようになっているみたいだな。
(これでグラフィック画面らしい挙動ができるわけだ)
で、多色刷りだと、screen2でもscreen1同様このテーブルをprint文などで書き換えると。
(今までscreen2のパターンネームテーブルは無効だと思い込んでいたから、この1点が謎だった)
じゃあ多色刷りって、VDP側はただのscreen2だな。
別にどうってことない話じゃないかw(←オイ
screen2はぶっちゃけ画面全部を違うパターンの文字にしたものだからね
多食刷りのミソは、本来テキストを扱うscreen1用のbasicコマンドが
(内部が)screen2でもそのまま使えたことだろうな
なつかしいFANダムに4本載ったワシ
何の作品か言うてみい。打ち込んでやるわボケ。
MSX1で縦スクロールする。スペースで終了
100 SCREEN2:COLOR15,4,4:CLEAR1000:KEYOFF:SCREEN1:DEFINTA-Z:ONSTRIGGOSUB200:STRIG(0)ON
110 P$=" MSX SCROLL "
120 PM=LEN(P$)*8:DIMP$(PM):C!=PEEK(4)+PEEK(5)*256:FORA=0TOLEN(P$)-1:I=ASC(MID$(P$,A+1,1)):FORB=0TO7:P$(A*8+7-B)=RIGHT$("00000000"+BIN$(PEEK(I*8+B+C!)),8):NEXTB,A
130 FORA=0TOPM-2:I!=VARPTR(P$(A)):I1!=PEEK(I!+1)+PEEK(I!+2)*256:I!=VARPTR(P$(A+1)):I2!=PEEK(I!+1)+PEEK(I!+2)*256:FORB=0TO7:POKEI1!+B,PEEK(I1!+B)-(PEEK(I1!+B)=49)-(PEEK(I2!+B)=49):NEXTB,A
140 FORA=0TO15:VPOKE384+A,0:VPOKE400+A,255:VPOKE2432+A,0:VPOKE2448+A,255:NEXT:FORA=5120TO5887:VPOKEA,0:NEXT
150 ONINTERVAL=4GOSUB300:INTERVALON
160 GOTO160
200 STRIG(0)OFF:INTERVALOFF:SCREEN0:FORA=-1TO0:A=INKEY$<>"":NEXT:END
300 INTERVALOFF:B=PCAND7:ONBGOTO330,330,330,320,330,330,330
310 GOSUB350:D=1-D:GOSUB360:GOTO340
320 GOSUB350
330 A=391+B+2048*(1-D):VPOKEA,255:VPOKEA+8,0:VPOKEA+16,255
340 A=384+B+2048*D:VPOKEA,0:VPOKEA+8,0:VPOKEA+16,255:VPOKEA+24,255:PC=(PC+1)MOD(PM*8):INTERVALON:RETURN
350 PRINTCHR$(27);"Y! ";CHR$(27);"L";P$(PC/8):RETURN
360 VDP(1)=VDP(1)AND191:VDP(2)=6-D:VDP(4)=1-D:VDP(1)=VDP(1)OR64:POKE&HF923,20+D*4:RETURN
テープに録音するときってどんな音に聞こえた?
ピー
ガラガラガラ
ピロピロピロ
ピー−ガッ! ←最初に必ずこの工程があるでしょ
ピーーガゴギゴギゴ…
緊急地震速報の音が当時のやつに一番近いかな
ああ間違えた
大津波警報の方です
すみません
あれ?
ぐぐって聴いてみたら最近JALERTのは違うんだね
>>846 へーこんなのあるんだ
ありがとう
ほんとにセーブ出来てるなら
ロードも試してみたくなるな
849 :
デフォルトの名無しさん:2014/10/23(木) 11:28:00.27 ID:ISc0F2Qf
REM文を利用するプログラムを作ってみた。
内容は
>>35。
1 'ッツ`メピョマャヘマモッ」ェマ゚ャユソ`」リ。モカト`ィセ」モソホサワスヤショ`シユァ`ャラャ`「ァノワモク。ィモクョィモク。モカィ`ィー`ク`ーネ`ッツッュオタ`ヲ・メ、カヲャキナ`アー`ッツッュオタ」チ`イ``「シ、ーロタ、ェ`」リテモオク`ィーモア、ー`リ`ア``モオミ`ィイ」ア、イウアソマリ」ャ`ャ゙
2 '`チィコチヌシテ、ムハヲスンケッ゚ナワリ。。ヒヘア。ェマモスタ`チモモヘア「、スヤクザウテタ・゚ハクミ`キシチァュ、ア`。フ。「`」ュキ``チィュ・゙゚ハネミォマレセィ。リテソツ、スヤケクワ゚タネミ、モロ゙ャツウアィウォアソフク。ゥラシヒソフリ`ゥラシヲェ、タヲ`。」゙ーア」リヲィヌュオタ、ヲ「メ、ニヤキリテ
3 'モコィ`、ッニマ」タィヲ`ホユマヘメタ・ンテ」ュネタ`ーンョユマィミヤタロ」リミモコィ`メソ゚゚゚゚ワ`````ミャ````````「タシ``。。ァ`。`ーィ「ヲユトラィ`ノウーヤンイアウヤ`````
10 CLEAR 300,&HD000:DEFINTA-Z:A=&HD800:DEFUSR=A
20 A$="2148FC5E2356EB1100D0010500092323237EB7283DD620E63F878747237ED620E6300F0F0F0F8012137ED620E60F8787878747237ED620E63C0F0F8012137ED620E6030F0F47237E23D620E63F80121318BF010500097EFE3A28B3C300D0C9"
30 FORI=1TOLEN(A$)STEP2:POKEA,VAL("&H"+MID$(A$,I,2)):A=A+1:NEXT:A=USR(0)
blueMSXで動作確認。
blueMSXにはディレクトリをMSXディスクとして読み込む機能があるので、コピペしてファイルに書き込んだ後、[ファイル]-[ディスクドライブA]-[ディレクトリ挿入]でディレクトリを指定してやると、ディスクイメージを作らなくてもファイルが読める。
補足
コピペの際、各行の終わりにスペースがつく場合は、スペースを消して実行してくれ
REM文に書かれた文字そのものがプログラムだっていうのは結構やってたな
プログラムすべてを文字化するのは面倒だから、文字だけでデコーダを書いて、
文字にエンコードされたメインプログラムを展開して実行みたいなことが多かった
小さなちょっとしたことなら文字だけでプログラムを書くのも普通にやってたね
そもそも上記のデコーダがそうだし
で、REM文の内容の書かれたアドレスを直接指定してマシン語として実行するわけだけど
GRAPH文字には結構お世話になった気がする
ご存知だろうがGRAPH文字は01hを頭とする2バイト文字なのだ
01hを表現したいときに、たとえば >円 と書くと
文字コードが 3e 01 49 となって
LD A,01h → LD C,C になる、みたいな
文字コードとか覚えてなくてググりながら書いてみたんで間違いがあったりするかもだけど、
とにかく、GRAPH文字の01hっていうのはREMに直接マシン語を書くとき便利だったなあ
というお話