10977:
Re^3: Google IME はVZでは使いにくい !?
投稿者:
konno 2023/12/11(月) 23:00
10974 番 めざら さんへのコメント
> どうやら,うちの環境だけのようですね。
VTDOS+CKWV 環境では何とか使えるようですが、素のVTDOS では問題ありでした。
VZ編集画面の最下行のファンクション表示
ファイル 窓換 文換 窓割 記憶 検索 置換 カット インサート help゙ ページ タグ
これが、Google IME を入れたら、サジェストなんたらとか
Google 日本語入力インジケータウインドウ 置換 カット インサート help゙ ページ タグ
このような表示が張り付いて消えません。(>_<)
サジェストなんたらは、設定で無効にしたら予測変換が出来なくなるようだし。
MS-DOS Player でも同じ状態だったので、これは無理です。(>_<)
切り替えて使おうかと思いましたが、ウザいのでアンインストールしちゃおうかしら。
Windows IME(のATOKモード)に慣れたのもあり、こちらの方が使いやすいと感じました。(^^;
- No.10977 - [コメント元:10974] [リストへもどる ] pre
10976:
Re^2: STIME.EXE 12月08日版
投稿者:
konno 2023/12/11(月) 20:56
10975 番 としき さんへのコメント
> ところで、年の瀬になったら、12月8日版がリリースされるのでしょうか。
ああ! 日付を間違えていて気が付きませんでした。
気づかせてくださってありがとうございます。m(__)m
ココログの記事のタイトルと内容の日付を間違えていたのを訂正しました。
掲示板のタイトルも訂正しときます。(^^;
> この状態からファンクションの1〜3を押してカレンダーを表示させると、一応
> カレンダーは表示します。が、その下側に「[Enter]キーを押してください。」と
> 表示され、その表示に従ってEnterを押すと、そこでプログラムが終了してしまい
> ました。
これは環境変数 NCPATHを通していない場合のエラー処理が出来ていないようですね。
修正します。m(__)m
- No.10976 - [コメント元:10975] [リストへもどる ] soft
10975:
Re: STIME.EXE 12月08日版
投稿者:
としき 2023/12/11(月) 16:28
参照先:http://toshiki.la.coocan.jp/
10971 番 konno さんへのコメント コメント数 1
> STIME.EXE 12月28日版をアップしました。
会社の環境だったので、あまり時間がとれず、状況が詰め切れていないので、あまり
参考にはならないかもしれませんが、とりあえずのご報告。
DOSVAXは、今年の7月のバージョンです。
会社なので、Vzも大昔に持ち込んだ高橋版をそのまま使っています。
だからなのか、それとも単に設定をつめていないからなのか、Vzは常駐使用できて
いません。非常駐なら、それなりにきちんと動いてくれているというか、少なくとも
不具合は認識していません。
この環境で非常駐VzのコマンドラインからSTIMEを起動すると、最初は普通に時計を
表示して、特に問題なく動いています。
この状態からファンクションの1〜3を押してカレンダーを表示させると、一応
カレンダーは表示します。が、その下側に「[Enter]キーを押してください。」と
表示され、その表示に従ってEnterを押すと、そこでプログラムが終了してしまい
ました。
ま、こんなこともありました、ということで。
ところで、年の瀬になったら、12月8日版がリリースされるのでしょうか。
- No.10975 - [コメント元:10971] [リストへもどる ] soft
10974:
Re^2: ある現象
投稿者:
めざら 2023/12/10(日) 21:55
参照先:http://mezala.la.coocan.jp/
10973 番 konno さんへのコメント コメント数 1
わざわざインストールしての確認ありがとうございます。
どうやら,うちの環境だけのようですね。
突然の発現なのでよくわからないのですが,ともかく少し様子を見てみます。
- No.10974 - [コメント元:10973] [リストへもどる ] soft
10973:
Re: ある現象
投稿者:
konno 2023/12/10(日) 21:29
10972 番 めざら さんへのコメント コメント数 1
> ■ VTDOS+CKWV 環境で Google IME を起動すると落ちる
私は Google IME を使っていないので、インストールしてみました。
設定はすべてデフォルトですが、変換はATOKモードにしました。(^^;
VTDOS155+CKWV11 では、メニュー枠がチラチラと瞬いて見えないほかは普通に使えるようです。
VTDOS155+CKWV12 では、メニュー枠がチラチラしますが見えてはいて、普通に使えるようです。
この辺もCKWVの更新理由なのかも。というか、Google IME を使うには CKWV12 が必須ですね。(^^;
どちらもVZ窓が出ている状態で Google IME をインストールしました
VZは、k07v6k 常駐です。
> ・[変換]キーに割り当てた IME 起動キーを押したら即座に VZ が終了した。
キー割当はなにか別のソフトを使ったのでしょうか。
もしかしたらこのへんが関係している可能性も考えられるので。
って、あれ? 普通に[変換]キーで漢字ON/OFFできるんですね。(^^;
> ・以下のマクロで IME を起動しても,やはり即座に終了。
> 1 @B "feponoff" &j(0) &m("OFF") (mg.-9)??{ &j(10) &m("ON") }
当方では問題なく起動します。
> ・VZ を終了させたのちの DOSプロンプトでも同様に落ちる。
これも問題ないですね。
この文章はVZで書いています。
> DOSVAXJ3 (JP23707) では不具合は再現しなかった。
念のため DOSVAXJ3 でも試してみましたが、問題ないようです。
ここからは DOSVAXJ3 のVZで書いています。
> ∴ VTDOS+CKWV 環境で Google IME を使用した場合の現象と考えられる。
めざらさんの環境では問題が出ているんですね、何が原因かわからないですね。
- No.10973 - [コメント元:10972] [リストへもどる ] soft
10972:
ある現象
投稿者:
めざら 2023/12/10(日) 13:29
参照先:http://mezala.la.coocan.jp/
コメント数 1
■ VTDOS+CKWV 環境で Google IME を起動すると落ちる
気が付いたのは昨日。
・[変換]キーに割り当てた IME 起動キーを押したら即座に VZ が終了した。
・一旦,Windows(10) を再起動してみたが,状況は変わらない。
・[変換]だけでなく,ALT+[半/全|漢字] または [半/全|漢字] でも同様。
・以下のマクロで IME を起動しても,やはり即座に終了。
1 @B "feponoff" &j(0) &m("OFF") (mg.-9)??{ &j(10) &m("ON") }
・VZ を終了させたのちの DOSプロンプトでも同様に落ちる。
Google IME を Microsoft IME に変更すると,いずれも落ちなくなった。
DOSVAXJ3 (JP23707) では不具合は再現しなかった。
∴ VTDOS+CKWV 環境で Google IME を使用した場合の現象と考えられる。
皆さんの環境では,同様の現象は見られませんか?
- No.10972 - [リストへもどる ] soft
10971:
STIME.EXE 12月08日版
投稿者:
konno 2023/12/08(金) 02:31
10933 番 konno さんへのコメント コメント数 1
STIME.EXE 12月08日版をアップしました。
DOSVAXJ3 の VGAで動くアナログ時計とカレンダのアクセサリです。
NCPATH= でデータファイルの置き場所を指定してください。末尾に "\" が無ければ追加します。
DOSVAXJ3 を起動したら、chev jp でVGAモードにして、STIME.EXE を起動してください。
MS-DOS Player では、chej jp でVGAモードにします。文字のデジタル時計とカレンダのみ表示します。
VTDOS では動作しません。
画像は
http://tamaneko2.cocolog-nifty.com/vz2/
更新履歴
231208 環境変数 NCPATH でデータファイルの置き場所を指定。指定無しならカレント
春分、秋分の日を自動計算
デジタル時計とカレンダ大の文字を2バイト文字に。
[↑↓]キーで前年・次年 [←→]キーで前月・次月のカレンダーを表示
これでカレンダマクロに対抗できるでしょう(笑)
[←→]キーで前月・次月のカレンダーを連続で何年分もやるとエラーになります。
もしかしたらループのつじつまが合っていないのかも。
バグ入りなので、ご使用は自己責任でお願いします。
自作、改作アプリの放置部屋に置いてあります。
春分、秋分の日を自動計算する計算式は ネットから拾いました。
> Excelでこれらの日付を求めるには、以下のようにDATE関数とINT関数を数式に組み合わせます。
春分の日
=INT(20.8431+0.242194*(年-1980))-INT((年-1980)/4)
秋分の日
=INT(23.2488+0.242194*(年-1980))-INT((年-1980)/4)
この式がそのまま使えました。ありがたいです。
追記
記事のタイトルと内容の日付を間違えていたのを訂正しました。
m(__)m
- No.10971 - [コメント元:10933] [リストへもどる ] pre
10970:
Re^8: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
konno 2023/12/05(火) 23:11
10969 番 としき さんへのコメント
> うちの、1985年ごろのベーマガに、その手の記事がありました。
> ただ、多くの機種を対象としていた関係で、1機種あたりの分量はたいしたことは
> ありませんね。
もしかしたら私もその本を読んだのかもしれませんね。
> だから
> > 元々はTBASIC(7) です。
> TBASIC(7)に、この構文があるということも載っていないし。
TBASIC(7)に、この構文はありません。時計アクセサリプログラムのルーツという意味で書いていました。
$DYNAMIC は、TBASICのコンパイラ版の構文だったと思います。Turbo BASIC ではどうだか確認できていません。
> コンパイル可能な処理系でコマンドライン引数を取得できないって、ありえないと
> 思うのですが、これはちょっと私が固定観念にとらわれすぎているかも。
コマンドライン引数を取得する関数はあります。
111 FILE$=COMMAND$
ただ、command(0) のようにコマンドラインのゼロ番目は取得できないようなので。
マニュアルが見つかるまでは色々試してみます。
- No.10970 - [コメント元:10969] [リストへもどる ] soft
10969:
Re^7: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
としき 2023/12/05(火) 14:03
参照先:http://toshiki.la.coocan.jp/
10968 番 konno さんへのコメント コメント数 1
> 当時、「各種BASICの違い」みたいな記事があって、参考に成りました。
うちの、1985年ごろのベーマガに、その手の記事がありました。
ただ、多くの機種を対象としていた関係で、1機種あたりの分量はたいしたことは
ありませんね。だから
> 元々はTBASIC(7) です。
TBASIC(7)に、この構文があるということも載っていないし。
> COMMAND という関数はTURBO BASIC には無いようです。
> 類似の関数もわからないのでちょっとできなそうですね。
Turbo Pascalだと、予約語としてParamStr。
C言語だと、デフォルトでargvとargc。ただしこれは予約語ではなく、ただの慣例。
とはいえ、正当な理由なくこの慣例を破ると、各方面からけちょんけちょん。
最近のVisual BasicというかVB.NETではCmdArgsだけど、これが予約語か慣例かは
わからない。
このあたりのキーワードでドキュメントを検索するくらいかなぁ。
コンパイル可能な処理系でコマンドライン引数を取得できないって、ありえないと
思うのですが、これはちょっと私が固定観念にとらわれすぎているかも。
- No.10969 - [コメント元:10968] [リストへもどる ] soft
10968:
Re^6: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
konno 2023/12/05(火) 02:04
10967 番 としき さんへのコメント コメント数 1
書きかけの返信をうっかりセーブし忘れて消してしまいました。(>_<) うう、、
> N88-BASICからいきなりこの$DYNAMIC構文のあるBASICに触れたら、そんな比ではない
> ほどの違和感を感じまくったことでしょう。
私もN88-BASICからTBASICに移植したときは、違いに戸惑いましたね。
当時、「各種BASICの違い」みたいな記事があって、参考に成りました。どこ行ったかなぁ。
> ところで、この構文が使われているということからの推測すると、元々のコードは
> QuickBASICで書かれていたということでしょうか。
元々はTBASIC(7) です。それからTBASIC(16) → コンパイラ版 → TURBO BASIC ですね。
MS系のBASICだから構文がほぼ同じなのでしょう。
> そして、REMは必須であったと。
ですね。メタコマンドみたいなものでしょうか。
> FreeBASICのサイトを検索したところ、この処理系だと、COMMAND(0)という関数で
> 実行ファイル名が取得できるようです。ただ、フルパスが取得できるかは、私には
> よくわかりませんでした。
COMMAND という関数はTURBO BASIC には無いようです。
類似の関数もわからないのでちょっとできなそうですね。
- No.10968 - [コメント元:10967] [リストへもどる ] soft
10967:
Re^5: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
としき 2023/12/04(月) 12:20
参照先:http://toshiki.la.coocan.jp/
10966 番 konno さんへのコメント コメント数 1
> FreeBASIC MetaDynamic
> https://makoto-watanabe.main.jp/freebasic/PgMetaDynamic.html#start
> このページの解説が近いような気がします。
なるほど、理解できました。
N-BASICとかN88-BASICでは、DIMで配列宣言をしないで配列を使うと、デフォルトで
配列の添え字は10まで使えたはず。OPTION BASEで添え字の0が使えるかどうかを決定
するという、あまり使われていない機能もありますが。
だけど、これを宣言しておけば、デフォルトで11以降の添え字が使えるということの
ようですね。
ただ、N88-BASICの場合、DIMで配列宣言をしない配列を使うと、例えば要素数が3個
しか必要ない配列でも10個分の要素のメモリが確保されてしまい、メモリが無駄に
なるから必ず配列宣言をしましょう、みたいな事が言われていました。当然、大きな
配列が必要なときは配列宣言は必須でしたし、結論としては、いついかなる場合も
配列宣言をしましょう、みたいな話になっていたように記憶しています。
そういう環境に慣れていたので、AWKやPerlのような、動的に配列がみょ〜んと確保
されるような処理系に始めて触れたときには違和感が強かったものです。もし私が
N88-BASICからいきなりこの$DYNAMIC構文のあるBASICに触れたら、そんな比ではない
ほどの違和感を感じまくったことでしょう。
ところで、この構文が使われているということからの推測すると、元々のコードは
QuickBASICで書かれていたということでしょうか。
そして、REMは必須であったと。
> なるほど、PEEK関数でメモリは読めるかもしれないので、チャレンジしてみます。
FreeBASICのサイトを検索したところ、この処理系だと、COMMAND(0)という関数で
実行ファイル名が取得できるようです。ただ、フルパスが取得できるかは、私には
よくわかりませんでした。
また、このページのQuickBASICとの違いの注記で、QBは引数をとらないとある。
ということは、TIME$で時刻の全体が取得できるように、COMMANDでコマンドライン
の引数全体が取得できるようになっているらしい。
ターボBASICがどうなっているかわかりませんが、QB同様であった場合、例えば空白
の入ったフォルダから起動したようなときに、実行ファイルのパスの取得は難しく
なるかもしれない。
- No.10967 - [コメント元:10966] [リストへもどる ] soft
10966:
Re^4: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
konno 2023/12/03(日) 21:10
10965 番 としき さんへのコメント コメント数 1
> メールは受け取りました。
> が、受け取っただけで、まだ中身はぜんぜん見ていません。
私も見れていないのでお手すきの時にでもお願いします。m(__)m
> 自動でウィルスチェックをしてくれない、という部分をどう捉えるか。
> konnoさんを信用できる・信用している人ならLZHでもダウンしてくれると思います。
> が、konnoさんをよく知らない赤の他人ならどうするか、という点が疑問。
そうですね、次からはなるべく ZIP にするようにします。
> > 50 $DYNAMIC
> REMがついていたので素通りしていました。
> これって、REMがなければ、どういうことをするコマンドなんですか?
マニュアルが腐海の底に沈んでしまっているので、NETで検索してみました。
FreeBASIC MetaDynamic
https://makoto-watanabe.main.jp/freebasic/PgMetaDynamic.html#start
このページの解説が近いような気がします。
> 配列を割り当てる方法を変える、メタコマンド
>
> 構文:
> '$Dynamic
> または
> rem $Dynamic
>
> 記述:
> '$Dynamic は、以降に宣言する全ての配列が可変長である、と指定する、メタコマンドです。配列が、添字数が定数指定で宣言されていても、そうでなくてもです。
> この指定は、モジュールで、'$Dynamic を使ったそれ以降の部分に対して有効です。$Static を使って、'$Dynamic 指定を無効にすることができます。
うーむ、REM は必要だったみたいですね。(^^;
多分、エディタで編集領域を拡大するために使ったのだと思いますが、今では覚えていません。(>_<)
なんせ、インタプリタ時代は、3万文字程度が限界で、ガベージコレクションで止まっていたので。(>_<)
コンパイラになっても4万文字程度だったかもですが。(^^;
> CとかPascalなんかでは、コマンドラインのゼロ番目が実行ファイルのフルパス名、
> みたいなことになっていたような気がするので、コマンドラインの取り出し方法を
> 調べてみるのがいいかも。
なるほど、PEEK関数でメモリは読めるかもしれないので、チャレンジしてみます。
- No.10966 - [コメント元:10965] [リストへもどる ] soft
10965:
Re^3: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
としき 2023/12/03(日) 01:21
参照先:http://toshiki.la.coocan.jp/
10963 番 konno さんへのコメント コメント数 1
メールは受け取りました。
が、受け取っただけで、まだ中身はぜんぜん見ていません。
> 今時DOSを使うもの好きは、LZHに馴染んでいると思ったのですが、
その点はまったく同感なのですが
> やっぱりZIPがいいのかなぁ。(^^;
自動でウィルスチェックをしてくれない、という部分をどう捉えるか。
konnoさんを信用できる・信用している人ならLZHでもダウンしてくれると思います。
が、konnoさんをよく知らない赤の他人ならどうするか、という点が疑問。
> ボーランドのターボBASIC です。すぐに消えたので、幻のコンパイラかも。(^^;
ありましたね。
この処理系は、私も触ったことがありません。
> 50 $DYNAMIC
> これが、東芝BASICのコンパイラ版固有みたい
REMがついていたので素通りしていました。
これって、REMがなければ、どういうことをするコマンドなんですか?
> 実行ファイルと同じフォルダから自動的に設定ファイルを読めればいいなと思う
なんかありそうですけどね。
CとかPascalなんかでは、コマンドラインのゼロ番目が実行ファイルのフルパス名、
みたいなことになっていたような気がするので、コマンドラインの取り出し方法を
調べてみるのがいいかも。
- No.10965 - [コメント元:10963] [リストへもどる ] soft
10964:
Re^3: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
konno 2023/12/02(土) 00:04
10962 番 としき さんへのコメント
> #10961を書き込むことによって、#10941あたりからの乱れ方が大幅に改善している。
> ツリー最後の#10955前後はまだ乱れているけど、乱れ方が変化している。
> この辺、コードを追いかける際の手がかりになるかも。
なるほど、見てみますね。
でも今まで何度も見ているのにわからなかったので、やっぱりとしきさんにも見てもらおうかなぁ。
# 記事閲覧t #
のルーチンだけ切り出してメールで送ります。
宜しくお願いします。
- No.10964 - [コメント元:10962] [リストへもどる ] soft
10963:
Re^2: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
konno 2023/12/01(金) 23:24
10961 番 としき さんへのコメント コメント数 1
> とりあえず、command.comで動かしたら、DOS窓状態で起動したにもかかわらず自動
> で全画面に遷移して、きちんとアナログ時計が動きました。
XPのDOS窓全画面で動きましたか。
元々Win95ノートPCの小さい画面で使うため、全画面にして使っていたのです。
> ALT+RETで窓状態にすると、グラフィック関係は全滅ですね。時計の針もそうだし、
> カレンダーの罫線だとか時計の枠だとか。
> 「VGAで動く」とうたっているソフトが動かないので、窓状態はやっぱりちょっと
> 本当のVGAとは違うみたい。
ターボBASICは古いので、VGA対応してるかどうか。VGAでも何とか動くという感じです。
グラフィックモードは、chej 12 相当です。
DOS窓で chej 12 と打つと、全画面になると思います。
Win98MEのリブレットで確認してみました。
DOS窓で起動すると一瞬全画面になりますが、すぐにDOS窓に戻ります。
小さなデジタル時計が表示されているだけの状態ですね。
ここで、ALT+RET すると全画面になりグラフィックモードで動作しますね。
最新の版はデジタル時計を全角表示して、全画面では毎秒カウントします。
ところがDOS窓では、2秒ごとに表示しますね。
DOS窓では疑似マルチタスクが優先するため描画処理が追い付かないのかも。
> 最近のアンチウィルスソフトはLZH形式を正しくチェックできないということで、
> 最近では一般向けに公開されるファイルにはあまり使われなくなっています。
> 次回からはZIP形式の使用がお勧め。
なるほど、検討してみます。
> もちろん、赤の他人にはなるべく使ってほしくない、という希望があるならLZHの
> ほうがいいかもしれません。
今時DOSを使うもの好きは、LZHに馴染んでいると思ったのですが、やっぱりZIPがいいのかなぁ。(^^;
> ざっくり読んで、こんなものを処理できる処理系があるんだ、と驚きました。
> これ、何でコンパイルしたんでしょうか。QBASIC?
ボーランドのターボBASIC です。すぐに消えたので、幻のコンパイラかも。(^^;
> いや、昔ながらの行番号つきの大文字の部分と、行番号なしの小文字の部分が混在
> しているものを処理できるなんて、本当、びっくりしました。
やってみたらできたので、そういうものかと思っていました。
大文字と小文字を区別する処理系もあるようですね。移植するときには直さなくては。(^^;
> 冒頭の「$INCLUDE」というおまじないは知らない。
> これは処理系固有のおまじないなんだろうなぁ。
これは、ターボBASICのコンパイラ版固有みたいです。
50 $DYNAMIC
これが、東芝BASICのコンパイラ版固有みたいですが、元がMS系なので、MSも同じかも。
> 一応、環境変数の取得関数はあるようなので、この辺を工夫すればデータファイルの
> 置き場所も指定できそうですね。
環境変数を設定すればできそうですが、ちょっと面倒ですよね。
実行ファイルと同じフォルダから自動的に設定ファイルを読めればいいなと思うんですが。
とりあえずは環境変数を設定するようにしてみますか。
> あと、ON ERROR GOTOが頻出しますが、飛び先をきちんと変えている。
> すなわち、有効利用している。こんなコードはじめてみた。すごい!
> 私、エラー処理なんてひとつしかないようなコードしか書いたことがないもので。
これ、3か所に分かれているのは、3つのプログラムを合体させたからです。(^^;
統合化していない超手抜きの悪い例ですね。(^^;
> このツリーも、返信フォームの上の部分だけ、ツリー表示が乱れている。
> 何とかしてほしいというか、何とかできないのならコードをさらしてほしい。
検討します。m(__)m
- No.10963 - [コメント元:10961] [リストへもどる ] soft
10962:
Re^2: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
としき 2023/12/01(金) 11:25
参照先:http://toshiki.la.coocan.jp/
10961 番 としき さんへのコメント コメント数 1
> このツリーも、返信フォームの上の部分だけ、ツリー表示が乱れている。
> 何とかしてほしいというか、何とかできないのならコードをさらしてほしい。
と、書いたところですが。
#10961を書き込んで、今、読み直してみると、ツリーの乱れ方が変化している。
#10961を書き込む前。(タイトル部はとしきによって省略しています)
- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
▼ 10933.VGAで動くアナログ時計とカレンダのアクセサリ
┣10934.Re: VGAで動くアナログ時計とカレンダのアク
┗10935.Re^2: VGAで動くアナログ時計とカレンダのア
┃ ┗10936.Re^3: VGAで動くアナログ時計とカレンダ
┃ ┣10938.Re^4: VGAで動くアナログ時計とカレン
┃ ┗10939.Re^5: VGAで動くアナログ時計とカレン
┃ ┃ ┗10940.Re^6: VGAで動くアナログ時計とカ
┃ ┃ ┣10941.Re^7: VGAで動くアナログ時計と
┃ ┃ ┣10942.Re^7: VGAで動くアナログ時計と
┃ ┃ ┃┣10944.BASIC道への入り口 - konno 2
┃ ┃ ┃┣10948.Re: BASIC道への入り口 - とし
┃ ┃ ┃ ┗10952.Re^2: BASIC道への入り口 -
┃ ┃ ┗10953.Re^3: BASIC道への入り口 -
┃ ┃ ┗10956.Re^4: BASIC道への入り口
┃ ┗10943.オセロ - としき 23/11/22-01:14
┃ ┗10945.Re: オセロ - konno 23/11/23-00:13
┃ ┗10947.Re^2: オセロ - としき 23/11/23-
┃ ┣10950.Re^3: オセロ - めざら 23/11/2
┃ ┣10954.Re^4: オセロ - としき 23/11/2
┃ ┃┗10957.Re^4: オセロ - konno 23/11/
┃ ┣10951.Re^3: オセロ - konno 23/11/23
┣10937.VGAで動くアナログ時計とカレンダのアクセサ
┗10946.新祝日対応のデータ形式 - konno 23/11/23-0
┗10949.曜日を算出する ツェラーの式 - konno 23/
┣10955.アナログ時計とカレンダのアクセサリ 11月24
ところが、#10961を書き込んだあと。
- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
▼ 10933.VGAで動くアナログ時計とカレンダのアクセサリ
┣10934.Re: VGAで動くアナログ時計とカレンダのアク
┃┗10935.Re^2: VGAで動くアナログ時計とカレンダの
┃ ┗10936.Re^3: VGAで動くアナログ時計とカレンダ
┃ ┣10938.Re^4: VGAで動くアナログ時計とカレン
┃ ┃┗10939.Re^5: VGAで動くアナログ時計とカレ
┃ ┃ ┗10940.Re^6: VGAで動くアナログ時計とカ
┃ ┃ ┣10941.Re^7: VGAで動くアナログ時計と
┃ ┃ ┣10942.Re^7: VGAで動くアナログ時計と
┃ ┃ ┣10944.BASIC道への入り口 - konno 23/
┃ ┃ ┗10948.Re: BASIC道への入り口 - としき
┃ ┃ ┗10952.Re^2: BASIC道への入り口 - k
┃ ┃ ┗10953.Re^3: BASIC道への入り口 -
┃ ┃ ┗10956.Re^4: BASIC道への入り口
┃ ┗10943.オセロ - としき 23/11/22-01:14
┃ ┗10945.Re: オセロ - konno 23/11/23-00:13
┃ ┗10947.Re^2: オセロ - としき 23/11/23-
┃ ┣10950.Re^3: オセロ - めざら 23/11/2
┃ ┃┣10954.Re^4: オセロ - としき 23/11
┃ ┃┗10957.Re^4: オセロ - konno 23/11/
┃ ┗10951.Re^3: オセロ - konno 23/11/23
┣10937.VGAで動くアナログ時計とカレンダのアクセサ
┣10946.新祝日対応のデータ形式 - konno 23/11/23-0
┗10949.曜日を算出する ツェラーの式 - konno 23/
┗10955.アナログ時計とカレンダのアクセサリ 11月24
┗10961.Re: アナログ時計とカレンダのアクセサリ
#10961を書き込むことによって、#10941あたりからの乱れ方が大幅に改善している。
ツリー最後の#10955前後はまだ乱れているけど、乱れ方が変化している。
この辺、コードを追いかける際の手がかりになるかも。
- No.10962 - [コメント元:10961] [リストへもどる ] soft
10961:
Re: アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
としき 2023/12/01(金) 11:12
参照先:http://toshiki.la.coocan.jp/
10955 番 konno さんへのコメント コメント数 2
実家に置きっぱなしだったVistaマシンと、自宅で時々使っているXPマシンが相次いで
壊れまして。それぞれ、それなりに使うということで修復している最中。とはいえ、
Vistaマシンのほうはまだほとんど手付かずですが。
さて、何とか動き出してきたXPマシンのほうで、気になったのでこの時計を動かして
みました。このマシン、一応VTDOSの古いバージョンも入っていたような気もします
が覚えていません。DOSVAXは入れていなかったはず。
とりあえず、command.comで動かしたら、DOS窓状態で起動したにもかかわらず自動
で全画面に遷移して、きちんとアナログ時計が動きました。
ALT+RETで窓状態にすると、グラフィック関係は全滅ですね。時計の針もそうだし、
カレンダーの罫線だとか時計の枠だとか。
「VGAで動く」とうたっているソフトが動かないので、窓状態はやっぱりちょっと
本当のVGAとは違うみたい。
気になったことがいくつか。
まず、公開時の圧縮ファイルの形式。
最近のアンチウィルスソフトはLZH形式を正しくチェックできないということで、
最近では一般向けに公開されるファイルにはあまり使われなくなっています。
ベクターがLZHでの新規の受付を停止したのは何年前だったかなぁ。
さすがに公開済みのものを再パッキングするほどのことはないと思いますが、
次回からはZIP形式の使用がお勧め。
もちろん、赤の他人にはなるべく使ってほしくない、という希望があるならLZHの
ほうがいいかもしれません。
次、ソースリストについて。
ざっくり読んで、こんなものを処理できる処理系があるんだ、と驚きました。
これ、何でコンパイルしたんでしょうか。QBASIC?
いや、昔ながらの行番号つきの大文字の部分と、行番号なしの小文字の部分が混在
しているものを処理できるなんて、本当、びっくりしました。
慣れれば、あとからパッチを当てた部分がわかりやすいのかもしれません。
でも、慣れていないもので、ちょっと違和感が大きい。
行番号なしの部分でもマルチステートメントがある。できるんだ。
冒頭の「$INCLUDE」というおまじないは知らない。
これは処理系固有のおまじないなんだろうなぁ。
一応、環境変数の取得関数はあるようなので、この辺を工夫すればデータファイルの
置き場所も指定できそうですね。
あと、ON ERROR GOTOが頻出しますが、飛び先をきちんと変えている。
すなわち、有効利用している。こんなコードはじめてみた。すごい!
私、エラー処理なんてひとつしかないようなコードしか書いたことがないもので。
最後。
前にも書いたことですが。
このツリーも、返信フォームの上の部分だけ、ツリー表示が乱れている。
何とかしてほしいというか、何とかできないのならコードをさらしてほしい。
- No.10961 - [コメント元:10955] [リストへもどる ] soft
10960:
DOSVAXJ3 備忘録 CHEV コマンド
投稿者:
konno 2023/12/01(金) 00:26
DOS6 付属の QBASIC.COM は、日本語モードでは動かないので、DOSVAXJ3 英語モードでやってみました。
chev us
Change to the US environment.
Current video mode is 03h
QBASIC.COM
日本語モードでは実行できません.
実際の表示は英語モードなので、文字化けした読めないメッセージになっています。
日本語モードにするとこの表示になっていました。
あれれ? もしかして chev us コマンドでは完全な英語モードになっていない?
chev us を実行すると以下の表示になります。chev コマンド自体は表示されません。
Change to the US environment.
Current video mode is 03h
ここで、chej でモード状態の表示をしてみると
D:\NC>CHEJ.EXE <MultiMode CHEV> ver 6.10 by Natrium.
現在 DOS/V(Normal)、日本語環境です。
現在のビデオモードは 03h です。
こう表示されました。
どうやら chev コマンドでは完全な USモードになっていないようです。
chej us を実行すると
D:\NC>CHEJ.EXE <MultiMode CHEV> ver 6.10 by Natrium.
Change to the US environment.
Current video mode is 03h.
ここで、chej でモード状態の表示をしてみると
CHEJ.EXE <MultiMode CHEV> ver 6.10 by Natrium.
This is the US environment.
Current video mode is 03h.
この状態で QBASIC.COM 実行すると、無事に動きました。
QBASIC.COM は、完全な USモードでないと動かないようです。
実行してもカーソルだけが表示されるので、謎のモードで動いているようです。
そういえば、最新の DOSVAXJ3 の更新では
> 拡張 CGA テキストモード 73h, 71h に対応しました。
とあって、試してみた過去記事が
#10927: Re: DOSVAXJ3 230919 更新 投稿者: konno 2023/09/20(水)
> モード切替を試してみると、CHEV 71 とかではモード70 になってしまって切り替え出来ない?
>
> CHEJ 71
>
> これでモード71 に切り替わりました。
> 見た目は 70 と変らないですね。(^^;
これも同じ原因かもしれないdすね。
関係あるかどうかわかりませんが、過去ログで
#6100: Re^2: DOSBOXでVZはFEP制御不可なのか 投稿者: konno 2012/12/02(日)
> > > VZ側ではまったく制御できていないようですね。
> DOSBOXは本当に日本語環境になっているのか、ふと思いついて、調べてみました。
>
> CHEJ /C で、
>
> Current CodePage is 437.
>
> と出ました。そうです。コードページは英語のままだったのです。
> これですべてのつじつまが合います。VZはDBCSのモードをチェックしているので
> 英語モードと判断してFEP制御していなかったわけですね。
> おそらくキーボードも英語のままなので制限が多いのでしょう。
2012年の古い DOSBOX ですが、モード切替に不備があるようです。
DOSVAXJ3 ではコードページはキチンと切り替え出来ているようですが、何かが足りないのでしょうか。
- No.10960 - [リストへもどる ] soft
10959:
TAGLIGHT.EXE の制限
投稿者:
konno 2023/11/29(水) 00:03
10958 番 konno さんへのコメント
TAGLIGHT.EXE 便利に使っていたんですが、最近うまく動かないことがあるようです。
調べてみたら、TAGLIGHT.PAT の容量オーバー、ワードの入れすぎだったようです。(>_<)
パターンが多すぎます
必要なバイト 1469 : 上限バイト 1280
コマンドラインにこのようなメッセージが出ていました。
今まで >NUL でメッセージを消していて気が付かなかったのでした。(>_<)
機能ごとのメモリ消費はこんな感じです。
機能 メモリ量
--------------------------------------+------
D TAGLIGHT 30
B name=" " 25
E ( ) 24
A \0\0\0\0\0/\0\0\0\0\0 \C\$ 23
B ; \C\$ 20
A \^・ 20
A ● 20
:DA, 5
DA, 4
以前世界時計用に追加したパターンが圧迫してしまったようですね。
私のPATは、アセンブラ用やC,C++コード用も追加しているので、少し整理しました。
C,C++コード用をパスカルコード用と合体させるなどして重複分を減らしました。
ついでに、TAGL.DEF や TAGL_F5.DEF に複数文字列色付け機能を改善実装しました。
[F05]:検索文字列の取得 TAGL_F5.DEF
[F06]:検索文字列の設定 TAGL.DEF
この2つのマクロに新しい形式の複数文字列色付け機能を実装しました。
そのためにPATファイルも改造しました。(^^;
新しい形式の PATファイルの構造は
1. #デフォルトのコードの下に以下の行を追加
#4#tagl_cfg #1〜4 検索文字列数 この行は数字以外変更禁止 -----
ここの行頭の "#" の次の数字の数だけ検索文字列を色付けします。
#デフォルト と、該当する拡張子の所に色付けコードが埋め込まれます。
設定数を超えたコードは自動削除されます。
デフォルトを 3 としています。(4 では長い文字列でバッファオーバーする時がある)
2. woldtime 用のコードは通常使用で削除
通常使用では、TAGLIGHT.PATをコピーした TAGL.PAT を使います。
woldtime 用のコードは通常使用では使わないので、削除することにしました。
#tagl_end ---- ##k v8 ※これより下は TAGL.PAT にコピーしない(バッファ節約)
#woldtime 用
woldtime 用コードの直前に上の1行を追加しました。この行は変更削除禁止です。
TAGLIGHT.PAT は各自で自由に変更出来ますが、私のマクロを使う場合は、上記のルールを守ってください。
- No.10959 - [コメント元:10958] [リストへもどる ] pre
10958:
TAGL + TAGL_F5 マクロ
投稿者:
konno 2023/11/29(水) 00:00
コメント数 1
taglight.exe を使用して複数の指定文字列に手軽に色付けできるマクロです。
環境変数VZDEFと実行ファイルの両フォルダにtaglight.exeとtaglight.patが必要です。
taglight.patは、tagl.def用に拡張子の後ろにカンマの追加が必要で、専用PATを同梱しています。
例
#C,C++コード用
:C,CP,H,
TAGL_F5.DEF
[F05] 検索文字列の取得 は私家版[F05]のtaglight.exe対応版です。
標準の[F05]との違いは,スペース,→で検索文字列範囲拡大出来ます。
taglight.exe を使用して複数の指定文字列に手軽に色付けできるマクロです。
環境変数VZDEFと実行ファイルの両フォルダにtaglight.exeとtaglight.patが必要です。
taglight.patは、tagl.def用に拡張子の後ろにカンマの追加が必要です。
[F06]はtagl.def で連携します。
使用変数 a,c,e,k,
TAGL.DEF
・ [F06]で起動すると、taglight.patからTAGL.PATを作成して使用します。
・ ^KT で起動すると、検索窓で検索文字列を繰り返し入力できます。(最大4回まで)
空Enterで指定終了し、tagl.patとしてセーブし、編集画面に反映させます。
上記の動作原理により、マクロ実行時は常にtagl.patの設定で動作します。
・ ^\KT でシフト起動すると、taglight.patの設定に切替になります。
・ 使用変数 a,b,c,e,k,
VZマクロの部屋にあります。
- No.10958 - [リストへもどる ] pre
10957:
Re^4: オセロ
投稿者:
konno 2023/11/25(土) 15:57
10950 番 めざら さんへのコメント
> わたしがずっと移植したいと思っているのが XLIS のモノクロ版です。
> XLIS とは Zumi氏作成の落ち物で,モノクロ版は色の代わりに形状(●▲■★◆◎)
XLIS は知りませんでしたが、モノクロ版の記号はどこかで見たような気が・・・
ん? これって、Emmettさんのさめがめに似ているような。(^^;
さめがめは何度か遊んでみましたが面白いですね。(^_^)
> (カラー版 → http://ozuma.o.oo7.jp/old_game/game/xlis/ )
覗いてみたら、98版のゲームなんですね。NP2 で動くかしら。
> もしかして,老人ホームにブチ込まれた後の楽しみになるのでは?とも思うこのごろ。
う、うーん、(^^;
# 俺たちに明日は無い、だから今日のテーマに生きるのだ! なんちて
- No.10957 - [コメント元:10950] [リストへもどる ] soft
10956:
Re^4: BASIC道への入り口
投稿者:
konno 2023/11/25(土) 15:36
10953 番 としき さんへのコメント
> 英語はやめて、6文字程度のローマ字にしましょう。
ローマ字ならいくらでも長い名前を書けますよ。(^^;
jugemujugemugogounosurikire
お。意外と良いかもしれませんね、でもなんだか恥ずかしいような。(^^;
> そして、研究の結果、たとえば、長くて意味のわかりやすい変数名を使いましょう、
> なんて話になってきたわけです。
その長い名前が覚えられないからこうなってしまったのです。(;_;)
英語は嫌いじゃぁ〜!
> この年になってから黒歴史は量産したくないし。
そんな風に思っていた時期もありました・・・
私の半生は黒(画面)歴史なので。
どうせみんな死ぬんだし、だったら恥ずかしい黒(画面)歴史を晒しちゃえ
ということで今回の企画を出したわけです。(完全後付け)
- No.10956 - [コメント元:10953] [リストへもどる ] soft
10955:
アナログ時計とカレンダのアクセサリ 11月24日版
投稿者:
konno 2023/11/24(金) 22:13
10933 番 konno さんへのコメント コメント数 1
アナログ時計とカレンダのアクセサリ 11月24日版です。
画像はココログの記事で見てください。
http://tamaneko2.cocolog-nifty.com/vz2/2023/11/post-bf98e3.html
今回の更新内容は
・新祝日法に対応したつもり。
・見栄えも多少直しました。
・カレンダー大の日付の文字を2バイト数字にして見やすく。
・キーによるカレンダーの年月変更機能追加。
・MSDOS Player でもカレンダー表示出来ます(chej jpの時)
・今回からソースも付けます。
新祝日法への対応はEMMETさんとめざらさんのマクロを参考にしました。
先人の知恵に感謝です。m(__)m
カレンダー大の日付の2バイト数字は、TBASICのころは出来ていたのです。
PRINT CDBL$(RIGHT$(STR$(I),2))
のように半角文字を2バイト文字に変換するコマンドが使えたのです。
ターボBASICは英語版なのでそんなものは無く、移植時に半角数字にしたのでした。
今回一念発起して対応しましたので、興味ある方はソースを見てください。
キーによるカレンダーの年月変更機能追加は、カレンダマクロで出来ているので
このくらいは出来ないと張り合えないなぁ、と思ったのです。(張り合ってどうする)(^^;
F11: 前月 前月のカレンダーを表示
F12: 次月 次月のカレンダーを表示
[Ctrl]+[←] 前年のカレンダーを表示
[Ctrl]+[→] 次年のカレンダーを表示
本当は [Ctrl]+[F11〜F12] で前年と次年のカレンダーを表示したかったのですが、
DOSVAXJ3 ではこのキーが(BIOSレベルで)反応しないのでしかたなくこうしました。
なお、変更前のソースを大量にコメントしているので非常に見づらいです。
TAGLIGHT.EXE をお使いの方は TAGLIGHT.PAT に
#BASIC用
:BA,
A ' \C\$
これを追加すれば非常に見やすくなります。
TAGLIGHT.PAT についてはバッファ制限があるので近々記事を書くつもりです。
自作、改作アプリの放置部屋 に置いてあります。
- No.10955 - [コメント元:10933] [リストへもどる ] pre
10954:
Re^4: オセロ
投稿者:
としき 2023/11/24(金) 20:35
参照先:http://toshiki.la.coocan.jp/
10950 番 めざら さんへのコメント
- No.10954 - [コメント元:10950] [リストへもどる ] soft
10953:
Re^3: BASIC道への入り口
投稿者:
としき 2023/11/24(金) 20:35
参照先:http://toshiki.la.coocan.jp/
10952 番 konno さんへのコメント コメント数 1
> 私って3文字以上の英語のスペルは中々覚えられないのですよ。(^^;
英語はやめて、6文字程度のローマ字にしましょう。
いきなり余談ですが。
昔の経済学って、ケインズだろうがマルクスだろうが、人間は合理的に行動する、
という前提で論理展開されていました。
でも、決してそんなことはないというか、不合理なことは結構多い。
そこで提唱されたのが行動経済学という学問。
ようは、いろいろな判断だとかお金の使い方を心理学の面から分析するものです。
そして、実はプログラム工学だとかソフトウェア工学というものにも、かなり昔から
心理学的な分析は取り入れられていて。そもそも、それらの学問は、どうすれば品質
のよい、すなわち間違えにくいプログラムを書けるか、という学問なのですが、これ
は裏を返すと、人間はどういうときに間違えるか、という、まさに心理学的な分析
から始まっているわけです。
そして、研究の結果、たとえば、長くて意味のわかりやすい変数名を使いましょう、
なんて話になってきたわけです。
ただし、これはあくまでも、一般的なプログラム作成の話。
たとえば、複数人で作る場合、とか。
一人で作る場合でも、そんなに時間をかけず、一気呵成に作り上げる場合とか。
ワンライナーあたりが該当するかな。
つまり、よく言われる「明日の自分は赤の他人」に至らないような状況の場合。
仮に、既存のプログラムを改造するぐらいなら、常に一から新しいプログラムを作る
というのであれば、過去のプログラムを見返すこともないでしょう。
ただし、繰り返しになりますが、これはあくまでも、一般的なプログラム作成の話。
このため、現在では、仮に
「俺は変数名に3文字までしか使わない」
と主張するプログラマがいたとすると、その人は暗に
「俺は一般的ではない、短い変数名でも良いプログラムを書ける天才なんだ」
と豪語しているに他ならない、というのが世間の捉えかた。
もれなく生暖かい目がついてくることでしょう。
とはいえ、中学2年生ぐらい頭が柔軟な人ならそれも可能なのかもしれません。
私はもう無理だなぁ、そんな主張はできない。頭は固いし恥ずかしいし。
この年になってから黒歴史は量産したくないし。
- No.10953 - [コメント元:10952] [リストへもどる ] soft
10952:
Re^2: BASIC道への入り口
投稿者:
konno 2023/11/23(木) 19:54
10948 番 としき さんへのコメント コメント数 1
> つまり、何が言いたいかというと、もしプログラムをリライトする機会があれば、
> 意味の分かる長い変数名を使いましょうよ、ということ。
> どっかのエディタのマクロじゃないんだから。
(^^; (^^; 耳がいた、いや、汗が。(^^;
私って3文字以上の英語のスペルは中々覚えられないのですよ。(^^;
その点 VZのマクロは記号みたいですが、だいたい2文字なので安心感が。(^^;
- No.10952 - [コメント元:10948] [リストへもどる ] soft
10951:
Re^3: オセロ
投稿者:
konno 2023/11/23(木) 19:43
10947 番 としき さんへのコメント
> > としきさんはオセロ強いですか? 私はヘタの横好きで。(^^;
>
> 中学生のころまでは、クラスで3番くらいの強さでした。
> でも、大人になったら、平均よりちょっと強いくらい、でしょうか。
それなら確実に私より強いでしょうね。(^^;
> これ、世間には優先順位のサンプルがいくらでもあったはずなので、そういうのを
> そのまま実装すればそこまで弱くはならないはず。
うーん、その当時はオセロゲームの参考書とか見ていなかったもので。(^^;
> 8ビット当時の最強は森田オセロだったはず。
> 私が対戦したのは、もしかしたらそれかもしれない。
有名だったですね、私などパーフェクト負けを食らうほどででしょう。
ところで、VZマクロでもオセロゲームがあったかと見てみました。
VZOTO.DEF v.1.20 ====> 91.9.9 糧 丞
これは98用とJ31用があり、J31で動かしてみましたが、途中で動かなくなってしまいました。
NP2の98エミュで98版も試しましたが罫線が表示しない? 結局出来ませんでした。
VZ1.57用だからでしょうか、何が悪いのかわかりません。
OTHELLO.def v2.0 ======== by 愛して癒して
これはVz Editor ver 1.6x用ですが、罫線などおかしくて動きませんでした。
過去ログを見ると、としきさんが質問されていて、YASATさんが答えてくれていました。
> 07941/08074 xxxxxxxx YASAT RE:OTHELLO ができない
> (14) 03/04/23 21:31 07938へのコメント
> 7行目
> je[-,mi[=2,ep[+,wt[,jd[-,co[4,#]
> 93行目
> (wx-1) {' '} (wy) {#m}
> このゲーム、先攻で中途完勝パターンがあります。
> なんでこの修正したんだったかなあって思っていたら、過去ログでした。
> nifty:FGALDC/MES/14/1284
おお、この修正で動きました。\(^^)/ ヤッタ-
1ゲームやって、39対25でなんとか勝ちました。(^^;
私の作ったやつより確実に強いですね。(^^;
とりあえずこのアルゴリズムで組んでみたら良さそうですね。
その先は参考書を頼るしかないのかな。
- No.10951 - [コメント元:10947] [リストへもどる ] pre
10950:
Re^3: オセロ
投稿者:
めざら 2023/11/23(木) 17:10
参照先:http://mezala.la.coocan.jp/
10947 番 としき さんへのコメント コメント数 2
森田オセロ! 懐かしいですね。
いや,懐かしいと感じるのは「森田」なのかな……森田将棋の。
ゲームの話題になると夏の虫のように吸い寄せられてしまいますね。
わたしがずっと移植したいと思っているのが XLIS のモノクロ版です。
XLIS とは Zumi氏作成の落ち物で,モノクロ版は色の代わりに形状(●▲■★◆◎)
(カラー版 → http://ozuma.o.oo7.jp/old_game/game/xlis/ )
作れるとは思うのですが,なかなかまとまった時間と気分が重なりません。
ほかに,ゲームではないですが,迷路を作成するマクロ。
BASICで示されたサンプルもあると思いますが,グラフィックスと罫線の違いもあり
なかなか手を着けられないでいます。
もしかして,老人ホームにブチ込まれた後の楽しみになるのでは?とも思うこのごろ。
- No.10950 - [コメント元:10947] [リストへもどる ] soft
10949:
曜日を算出する ツェラーの式
投稿者:
konno 2023/11/23(木) 14:38
10946 番 konno さんへのコメント
新祝日法対応のためには指定した曜日を計算して特定する必要があります。
私の頭では全く思いつきません。(;_;)
困ったときのめざら資源、探したらありました! \(^^)/ アッタ-
めざら資源>VZマクロ工房>文字列出力関連>七曜でふ−簡易版日付印字器
sitiyo.def
3: ;指定日の曜日を算出(ツェラーの式)
(m<3)?{ y--, m+=12, }
w=((y+ y/4+ y/400+ (m*13+8)/5+ 1- y/100) +d -1) %7,
なるほど、指定日の曜日を算出する、ツェラーの式というのがあるのですね。
マクロをBASICに置き換えてみました。式はほぼそのままですね。
'a1=1〜4(週)
'a2=1〜7(曜日)
ww=0
for d=1 to 31
if m<3 then y=y-1:m=m+12
w=((y+ y/4+ y/400+ (m*13+8)/5+ 1- y/100) +d -1) mod 7
if w=a2 then ww=ww+1
if ww=a1 then dd=d:goto 30612
next d
30612 return
実際に実装したルーチンも貼り付けます。
30611 '指定日の曜日を算出(ツェラーの式)
AA1=ASC(MID$(A$,4,1))-64 '1〜4(週)
AA2=ASC(MID$(A$,5,1))-64 '1〜7(曜日)
WW9=0
M9=YASM(YMAX) '該当祝日の月
Y9=YEAR '該当祝日の年
for D9=1 to 31
if M9<3 then Y9=Y9-1:M9=M9+12 'sitiyo.def
W9=((Y9+ Y9/4+ Y9/400+ (M9*13+8)/5+ 1- Y9/100) +D9 -1) MOD 7 'ツェラーの式
'W9=(Y9+ Y9/4+ Y9/400+ (M9*13+8)/5+ D9- Y9/100) MOD 7 '同等の式?
if W9<>AA2 then 30613 '曜日が一致するまで日を進める
WW9=WW9+1 '曜日が一致したら週を進める
if WW9<AA1 then 30613 '週が一致するまで進める
YASD(YMAX)=D9:goto 30614 '日が確定したらデータに入れる
30613 next D9
30614 'print co9;a$;" ";Y9;M9;AA1;AA2;W9;D9 'debug
return
コメントを書くとフローのミスにも気が付きやすいですね。(^^;
一応動くようになったのですが、何故か年を変えても今年の年で計算してしまいます。(>_<)
どうしよう・・・
続く・・・のか
- No.10949 - [コメント元:10946] [リストへもどる ] pre
10948:
Re: BASIC道への入り口
投稿者:
としき 2023/11/23(木) 14:07
参照先:http://toshiki.la.coocan.jp/
10944 番 konno さんへのコメント コメント数 1
> > あぁ、なんだってこんな、いにしえのBASICの文法解説をしているんだろう(笑)。
> BASIC地獄、いやさ、天国への道はまだまだこれからですよ。(^^;
うふふふふ〜。
では、もうちょっと文法解説。
PC-8001のN-BASICでは、変数名には2文字までしか使えませんでした。
3文字以上の変数名を使おうとした時にエラーになるのか、それとも最初の2文字
しか認識されず、3文字目が異なる変数名も同一の変数として認識されるのかは
覚えていません。
これが、同じ8ビットマシンでも、PC-8801のN88-BASICでは40文字まで使えました。
ただ、変数名を長くするとそれだけメモリを消費するというデメリットがあったため、
長い変数名は自粛される傾向がありました。
一方、PC-8001よりも古いシャープのMZ-80のBASICでの変数名の最大長はわかりません
が、当時のパソコンサンデーのテキスト(まだ持っている)を見ると、5文字程度の
変数名を使ったプログラムリストが掲載されているので、その程度の長さまでは対応
していたようです。
東芝の場合、PASOPIA7はPC-8801以降の発表だったはずなので、PASOPIA初代向けは
ともかく、16ビット対応などの後期のT-BASICなら長い変数名にも対応していると
思います。
つまり、何が言いたいかというと、もしプログラムをリライトする機会があれば、
意味の分かる長い変数名を使いましょうよ、ということ。
どっかのエディタのマクロじゃないんだから。
- No.10948 - [コメント元:10944] [リストへもどる ] soft