MSX-BASICの奥義を伝授するスレat TECH
MSX-BASICの奥義を伝授するスレ - 暇つぶし2ch500:デフォルトの名無しさん
08/01/21 20:44:30 .net
MSX-DOSはどれくらいMS-DOSみたいに使えたのか・・・(´・ω・`)

501:デフォルトの名無しさん
08/01/21 22:24:35 .net
CP/Mくらいかな?

502:デフォルトの名無しさん
08/01/27 07:12:20 .net
BASICプログラムを保存する際、
拡張子.BASは付けなくても保存できますが、
拡張子は付けなくても問題はありませんか?
.BASを付けているが多いので気になります。

503:デフォルトの名無しさん
08/01/28 01:04:41 .net
そりゃよかった

504:デフォルトの名無しさん
08/01/28 01:34:21 .net
>>499
慣例みたいなものなんで、別に何でも良いよ

でも起動直後に実行させたいプログラムだけは
autoexec.basというファイル名にしないといけない

505:デフォルトの名無しさん
08/01/28 07:54:14 .net
>>501
ありがとうございます。
では、autoexec.bas以外の自作ゲームのようなプログラムで
拡張子を付けずとも後々に困るというような局面はないということで宜しいでしょうか?

506:デフォルトの名無しさん
08/01/28 10:39:20 .net
漏れは拡張子をつけることを勧める。
それが何のファイルかが拡張子で分かりやすいから。
つけないと、ファイル整理で困ることになると思われ。

507:デフォルトの名無しさん
08/01/28 11:40:10 .net
なぜ付けたくないのかが気になる。

508:デフォルトの名無しさん
08/01/28 13:35:26 .net
>>503
なるほど。整理用としての拡張子という訳ですね!

>>504
シンプル イズ ベストとか思ったりしまして・・・。

509:デフォルトの名無しさん
08/01/28 13:36:35 .net
N88しか知らんが、save”program”だけなら勝手にprogram.basでsaveされる。
save”program.”だと拡張子なしのprogramでsaveされる。

別に同じ名前のファイルがなければ拡張子はあってもなくても問題はないが、loadするときbas以外は拡張子が省略できないので面倒。

510:デフォルトの名無しさん
08/01/28 14:09:32 .net
MSX-BASICスレでN88の例を出されても・・・

511:デフォルトの名無しさん
08/01/28 14:46:31 .net
拡張子つけないってアホか?と思ったけど、最近のWindowsは非表示ががデフォだからなぁ。

拡張子がないと「中身は独自バイナリかな?」と思ってしまう。

512:デフォルトの名無しさん
08/01/28 15:20:44 .net
Macは拡張子が無いです。隠された属性になります。
MS-DOSには拡張子があります。

基本は、MS-DOSの流儀に従って拡張子を付けるべきです。
これはWindowsでも同じように通用します。


513:デフォルトの名無しさん
08/01/28 16:50:05 .net
良く見たら、他のスレでも同じ質問しているな。
新手の釣りだったのか?

514:デフォルトの名無しさん
08/01/28 21:05:13 .net
拡張子のあとにスペースを160個入れて最後に.scrをつけます

515:デフォルトの名無しさん
08/01/29 06:31:51 .net
>>510
勝手にコピペしてあたかもマルチしているように邪魔されてるんです。

516:デフォルトの名無しさん
08/01/29 17:58:14 .net
今、MSX-BASICをやる意義とは?

517:デフォルトの名無しさん
08/01/29 23:23:15 .net
オモチャで遊ぶ感覚を楽しむこと。
MSXなら公式エミュもあるし、ワンチもあるし、
非公式エミュも発展しているしで、動作させるには困らない。

518:デフォルトの名無しさん
08/01/30 08:43:10 .net
BASICマガジンなんかを中古で買った場合、
中にある手本のBASICプログラムをMSXに打ち出した場合、
ちゃんとRUNするのでしょうか?
BASICにも色々種類があるようですし、
「こんにはマイコン」でもMSX版とPC-6001版とかがあります。
中古でBASIC本を買うときはその辺りが難しいです。
中には表紙に対応ハードを書かずに単にBASICというだけのものもあり、
それがMSXでも使えるのかどうかなど。

MSX以外のBASIC本を買った場合、MSXユーザーとしては、
どういうところを読み替えたりする必要がありますでしょうか?
大抵は問題ありませんか?

519:デフォルトの名無しさん
08/01/30 08:56:30 .net
MSX用のものは、MSXで間違いなく動作する。
MSXは下位完全互換なので、MSX1用のものはMSX2でも2+でも動く。

他機種のベーシックからの移植は、難しいと思う。
両機種のハードを知っていないといけないから。
MSXは、まず他機種よりも画面が狭いので、画面回りは
大きく手を入れる必要が出てくる。
なので、「MSX用」かどうかを確認してから打ち込まなければいけないし、
他機種用のベーシック本を買って勉強は間違っていると考えるべき。
資料なら、MSXの場合はネットで検索すればある程度は出てくる。

520:デフォルトの名無しさん
08/01/30 12:03:38 .net
リストは、Win上のメモ帳とかに打って"xxxx.bas"と保存して、
そのファイルを実機や公式エミュなら2Dフロッピーに、
1チップならSDカードに、非公式エミュならdiskmgrとかでディスクファイルに
入れると動作するので、ひょっとしたらプログラムの入力は
OCRソフトが役に立つかも。

521:デフォルトの名無しさん
08/01/30 16:28:35 .net
>>516
そういうのは上位互換って言うんだよ!
下位互換っていうのはturboRがMSX1でも動くようなことを言うんだよ!

522:デフォルトの名無しさん
08/01/30 17:43:39 .net
ツッコミ乙

523:デフォルトの名無しさん
08/01/30 20:50:10 .net
1チップMSXにてSDカードにSAVEすることはできましたが、
SAVEしたファイルを削除する方法が分かりません。
BASIC命令で削除するにはどうすれば良いのでしょうか?

524:デフォルトの名無しさん
08/01/30 20:57:48 .net
KILL "ファイル名"

525:デフォルトの名無しさん
08/01/31 10:41:53 .net
>>521
ありがとうございます!

526:デフォルトの名無しさん
08/01/31 15:03:46 .net
サブルーチンがやっと分かった!

527:デフォルトの名無しさん
08/01/31 15:20:39 .net
マヂで今勉強してるやついんの?
悪いとは言わんが。

俺ももうちょっと年寄りになって余裕ができてきたら
また遊ぶかもしれん。

528:デフォルトの名無しさん
08/01/31 19:39:17 .net
ム板最古スレ

529:デフォルトの名無しさん
08/02/01 09:26:33 .net
>>521
KILL"ファイル名”で問題なくSDカードにあるファイルを削除できました。
ありがとうございます。
当方、手持ちのMSX1のマニュアルや全BASICコマンドのリファレンスカード、
またはテープレコーダーのマニュアルにもこのKILLコマンドは記載しておりません。
このコマンドは昔からあったコマンドでしょうか?
フロッピーディスク内のファイルをいじる際に使うコマンドだったのでしょうか?

530:デフォルトの名無しさん
08/02/01 10:45:53 .net
>>526
URLリンク(www.imasy.or.jp)

531:デフォルトの名無しさん
08/02/01 11:39:12 .net
をを~っ、スバラシイページができてる!
DataPackのWiki化計画はないかな。

532:デフォルトの名無しさん
08/02/01 12:15:06 .net
MSX DISK-BASICってFDD用ということでしょうか?

533:デフォルトの名無しさん
08/02/01 13:13:48 .net
>ディスクシステムを使用している場合には、このver2.0に
>さらにディスク操作の命令が追加されたMSX DISK-BASICが利用できます

テクハンHPの、ベーシックの項目にちゃんと説明がある。
ゆっくり読んで勉強してくれ。

534:デフォルトの名無しさん
08/02/01 15:58:50 .net
>>529
「DISK」ってのは、ドライブレター("A:"とか"B:"とか)でアクセスできる
デバイスの総称。RAMDISKも含まれる。
あとはのんびり勉強してくれ。

535:デフォルトの名無しさん
08/02/01 20:05:50 .net
このスレって、意外と見ている人多いのか?

536:デフォルトの名無しさん
08/02/01 20:33:04 .net
多色刷りを勉強し始めました・・・

537:デフォルトの名無しさん
08/02/02 00:29:17 .net
>>531
ありがとうございました!

538:デフォルトの名無しさん
08/02/02 01:09:19 .net
シューティングゲームを作ろうとしたけどテキストとグラフィックが同時に使えないから
点数表示ができない。助けて!アルゴマン!

539:デフォルトの名無しさん
08/02/02 09:24:18 .net
open "grp:" as #1
preset (x,y)
print #1, score
だっけ?

540:デフォルトの名無しさん
08/02/02 09:40:15 .net
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命令(またはそれに準じるもの)でスコアを表示するのもアリだな。

スクロールするゲームが作りたいという場合は、
スプライトでスコアを表示させるか、垂直帰線割り込みによる
画面分割というテクニックが必要になってくる。

541:デフォルトの名無しさん
08/02/02 19:28:02 .net
■■■■■■■■□□□□
■■■■■■■■タイトル
■■■■■■■■□□□□
■■ゲーム画面■□点数□
■■■■■■■■□□□□
■縦スクロール■□残機□
■■■■■■■■□□□□
■■■■■■■■□□□□

こんな画面構成にしたいんですが

542:デフォルトの名無しさん
08/02/02 19:56:34 .net
スクリーン4を使って、8ドットスクロールさせれ。
その画面割りで1ドットスクロールは、漏れにはでけん。

543:デフォルトの名無しさん
08/02/04 14:58:46 .net
MSX-DOSの話題はスレ違いでしょうか?
新スレ立てるのもアレですし、
このスレに統合しても構わないですか?

544:デフォルトの名無しさん
08/02/04 21:01:33 .net
>>538
お前、わかっててわざと言ってるだろ。

545:デフォルトの名無しさん
08/02/04 22:25:55 .net
>>537
垂直帰線(V-Sync)ではなく水平帰線(H-Sync)ね。念のため。

546:デフォルトの名無しさん
08/02/05 12:51:02 .net
MS-DOSとMSX-DOSはどの程度共通しておりますか?
MSX-DOSを使いこなせれば、その知識でMS-DOSも使いこなせるものでしょうか?

547:デフォルトの名無しさん
08/02/05 13:35:31 .net
MSX-DOS2だったら、結構近いけど、MSX-DOSだと微妙。
CD
MD (Mkdir)
RD (Rmdir)
がMSX-DOSには無かった記憶が。

結局、MSX-DOSもMS-DOSもMSX-DOS2も、そこから動かすコマンド次第なので、
使えるようにはなるけど使いこなせていない。と感じると思う。

PJだよ。PJ.PatternJack最高

548:デフォルトの名無しさん
08/02/05 13:50:51 .net
>>544
すみません。私がやりたいのはMSX-DOS2の方ですね。
こちら方ではMS-DOSと共通部分が多いということですか?
MS-DOSは16ビットでMSX-DOSは8ビットの機能限定版と聞いたこともあります。

549:デフォルトの名無しさん
08/02/05 14:24:27 .net
どのような事をもって使いこなせる。と感じるかだと思いますよ。
実際のプログラムは「まったく」使えないし。
ファイル管理方法が同じで、COMMAND2.COM(DOS2)とCOMMAND.COM(MS-DOS)上の
コマンドでよく使うのが同じ。ってくらい。

MS-DOSとの関係的に話を広げちゃうと
・CONFIG.SYSによるデバイスの設定
・常駐プログラムの概念
・EMS/BMSなどの追加メモリ管理の概念(デバイスドライバだけど)
とか、範囲が広がりすぎる。

MS-DOSで何をしたいんでしょう?

550:デフォルトの名無しさん
08/02/05 15:12:52 .net
Windowsのコマンドプロンプトで詰まってる奴を見ると、
「プログラム書いててDOSも知らねーのかよ」と思うことがあるが、
今からDOSを学習しようとする奴を見ると、
「何で今頃DOS?」と思ってしまう、矛盾した俺。

551:デフォルトの名無しさん
08/02/05 15:33:15 .net
>>547
なるほど。そういうレベルでの利用法ならMSX-DOS2でも勉強になるかもしれないな。

552:デフォルトの名無しさん
08/02/05 15:35:56 .net
>>545
MSX-DOSはファイル形式とシェルがMS-DOS風味になったCP/Mです。
BDOSコールなどは完全にCP/Mですから。

553:デフォルトの名無しさん
08/02/05 16:53:53 .net
>>546
1chipMSXやMSXPLAYerでのファイル管理です。
またMSX-DOS2を覚えることが、MS-DOSを覚えることと等しいのであれば、
ウインドウズでのコマンドプロンプトも使いこなせることになると思ったからです。
当方、今のところコマンドプロンプトを使えません。

554:デフォルトの名無しさん
08/02/05 17:16:18 .net
>>550
ファイル名を指定して実行
cmd
でコマンドプロンプトを開けて、
help | more

DOSのシェルでやれることなんてしれてるからね。



555:デフォルトの名無しさん
08/02/07 03:36:46 .net
シューティングの部分スクロールって
widthで幅を少なくして余白をずらすってテクニックがあったよな。

556:デフォルトの名無しさん
08/02/09 08:52:18 .net
MSX1のゲームってシンプルなものが多いですが、
全てBASICで作られたものでしょうか?マシン語で作られたものでしょうか?

MSX1のボコスカウォーズのようなものが作りたいのですが、
BASICだけで再現できますか?マシン語は必要ですか?

Mマガに作者が大学生の時に作ったと言っていました。
一人であれだけのゲームを作れるなんて凄いですね。

557:デフォルトの名無しさん
08/02/09 09:12:43 .net
当然、ベーシックでは速度的に限界があるので
マシン語で作られているのがほとんどだが、
ベーシックでも作れなくはない。まずは、作ってみればよい。

ベーシックで遅いと思ったら、処理の重い部分を一部マシン語にして
ベーシックからその部分を読み出すようにするだけで全然違う。
そうやって、徐々にマシン語にしていけばよい。

558:デフォルトの名無しさん
08/02/09 09:27:43 .net
>>554
市販のパッケージソフトでオールBASICで作ったゲームタイトルはありましたか?

559:デフォルトの名無しさん
08/02/09 10:36:25 .net
ミステリーハウスとかが、そうじゃねぇ?>オールベーシック
あれ、工夫したらリスト表示されたし。

560:デフォルトの名無しさん
08/02/09 18:56:20 .net
>>556
ROMカートリッジでお願いします。

561:デフォルトの名無しさん
08/02/09 19:25:14 .net
ファンダムコレクションが市販パッケージだしROMカートリッジだしBASICだぞ。

562:デフォルトの名無しさん
08/02/09 20:22:37 .net
>>557
偉そうだな
自分で調べる気、ない?

563:デフォルトの名無しさん
08/02/09 20:37:06 .net
こないだからずっとだが、多分MSXの事をかなり深く
知っていて、面白半分に質問していると思われ。

564:デフォルトの名無しさん
08/02/09 22:45:47 .net
>Mマガに作者が大学生の時に作ったと言っていました。
この時点でイマドキノヒトではないな・・・


565:デフォルトの名無しさん
08/02/10 07:37:42 .net
>>561
イマドキの新参者です。
Mマガ永久保存版にボコスカウォーズの作者が寄稿していたのです。

566:デフォルトの名無しさん
08/02/11 08:02:55 .net
>>541
いいえ、最近1チップMSXを買って始めた初心者です。

567:デフォルトの名無しさん
08/02/11 11:15:57 .net
>>538,>>563
ほんとうにMSX初心者であるなら、とりあえず…

横に割るのはOKで、縦に割るのがNGな理由はハードウェア(というかビデオ信号の理屈)を知っていればすぐ判る
というか、判ってないならスクロール型のSTGなんかそうそう作れない
って書いてたら、ZANACのMSX1版とMSX2版の差を思い出した

ファミコンですら画面縦割りでスムーズスクロールするSTGなんて思いつかんしなあ

568:デフォルトの名無しさん
08/02/11 13:21:27 .net
ええと、もしかしてMSXってグラフィック二画面の重ね合わせとか出来なかったりしますか?


569:デフォルトの名無しさん
08/02/11 13:41:54 .net
できません。表示は1枚です。
SET PAGE の命令の説明を見れば分かるかと。

570:デフォルトの名無しさん
08/02/11 13:44:07 .net
ってか、MSX発売当時のPCで、そんなことが出来る機械といえば16bit機ぐらいだな。X68000とか。
テキストが独立するけど単色しか出ない88や98ってのも、いちおーありか?

FM-77AVあたりだとテキストすらグラフィック画面に上書きで吹いた覚えがあるなあ

571:デフォルトの名無しさん
08/02/11 16:21:36 .net
>564
ファミコンのロードファイターが画面縦割りだったぞ。
あれはスコアとかをオブジェでやってたんかな。

572:デフォルトの名無しさん
08/02/11 17:25:54 .net
>>568
ついでにギャラガもそうだっけか
背景無地だし、多分、スコア部分はスプライトだろうかな。ロードファイターのロードマップは縦線だし
ギャラガぐらいの背景なら、書き換えてもチラつきは「演出です」でごまかせそうだが

スコア部背景無地なら擬似的にできる、ということになるか



573:



574:デフォルトの名無しさん
08/02/11 17:43:34 .net
ファミコンの場合、ギャラガはスコアをBGで表示している。
左メイン部分の星のスクロールをスプライトで描いている。

ロードファイターは、右のスコア部分全てをスプライトで描いている。
だから、画面を縦割りできている。

工夫の産物だな。

575:デフォルトの名無しさん
08/02/11 18:35:44 .net
MSXなら8ドットスクロールで我慢汁

576:デフォルトの名無しさん
08/02/11 18:40:30 .net
>>567
FM-7はテキストもグラフィックVRAM直書きなのを逆手にとって
RGM3プレーンまで文字重ねてかけるぞ。
パレットで色も合成も自在。

577:デフォルトの名無しさん
08/02/12 00:51:41 .net
懐かしいなー。
PC-8801/PC-9801系は、テキスト+RGB3(98VM2以降はさらに+1)プレーンあったから
プレーンとパレットの割り振り次第では結構できるはず。Xanaduとか旨く利用してた。

MSXはプレーンタイプの割り振りじゃないから厳しいよね。


578:デフォルトの名無しさん
08/02/12 07:04:45 .net
何だよロードファイターってwロードランナーだろww

579:デフォルトの名無しさん
08/02/12 08:40:38 .net
知らないなら、せめてぐぐればいいのに。

580:デフォルトの名無しさん
08/02/12 08:52:28 .net
                             |
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)   J  ))
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ

581:デフォルトの名無しさん
08/02/14 00:56:19 .net
縦分割のSTGって話が出てたんでブラスターバーンを思い出した。
8ドット単位の潔いスクロールだったなぁ。そういえば。
でも回転する面はすばらしかった。


582:デフォルトの名無しさん
08/02/14 11:00:22 .net
その回転する面のBGMが、ガーディックのアレンジだとわかったのはずいぶん後だった。

583:デフォルトの名無しさん
08/02/16 04:49:26 .net
右側のスコア部分を、スクロールに合わせて毎回書き直すのでは
間に合いませんか?

584:デフォルトの名無しさん
08/02/16 07:51:42 .net
まずは、自分でやってみれ。
どれだけのものを書き直すかにもよるだろ。

585:デフォルトの名無しさん
08/02/16 07:51:57 .net
MSXでビットマップ描画をするのか


586:デフォルトの名無しさん
08/02/16 21:50:33 .net
暇つぶしに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

あー遅い。

587:デフォルトの名無しさん
08/02/16 22:10:30 .net
前から思っていたが、VDPコマンドは知らない人が見てもさっぱりだな。

588:デフォルトの名無しさん
08/02/16 23:02:17 .net
COPY文とかで描けない領域描くには、これしかないからなぁ
つくづく、そのあたりが面倒な画面仕様だな。

589:デフォルトの名無しさん
08/02/16 23:50:04 .net
>>584
SETPAGEと送り先ページ指定で、どこからどこへもCOPYは出来ると思うが
SETPAGEとかの手続きがめどいってのは確かだな
でもページを1枚1枚分割するほうが、とっつきやすいからの

590:デフォルトの名無しさん
08/02/18 09:25:48 .net
SCREEN3を使えば高速に画面をいじれるよ

591:デフォルトの名無しさん
08/02/18 13:50:21 .net
その代わり、なんじゃこりゃな画面になるがなw

592:デフォルトの名無しさん
08/02/18 14:01:49 .net
そのまえに本題の根底な「スコア」が書けない… スコア縦に2桁?

593:デフォルトの名無しさん
08/02/18 14:27:48 .net
数字を色に置き換えれば1桁1ドットで…やっぱりなんじゃこりゃだな。

594:デフォルトの名無しさん
08/02/24 22:50:02 .net
スコア用にスプライトを定義すればよかろうなのだ

595:デフォルトの名無しさん
08/02/25 12:23:52 .net
>>590
>>570ですでにFCを例にしてその解決策が出ているにもかかわらず
>>579みたいな質問がキタからこの流れなわけだが…

もしや、SC3のなんじゃこりゃ画面にスプライトでスコア?

596:デフォルトの名無しさん
08/02/25 13:08:21 .net
SC3に妖精だとおもってた

597:デフォルトの名無しさん
08/02/25 16:27:35 .net
星のスクロールなら、1ドット毎にずれたキャラをつくっておいて書き換えれば済む。
グラディウスは星だけスムーズスクロール

598:デフォルトの名無しさん
08/02/25 20:01:22 .net
おまいら、まずスクリーン3から頭を離せw
スクリーン3はネタだろww

599:デフォルトの名無しさん
08/02/25 21:44:10 .net
>>594
スマン
俺がスクリーン3などと言ったばかりにw

でも、縦横回転スクロールをやりたかったのでスクリーン3を使ってお試しプログラムを書いたことがあるよ。
マシン語だったけど、グルグルグイグイ面白かった。
そこから何にも発展なかったけどw

600:デフォルトの名無しさん
08/02/25 23:55:18 .net
MSXじゃないけど「スティールガンニャン」とか観ると、
MSXのScreen3でも頑張ればどうにかなる気がする

URLリンク(gunnyan.hp.infoseek.co.jp)


601:デフォルトの名無しさん
08/02/27 16:32:29 .net
>>596
見てみた。計算してみた。
フル画面で80x60か。

レースゲームでSC3はちょくちょくあるかなーとおもてたら
こんなんみつけた
URLリンク(ameblo.jp)
一番下の。

602:デフォルトの名無しさん
08/02/28 13:26:53 .net
なつかしいなw
それのサウンドドライバのMPKが使いやすくて好きだった


603:デフォルトの名無しさん
08/02/28 19:20:41 .net
暇ながら、スプライトでスコアを表示するプログラムを簡単に作ってみた。
スコアの値をスプライトに定義するところだけ機械語。

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。
遅いのは、他の処理がベーシックだからしょうがない。

604:デフォルトの名無しさん
08/02/28 19:30:53 .net
最後の2文字がRETなのだけわかった

605:デフォルトの名無しさん
08/02/29 09:26:42 .net
>>600
それが分かったら、マシン語の第一歩だな

606:デフォルトの名無しさん
08/02/29 10:13:33 .net
C3 48 45 4C 4C

607:デフォルトの名無しさん
08/02/29 11:35:41 .net
スレ違いだが相対ジャンプのアドレス計算が苦手だ。
パッと出てこない。

>>602
JP 4548h
LD C,H
LD C,H

二度転送するのは何かのおまじないであろうか?あろうか?

608:デフォルトの名無しさん
08/02/29 12:42:28 .net
>>603
48 H
45 E
4C L
4C L


609:デフォルトの名無しさん
08/02/29 13:26:32 .net
BASICではないが、オッサン臭がして面白い。

610:デフォルトの名無しさん
08/02/29 14:47:40 .net
>>604
それは気付かなかった。面白いな。

611:デフォルトの名無しさん
08/03/05 19:30:27 .net
こいつって評価乞食じゃない?
ちゃんと金を払って取引終了した落札者に評価がないからといって、
非常に悪いの評価を下す出品者ってどうなのでしょうか?
見ていて腹が立ちました。

m_interest88
URLリンク(page4.auctions.yahoo.co.jp)


612:デフォルトの名無しさん
08/03/05 19:47:07 .net
晒しは(゚⊿゚)イラネ

613:デフォルトの名無しさん
08/03/05 20:02:02 .net
>>608
こいつって評価乞食じゃない?
ちゃんと金を払って取引終了した落札者に評価がないからといって、
非常に悪いの評価を下す出品者ってどうなのでしょうか?
見ていて腹が立ちました。

m_interest88
URLリンク(page4.auctions.yahoo.co.jp)


614:デフォルトの名無しさん
08/03/05 21:06:12 .net
まじかよ、そいつひでーな
元気出せ
俺はおまえの味方だぞ

615:デフォルトの名無しさん
08/03/06 01:02:27 .net
こんなとこまで出張してきてるのか…


>>599
せっかくだからマシン語もBASICにしようと思ってハンド逆汗しようとしたが
LD A,(IX+d) で「d」ってなんだっけっていう挫折… orz



616:デフォルトの名無しさん
08/03/06 08:03:29 .net
>>611
dは、好きな数を入れる。dに8を指定したら、
IXの指定番地+8番地目の値をレジスタAに読む。

617:デフォルトの名無しさん
08/03/06 08:27:57 .net
>>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。

618:611
08/03/06 10:20:21 .net
>>612
せんくす
直接数値ってと[n]とか[m]しか記憶になかった。

ひさしぶりにべったりZ80触るかな…

>>613
やっぱりそういう流れだわね
ふと、先にROMをVRAMの空きに展開しておけば、
VDPの転送とか使えるな~とかおもた。


ひさびさに逆汗して遊ぶ(゚∀゚)

619:デフォルトの名無しさん
08/03/08 17:14:33 .net
767 :ナイコンさん:2008/03/08(土) 09:57:39
じぶんの出品物が安く落札されそうなら、捨てIDで吊上げる。
これ藤原組は,白上はじめ皆が使ってる手口www

名作MSX ELLE
URLリンク(page6.auctions.yahoo.co.jp)
入札者 入札額 数量 最終手動入札時刻
egulin_jp (45) 最高額入札者 3,500 円 1 3月 7日 19時 36分
msxtech (新規) 3,400 円 1 3月 7日 18時 46分 ←sanibu藤原覚satopin,potetolife

620:デフォルトの名無しさん
08/03/09 22:33:40 .net
ギザカワイソス


非常に良い出品者です。 評価者:x68000acehd2000 (3)
◆即決◆MSX グラディウスシリーズ5本+スペースマンボウ (終了日時:2008年 2月 21日 0


621:時 18分) コメント : 本日商品を受領しました。とても素早い対応で安心して取引が出来ました。 ただ、経年劣化が予想を超えてあまりに酷く、残念な結果でしたが、そこは賭けでしたので納得してます。ありがとうございました。 (評価日時 :2008年 2月 25日 22時 11分) http://page8.auctions.yahoo.co.jp/jp/auction/h54614200



622:デフォルトの名無しさん
08/04/18 16:05:08 .net
とりあえず投下。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


623:デフォルトの名無しさん
08/04/24 20:28:29 .net
書き換えても問題ないシステム用ワークエリアを拝借(ダイレクトモード専用命令のAUTO関係とか)
REM文上の文字が直接マシン語のコードになってるプログラムなどで自前のワークエリアを用意できないときに便利


624:デフォルトの名無しさん
08/04/24 20:29:27 .net
INTFLG(FC9BH,)に3を入れるとMSX-BASICはCTRL+STOPが押されたときの処理をする
そこで、H.TIMIでキー入力を監視してINTFLGを操作することでCTRL+STOP以外でもCTRL+STOPできる

普通はPLAY文の演奏中にキー入力によって演奏を中断させようとすると、区切りのいいところまで演奏してから止まるけど
この技とON STOP GOSUBを使えば、PLAY文で作った音楽集で演奏中いつでもジョイスティックのトリガでメニューに戻るとかもできる


625:デフォルトの名無しさん
08/04/27 16:08:24 .net
ダイレクトモードでカーソルを画面右端に置いてスペースキー
カーソルは次の行の左端に移動するが、このとき2行が接続される
バックスペースを押すとカーソルを先頭にした行が前の行を削っていくように見える

10 CLS    ■
20 BEEP



10 CLS
■0 BEEP



10 CLS    ■0 BEEP

のようにできて、最終的には
10 CLS:BEEP と1行にまとめることができる
DATA文をまとめたいときなどに便利


626:デフォルトの名無しさん
08/04/27 16:23:45 .net
?1+1■
でリターンを押すと

?1+1
2
Ok


となるが、
SETPROMPT CHR$(30)でカーソルの上移動をプロンプトに設定すると

?1+1
2


となり、ダイレクトモードで何度も計算や実験をするときに便利
上に戻るカーソル移動量も減るし、必要だった文字をプロンプトに消されたりしないし
うっかりプロンプト上でリターンを押してシンタックスエラーが出るのともおさらば


627:デフォルトの名無しさん
08/04/27 16:40:04 .net
プログラム実行中に使うとダイレクトモードに移行してしまうlist命令なども
キーバッファにrunやgotoとリターンコードを入れておけばプログラムに自動復帰できる
プログラム実行中にリストを表示したいときなどに便利
ためしてはいないけど、autoでこれをやるとプログラムの自己書き換えもできるかも?


628:デフォルトの名無しさん
08/04/27 18:32:34 .net
>>622
キーバッファに書き込む方法ぷりーず
ワークエリアの指してるアドレスに書くだけ?

629:デフォルトの名無しさん
08/04/27 20:36:43 .net
>>623
これをズラす

PUTPNT(F3F8H, 2)
初期値    KEYBUF(FBF0H)
内容     キーバッファへの書き込みを行う番地を指す

GETPNT(F3FAH, 2)
初期値    KEYBUF(FBF0H)
内容     キーバッファからの読み込みを行う番地を指す



630:デフォルトの名無しさん
08/04/30 10:41:42 .net
>>624
やってみた
なんかできそーだったけど、バッファの使い方がいまいちわからなくて
てきとーにやってたら、延々自分を実行し続けたりして笑た

631:デフォルトの名無しさん
08/04/30 14:09:17 .net
>>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


632:デフォルトの名無しさん
08/05/04 12:40:11 .net
擬似回転プログラム (不完全)
まじめに計算すると遅くなる人向け
スペースキーで終了ですが、長押ししないと効きません。
計算式は絶対間違ってるので、修正できる人に回します。
縦横比の修正だけでも処理できれば、
スプライトの回転グラフィック生成用に使えるかもしれません。

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行の後に移すか、見なかったことにしてください

633:デフォルトの名無しさん
08/06/22 16:35:11 .net
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


634:デフォルトの名無しさん
08/07/02 21:53:26 .net
MSXマガジンに載ってた
BASICROMを音データにして演奏するやつ>>前衛ジャズそのもので聞き惚れ
テープI/Oを超高速で唸らせてサンプリング音再生するやつ>>機械語だったかもしれんが


635:デフォルトの名無しさん
08/07/19 05:47:56 .net
【wanwan】塩沢俊平太 2【millennum】
スレリンク(net板)
犯罪者塩沢俊平太の情報を収集しております
情報をお持ちの方はご協力お願いします

636:デフォルトの名無しさん
08/07/21 22:40:42 .net
ヘクスマップを描画する良い方法はありませんか?

637:デフォルトの名無しさん
08/07/21 23:29:49 .net
いろいろあるのに、どこがダメなの?

638:デフォルトの名無しさん
08/07/22 13:20:54 .net
どうやらMSXではヘクスマップを簡単に表示する方法は無いみたいですね。
残念です。

639:デフォルトの名無しさん
08/07/22 14:11:27 .net
■■◎◎■■
■■☆☆■■
□□☆☆□□
□□★★□□
■■★★■■
■■◎◎■■

こんな感じの組み合わせでヘックスっぽく使ってたソフトもあったような。

640:デフォルトの名無しさん
08/07/22 14:23:23 .net
ユニットの向きも視覚的に扱いたいのでヘクスでお願いします。

641:デフォルトの名無しさん
08/07/22 14:49:24 .net
ユニットの向きを6方向分用意すればいいだけじゃ?

642:デフォルトの名無しさん
08/07/22 17:22:37 .net
MSX限定でもないが、ヘクス升を画像データで用意しといて
中に四角の地形やキャラを置くというのはありそうだ。
方向が欲しいならキャラクタを用意するか、スプライトで方向矢印をだな…
まあ奥義ではないな。

ところで、MSX1なのか2以降なのかによって、盛大に話が変わると思うが

643:デフォルトの名無しさん
08/07/22 17:35:30 .net
Screen3 か Screen12 でやれば漢

644:デフォルトの名無しさん
08/07/22 18:30:50 .net
>ヘクスマップ

URLリンク(ossan.fam.cx)
こうやりゃいい。難しく考えすぎだ。

645:デフォルトの名無しさん
08/07/22 19:43:15 .net
QVGAの携帯画面に縮小されてもバッチリ全部読めてワラタ

解像度的には確にそんなもんだったな。

646:デフォルトの名無しさん
08/07/22 19:50:19 .net
>>639
8x8幅で収まるんだなーとおもたが、よく考えたら四角を半分ずらしたマップと一緒なんだな。
これは知らなかった。

あとは、中の24x24をどう埋めるかか。

647:デフォルトの名無しさん
08/07/28 23:24:28 .net
| (縦線)と∧∨みたいなの使って、

| | | |
∨ ∨ ∨
| | |
∧ ∧ ∧
| | | |

ってやったらどうだろう。
同一フォントはないから、PCG使って。
縦線と縦線の間に、一文字分のスペースがとれるから、
そこにキャラのPCGを入れる。方向別に6種類の絵を作る必要があるけど。
(斜め上+横+斜め下の三種類に左右反転表示を組み合わせて6種類、または、斜め上のPCGを上下反転で斜め下とすれば2種類でもOk?)


648:デフォルトの名無しさん
08/07/28 23:25:58 .net
僕は、エイダちゃん!

649:デフォルトの名無しさん
08/07/28 23:58:29 .net
>>642
ズレとるズレとる
ちょっと縦長すぎやしまいか?
| | | |
 ∨ ∨ ∨
 | | |
 ∧ ∧ ∧
| | | |

せめて横にも2キャラ
.|  |  |  |
 \/\/\/
 . |  |  |
 /\/\/\
.|  |  |  |

650:デフォルトの名無しさん
08/07/29 09:40:13 .net
>>664
なんか、今にも横に歩き出しそうだな


651:デフォルトの名無しさん
08/07/29 11:01:16 .net
>>664に期待wktk

652:デフォルトの名無しさん
08/07/31 22:52:05 .net
URLリンク(ossan.fam.cx)
もっと単純に、こう描けばいいということか。

>>639の大きさなら、PCG定義を4ドット横にズラした方が
作りやすいかな。

653:デフォルトの名無しさん
08/08/01 03:23:48 .net
2chらしからぬ親切レス。
647 は最上級に褒め称えられて良いし、もっとあれこれスレに投下すべき。

654:デフォルトの名無しさん
08/08/01 10:15:36 .net
ヒマなんだろ。

655:デフォルトの名無しさん
08/08/01 11:56:37 .net
こうしてみると、難しそうに見えるだけで
ムチャクチャ簡単な処理だな

656:デフォルトの名無しさん
08/08/01 15:18:37 .net
LINE命令で作るとどうなる?

657:デフォルトの名無しさん
08/08/01 22:55:07 .net
即興で作ってみた
URLリンク(ossan.fam.cx)

即興すぎてわざわざ3行余分にLINE文書いてるのに、Yの字をズラしただけという…
同じ行数で左側あけずに書けるのに

658:デフォルトの名無しさん
08/08/18 16:49:34 .net
ここが一番古いのか

659:デフォルトの名無しさん
08/08/26 00:46:37 .net
保守

660:デフォルトの名無しさん
08/09/06 11:20:01 .net
PLAY"T40S8M60C1."

ぎょんぎょん

661:デフォルトの名無しさん
08/09/06 18:11:44 .net
>>34
そのバグのせいで1画面におさまらなかったプログラムもあるんだろうな・・・。

662:デフォルトの名無しさん
08/09/29 23:20:22 .net
サブルーチンを呼び出すとき、引数を渡す代わりに、変数領域をいじって変数名を書き換える。
X=.... : POKE VARPTR(X)-n,ASC("Y") : GOSUB ....
......
PRINT Y : RETURN

663:あぼーん
あぼーん.net
あぼーん

664:あぼーん
あぼーん.net
あぼーん

665:あぼーん
あぼーん.net
あぼーん

666:あぼーん
あぼーん.net
あぼーん

667:あぼーん
あぼーん.net
あぼーん

668:あぼーん
あぼーん.net
あぼーん

669:デフォルトの名無しさん
08/10/31 01:37:50 .net
汚いスレだなあ

670:あぼーん
あぼーん.net
あぼーん

671:あぼーん
あぼーん.net
あぼーん

672:あぼーん
あぼーん.net
あぼーん

673:あぼーん
あぼーん.net
あぼーん

674:あぼーん
あぼーん.net
あぼーん

675:あぼーん
あぼーん.net
あぼーん

676:イサキは獲れたの?
08/10/31 17:18:18 .net
>>663
ホモセックス-ベーシックの奥義を伝授するスレか?奥が深そうだなあ~


677:デフォルトの名無しさん
08/10/31 17:47:08 .net
いつのまにシゲルのスレになってるんだ?

678:あぼーん
あぼーん.net
あぼーん

679:あぼーん
あぼーん.net
あぼーん

680:デフォルトの名無しさん
08/11/01 00:18:07 .net
>>674
こっ、こんなこと初めてだけどいいんです…
ボッ、ボク…阿部さんみたいな人 好きですから…


681:デフォルトの名無しさん
08/11/01 01:21:07 .net
変なホモネタ貼るのやめろよ!MSXの話ができねぇだろが!!

682:デフォルトの名無しさん
08/11/01 10:00:39 .net
昔のPC板→レトロゲーム板→ここまで荒らしに来たか

荒らし野郎はアク禁にしてもらいたいものだが、
運営は何を放置しているのやら。スレの空気が悪くなるばかりだ。

683:あぼーん
あぼーん.net
あぼーん

684:あぼーん
あぼーん.net
あぼーん

685:デフォルトの名無しさん
08/11/01 23:01:51 .net
クルルァ!スレ荒らすんじゃねぇよ。

686:デフォルトの名無しさん
08/11/01 23:04:29 .net
AAの板でやってくれ! 

MSXplayerのMusicaでSCCの音が鳴って感動した

687:デフォルトの名無しさん
08/11/02 00:36:15 .net
>>680
荒らすなと言いつつageるアホ

688:デフォルトの名無しさん
08/11/04 21:28:03 .net
>>681
なんかSCCはMSXの標準音源にされつつあるな
まあ今更SCCカートリッジを入手するのもめどいけど

ちなみに、MuSICA

689:デフォルトの名無しさん
08/12/06 15:24:45 .net
24時間MSXカテに貼りついてるhellomsx(hotwaterplus)
買う気がないのは吊り上げ、欲しいものはスナイプ
ようちゅういw

690:デフォルトの名無しさん
08/12/09 23:48:39 .net
↑藤原覚ってやつだな。コイツが入札してきたら削除しようw

691:デフォルトの名無しさん
08/12/14 12:20:09 .net
吊り上げてきたら早期終了してやるよ

692:デフォルトの名無しさん
08/12/21 04:13:53 .net
_memini

693:デフォルトの名無しさん
08/12/21 19:26:21 .net
>>687
懐かしすぎて何の命令だったかしばらく思い出せなかった

694:デフォルトの名無しさん
08/12/21 20:55:18 .net
質問
今さらハードを買ってmsxを知る価値はありますか?
ちなみに昔msxに憧れた世代だけど・・・

695:デフォルトの名無しさん
08/12/21 21:51:54 .net
>>689
CPUとIOを直接いじくってなにかをするというのがやりやすい。
OSを介さずにグラフィックさわれるし、制限がきついので、コンピュータのアーキテクチャを感じやすい。
BASICだけさわったり、過去ゲームで遊ぶだけなら、あまり価値はないと思う。

696:デフォルトの名無しさん
08/12/22 01:02:23 .net
>コンピュータのアーキテクチャを感じやすい。

名言の気がするぜ

697:デフォルトの名無しさん
08/12/22 10:50:51 .net
アキティクチャいうても、スロットとVDP以外はZ80の基本だと思うけどね
Z80(つか、コンピュータのありよう)を知るにはいいと思う
MSXを知るってよりは、Z80を知るためにMSXを利用する、のほうが有意義な気がす

MSXがなかったら、俺はマイコンのPGなんかやってなかっただろうなあ…。

698:デフォルトの名無しさん
08/12/22 13:32:56 .net
某工学社でバイト募集してて、応募したらPC歴を聞かれてMSXって言ったら鼻で笑われたおもひで・・・
98か68じゃないとパソコンとは言わないよーって言われたぜ・・・もう20年近く前になるのか・・・
あれは本当にPIOやI/Oの工学社だったのか?

699:デフォルトの名無しさん
08/12/22 16:05:55 .net
>>692
スロットはMSXの特徴だろうね
あのスロットを選択する仕組み(Chip Selectみたいなピン)を
知ったときは、結構衝撃的だった。

VRAMがメモリマップでないのも、ビデオアクセラレータの流れと
似ていて古くて新しい感じ

>>693
まあ仕方ない


700:デフォルトの名無しさん
08/12/22 17:54:13 .net
20年前じゃなく25年前なら少しは勝負できたかも
80年代終わりの頃には既にPCの32ビット時代が叫ばれていて
次世代の覇権OSはどれかとか
それでもまだまだ膨大な資産のある16ビットMS-DOSは安泰とか
そういう時代じゃなかったっけ

701:デフォルトの名無しさん
08/12/22 18:22:57 .net
25年前ってちょど初代マックが発売されたころか。
勝負って何の勝負よ?

702:デフォルトの名無しさん
08/12/22 20:24:51 .net
>>696
>>693の話からして「パソコンとして」の勝負じゃなかろか

98でいうとRAの頃かな?
そのころはまだ32ビットでも過去のアキティクチャ引きずったグダグダだし
MSXでもどこまで使い込んだか次第だと思うんだけどね

703:デフォルトの名無しさん
08/12/23 10:22:14 .net
98の場合は漢字をテキストVRAMで表示できたのが大きいからなあ。

704:デフォルトの名無しさん
08/12/23 12:02:44 .net
MSXでは、どう足掻いても一瞬で漢字を表示できなかったからなぁ。
ああMSXのVDP、遅ぇーー! って毎度叫ぶことになる。

705:デフォルトの名無しさん
08/12/23 18:51:58 .net
そこでハイドライド3の漢字フォントですよ
たしか 8x8 サイズだったよね?多分PCG定義だから一瞬で表示可能

しいて欠点を言えば、マニュアルの対応表みないと判読できない
文字があるぐらい

706:デフォルトの名無しさん
08/12/23 19:30:56 .net
MSXで利用されたことがあるかはわからいないが、りさふぉんとは8x8っすよ。

707:デフォルトの名無しさん
08/12/23 19:31:50 .net
えりさ。ね。「え」が消えてた。。。

708:デフォルトの名無しさん
08/12/29 02:54:34 .net
>>701-702
恵梨沙フォントすげーな
これか
URLリンク(hp.vector.co.jp)


709:デフォルトの名無しさん
08/12/29 03:22:17 .net
ググルと(画像検索すると)結構利用例が見つかるね

かな混じり文だと、脳内補完が働くから結構読めるな


710:デフォルトの名無しさん
08/12/29 04:25:44 .net
URLリンク(www.geocities.jp)
美咲フォント 8x8(7x7)
k6x8 6x8(5x7)

screen3でも安心!

711:デフォルトの名無しさん
08/12/31 17:43:12 .net
MSXでメガデモ
URLリンク(www.intro-inferno.com)
スレ違いだけど面白かったんで貼り


712:デフォルトの名無しさん
08/12/31 19:32:24 .net
メガデモといえば…
むかし、ANMAだかなんだかいうのが作ってたやつが回ってきてたなあ
64kbのMSX2用のはずなのに、メモリマッパ乗ってないと動かないという不思議な仕様だったが

713:デフォルトの名無しさん
09/01/14 17:30:39 .net
poke&H8003,1:poke&H8004,0

714:デフォルトの名無しさん
09/09/03 10:21:43 .net
BASIC繁栄時代?

715:デフォルトの名無しさん
09/12/12 02:31:17 .net
全部読んだ~。ハイドライドの説明書には漢字の判読表が付いてたね。
自作ゲームで英小文字や記号を漢字に書き換えたり、←↑キャラクタコードを使って濁点を一文字に含めなくしたりして悦に入っていたなぁ…。
wizardry風の曲がった矢印のフォント、Ultima風棒人間キャラ、32268階建ての塔を攻略するRPG…アホな事に真剣だったよ。

716:デフォルトの名無しさん
10/08/03 20:48:20 .net



717:デフォルトの名無しさん
10/09/17 23:16:43 .net
えむえすせっ○すべーしっく?

718:デフォルトの名無しさん
10/09/17 23:35:13 .net
またえらい使い古されたネタを…酸素欠乏症?

719:デフォルトの名無しさん
10/09/18 00:20:57 .net
昔、MSXで、2人対戦型の戦車ゲームで遊んだことあるのだが、どなたかご存知ないでしょうか?

・たぶん、雑誌の投稿コード。マシン語を多用。
・2D。上から見下ろし。
・画面は、左右に2つ、2人のプレイヤー別に表示。 中央に自機の戦車がある。
それぞれ、縦・横にスクロールする。画面の回転はしない。普通の2D見下ろし画面。
・マップが4つくらいある。2Dだけど、まあまあ広い。

・2人対戦が凄く面白かった。

720:デフォルトの名無しさん
10/09/18 01:07:55 .net
知ってるよ

と言ったところで何になんの?

721:714
10/09/18 02:55:41 .net
>>715

名称を知りたい。
ソースを見て、どんなコードになっていたのか見たい。
また遊びたい。

722:デフォルトの名無しさん
10/09/18 03:20:25 .net
そんなに難しくなさそうだから作れば?
ム板なんだし

723:デフォルトの名無しさん
10/09/18 03:47:00 .net
>>716
URLリンク(ja.wikipedia.org)

724:デフォルトの名無しさん
10/09/18 11:44:30 .net
こんな古いスレがあったのか


725:デフォルトの名無しさん
10/09/18 14:48:16 .net
>>714
そのゲーム知らんけどネットワーク越しに対戦出来たら確かに面白そうだ

726:デフォルトの名無しさん
10/09/19 15:23:37 .net
>>714
フィールドマスターだな、ログインで掲載されていた

727:デフォルトの名無しさん
10/09/19 17:12:10 .net
URLリンク(tape-load.blog.so-net.ne.jp)


728:デフォルトの名無しさん
10/09/20 12:51:25 .net
奥義を詰め込んだコードを見せてくれ


729:デフォルトの名無しさん
10/09/20 19:06:50 .net
MSXナツカシー

かまぼこ板のプロトタイプとかすごくおもしろかった
開発の中心にいたASCIIの人たち今何やってるんだろう


730:714
10/09/20 20:41:52 .net
>>721 >>722
> フィールドマスターだな、ログインで掲載されていた
> URLリンク(tape-load.blog.so-net.ne.jp)


!!これです!! すげー!!感激!



今時のプログラム環境、例えば、Javaアプレットででも作れそうだなあ。


731:デフォルトの名無しさん
10/09/20 22:07:45 .net
URLリンク(www.nicovideo.jp)

こいつマジやべぇな

732:デフォルトの名無しさん
10/09/21 18:13:45 .net
そろそろ奥義をみせてくださいよw

733:デフォルトの名無しさん
10/09/21 18:14:58 .net
せっかく伝授したのに・・・

734:デフォルトの名無しさん
10/09/21 19:04:37 .net
なにを?だれに?いつ?どこで?どのように?

735:デフォルトの名無しさん
10/09/22 11:03:53 .net
スレ読め

736:デフォルトの名無しさん
11/01/19 00:03:04 .net
VDPの性能がファミコンのリアルタイム性に遠く及ばなかったのが
敗因だよなぁ

737:デフォルトの名無しさん
11/01/19 01:31:51 .net
>VDPの性能がファミコンのリアルタイム性に遠く及ばなかったのが
背景とスプライトの色表現力で負けてるから
リアルタイム性は9918の方があるよ、ファミコンはDMAでVSYNC中に300バイト程度しか送れない


738:デフォルトの名無しさん
11/01/21 18:48:19 .net
あんな表現力でリアルタイム性だけ勝っててもねえ。
比較するならせめて 9938 だろ。

739:デフォルトの名無しさん
11/03/27 20:22:50.35 .net
10 print "名無し"
20 goto 10
end


740:デフォルトの名無しさん
11/03/27 20:45:46.03 .net
10 POKE RND(1) * 65535, RND(1) * 255
20 GOTO 10

741:デフォルトの名無しさん
11/03/27 21:29:49.27 .net
>>735
RNDって、0~1未満じゃなかったっけ? で、RND(1) * 65536, RND(1) * 256 じゃない?
あと、BASIC上にいるときは、上32KBはROMだから、 RND(1)*32768+32768 じゃない?

742:デフォルトの名無しさん
11/03/27 22:10:50.35 .net
>>736
ROMに書き込んでどうすんの?

743:デフォルトの名無しさん
11/03/27 22:12:53.58 .net
上って0番地側か
ずっと8000H~ffffHがROMだと思ってた


744:デフォルトの名無しさん
11/03/27 22:16:45.58 .net
で,
>>735 は,どんなことが起こるの?
ひたすらランダムにメモリを破壊していくようにしか見えないが?

745:デフォルトの名無しさん
11/03/27 23:00:10.88 .net
どうでもいいけど、「上」ってffffH寄りじゃないのか?

746:デフォルトの名無しさん
11/03/27 23:15:54.84 .net
コードやデータを読むとき上から下にたどっていくって感覚だと先頭に近いほうのアドレスが上になる

747:デフォルトの名無しさん
11/03/28 01:07:40.20 .net
>>738
0~7FFFがROMだね。
ワークがFFFFからさかのぼってくるハズだから、MSX1の16KB機種はC000からRAMか。

>>739
どっかのワークに当たった瞬間に暴走するだけかと。
BlueMSXのturboR設定で試したら、しばらくしてイリーガルファンクションコールをはき続けたわ。

748:デフォルトの名無しさん
11/04/24 04:46:57.82 .net
数々のMSBASICがあるなかでMSX-BASICは最低だったね
こういう事言うと必ず信者が噛み付いてくるけど
事実は事実として歪曲することなく認めないとね
まぁ今更なんだけど使っていた奴に同情するよ
反論があればよろしく


749:デフォルトの名無しさん
11/04/24 17:36:13.80 .net
何が最低なのかも書かないってのはアタマの悪い証拠にしかならんぞ


750:デフォルトの名無しさん
11/04/24 19:00:24.62 .net
だってアホやもん

751:デフォルトの名無しさん
11/04/24 19:20:25.66 .net
前スレから1ヶ月あいてるのに… もう一ヶ月放置しといたら独り相撲だったのに…

752:デフォルトの名無しさん
11/04/24 19:21:10.88 .net
×前スレ
○前レス

やっちまったーい。

753:デフォルトの名無しさん
11/06/23 00:29:54.64 .net
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"


754:デフォルトの名無しさん
11/06/23 00:47:25.30 .net
ガイガーカウンタのパルスをジョイスティックポート等に入力し、パルスをカウントすればデジタル方式の。
ガイガーカウンタになる。一分間のパルス数を計数したものがCPM。
シーベルトへ単位変換する際には、ガイガーカウンタがγ線のみを検出している事を前提とする。
ガイガーカウンタに金属製のシールドがしてあれば、ほぼγ線を検出していると考えられる。
このガイガーカウンタの値に対して時間累積すると線量計となる。1uSv/hの場所に4時間居れば1*4=4uSv。
線量計は累積した放射線量。年間20mSvという表現は、この線量計の一年間累積した値を示している。

755:デフォルトの名無しさん
11/08/26 13:54:23.16 .net
復元

756:デフォルトの名無しさん
11/11/26 11:41:35.37 .net
また復元

757:デフォルトの名無しさん
11/11/29 11:09:43.44 .net
Xbox360/XNAで動くMSX-BASIC互換アプリってないの?

758:デフォルトの名無しさん
11/12/01 20:25:30.78 .net
裏レジスタは癖が強くて使えない

759:デフォルトの名無しさん
11/12/02 19:29:22.07 .net
裏レジスタは頭が弱くて使えない

760:デフォルトの名無しさん
11/12/02 20:01:07.80 .net
IRQ処理で頻繁に使う者だとおもってた


761:デフォルトの名無しさん
11/12/17 14:53:45.63 .net
>>1-1000
おまえら一盛り10円
URLリンク(www.kh.rim.or.jp)

762:デフォルトの名無しさん
11/12/19 13:42:33.16 .net
>>756
>>1-1000って自分自身も入れてどうする。
あとCOBOLとBASICは全くの別言語。どちらかというとBASICはFortranの系譜だ

MSX-DOS用に一応COBOLもあったけど、使っていた人はわずかでしょう。
ちなみに自分はX1のCP/M 80用のFortranをMSX-DOSに移植して使っていた

763:デフォルトの名無しさん
11/12/19 13:56:45.47 .net
おい、なんかマジっぽいレスしてる奴がいるぞ

764:デフォルトの名無しさん
11/12/19 14:18:03.31 .net
そこは「マジレスしてる奴がいるぞ」にしとけ
「マジっぽいレス」だと理解不足なのが丸バレで757が図に乗るぞ

真面目な奴ほどキれると暴れるから荒れるのはカンベン

765:デフォルトの名無しさん
11/12/19 14:48:29.85 .net
>>759
もしかしたら俺の理解できないボケかもしれないので、少し逃げた。

766:デフォルトの名無しさん
11/12/26 17:26:33.06 .net
少し逃げたね。

767:デフォルトの名無しさん
12/01/02 17:57:05.98 .net
うん、少し逃げたね

768:デフォルトの名無しさん
12/09/03 01:32:23.10 .net
>2012年 9月 2日(日) 13:00~
>MSX30周年が来年だと思ったら、ミナカンも今年15周年だった...

ふーん、よくやるね(呆…

769:デフォルトの名無しさん
12/10/09 14:29:01.18 .net


770:電脳プリオン 忍法帖【Lv=40,xxxPT】(1+0:5) 【32.1m】
13/01/27 19:00:43.97 ?PLT(12080).net
  ∧_∧
  ( ・∀・)            人 ガッ
  (    つ―-‐-‐-‐-‐-‐○ <  >__Λ∩
  人 Y ノ.             V`Д´)/
  し(_)                  /  ←>>269

771:デフォルトの名無しさん
13/02/06 13:34:07.37 .net
序破急(じょは きゅう)

772:デフォルトの名無しさん
13/02/06 13:35:36.64 .net
奥義(おくぎ)
奥義(おうぎ)

773:デフォルトの名無しさん
13/02/24 07:48:22.15 .net
どんだけ過疎ってんだよ。お前らのMSXに対する愛はそんなものか!

774:デフォルトの名無しさん
13/02/24 15:59:45.43 .net
愛ってなんだ

775:デフォルトの名無しさん
13/02/24 16:11:01.59 .net
振り向かないことさ

776:デフォルトの名無しさん
13/02/24 18


777::10:28.96 .net



778:デフォルトの名無しさん
13/02/24 23:10:39.51 .net
アキムカないことさ

779:デフォルトの名無しさん
13/03/02 13:35:36.02 .net
MSXFANの1画面プログラムは色々とマニアックなことが書いてあったな
STOPキー押すまで入力待ちとかあったような

780:デフォルトの名無しさん
13/05/25 02:05:38.26 .net
なつかしい。昔ログインにゲーム投稿してお金貰ったわ

781:デフォルトの名無しさん
13/09/27 09:13:12.19 .net
保守

782:デフォルトの名無しさん
13/10/21 19:41:55.44 .net
URLリンク(pbs.twimg.com)

783:デフォルトの名無しさん
13/10/22 12:49:05.01 .net
バカな!
しかし、パッケージは紛れもなく本物……ッ!!

784:デフォルトの名無しさん
13/10/22 17:25:20.94 .net
MSXちゃうやん

785:デフォルトの名無しさん
13/10/22 20:38:30.87 .net
その人何の技術もないからフェイクしかできないでしょ

786:デフォルトの名無しさん
13/10/23 12:32:15.62 .net
奥義伝承の儀とかやらんの?

787:デフォルトの名無しさん
13/10/23 15:20:38.16 .net
>>776
MSXじゃなくてPC6Kシリーズじゃねぇか!!!

788:デフォルトの名無しさん
13/10/24 08:23:50.03 .net
キーボードはパピコンだけど、こんなにカラフルで高精細な画面モード無いし

789:デフォルトの名無しさん
13/11/16 07:44:01.61 .net
画面だけエミュで映し出してるな

790:デフォルトの名無しさん
13/11/16 07:52:01.86 .net
>>461
配列の定義をサブルーチンの頭に挿れてるのはどうしてなの?
ベーマガではそういうプログラムの書き方は教えてないぞ

791:デフォルトの名無しさん
13/11/16 08:26:02.58 .net
元ベーマガスタッフキタ━ヽ(゚∀゚)ノ━!!!!

792:デフォルトの名無しさん
13/12/05 21:10:30.52 .net
でもプログラム末尾にDATA文で並べるより
使ってる近辺に書いたほうが分かりやすいよね今考えれば

793:デフォルトの名無しさん
13/12/06 00:21:13.46 .net
エディタがまともならな

794:デフォルトの名無しさん
14/01/03 00:28:03.71 .net
データとプログラムは分離されてた方が訂正するのは楽かな。
どうせ構造や意味は開発資料としてメモしておくでしょ。

795:デフォルトの名無しさん
14/01/03 14:41:05.34 .net
配列の定義だから、DIMのことだろう

796:デフォルトの名無しさん
14/02/06 03:33:44.69 .net
あれだけいろいろ作ってたのに今見たらもうBASIC読めないな。
配列の確保ってその行の実行時だったけ?

797:デフォルトの名無しさん
14/02/06 08:37:37.66 .net
10個ぐらいだったら宣言しなくても使えたような気がする。忘れた。
そういうデフォルト設定や裏技を極限まで使いこなすのが「テクニック」だったよなあ。
今ではクソコードに分類されるけど。

798:デフォルトの名無しさん
14/02/06 12:11:32.90 .net
>>791
>10個ぐらいだったら宣言しなくても使えたような気がする。

古いBASIC

799:デフォルトの名無しさん
14/02/06 13:29:46.17 .net
>>790
時間があまりにも過ぎてるからじゃね?

俺もマシン語・アセンブラでバリバリやってて
ハードウェアの隅から隅まで知っていたつもりだけど
今じゃ何も思い出せないなw

まあ資料見ればすぐに思い出せるだろうけど
さすがに全く触らなくなってから時間が経ち過ぎてる

800:デフォルトの名無しさん
14/02/06 13:41:28.12 .net
てきとーに配列に数値をぶち込むものを書いてみる。

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 の時点でエラーになるな。

801:デフォルトの名無しさん
14/02/07 05:57:15.58 .net
ワ、ワタシハタダシイ

802:デフォルトの名無しさん
14/02/13 22:37:49.35 .net
読める、読めるぞ~、インストラクション表を片手に

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

数年後には書いた本人にもわからない古文書となる

803:デフォルトの名無しさん
14/02/16 12:25:00.81 .net
DarkBASIC Pro Freeで最新技術を誰よりも早く習得 - VC++プログラマーより情報が早い

- DarkBASIC Professional - FREE Download(英語版のみ)
 [ URLリンク(www.thegamecreators.com) ]
 [ URLリンク(www.thegamecreators.com) ]

 U77 Public Release Candidate(最新バージョンアップデート)
 [ URLリンク(forum.thegamecreators.com) ]
 [ URLリンク(files.thegamecreators.com) ]

804:デフォルトの名無しさん
14/02/16 12:26:25.19 .net
今回紹介するのはDarkBASIC Professinalフリーバージョン。
商用利用をしないと言う条件ですべての機能が使える。

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

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

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

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

英語版と言うことであるが、BASICと3Dの基礎知識があれば、誰でも使える。

805:デフォルトの名無しさん
14/03/12 07:21:04.94 9nRIvxt0.net
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

806:799
14/03/14 03:44:10.36 Dt0a1Iuk.net
799の「200年カレンダー」を


807:、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); (続く)



808:799
14/03/14 03:58:27.59 Dt0a1Iuk.net
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 を加えるなどの工夫が必要。

809:799
14/03/14 04:13:09.54 Dt0a1Iuk.net
もう一つ。海外の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はあるだろうか?

810:799
14/03/15 03:32:57.56 GTtrbY0y.net
訂正。MSXと99Basicは問題ないが、
N88互換のBASICの一つ「MBASIC86」でエラーが出た。

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

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


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


↑310行を訂正してほしい。申し訳ない。
「MBASIC86」は、これで動作した。

811:デフォルトの名無しさん
14/03/15 12:51:19.31 8TvWREf7.net
なにこの独り相撲

812:デフォルトの名無しさん
14/03/15 13:37:16.17 E7qCmrfx.net
IDありになって良かったな

813:799
14/03/15 22:22:48.57 GTtrbY0y.net
わざわざ過疎スレまで煽りに来たのか。

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


私のカレンダーでは使っていないけど(28年分のカレンダーを使いまわしているだけ~例:1986年=2014年=2042年)
カレンダーのプログラムを作るなら、「ツェラーの公式」
URLリンク(ja.wikipedia.org)
を参考にするといいと思う。


……と書いたら、また煽られるだろうな。
昔~ひろゆき氏が熱心に活動していた頃~の2chは、
この程度で煽られることは少ない気はしたが。
ひろゆき氏が「PCが安価になったので、一部を除いては、2chは馬鹿ばかりになった」
と嘆いたのもわかる気が。

814:799
14/03/15 22:31:04.32 GTtrbY0y.net
ID制…といっても、末尾が「0」「O」「i」「P」ではないので、
ID云々で煽る板ではない気がする(少数だが、現時点でもIDがない板がある)。

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

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

あと、書き込みが1日1回限定だとIDの意味をなさないと思う。

815:デフォルトの名無しさん
14/03/16 14:24:59.42 SqWBi3v6.net
なんかよくわからんけど、どうせなら、この世の全ての BASIC で動くコード
とかだと面白いんだけどな

816:デフォルトの名無しさん
14/03/16 14:50:41.80 4mUPyn+t.net
独り相撲してナンボのスレだけどな
まあ、番号コテの人にはスレタイくらい読んでおいてほしかったとは思うな

817:デフォルトの名無しさん
14/03/16 15:08:12.80 gkqHMcUQ.net
BASICでは、ダークと99はNGに入ってるわ、俺。

818:799
14/03/16 16:50:59.39 P7mFBOx5.net
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行を無駄ループにして回避。

819:799(MSXで動作可)
14/03/16 17:47:43.30 P7mFBOx5.net
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"

820:デフォルトの名無しさん
14/03/16 21:18:49.40 lTEgNzO7.net
>>807
俺P2からの書き込みだけどPにならんよ

821:799
14/03/17 00:30:21.19 wkMqB80o.net
>>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対策」と書かないとなぜ?と聞かれると思う。

822:デフォルトの名無しさん
14/03/17 00:41:51.33 cdm9pD2a.net
「これはMSXの仕様に依存している」…まさしくそれがスレタイの意味するところじゃねかしら?
ほかのBASICで動くなら、MSX-BASICの奥義でもなんでもないし

823:799
14/03/17 04:47:53.34 wkMqB80o.net
>>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再現に難がある。

824:799(漢字BASIC版、改行は最小限に)
14/03/17 05:17:53.14 wkMqB80o.net
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

825:デフォルトの名無しさん
14/06/04 15:34:40.19 ZiHf6GEW.net
揚げろや屑やろう!

826:デフォルトの名無しさん
14/06/04 15:40:59.44 3TCFL1gZ.net
断る

827:デフォルトの名無しさん
14/07/09 09:59:00.63 jeW2TfnT.net
保守

828:デフォルトの名無しさん
14/07/12 17:02:47.46 dhVKd2av.net
奥義はよ

829:デフォルトの名無しさん
14/07/14 22:42:26.64 4A74nF8C.net
奥義マダー?

830:デフォルトの名無しさん
14/07/15 06:39:57.66 mWyocOMn.net
奥義・光子力まるはだか!

831:デフォルトの名無しさん
14/07/15 11:46:12.23 6lvRYATA.net
ジャパニウム、だっけ?

832:デフォルトの名無しさん
14/07/15 19:41:46.28 uDYfEjIO.net
そのジャパニウムの力で、
小学4年生の江久保葉子ちゃんをまるはだかにむくのじゃあ!

833:デフォルトの名無しさん
14/07/25 13:12:32.97 RkXLEhxK.net
>>825
通報しますた

834:デフォルトの名無しさん
14/07/28 11:47:27.95 XCE2nVfS.net
★2ch勢いランキングサイトリスト★

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

※ 要サイト名検索

835:デフォルトの名無しさん
14/09/09 20:53:47.73 xGs4sfhV.net
2001年の生き残りはこのスレだけ
最長老ごきげんよろし

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

スクリーンモードってVDPのR#0と#1だけで決めていると思ってるんだけど、
それ以外に何かいじらないと多色刷りモードにはならないってことか

837:デフォルトの名無しさん
14/09/28 10:53:47.04 nD5Yu8m1.net
多色刷りってのは BASIC で手軽に Graphic 2 の性能を引き出す手法の俗称だろ。
市販ゲームなんかは、それこそすべての操作を VDP に直接アクセスしてやってるから、
多色刷り云々の話ではないよ。

838:デフォルトの名無しさん
14/09/28 11:28:05.44 /z7vQ2zP.net
一号機
URLリンク(i.imgur.com)
三号機
URLリンク(i.imgur.com)

839:デフォルトの名無しさん
14/09/28 14:43:20.51 DVWno/3n.net
>>134
お願いします

840:デフォルトの名無しさん
14/09/28 15:22:11.12 8Hq1x0kC.net
反応するのに12年もかかるのかよ

841:デフォルトの名無しさん
14/09/28 15:28:43.79 J5abx0zT.net
12年後が楽しみだ

842:830
14/09/29 00:58:02.60 EDDV56hZ.net
>>830
それは知ってるんだが、
なぜVDPがscreen2であるにも関わらず、
VDPに対してprint文などでキャラクタコードで書けるのかが不思議だったんだよ
screen2はパターンジェネレータテーブルとカラーテーブルだけが有効で、
パターンネームテーブルは無効だと思ってたから。

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

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

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

じゃあ多色刷りって、VDP側はただのscreen2だな。
別にどうってことない話じゃないかw(←オイ

843:デフォルトの名無しさん
14/10/01 09:01:42.86 1BRcjDE3.net
screen2はぶっちゃけ画面全部を違うパターンの文字にしたものだからね
多食刷りのミソは、本来テキストを扱うscreen1用のbasicコマンドが
(内部が)screen2でもそのまま使えたことだろうな

844:デフォルトの名無しさん
14/10/08 10:54:52.16 2a6Sl7jH.net
なつかしいFANダムに4本載ったワシ

845:デフォルトの名無しさん
14/10/09 13:56:29.65 MpVmhvXd.net
何の作品か言うてみい。打ち込んでやるわボケ。

846:デフォルトの名無しさん
14/10/23 03:08:20.65 khbr0nbg.net
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

847:デフォルトの名無しさん
14/10/23 06:59:36.83 QsQhyUlJ.net
テープに録音するときってどんな音に聞こえた?
ピー
ガラガラガラ
ピロピロピロ

848:デフォルトの名無しさん
14/10/23 09:03:15.77 sksS7kTY.net
ピー-ガッ! ←最初に必ずこの工程があるでしょ
ピーーガゴギゴギゴ…

849:デフォルトの名無しさん
14/10/23 09:29:44.09 GVukQ4G4.net
緊急地震速報の音が当時のやつに一番近いかな

850:デフォルトの名無しさん
14/10/23 09:31:17.65 GVukQ4G4.net
ああ間違えた
大津波警報の方です
すみません

851:デフォルトの名無しさん
14/10/23 09:33:03.26 GVukQ4G4.net
あれ?
ぐぐって聴いてみたら最近JALERTのは違うんだね

852:デフォルトの名無しさん
14/10/23 09:39:04.77 xi8wnWKn.net
>>840
URLリンク(www.vector.co.jp)

853:デフォルトの名無しさん
14/10/23 09:40:34.27 GVukQ4G4.net
>>845
へーこんなのあるんだ
ありがとう
ほんとにセーブ出来てるなら
ロードも試してみたくなるな

854:デフォルトの名無しさん
14/10/23 10:53:09.83 GVukQ4G4.net
作者のページも逝ってみたけど
ロードエミュレータは無いんだね

ぐぐってたらこんなページはあった
URLリンク(psyzans.com)

855:デフォルトの名無しさん
14/10/23 11:28:00.27 ISc0F2Qf.net
>>842-844
どんだけ古いおっさんやねん
URLリンク(radio1ban.com)

856:デフォルトの名無しさん
14/11/15 10:36:19.60 gWegtIR0.net
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]-[ディレクトリ挿入]でディレクトリを指定してやると、ディスクイメージを作らなくてもファイルが読める。

857:デフォルトの名無しさん
14/11/15 10:44:03.15 gWegtIR0.net
補足
コピペの際、各行の終わりにスペースがつく場合は、スペースを消して実行してくれ

858:デフォルトの名無しさん
14/11/18 00:02:20.73 zu7jtgft.net
REM文に書かれた文字そのものがプログラムだっていうのは結構やってたな
プログラムすべてを文字化するのは面倒だから、文字だけでデコーダを書いて、
文字にエンコードされたメインプログラムを展開して実行みたいなことが多かった
小さなちょっとしたことなら文字だけでプログラムを書くのも普通にやってたね
そもそも上記のデコーダがそうだし
で、REM文の内容の書かれたアドレスを直接指定してマシン語として実行するわけだけど
GRAPH文字には結構お世話になった気がする
ご存知だろうがGRAPH文字は01hを頭とする2バイト文字なのだ
01hを表現したいときに、たとえば >円 と書くと
文字コードが 3e 01 49 となって
LD A,01h → LD C,C になる、みたいな

文字コードとか覚えてなくてググりながら書いてみたんで間違いがあったりするかもだけど、
とにかく、GRAPH文字の01hっていうのはREMに直接マシン語を書くとき便利だったなあ
というお話

859:デフォルトの名無しさん
15/10/13 21:35:13.92 tF56vlyv.net
昔、Panasonic FS-A1FX(MSX2+)持ってたんだけど
POKE文でどこかのアドレスに所定の値を設定すると
CPUのクロック数が上がるって技があったと思うんだけど
・・・いや、今更調べたいというわけでもないんだけど、ちょっと脳裏に浮かんだので書いてみた

860:デフォルトの名無しさん
15/10/14 15:47:26.04 NrBXnG0t.net
昔、ASCII社製の木の板にMSX基板をはっつけた開発機材もらったんだけど、これってオクで売れるかな
仕様はMSX1とMSX2と両方もってる
仕入れ元はガーボロジーなのでアレなのだが

861:デフォルトの名無しさん
15/10/14 16:02:06.05 PR+BbI9O.net
もれは買わんな

862:デフォルトの名無しさん
15/10/16 06:55:09.09 ubnomhpt.net
ちなみにいくらで売りたい?
ぼったくり価格でないなら買うかもよ

863:デフォルトの名無しさん
15/10/16 11:43:35.94 ZWbPxBYc.net
イラネ

864:デフォルトの名無しさん
15/10/16 22:21:53.33 08ph5kmV.net
欲しいとは思うけど、買ってもどうせ押し入れの中で腐らすだろうな

865:デフォルトの名無しさん
16/01/23 16:18:18.90 SBqTJcjF.net
保守

866:デフォルトの名無しさん
16/01/23 19:22:11.95 l5TKWQpo.net
>>853
珍品奇品のように騙せば売れる
がんばれ

867:デフォルトの名無しさん
16/01/29 13:22:13.24 sHuG6nTkW
DOS TOOLS/DOS2 TOOLSのM80やL80。
BASICのBSAVEファイルやROMカートリッジなど
「MSX-DOS以外のファイルのアセンブルができない」者を罵倒している輩がいた。鈴なんとかだったと思う。


「BASICしかできない馬鹿は、ソース→バイナリに直接アセンブルするものを使え!(例:永久保存版1の付録・ZASM)」
ということか。


……M80で(ファイル名本体).REL を作ってから

L80 /P:(アドレス~D000など),(ファイル名本体),(ファイル名本体)/N/X/E

でインテルHEXファイルを作り、BSAVE.COMでBSAVE形式バイナリに変換する。

L80の/Eオプションに/E:(ソースのラベル名)を指定すると、BSAVEの実行アドレスを変えられるらしい。もちろん、ソースでラベル名を使う必要はあるが。

…もっとも、BSAVEの実行アドレスは、バイナリエディタで簡単に変更できるが。ROMカートリッジ用などはBSAVEのヘッダ7バイトを削除する。

868:デフォルトの名無しさん
16/02/01 05:57:38.30 XkHCvxET/
1.DEF FNで2バイト数値の換算
………8000h~FFFFhはBASICではマイナス、8000hを32768・FFFFhを65535などはエラーになる場合が多い

2.MSXでバイナリファイルにアクセス
………BSAVE形式のヘッダチェック・ヘッダ書き換え(開始・終了・実行)


100 SCREEN 0:KEY OFF:DEFINT A-Z:DIM B(7)
110 IF PEEK(&H2D) THEN WIDTH 80 ELSE WIDTH 40
120 DEF FNHL(H,L)=(H+(H>127)*256)*256+L
130 DEF FNH(HL)=(HL-(HL<0))\256-(HL<0)*255
140 DEF FNL(HL)=(HL-(HL<0))MOD256-(HL<0)*255
150 DEF FNDF!(A,B)=A-(A<0)*65536!-B+(B<0)*65536!
160 DEF FNHX$(A)=RIGHT$("000"+HEX$(A),4)
170 PRINT "1:BSAVE ヘッダチェック"
180 PRINT "2:BSAVE ヘッダカキカエ"
190 PRINT "3:シュウリョウ":PRINT:PRINT "ドレニ シマスカ? ";
200 A$=INPUT$(1):IF A$<"1" OR A$>"3" THEN 200 ELSE PRINT A$:PRINT:PRINT
210 IF A$="3" THEN 520
220 ON ERROR GOTO 300
230 FILES:PRINT:PRINT:PRINT
240 INPUT "BSAVE ファイル";FL$:IF FL$="" THEN 510 ELSE PRINT:PRINT
250 OPEN FL$ FOR INPUT AS #1:CLOSE #1
260 OPEN FL$ AS #1 LEN=1:SZ!=LOF(1)
270 FIELD #1,1 AS B$
280 IF SZ!<8 THEN PRINT "BSAVE ファイルハ 8バイトイジョウ アリマス":GOTO 510
290 FOR I=1 TO 7:GET #1,I:B(I)=ASC(B$):NEXT:GOTO 320
300 IF ERL=230 THEN PRINT "ディスクニ ファイルガ アリマセン":RESUME 510

869:続き
16/02/01 05:58:34.71 XkHCvxET/
310 IF ERL=250 THEN PRINT "ニュウリョクシタ ファイルガ アリマセン":RESUME 510
320 ON ERROR GOTO 0
330 IF B(1)<>&HFE THEN PRINT "BSAVE ファイルデハ アリマセン":GOTO 510
340 S=FNHL(B(3),B(2)):E=FNHL(B(5),B(4)):X=FNHL(B(7),B(6))
350 PRINT "     カイシ アドレス:";FNHX$(S)
360 PRINT "  シュウリョウ アドレス:";FNHX$(E)
370 PRINT "   ジッコウ アドレス:";FNHX$(X):PRINT
380 PRINT "ファイルサイズ:";FNHX$(SZ!);" (";STR$(SZ!);"bytes)"
390 PRINT:IF SZ!=FNDF!(E,S)+1+7 THEN PRINT "セイジョウ デス":GOTO 410
400 PRINT "ファイルサイズガ ヘッダト イッチ シマセン"
410 IF A$="1" THEN CLOSE #1:GOTO 510
420 PRINT:PRINT:PRINT "BSAVE ヘッダヲ カキカエマス":PRINT:PRINT
430 S$=FNHX$(S):E$=FNHX$(E):X$=""
440 INPUT "   カイシ アドレス(16シンスウ 1-4ケタ)";S$:IF LEN(S$)>4 THEN 440
450 INPUT "シュウリョウ アドレス(16シンスウ 1-4ケタ)";E$:IF LEN(E$)>4 THEN 450
460 INPUT " ジッコウ アドレス(16シンスウ 1-4ケタ)";X$:IF LEN(X$)>4 THEN 460
470 S=VAL("&H"+S$):E=VAL("&H"+E$):IF X$="" THEN X=S ELSE X=VAL("&H"+X$)
480 B(3)=FNH(S):B(2)=FNL(S):B(5)=FNH(E):B(4)=FNL(E):B(7)=FNH(X):B(6)=FNL(X)
490 FOR I=2 TO 7:LSET B$=CHR$(B(I)):PUT #1,I:NEXT:CLOSE #1
500 PRINT:PRINT:PRINT "BSAVE ヘッダヲ カキカエマシタ"
510 PRINT:PRINT:PRINT "Hit any key ";:A$=INPUT$(1):CLS:GOTO 170
520 END

870:デフォルトの名無しさん
16/02/12 08:28:52.97 qz3mrubwg
1984年のリファレンスマニュアル(東芝・ヤマハ・キヤノンなど)のサンプルプログラムを機械語にした。
SLの音などSOUND命令のサンプル。
機械語の場合、SOUND 7,nの値は「必ず &B10xxxxxx」でないといけない。


100 CLEAR 200,&HD000:DEFINT A-Z:AD=&HD000
110 FOR I=0 TO 447
120 READ A$:A=VAL("&H"+A$):POKE AD+I,A
130 NEXT I
140 DEFUSR=AD:A=USR(0)
150 END
160 DATA 3E,0C,CD,A2,00,CD,3E,D0,21,80,D0,7E,FE,FF,28,1A
170 DATA CD,33,D0,01,11,00,09,4E,23,06,0E,AF,5E,CD,93,00
180 DATA 3C,23,10,F8,CD,3E,D0,79,18,E2,3E,0C,CD,A2,00,CD
190 DATA 90,00,C9,E5,D1,CD,4D,D0,06,02,CD,57,D0,C9,11,70
200 DATA D0,CD,4D,D0,CD,9F,00,06,03,CD,57,D0,C9,1A,FE,00
210 DATA C8,CD,A2,00,13,18,F6,3E,0D,CD,A2,00,3E,0A,CD,A2
220 DATA 00,10,F4,C9,00,00,00,00,00,00,00,00,00,00,00,00
230 DATA 48,69,74,20,61,6E,79,20,6B,65,79,20,00,00,00,00

871:デフォルトの名無しさん
16/02/12 08:36:13.24 qz3mrubwg
続き。240行以降はデータ。240-250行のように32バイトで一組。

240 DATA 53,54,41,52,54,21,21,00,00,00,00,00,00,00,00,00
250 DATA 00,00,00,00,00,00,00,00,01,87,10,10,10,64,64,00
260 DATA 57,48,49,53,54,4C,45,00,00,00,00,00,00,00,00,00
270 DATA 00,00,54,00,34,00,97,00,00,B8,0E,0E,0E,C8,0A,0B
280 DATA 4C,4F,43,4F,4D,4F,54,49,56,45,31,00,00,00,00,00
290 DATA 00,00,00,00,00,00,FF,0F,10,83,10,07,10,5A,14,08
300 DATA 4C,4F,43,4F,4D,4F,54,49,56,45,32,00,00,00,00,00
310 DATA 00,00,00,00,00,00,FF,0F,0C,83,10,07,10,5A,08,08
320 DATA 4C,4F,43,4F,4D,4F,54,49,56,45,33,00,00,00,00,00
330 DATA 00,00,00,00,00,00,FF,0F,08,83,10,17,10,5A,04,08
340 DATA 43,52,4F,53,53,49,4E,47,00,00,00,00,00,00,00,00
350 DATA 00,00,64,00,6E,00,B4,00,00,B8,10,10,10,5A,08,08
360 DATA 48,45,4C,49,43,4F,50,54,45,52,31,00,00,00,00,00
370 DATA 00,00,00,00,00,00,18,00,16,83,02,02,10,5A,02,0C
380 DATA 48,45,4C,49,43,4F,50,54,45,52,32,00,00,00,00,00
390 DATA 00,00,00,00,64,03,18,00,10,81,00,10,10,5A,02,0C
400 DATA 42,4F,4D,42,21,21,00,00,00,00,00,00,00,00,00,00
410 DATA 00,00,00,00,00,00,00,00,15,B7,10,00,00,64,3C,00
420 DATA 42,55,5A,5A,45,52,00,00,00,00,00,00,00,00,00,00
430 DATA 00,FF,47,00,00,00,00,00,00,B8,10,00,00,5A,00,08


1~17バイト目(偶数行すべて・奇数行1バイト目):文字列 (例:BOMB!!)
18バイト目(奇数行2バイト目):FF~最終行 00~その他
19~32バイト目(奇数行3~16バイト目):PSGデータ、レジスタ0,1,2…12,13の順、レジスタ7以外はSOUND命令と同じ

872:デフォルトの名無しさん
16/02/12 08:50:05.69 qz3mrubwg
補足。
420-430行は私が作った音。

PLAY"S8M90O6G"

と同じ音だが、PLAY命令と違い、自分で止めない限り鳴りっぱなし。
最後は DEFUSR=&H90:A=USR(0) を実行してPSGを初期化。

ついでに。このプログラムのROMイメージも作ってみた。
OpenMSX+C-BIOS、WebMSXで動作。ROM版は無限ループ・RAM8Kでも動く。

873:デフォルトの名無しさん
16/02/20 06:24:47.86 GAQ/DQUn.net
URLリンク(pickaka.ka12345.com)

874:デフォルトの名無しさん
16/02/21 10:33:15.20 zmvsu5mb.net
What is her name?

875:デフォルトの名無しさん
16/02/22 11:48:33.93 suz1nbmf.net
山本陽菜 means Hina Ymamamoto

876:DOSからSUB-ROMのBIOSを呼ぶ
16/02/23 00:42:06.64 tto5lnBWm
リストAその1(M80、Windowsのxasなどが必要)


PUBLIC CALSUB
;
CALSLT EQU 001CH
EXTROM EQU 015FH
NMI EQU 0066H ;NON-MASKABLE INTERRUPT
H.NMI EQU 0FDD6H ;HOOK FOR NMI
EXPTBL EQU 0FCC1H
;
;

877:DOSからSUB-ROMのBIOSを呼ぶ
16/02/23 00:43:35.41 tto5lnBWm
リストAその2


CALSUB:
EXX ;SAVE ARGUMENT REGISTERS OVER SETUP
EX AF,AF'
LD HL,EXTROM
PUSH HL
LD HL,0C300H ;JP XXXX,NOP
PUSH HL
PUSH IX ;SUB-ROM ENTRY
LD HL,021DDH ;LD IX,XXXX
PUSH HL
LD HL,03333H ;INC SP,INC SP
PUSH HL
LD HL,0
ADD HL,SP
LD A,0C3H
LD (H.NMI),A
LD (H.NMI+1),HL
EX AF,AF'
EXX

878:DOSからSUB-ROMのBIOSを呼ぶ
16/02/23 00:49:10.29 tto5lnBWm
リストAその3(リストAはここまで)


;
LD HL,10 ;THROW AWAY THE INTERFACE ROUTINE
ADD HL,SP
LD SP,HL
RET
;
END


以上、MSX Datapackのサンプルプログラムより。

「テクニカルガイドブック」でもSUB-ROMのBIOSを呼ぶのは非常に面倒だ、と書かれていたが……サンプルプログラムはスタック上に呼び出しルーチンを置くという方法が。

879:DOSからSUB-ROMのBIOSを呼ぶ
16/02/23 00:54:09.64 tto5lnBWm
このルーチンを使ったDOS上のプログラム。

SCREEN6にする(SUB)→BEEP(SUB)→キー入力待ち(MAIN)→テキストモードに戻す(MAIN)→BEEP(SUB)→終了


リストBその1


EXTRN CALSUB
;
CHGMOD EQU 00D1H ;SUBROM-CHANGE SCREEN
CHGET EQU 009FH ;MAIN-KEYIN
TOTEXT EQU 00D2H ;MAIN-TEXT MODE
BEEP EQU 017DH ;SUBROM-BEEP
;
CALSLT EQU 001CH ;MAINROM-INTERSLOT CALL
EXPTBL EQU 0FCC1H ;MAINROM-SLOT

880:DOSからSUB-ROMのBIOSを呼ぶ
16/02/23 00:55:57.50 tto5lnBWm
リストBその2


;
LD A,6
LD IX,CHGMOD
CALL CALSUB
;
LD IX,BEEP
CALL CALSUB
;
LD IX,CHGET
LD IY,(EXPTBL-1)
CALL CALSLT
;
LD IX,TOTEXT
LD IY,(EXPTBL-1)
CALL CALSLT
;
LD IX,BEEP
CALL CALSUB
;
RET
;
END

881:DOSからSUB-ROMのBIOSを呼ぶ
16/02/23 01:12:02.76 tto5lnBWm
実行ファイル(????.com)をダンプリストにしたもの。
Windowsのバイナリエディタで入力→????.comでセーブ→MSXに転送。


0100: 3E 06 DD 21 D1 00 CD 2E 01 DD 21 7D 01 CD 2E 01
0110: DD 21 9F 00 FD 2A C0 FC CD 1C 00 DD 21 D2 00 FD
0120: 2A C0 FC CD 1C 00 DD 21 7D 01 CD 2E 01 C9 D9 08
0130: 21 5F 01 E5 21 00 C3 E5 DD E5 21 DD 21 E5 21 33
0140: 33 E5 21 00 00 39 3E C3 32 D6 FD 22 D7 FD 08 D9
0150: DD 21 66 00 FD 2A C0 FC CD 1C 00 FB 21 0A 00 39
0160: F9 C9


機械語の初心者には、M80やXasは使いこなせない。
(99BasicでHEX→バイナリ変換は作ったが)

BASIC用の機械語プログラムは、PC用はZASM、
MSX用は永久保存版1の付録にある「MSX-DOSスーパーハンドブック」のアセンブラで作ったほうが簡単だ。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch