プチコンはじめました。

プチコンはじめました。またすぐ飽きるかも。。

プチコン

[ リスト | 詳細 ]

記事検索
検索

全2ページ

[1] [2]

[ 次のページ ]

こんばんわ〜

というわけで、また飽きてしまったかと思われたかもしれませんが、一回あきかけましたがまたやり始めました!えぇ〜っと前回は2ヶ月以上前でしたかね。。だいぶ忘れていますが、次のようにしました。

以下のようにグラフィック画面を初期化します。

ACLS
GPAGE 0,0,0
GPAGE 1,1,1
VISIBLE 1,1,0,0,0,1
PNLTYPE "OFF"
SYSPEEP=FALSE

①GRP1 へデータを書き込む
GPAGE 1
FOR GX=0 TO 255
 FOR GY=0 TO 191
  GPSET GX,GY,GX
 NEXT
NEXT

②GRP1 をセーブする
SAVE "GRP1:KTAT01"

この状態で、ACLSをするなり、電源切るなりして画面を消します。
次に次のようにやってみます。
③GRP1へデータをロードする
LOAD "GRP1:KTAT01",FALSE

④GRP1からGRP0へデータを1ドットずつコピーする
FOR GX=0 TO 255
 FOR GY=0 to 191
  GPAGE 1
  C=GSPOIT(GX,GY)
  GPAGE 0
  GPSET GX,GY,C
 NEXT
NEXT

いまさらですがGPAGE 1 が下画面、GPAGE0が上画面です。
それぞれ、以下の命令でGPAGE 0 はGRP0を表示および書き込みにする、
GPAGE 1 はGRP1を表示および書き込み対象にするという設定にしています。
GPAGE 0,0,0
GPAGE 1,1,1

書き込みと表示を異なるところにしておけば書き込みの様子が見えなくなります。

ちょっと見ずらいですが、上画面にした画面から読み出した情報を書き込んでいます。

イメージ 1

ファイルからGRPへ読み込むのは一瞬でとまったりしないです。ダイアログも表示されないので、都合がいいかもしれません。点を一つ一つ読み出したり書いたりするのはそれなり二時間かかりますね。

256x192はなんか記憶にあるなと思って、ブログなどを検索したら、ベーシックマスターやPC6001などもこの解像度みたいな。。。

私がパソコン初めて触ったのは日立S1(ベーシックマスターの後継ですね)です。もうちょっと解像度は良くて、320x200とか、640x400とかが出力できていましたね。
スプライトのかわりにPCGというのがついていました。広大なメモリ空間1Mバイト!を売りにしていましたが、今となってはワードの文書すらロードできないっす。




データのロードと保存について考えていました。
起動時はデフォルトでGRP0とGRP1を書き込みと表示大正に使っているようなので、GRP2とGRP3が自由に使えそうです。GRP3にデータを読み込みとGRP3からの書き込みについて整理していました。

GRP3を使うこととして、ファイル名は"KTAT01"とすることとします。

起動時はLOAD。LOADの時は確認画面が出て、ぴ〜ひょろひょろ〜という音がしてしまうのがいやなので、次のようにして音と画面を消します。

LOAD "GRP3:KTAT01",FALSE

ところが保存の時はFALSEというオプションが使えません。なんでも、他のソフトが間違えて書き込んでしまうとまずいからとか。。

保存の時はせめてぴ〜ひょうろよろ〜という音を出さないようにして我慢しますか。

こんな感じです。

SYSBEEP=FALSE
SAVE "GRP3:KTAT01"
SYSBEEP=TRUE

FALSEのままにしておくと、キーボードのクリック音なども出なくなってしまうそうです。

あ、実際に正しく読み書きしできたか試していません。
ちょっとまたあとで試して見ます。



こんにちは〜ささきです。

多分他の言語では

printf("%-4d\n",NUM);

みたいにすると4桁で右側によって表示されたような気がするのですが、BASICではどうやればいいんでしょう?
今日マニュアルをにらめっこしていたのですが、どうしても見つからず。。にらめっこといってもそれほど長くないですが。。。

結局こんな感じにしました。

S$=STR$(NUM)
S$="000"+S$
S$=RIGHT$(S$,4)

上のようにすると次のような結果になりますか?
NUMが4桁以上だとだめです。

NUMが1ならば0001
NUMが16ならば0016
NUMが128ならば0128
NUMが1024ならば1024

という感じになります。
他にいい方法あるかな?


先日、プチコンのグラフィック画面が256x200ドットといった内容の書き込みをしましたがそれは間違いです。ただしくは256x192ドットです。座標で表すとXが0〜255、Yが0〜192です。

なぜ200と思ったか良くわかりませんが、冷静に考えてみれば200はコンピュータにとっては気持ちの悪い数字ですよね。メモリだって200Gってないですものね。

というわけで、256x192=49152バイト48kバイトです。計算したときにいい値にならなかったんだから気づけ寄って感じですね。すみません。適当なことを書いてしまって。。。

それはおいておいて、グラフィックを記憶領域として使うという話です。

こんなのを考えてみました。
した画面にドットを敷き詰める。
下画面の左上から順番に1ドットを読み込んで、上画面に1ドット書き込む
普通にGRPのコピーをすればいいんじゃないかといわれればそれまでですが。。

ただこれだけですが、こんな感じで。。

イメージ 1


はじめはした画面にグラフィックが表示されなくて困りました。
下画面にデータを描いているのは書いているようなのですが、表示されていないようです。
GPAGE 1.1.1 (した画面は1番ページを描画にも表示にも使う)にしても表示されず、だいぶ悩んだのですが、ViSIBLE ,1,,,,1 としtパネルを表示状態にしてさらにPNLTYPE "OFF" でパネルをOFFにする必要があるようです。

こちらのサイトがすごく参考になります。

これで、以下のようにするとある程度大きなデータが扱えそうです。

起動時
・グラフィックの未使用領域2を描画領域に指定する
・GRPファイルをロードする
使っている間
・グラフィックのデータを読み書きする
終了時
・保存する。。
あれ、グラフィックのページの指定できますかね?
マニュアルを今見たところGRP2とかすればよさそうです。

あとでやって見ます。

プログラムを書き始めて気がついたのですが、SDカードとかあるのでたっぷりファイルに書き込めるのかと思ったらそういうことできないようになっているのですね。データの読み書きはプチコンの領域のあいているところみたいです。

マニュアルを見ているとデータ保存用にはMEMという領域しか使えませんとのこと。領域というか変数が256バイトまでだから?最近のコンピュータはメモリもたくさんあるし、あまり考えないですよね。

ある程度大きいデータの読み書きをするならばグラフィック領域を使うとできるようです。
↓こちら参考。
読み込みや保存はグラフィック画面一枚分を扱うことになります。

プチコンのグラフィック画面、1画面分で256x200バイトです。
私も良くわかっていないのですが、プチコンはグラフィック画面を4画面持っていて、表示はそのうち2画面なので、一瞬で書き換えとか望まなければ、2枚分は保存領域に使えるかもしれません。256x200x2バイト 100キロバイトくらいですか?おぉ・・・

4画面はおそらく表示は2画面で、裏画面へ書き込んでVSYNCで同期して切り替えるとちらつかないといった使い方するかな。。


全2ページ

[1] [2]

[ 次のページ ]


よしもとブログランキング

もっと見る

プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事