X



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

・多色刷り、
・ドット単位横スクロール、
・エスケープシークエンス・・・
色々ありましたよね。
思い出したらなんでも書き込みよろしく。
0796デフォルトの名無しさん
垢版 |
2014/02/13(木) 22:37:49.35
読める、読めるぞ〜、インストラクション表を片手に

しかしコードの真意は書いた本人にしかわからない

数年後には書いた本人にもわからない古文書となる
0797デフォルトの名無しさん
垢版 |
2014/02/16(日) 12:25:00.81
DarkBASIC Pro Freeで最新技術を誰よりも早く習得 - VC++プログラマーより情報が早い

- DarkBASIC Professional - FREE Download(英語版のみ)
 [ http://www.thegamecreators.com/?m=view_product&;id=2000&page=free ]
 [ http://www.thegamecreators.com/?m=download&;file=5003 ]

 U77 Public Release Candidate(最新バージョンアップデート)
 [ http://forum.thegamecreators.com/?m=forum_view&;t=180294&b=1 ]
 [ http://files.thegamecreators.com/darkbasicprofessional/upgrade/dbpro_upgrade_7_7_RC7.zip ]
0798デフォルトの名無しさん
垢版 |
2014/02/16(日) 12:26:25.19
今回紹介するのはDarkBASIC Professinalフリーバージョン。
商用利用をしないと言う条件ですべての機能が使える。

DarkBASIC本体をダウンロードしたら、メールアドレスを送信してアンロックキーをメール受信する。
次にメールアドレスとアンロックキーをアクティベーション(認証)すればDarkBASICが使えるようになる。
さらに、最新バージョンアップデートを適用すれば、実行速度が高速になる。

DarkBASICはVisualBasic以前の古いBASICの延長上の別系統の設計にある最新BASICで、記述
が簡単で本格的な構造化もサポートしている。

簡単なゲームから大規模プロジェクトまで作成可能だ。

また、外部モデリングフォーマットを通さずにプログラム中で3Dオブジェクトの定義も可能で、非常に自由度
の高いプログラミングができる。

英語版と言うことであるが、BASICと3Dの基礎知識があれば、誰でも使える。
0799デフォルトの名無しさん
垢版 |
2014/03/12(水) 07:21:04.94ID:9nRIvxt0
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
0800799
垢版 |
2014/03/14(金) 03:44:10.36ID: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);

(続く)
0801799
垢版 |
2014/03/14(金) 03:58:27.59ID: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 を加えるなどの工夫が必要。
0802799
垢版 |
2014/03/14(金) 04:13:09.54ID: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はあるだろうか?
0803799
垢版 |
2014/03/15(土) 03:32:57.56ID:GTtrbY0y
訂正。MSXと99Basicは問題ないが、
N88互換のBASICの一つ「MBASIC86」でエラーが出た。

99Basicは作者が元MSXユーザーなので、MSXとの互換性をある程度重視している。
けど、N88BASIC系統は空白の省略は許されない。

PRINT命令やPRINT USING命令などの次には、空白が必要。


310 PRINT USING " ## ";I;:D=D+1


↑310行を訂正してほしい。申し訳ない。
「MBASIC86」は、これで動作した。
0806799
垢版 |
2014/03/15(土) 22:22:48.57ID:GTtrbY0y
わざわざ過疎スレまで煽りに来たのか。

……昔のMファンをヤフオクで落札したので、自作品をここに書いただけ。
他人様の作品を無断転載はしないよ。
落札前に再び同じプログラムを作ろうとしたが、肝心の自分がアルゴリズムを忘れた。


私のカレンダーでは使っていないけど(28年分のカレンダーを使いまわしているだけ〜例:1986年=2014年=2042年)
カレンダーのプログラムを作るなら、「ツェラーの公式」
http://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A7%E3%83%A9%E3%83%BC%E3%81%AE%E5%85%AC%E5%BC%8F
を参考にするといいと思う。


……と書いたら、また煽られるだろうな。
昔〜ひろゆき氏が熱心に活動していた頃〜の2chは、
この程度で煽られることは少ない気はしたが。
ひろゆき氏が「PCが安価になったので、一部を除いては、2chは馬鹿ばかりになった」
と嘆いたのもわかる気が。
0807799
垢版 |
2014/03/15(土) 22:31:04.32ID:GTtrbY0y
ID制…といっても、末尾が「0」「O」「i」「P」ではないので、
ID云々で煽る板ではない気がする(少数だが、現時点でもIDがない板がある)。

内容はどうであれ、末尾が「P」はボロクソに罵倒される。
「P」はp2。p2はものすごく嫌われている。悪質な荒らしが多いのかも。
(そのせいで、荒らし以外が罵倒の被害に遭っている)

アク禁になったら、別の携帯電話や避難所のスレに代理書き込み依頼が多数のはず。

あと、書き込みが1日1回限定だとIDの意味をなさないと思う。
0808デフォルトの名無しさん
垢版 |
2014/03/16(日) 14:24:59.42ID:SqWBi3v6
なんかよくわからんけど、どうせなら、この世の全ての BASIC で動くコード
とかだと面白いんだけどな
0809デフォルトの名無しさん
垢版 |
2014/03/16(日) 14:50:41.80ID:4mUPyn+t
独り相撲してナンボのスレだけどな
まあ、番号コテの人にはスレタイくらい読んでおいてほしかったとは思うな
0811799
垢版 |
2014/03/16(日) 16:50:59.39ID: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行を無駄ループにして回避。
0812799(MSXで動作可)
垢版 |
2014/03/16(日) 17:47:43.30ID:P7mFBOx5
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"
0814799
垢版 |
2014/03/17(月) 00:30:21.19ID: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対策」と書かないとなぜ?と聞かれると思う。
0815デフォルトの名無しさん
垢版 |
2014/03/17(月) 00:41:51.33ID:cdm9pD2a
「これはMSXの仕様に依存している」…まさしくそれがスレタイの意味するところじゃねかしら?
ほかのBASICで動くなら、MSX-BASICの奥義でもなんでもないし
0816799
垢版 |
2014/03/17(月) 04:47:53.34ID: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再現に難がある。
0817799(漢字BASIC版、改行は最小限に)
垢版 |
2014/03/17(月) 05:17:53.14ID:wkMqB80o
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
0819デフォルトの名無しさん
垢版 |
2014/06/04(水) 15:34:40.19ID:ZiHf6GEW
揚げろや屑やろう!
0821デフォルトの名無しさん
垢版 |
2014/07/09(水) 09:59:00.63ID:jeW2TfnT
保守
0822デフォルトの名無しさん
垢版 |
2014/07/12(土) 17:02:47.46ID:dhVKd2av
奥義はよ
0823デフォルトの名無しさん
垢版 |
2014/07/14(月) 22:42:26.64ID:4A74nF8C
奥義マダー?
0826デフォルトの名無しさん
垢版 |
2014/07/15(火) 19:41:46.28ID:uDYfEjIO
そのジャパニウムの力で、
小学4年生の江久保葉子ちゃんをまるはだかにむくのじゃあ!
0828デフォルトの名無しさん
垢版 |
2014/07/28(月) 11:47:27.95ID:XCE2nVfS
★2ch勢いランキングサイトリスト★

◎ +ニュース
・ 2NN
・ 2chTimes
◎ +ニュース新着
・ 2NN新着
・ Headline BBY
◎ +ニュース他
・ Desktop2ch
・ 記者別一覧
◎ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
◎ 実況込み
・ 2勢
・ READ2CH
・ i-ikioi

※ 要サイト名検索
0830デフォルトの名無しさん
垢版 |
2014/09/26(金) 15:40:44.73ID:cDF8qWEh
多色刷りって、BIOS使わずVDP直接操作だけでやるとしたら
どうやるんだろうか…(市販ゲームとか)
BIOSのINIT32(006FH)とかSETGRP(007EH)とかを解析したら良いんだろうけど、
めんどいなw

スクリーンモードってVDPのR#0と#1だけで決めていると思ってるんだけど、
それ以外に何かいじらないと多色刷りモードにはならないってことか
0831デフォルトの名無しさん
垢版 |
2014/09/28(日) 10:53:47.04ID:nD5Yu8m1
多色刷りってのは BASIC で手軽に Graphic 2 の性能を引き出す手法の俗称だろ。
市販ゲームなんかは、それこそすべての操作を VDP に直接アクセスしてやってるから、
多色刷り云々の話ではないよ。
0836830
垢版 |
2014/09/29(月) 00:58:02.60ID:EDDV56hZ
>>831
それは知ってるんだが、
なぜVDPがscreen2であるにも関わらず、
VDPに対してprint文などでキャラクタコードで書けるのかが不思議だったんだよ
screen2はパターンジェネレータテーブルとカラーテーブルだけが有効で、
パターンネームテーブルは無効だと思ってたから。

…と思いながら、screen2をテクハン片手にvpokeでいじってたら、
screen2でもパターンネームテーブルは生きてるんだな。
今ごろになって気が付いたwこれでスッとしたわ…自己解決。

screen2のパターンネームテーブルは&h1800から値が順に01,02,03,…とデフォでは入っていて、
これによってパターンジェネレータテーブルの定義内容が順に表示されるようになっているみたいだな。
(これでグラフィック画面らしい挙動ができるわけだ)

で、多色刷りだと、screen2でもscreen1同様このテーブルをprint文などで書き換えると。
(今までscreen2のパターンネームテーブルは無効だと思い込んでいたから、この1点が謎だった)

じゃあ多色刷りって、VDP側はただのscreen2だな。
別にどうってことない話じゃないかw(←オイ
0837デフォルトの名無しさん
垢版 |
2014/10/01(水) 09:01:42.86ID:1BRcjDE3
screen2はぶっちゃけ画面全部を違うパターンの文字にしたものだからね
多食刷りのミソは、本来テキストを扱うscreen1用のbasicコマンドが
(内部が)screen2でもそのまま使えたことだろうな
0840デフォルトの名無しさん
垢版 |
2014/10/23(木) 03:08:20.65ID:khbr0nbg
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
0841デフォルトの名無しさん
垢版 |
2014/10/23(木) 06:59:36.83ID:QsQhyUlJ
テープに録音するときってどんな音に聞こえた?
ピー
ガラガラガラ
ピロピロピロ
0847デフォルトの名無しさん
垢版 |
2014/10/23(木) 09:40:34.27ID:GVukQ4G4
>>846
へーこんなのあるんだ
ありがとう
ほんとにセーブ出来てるなら
ロードも試してみたくなるな
0850デフォルトの名無しさん
垢版 |
2014/11/15(土) 10:36:19.60ID:gWegtIR0
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]-[ディレクトリ挿入]でディレクトリを指定してやると、ディスクイメージを作らなくてもファイルが読める。
0851デフォルトの名無しさん
垢版 |
2014/11/15(土) 10:44:03.15ID:gWegtIR0
補足
コピペの際、各行の終わりにスペースがつく場合は、スペースを消して実行してくれ
0852デフォルトの名無しさん
垢版 |
2014/11/18(火) 00:02:20.73ID:zu7jtgft
REM文に書かれた文字そのものがプログラムだっていうのは結構やってたな
プログラムすべてを文字化するのは面倒だから、文字だけでデコーダを書いて、
文字にエンコードされたメインプログラムを展開して実行みたいなことが多かった

小さなちょっとしたことなら文字だけでプログラムを書くのも普通にやってたね
そもそも上記のデコーダがそうだし

で、REM文の内容の書かれたアドレスを直接指定してマシン語として実行するわけだけど
GRAPH文字には結構お世話になった気がする
ご存知だろうがGRAPH文字は01hを頭とする2バイト文字なのだ

01hを表現したいときに、たとえば >円 と書くと
文字コードが 3e 01 49 となって
LD A,01h → LD C,C になる、みたいな



文字コードとか覚えてなくてググりながら書いてみたんで間違いがあったりするかもだけど、
とにかく、GRAPH文字の01hっていうのはREMに直接マシン語を書くとき便利だったなあ
というお話
0853デフォルトの名無しさん
垢版 |
2015/10/13(火) 21:35:13.92ID:tF56vlyv
昔、Panasonic FS-A1FX(MSX2+)持ってたんだけど
POKE文でどこかのアドレスに所定の値を設定すると
CPUのクロック数が上がるって技があったと思うんだけど

・・・いや、今更調べたいというわけでもないんだけど、ちょっと脳裏に浮かんだので書いてみた
0854デフォルトの名無しさん
垢版 |
2015/10/14(水) 15:47:26.04ID:NrBXnG0t
昔、ASCII社製の木の板にMSX基板をはっつけた開発機材もらったんだけど、これってオクで売れるかな
仕様はMSX1とMSX2と両方もってる

仕入れ元はガーボロジーなのでアレなのだが
0859デフォルトの名無しさん
垢版 |
2016/01/23(土) 16:18:18.90ID:SBqTJcjF
保守
0866デフォルトの名無しさん
垢版 |
2018/04/04(水) 14:03:45.90ID:nsnO7hcT
1年経っても書き込みゼロ

MSX-BASICの奥義ってこの程度かよw

まぁ安物マシンだったからこんなもんだろうがな
0867デフォルトの名無しさん
垢版 |
2018/04/08(日) 13:50:06.98ID:vzbFopv/
10年前にガチで奥義を書いたけど、理解できないような人しか居なかったようで……
0868デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:56:09.68ID:2+sM3+jO
スレタイが"BASICの奥義"となっていながら、結局その奥義がマシン語に頼ることになってるからなぁ
0869デフォルトの名無しさん
垢版 |
2018/05/23(水) 22:52:21.42ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

Z776Y
0871デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:58:03.37ID:gFgZc5FG
VIM
0874デフォルトの名無しさん
垢版 |
2019/09/14(土) 14:03:23.14ID:hhxdRhHk
やりたいんだけど今だったらどうすればいいの?
公式エミュとかあるの?
0875デフォルトの名無しさん
垢版 |
2020/03/08(日) 13:13:51.50ID:/DRbfiFK
BlueMSXを使うのじゃ
OpenMSXの方が細かいけどBIOS-ROMを別に用意しなければならん
Blueだったら必要ない
0876デフォルトの名無しさん
垢版 |
2020/04/04(土) 00:30:25.19ID:Zq6ktbwf
Microsoft xbox SXってのが出るらしいけど名前といい実質MSX4だよね?
0877デフォルトの名無しさん
垢版 |
2020/06/14(日) 14:00:39.88ID:pmI3WURN
CMD〜だったかな?
自分でBASICの命令を拡張する(作る)ことができた
0878デフォルトの名無しさん
垢版 |
2020/07/27(月) 23:53:17.35ID:fLON8hVb
CMD ASM[RETUEN]とかDISK-BASIC版アセンブラ使ってたな
後にDOS版のASM.COMに移行したけど
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況