[HOME]  [全部表示 会議室風]  [全部表示 保存用]  [HOME]  [リストへもどる] [リストへもどる]

一括表示


  VGAで動くアナログ時計とカレンダのアクセサリ - konno 23/11/17-00:36 No.10933
 ┣ Re: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - konno 23/11/18-21:16 No.10934
 ┃ ┗ Re^2: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - 文太 23/11/18-22:01 No.10935
 ┃ ┗ Re^3: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - konno 23/11/18-23:05 No.10936
 ┃ ┃┃┣ Re^4: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - 文太 23/11/18-23:31 No.10938
 ┃ ┃┃┗ Re^5: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - konno 23/11/19-22:51 No.10939
 ┃ ┃┃ ┗ Re^6: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - 文太 23/11/20-00:31 No.10940
 ┃ ┃┃  ┣ Re^7: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - konno 23/11/21-00:41 No.10941
 ┃ ┃┃  ┗ Re^7: VGAで動くアナログ時計とカレンダのアクセサリ 差替え - としき 23/11/22-01:14 No.10942
 ┃ ┃┃  ┃ ┗ BASIC道への入り口 - konno 23/11/22-23:55 No.10944
 ┃ ┃┃  ┃ ┗ Re: BASIC道への入り口 - としき 23/11/23-14:07 No.10948
 ┃ ┃┃  ┃  ┗ Re^2: BASIC道への入り口 - konno 23/11/23-19:54 No.10952
 ┃ ┃┃  ┃   ┗ Re^3: BASIC道への入り口 - としき 23/11/24-20:35 No.10953
 ┃ ┃┃  ┃    ┗ Re^4: BASIC道への入り口 - konno 23/11/25-15:36 No.10956
 ┃ ┃ ┗ オセロ - としき 23/11/22-01:14 No.10943
 ┃ ┃ ┗ Re: オセロ - konno 23/11/23-00:13 No.10945
 ┃ ┃  ┗ Re^2: オセロ - としき 23/11/23-13:31 No.10947
 ┃ ┃   ┣ Re^3: オセロ - めざら 23/11/23-17:10 No.10950
 ┃ ┃   ┃┃┣ Re^4: オセロ - としき 23/11/24-20:35 No.10954
 ┃ ┃   ┃ ┗ Re^4: オセロ - konno 23/11/25-15:57 No.10957
 ┃ ┃   ┗ Re^3: オセロ - konno 23/11/23-19:43 No.10951
 ┣ VGAで動くアナログ時計とカレンダのアクセサリの説明書 - konno 23/11/18-23:30 No.10937
 ┣ 新祝日対応のデータ形式 - konno 23/11/23-02:38 No.10946
 ┃┃┣ 曜日を算出する ツェラーの式 - konno 23/11/23-14:38 No.10949
 ┃ ┗ Re: 新祝日対応のデータ形式 - めざら 24/02/17-13:33 No.11093
 ┃ ┗ Re^2: 新祝日対応のデータ形式 - konno 24/02/18-21:38 No.11095
 ┣ アナログ時計とカレンダのアクセサリ 11月24日版 - konno 23/11/24-22:13 No.10955
 ┃ ┗ Re: アナログ時計とカレンダのアクセサリ 11月24日版 - としき 23/12/01-11:12 No.10961
 ┃ ┣ Re^2: アナログ時計とカレンダのアクセサリ 11月24日版 - としき 23/12/01-11:25 No.10962
 ┃ ┃ ┗ Re^3: アナログ時計とカレンダのアクセサリ 11月24日版 - konno 23/12/02-00:04 No.10964
 ┃ ┗ Re^2: アナログ時計とカレンダのアクセサリ 11月24日版 - konno 23/12/01-23:24 No.10963
 ┃  ┗ Re^3: アナログ時計とカレンダのアクセサリ 11月24日版 - としき 23/12/03-01:21 No.10965
 ┃   ┗ Re^4: アナログ時計とカレンダのアクセサリ 11月24日版 - konno 23/12/03-21:10 No.10966
 ┃    ┗ Re^5: アナログ時計とカレンダのアクセサリ 11月24日版 - としき 23/12/04-12:20 No.10967
 ┃     ┗ Re^6: アナログ時計とカレンダのアクセサリ 11月24日版 - konno 23/12/05-02:04 No.10968
 ┃      ┗ Re^7: アナログ時計とカレンダのアクセサリ 11月24日版 - としき 23/12/05-14:03 No.10969
 ┃       ┗ Re^8: アナログ時計とカレンダのアクセサリ 11月24日版 - konno 23/12/05-23:11 No.10970
 ┣ STIME.EXE 12月08日版 - konno 23/12/08-02:31 No.10971
 ┃ ┗ Re: STIME.EXE 12月08日版 - としき 23/12/11-16:28 No.10975
 ┃ ┗ Re^2: STIME.EXE 12月08日版 - konno 23/12/11-20:56 No.10976
 ┗ STIME.EXE Ver 231212 - konno 23/12/13-01:12 No.10980

(10933) 10933VGAで動くアナログ時計とカレンダのアクセサリ  投稿者:konno   2023/11/17(金) 00:36
   コメント数 6

この記事は、ココログからの転載です。
http://tamaneko2.cocolog-nifty.com/vz2/

DOSVAXJ3のVGAで動くアナログ時計とカレンダのアクセサリをアップします。

きっかけは、最近文字が見えづらくなって、デジタル文字の時間がパッと読めなくなったことです。
大きなアナログ時計がパソコンで常駐出来ればなぁ・・・・

そうだ! 昔作った時計のアクセサリがあるじゃないか!
DOSVAXJ3で常時表示させておけば便利かも。

ということで、この古いプログラムの復活計画が始動したのでした。、
お茶を1分蒸らす時やカップ麺の3分などチェックできるタイマー機能もあります。(^_^)

現状データファイルの置き場所指定できないので、カレントに全部置いて使ってください。
DOSVAXJ3を起動したら、chev jp して、ファイル群のあるフォルダをカレントにしてから起動してください。

STIME.EXE を起動すると
このようにアナログ時計を表示します。

[F1]キーを押すと
このように大きなカレンダを表示します。
休日も表示します。

[F2]キーを押すと
このように、次月まで表示します。
誕生花と日程も表示されました。
これらは2度キーを押さないと表示しないようで、バグですね。まあおまけですので。

[PGDN]を押すと、押すたびに時計が拡大します。
[PGUP]を押すと、押すたびに時計が縮小します。

[ALT]+[F2]を押すと、秒針が太くなります。
[ALT]+[F4]を押すと、時分針が青くなります。
青い色を付けると、色が残ることがあります。
また、色付きの時は秒針が十字の位置で消えることがあるので太い秒針を用意しました。
SIN,COSの計算精度かPAINTの影響か、DOSVAXJ3 との相性か、わからないです。

簡易タイマーも2系統あるので、作業時間をチェックするとかに使えます。

簡易的な機能説明書も同梱したので、色々弄ってみてください。

自作、改作アプリの放置部屋  に置いてあります。

      - No.10933 -    このTreeへ           [リストへもどる] soft

(10933) 10934Re: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:konno   2023/11/18(土) 21:16
    10933 番 konno さんへのコメント    コメント数 1

いくつか間違いなど修正したのでファイルを差し替えました。11月18日版をお使いください。

todayx.bat は、実際には today2.bat で動いていたので、表記やファイル名を today2 に統一しました。

sedit.bat は、常駐VZから STIME.EXE を起動して BAT でVZを呼ぶと上手く動かないようです。
JED などのフリーのエデイタを指定してください。
常駐VZで上手く動かす方法、ありましたっけ?

# 常駐VZを使いたいのに本末転倒のような。(^^;

      - No.10934 -    このTreeへ    コメント元:10933 へ [リストへもどる] soft

(10933) 10935Re^2: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:文太   2023/11/18(土) 22:01
    10934 番 konno さんへのコメント    コメント数 1

konnoさん

 いー感じ。楽しそう。
 昨晩『AWAKE』という将棋ソフト開発についての映画をNetflixでみて、
今日、これを見て、ああ、プログラミングしたい、と久しぶりに思いました。
 いろいろいろいろあって、konnoさんが認知症になる前に(僕も続きまーす!)
いっぱい聞きたいのだけど、ううう、残念。
 たぶん、僕がやりたい技術がつまってるソフト。テキストファイルを読み込んで
表示、なんですよね。ベーシックも楽しそう。
 とはいえ、ベーシックだとライブラリーモジュールとか方言とか、いろいろある
んでしょうね。
 dosvaxが敷居、高い、、、。
 WinMEをはやく直さないと、、、。DOS機、はやく作りなおさくちゃ、、、。
 ぶぶぶぶ、の文太でした。
 もうちょい沈んでます。m(__)m

 うん、常駐Vzで使えないと、、、。敷居たかそうだなぁ、、、。
      - No.10935 -    このTreeへ    コメント元:10934 へ [リストへもどる] soft

(10933) 10936Re^3: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:konno   2023/11/18(土) 23:05
    10935 番 文太 さんへのコメント    コメント数 2

文太さん、お元気そうでなによりです。

>  昨晩『AWAKE』という将棋ソフト開発についての映画をNetflixでみて、

面白そうですね、私も昔ポケコンBASICでオセロの対人ゲームのソースを改造して
対コンピュータのオセロを作ったことがあります。恐らく世界最弱のアルゴリズムです。(^^;
私自身がオセロ弱いもので。(^^;
ソースは恐らくもう無いと思われます。もったいないことをしたなぁ・・・

> 今日、これを見て、ああ、プログラミングしたい、と久しぶりに思いました。

私もBASICのソースを弄っていて、やっぱりこういうのが好きなんだなぁ、と思いました。(^^;

>  いろいろいろいろあって、konnoさんが認知症になる前に(僕も続きまーす!)

私も色々あって健康不安などもあるし、ボケも進んでいきそうなので、備忘録など書いています。

>  たぶん、僕がやりたい技術がつまってるソフト。テキストファイルを読み込んで
> 表示、なんですよね。ベーシックも楽しそう。
>  とはいえ、ベーシックだとライブラリーモジュールとか方言とか、いろいろある
> んでしょうね。

あ、ソースいりますか。汚いけど参考になるならソースもアップしようかな。
古い雑誌の例題ソースなどは弄って公開しても問題ないですよね。(^^;

>  dosvaxが敷居、高い、、、。

軟式さんのサイトから最新のdosvaxをダウンロードして展開したらフォルダそのままで使えます。
#10764: Re^2: DOSVAXJ3 (2023/4/14) 更新 投稿者: konno   2023/04/15(土)
#10765: DOSVAXJ3の dosboxj.conf 設定例 投稿者: konno   2023/04/15(土)
あたりが設定の参考になると思います。簡単ですよ。(^^;

>  うん、常駐Vzで使えないと、、、。敷居たかそうだなぁ、、、。

とりあえず JED を入れてみました。結構使えそうです。(^^;
本来は自作のエデイタもどきと連携していたんですがね。(^^;

      - No.10936 -    このTreeへ    コメント元:10935 へ [リストへもどる] soft

(10933) 10938Re^4: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:文太   2023/11/18(土) 23:31
    10936 番 konno さんへのコメント    コメント数 1

konnoさん

>私もBASICのソースを弄っていて、やっぱりこういうのが好きなんだなぁ、と思いました。(^^;
 この感じがジンジン伝わってきて、僕もけっこう幸福感かんじましたよ。

>私も色々あって健康不安などもあるし、ボケも進んでいきそうなので、備忘録など書いています。
 ガンガンいってください、というか、ぼちぼちぼつぼち行ってください!

>あ、ソースいりますか。汚いけど参考になるならソースもアップしようかな。
 いいですね!

>古い雑誌の例題ソースなどは弄って公開しても問題ないですよね。(^^;
 ない! に一票!
 ソースがどんな見栄えなのか、想像もつかないんですよね。
 時計とカレンダーは実は完全に別物で、時間だけファンクションコール(これを
呼ぶモジュール?)、カレンダーはテキストから読み込んで表示、これらを合体させて
ファンクションキーで切り替える、とか想像したのですが。
 (この合体と切り替えが難しそう、と思いました)−−−とんちんかんなこと
言ってても怒っちゃやーよ。動かせてないのですから。

 アナログ時計の秒針を進めるのとかは、既存モジュールあり? ああいう(?)
グラフィックなのは考えたことがない、、、。

>>  dosvaxが敷居、高い、、、。
>軟式さんのサイトから最新のdosvaxをダウンロードして展開したらフォルダそのままで使えます。
 い、いつか、やります。vtdosもまともに使えてない、、、。

>>  うん、常駐Vzで使えないと、、、。敷居たかそうだなぁ、、、。
>とりあえず JED を入れてみました。結構使えそうです。(^^;
 僕も柔軟になりまして、これでいいじゃん、とも思いましたよ。JED, 16bit のフリー
エディタ。いいじゃないの。
 ただ、今日、久しぶりに「やっぱVzだろう」とか思っちゃたんですよね。
 いいですよ、このエディタ。Vzっていうんですけど、

 俺の体(あるいは頭)、まだ大丈夫なのか? とか思いながらも、
のんびりのんびり、ぐてぐてぐてぐて、いきましょう!
 ありがとうございます。m(__)m


      - No.10938 -    このTreeへ    コメント元:10936 へ [リストへもどる] soft

(10933) 10939Re^5: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:konno   2023/11/19(日) 22:51
    10938 番 文太 さんへのコメント    コメント数 1

>  時計とカレンダーは実は完全に別物で、時間だけファンクションコール(これを
> 呼ぶモジュール?)、カレンダーはテキストから読み込んで表示、これらを合体させて
> ファンクションキーで切り替える、とか想像したのですが。

時間は time$ というシステム変数を使います。00:00:00 ( 時:分:秒 ) 文字列の形で入っています。
カレンダーは計算だけで表示できます。祝日データをテキストから読み込んで表示します。
VZマクロのカレンダーと同じことをやっています。言語形式が違うだけです。

>  (この合体と切り替えが難しそう、と思いました)

合体は私の得意技です。無駄な部分を無くし変数を統一して最適化するのは結構大変ですが。(^^;

>  アナログ時計の秒針を進めるのとかは、既存モジュールあり? ああいう(?)
> グラフィックなのは考えたことがない、、、。

オリジナルの例題には秒針はありませんでした。

200 Y!=PI!-T2*PI!/30 '分針
210 Z!=PI!-(T1*60+T2)*PI!/360 '時針

オリジナルの記述です。コメントは私がつけたものです。
これを参考にして、秒針を追加したのです。

10390 X9!=PI!-T3*PI!/30: '秒針
10400 X!=X9!: '秒針

文字盤の文字も、拡大縮小するためにドットデータを自分で作ったみたいです。(覚えていない)(^^;
時計も万年カレンダーもソースは1ページ以内で出来ているので打ち込みは大した手間ではなかったです。
改造部分で何倍にも膨らんでしまって今では何をやっているのか調べるのも容易ではないです。(^^;

>  俺の体(あるいは頭)、まだ大丈夫なのか? とか思いながらも、
> のんびりのんびり、ぐてぐてぐてぐて、いきましょう!

マイペースで行くのが一番ですね。
プログラミングはストレス発散のため!
# でもそれがストレスを生むという説も。(^^;

      - No.10939 -    このTreeへ    コメント元:10938 へ [リストへもどる] pre

(10933) 10940Re^6: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:文太   2023/11/20(月) 00:31
    10939 番 konno さんへのコメント    コメント数 2

konnoさん

 ご丁寧にいろいろとありがとうございます。
 おもしろい!
 おもしろかったから、電脳組社製の「BASIC/98 for DOS/V」(注1)という
ベーシックのマニュアルとか、QBasic By Example とかの本をもってきてしまいました。
 まずDOS機を復活させないと、ベーシック・プログラムのインストールすら
できない、、、。
 dosvaxは? 敷居、たかし。気力が、、、。

 最初に。
>プログラミングはストレス発散のため!
># でもそれがストレスを生むという説も。(^^;
 趣味ですよ、趣味。仕事も何にも関係ない。しかし仕事がらみだと、嫌になっても
根性で最後まで走るという動機があったりもしますが。(注2)
 パソピア、高いねぇ。でも、格好いいですねぇ。

 以下、というか全部、独り言みたいなものです。

 で、T-Basicというのは、Turbo Basicということですか? ボーランド製?
 深い意味はありませんが、以下に、書法がそれぞれあるんだろうな、とか思い。

>時間は time$ というシステム変数を使います。00:00:00 ( 時:分:秒 )
>文字列の形で入っています。
 さすがベーシック。システム変数を呼ばれたら中でファンクションコール
してくれるんだ。Vzのファイラで、「K」とやると「ディレクトリ作成ファンク」
を呼んでくれるのと同じですね。
 time$, date$。システム変数に「$」を末尾につけるのは、どこも同じみたい、、、。

>VZマクロのカレンダーと同じことをやっています。言語形式が違うだけです。
 この辺り、弱いですねぇ。読んだことないなぁ。
 基本的に、時計やカレンダーはPCの外でよい、という考えできております。
あれ? データの読み込みと描画なの。

>合体は私の得意技です。無駄な部分を無くし変数を統一して最適化するのは結構大変ですが。(^^;
 うん、既存のものに付加機能を足すのは、うん、けっこう大変そうだ。

>200 Y!=PI!-T2*PI!/30 '分針
>210 Z!=PI!-(T1*60+T2)*PI!/360 '時針
 「!」は、ユーザ変数のマーキングですよね、きっと。使われなくなったLET
ステートメント。「!」最初、何かと思った。
 「T1」「T2」「T3」も、ユーザ変数ですよね? ???
 (行番号がまだ入ってる、、、。そうしないと、ベーシックのソースらしくない?
  行番号ジャンプとかするの?)

>10390 X9!=PI!-T3*PI!/30: '秒針
>10400 X!=X9!: '秒針
 「X9」の「9」の意味は想像できる。とりあえず「9」
 正確にではないですが、「30」とか「360」での割り算は、アナログで、円の中での
角度でしょうね。

>文字盤の文字も、拡大縮小するためにドットデータを自分で作ったみたいです。(覚えていない)(^^;
 これです! やっぱそうなのかぁ! やってみたい!

>時計も万年カレンダーもソースは1ページ以内で出来ているので打ち込みは大した手間ではなかったです。
>改造部分で何倍にも膨らんでしまって今では何をやっているのか調べるのも容易ではないです。(^^;
 うううう、大変そう。
 でも、気持ちも状態も経緯も、いちおう想像できます。意外に太るのよ。

 でも、とにかく。
 部屋の整理、心の整理、そしてDOS機復活作戦が優先順位となっております。
すみませぬ。


(注1)後継ソフト(ベーシック)がWin11で動きます、というのを社のサイトで
見つけた。がんばっておられますなぁ。世の中にニーズがあるんですねぇ。

(注2)どうでもいい注。例の『AWAKE』という将棋ソフト開発映画で、「ソフト作りたい!」
と思った主人公は、「プログラミング研究会」に入部します(大学生)。
 主人公は、元プロを目指した棋士。が、プログラミングは、ど素人。
 入部場面で書かされる自己紹介用データシートには、名前などのほか「使用言語」
という欄がある。彼は、「日本語」と書く。
 で、本を3冊渡される。「全部暗記してきて」。暗記完了。テスト合格。次、5冊。
そして、ついに、将棋ソフトが動き出す、、、。
 動機なんですよね。将棋学習の場面もプログラミング学習の場面も、雰囲気はほぼ同じ。
あふれる情熱。圧倒的な集中力。
 もう僕には残ってないかなぁ、という感想、、、。
 のんびりいこう! ストレスためない程度にがんばろう! という結論。

 上、ちゃんとVzで書きました。えばるこっちゃないぞ。
 あ、ソース、上げてください!


      - No.10940 -    このTreeへ    コメント元:10939 へ [リストへもどる] pre

(10933) 10941Re^7: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:konno   2023/11/21(火) 00:41
    10940 番 文太 さんへのコメント

>  で、T-Basicというのは、Turbo Basicということですか? ボーランド製?

これは東芝製BASICという意味だと思います。元はMSのGW-BASICを日本語化したのでしょう。

>  「!」は、ユーザ変数のマーキングですよね、きっと。使われなくなったLET
> ステートメント。「!」最初、何かと思った。

「!」は浮動小数点型の変数という指定です。
「%」は整数型の変数という指定です。同じ名前でもこれをつけると別の変数となります。

>  「T1」「T2」「T3」も、ユーザ変数ですよね? ???

そうです。頭がアルファベットでシステム変数以外なら自由に名前が付けられます。

>  (行番号がまだ入ってる、、、。そうしないと、ベーシックのソースらしくない?
>   行番号ジャンプとかするの?)

初期のBASICインタプリタは行番号が必須でしたが、最近のはいらないようですね。

>  正確にではないですが、「30」とか「360」での割り算は、アナログで、円の中での
> 角度でしょうね。

その通りです、ちなみに、「PI!」は浮動小数点型のシステム変数で、3.14159 という円周率です。
(記憶で書いたけど合っているかな (^^;)

>  でも、とにかく。
>  部屋の整理、心の整理、そしてDOS機復活作戦が優先順位となっております。

私も同じです。(^^; 他にも懸案事項が山済みで。ヽ(^^;)オイオイ

> (注1)後継ソフト(ベーシック)がWin11で動きます、というのを社のサイトで
> 見つけた。がんばっておられますなぁ。世の中にニーズがあるんですねぇ。

あの時代を生きた世代は BASIC が友達みたいなものなのかも。(^^;

>  動機なんですよね。将棋学習の場面もプログラミング学習の場面も、雰囲気はほぼ同じ。
> あふれる情熱。圧倒的な集中力。

まさに、あの頃の情熱と集中力はもう戻らないのか・・・・

>  もう僕には残ってないかなぁ、という感想、、、。
>  のんびりいこう! ストレスためない程度にがんばろう! という結論。

結局長く続けるにはこれが一番! ですね。(^^;

>  あ、ソース、上げてください!

ただいまコメントを整理中です。(^^;
汚くて恥ずかしいけど揚げちゃいますね。(^^;

      - No.10941 -    このTreeへ    コメント元:10940 へ [リストへもどる] soft

(10933) 10942Re^7: VGAで動くアナログ時計とカレンダのアクセサリ 差替え  投稿者:としき   2023/11/22(水) 01:14
参照先:http://toshiki.la.coocan.jp/
    10940 番 文太 さんへのコメント    コメント数 1

文太さんはDOS機復活ですか。
私はXPマシン復活中です。
生きているマシンはいくつかあるのですが、やっぱり画面サイズとかいろいろあって。
それはさておき。
かつてはN88-BASICがネイティブ、とか言っていた私としては、この辺の話題にも
足跡を残しておきたいかな、と。
なので、いろいろと散文を書き散らかします。

電脳組の「BASIC/98」は、for FMRを持っています。
ポケ3での動作確認のためだけに購入しました。
ざっくりと見た範囲では、きちんとポケ3でも動きました。
まだどこかにしまってあるはずだけど、どこにあるかなぁ。部屋に喰われた。
ちなみに、言語仕様は、かなりN88-BASICに近かったと記憶しています。
私の記憶が確かなら、その当時、後継を名乗れそうなほどN88-BASICに言語仕様が
近かった処理系が二つあって、そのうちのひとつが「BASIC/98」だったような。
ん〜、記憶が怪しい。

>  dosvaxは? 敷居、たかし。気力が、、、。

これ、konnoさんもおっしゃっていますが、動かすだけなら敷居はないも同然。
解凍して実行ファイルを起動するだけですから、DOS窓を動かすのと比べていったい
何が違うのか、ぐらいの感覚。


以下、BASICのお話。
基本的に東芝のT-BASICとNECのN88-BASICはそこそこ似ているはずですが、konno
さんのお話だと、やっぱりちょっと違うみたい。
まず、おそらく同じであろう部分。もしかしたら違うかもしれないけど。
変数は、コードが実行されて初めて領域が確保されます。
この辺はインタプリタ言語であるawkやperlも同じはず。
だから、マイクロ秒の単位で時間を稼ぎたいプログラムの場合、プログラムの途中で
領域を確保する時間が惜しいということで、プログラム冒頭でたとえばゼロを代入
するなどして、そこで領域を確保しておく、なんて技を使っているコードも見かけ
ました。
変数の型については、接尾辞をつけなければ、デフォルトで実数型。
「!」をつければ明示的に実数型。
「$」だと文字列型、「%」だと整数型、「#」だと倍精度実数。
デフォルトを変えることもできました。
「DEFINT A-C」と宣言すると、頭文字がAからCで始まる変数は接尾辞なしで整数型。
「DEFSTR D-F」と宣言すると、頭文字がDからFで始まる変数は接尾辞なしで文字列型。

ここまではT-BASICとN88-BASICで同じ部分。
一方、なんとなく違ってそうなのがシステム変数。
N88-BASICにも、TIME$とDATE$はありました。
でも、円周率を表すシステム変数はありません。
なので、自分でプログラムの最初の方で、例えば「PI=3.14」とか代入していました。
だから、人によって、コードで使われている円周率が異なっていたり、円周率を表す
変数名がPIだったりPAIだったりと一定していなかったり。

あぁ、なんだってこんな、いにしえのBASICの文法解説をしているんだろう(笑)。

      - No.10942 -    このTreeへ    コメント元:10940 へ [リストへもどる] soft

(10933) 10944BASIC道への入り口  投稿者:konno   2023/11/22(水) 23:55
    10942 番 としき さんへのコメント    コメント数 1

> でも、円周率を表すシステム変数はありません。
> なので、自分でプログラムの最初の方で、例えば「PI=3.14」とか代入していました。
> だから、人によって、コードで使われている円周率が異なっていたり、円周率を表す
> 変数名がPIだったりPAIだったりと一定していなかったり。

あれ? と思って確認してみたら、「PI!」は自分で設定していました。(>_<)
STIME.bas のソース

10080 X1=77-SC!*2:PI!=3.14159:

結局、円周率を表すシステム変数は無いというのが正解だったようです。
確認もしないで間違ったことを言って申し訳ないです。m(__)m

> あぁ、なんだってこんな、いにしえのBASICの文法解説をしているんだろう(笑)。

BASIC地獄、いやさ、天国への道はまだまだこれからですよ。(^^;

      - No.10944 -    このTreeへ    コメント元:10942 へ [リストへもどる] soft

(10933) 10948Re: 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 -    このTreeへ    コメント元:10944 へ [リストへもどる] soft

(10933) 10952Re^2: BASIC道への入り口  投稿者:konno   2023/11/23(木) 19:54
    10948 番 としき さんへのコメント    コメント数 1

> つまり、何が言いたいかというと、もしプログラムをリライトする機会があれば、
> 意味の分かる長い変数名を使いましょうよ、ということ。
> どっかのエディタのマクロじゃないんだから。

(^^; (^^; 耳がいた、いや、汗が。(^^;
私って3文字以上の英語のスペルは中々覚えられないのですよ。(^^;
その点 VZのマクロは記号みたいですが、だいたい2文字なので安心感が。(^^;

      - No.10952 -    このTreeへ    コメント元:10948 へ [リストへもどる] soft

(10933) 10953Re^3: BASIC道への入り口  投稿者:としき   2023/11/24(金) 20:35
参照先:http://toshiki.la.coocan.jp/
    10952 番 konno さんへのコメント    コメント数 1

> 私って3文字以上の英語のスペルは中々覚えられないのですよ。(^^;

英語はやめて、6文字程度のローマ字にしましょう。



いきなり余談ですが。
昔の経済学って、ケインズだろうがマルクスだろうが、人間は合理的に行動する、
という前提で論理展開されていました。
でも、決してそんなことはないというか、不合理なことは結構多い。
そこで提唱されたのが行動経済学という学問。
ようは、いろいろな判断だとかお金の使い方を心理学の面から分析するものです。

そして、実はプログラム工学だとかソフトウェア工学というものにも、かなり昔から
心理学的な分析は取り入れられていて。そもそも、それらの学問は、どうすれば品質
のよい、すなわち間違えにくいプログラムを書けるか、という学問なのですが、これ
は裏を返すと、人間はどういうときに間違えるか、という、まさに心理学的な分析
から始まっているわけです。
そして、研究の結果、たとえば、長くて意味のわかりやすい変数名を使いましょう、
なんて話になってきたわけです。
ただし、これはあくまでも、一般的なプログラム作成の話。
たとえば、複数人で作る場合、とか。
一人で作る場合でも、そんなに時間をかけず、一気呵成に作り上げる場合とか。
ワンライナーあたりが該当するかな。
つまり、よく言われる「明日の自分は赤の他人」に至らないような状況の場合。
仮に、既存のプログラムを改造するぐらいなら、常に一から新しいプログラムを作る
というのであれば、過去のプログラムを見返すこともないでしょう。
ただし、繰り返しになりますが、これはあくまでも、一般的なプログラム作成の話。
このため、現在では、仮に
「俺は変数名に3文字までしか使わない」
と主張するプログラマがいたとすると、その人は暗に
「俺は一般的ではない、短い変数名でも良いプログラムを書ける天才なんだ」
と豪語しているに他ならない、というのが世間の捉えかた。
もれなく生暖かい目がついてくることでしょう。
とはいえ、中学2年生ぐらい頭が柔軟な人ならそれも可能なのかもしれません。
私はもう無理だなぁ、そんな主張はできない。頭は固いし恥ずかしいし。
この年になってから黒歴史は量産したくないし。

      - No.10953 -    このTreeへ    コメント元:10952 へ [リストへもどる] soft

(10933) 10956Re^4: BASIC道への入り口  投稿者:konno   2023/11/25(土) 15:36
    10953 番 としき さんへのコメント

> 英語はやめて、6文字程度のローマ字にしましょう。

ローマ字ならいくらでも長い名前を書けますよ。(^^;
jugemujugemugogounosurikire

お。意外と良いかもしれませんね、でもなんだか恥ずかしいような。(^^;

> そして、研究の結果、たとえば、長くて意味のわかりやすい変数名を使いましょう、
> なんて話になってきたわけです。

その長い名前が覚えられないからこうなってしまったのです。(;_;)
英語は嫌いじゃぁ〜!

> この年になってから黒歴史は量産したくないし。

そんな風に思っていた時期もありました・・・
私の半生は黒(画面)歴史なので。
どうせみんな死ぬんだし、だったら恥ずかしい黒(画面)歴史を晒しちゃえ
ということで今回の企画を出したわけです。(完全後付け)

      - No.10956 -    このTreeへ    コメント元:10953 へ [リストへもどる] soft

(10933) 10943オセロ  投稿者:としき   2023/11/22(水) 01:14
参照先:http://toshiki.la.coocan.jp/
    10936 番 konno さんへのコメント    コメント数 1

私もオセロのプログラムを作りかけていて、いまだに完成していないのですが。

> 面白そうですね、私も昔ポケコンBASICでオセロの対人ゲームのソースを改造して
> 対コンピュータのオセロを作ったことがあります。恐らく世界最弱のアルゴリズム

これ、とっても気になります。
どういうアルゴリズムだったか、覚えておられます?
ちなみに、私の作ろうとしていたのは、俗に優先順位法というアルゴリズムです。
全てのマスに1から60までの優先順位をふって、優先順位の高い方から置けるか
判定して、置ければそこに置く、というやつ。なので、優先順位のふり方次第で、
それなりに強かったり全く弱かったり、となります。たとえば、四隅の優先度が
一番低かったら弱くなる、ということで。
そういえば、8ビットの昔も昔、PC-8001用のオセロと対戦したことがあるのです
が、えらく強かったなぁ。
こいつはロジック部分がフルアセンブラで、おまけに残り10手になった時に残りの
手をすべて読み切る仕様となっていて、そこだけちょっと待ち時間が長かったのです
が、それでもほんの数十秒。
今のパソコンなら、1手ごとに最後まで読み切ることもできるのでしょうね。

      - No.10943 -    このTreeへ    コメント元:10936 へ [リストへもどる] soft

(10933) 10945Re: オセロ  投稿者:konno   2023/11/23(木) 00:13
    10943 番 としき さんへのコメント    コメント数 1

> 私もオセロのプログラムを作りかけていて、いまだに完成していないのですが。

おお、良いですね。こういうのはアルゴリズムを考えるのも楽しいですよね。
としきさんはオセロ強いですか? 私はヘタの横好きで。(^^;

> > 面白そうですね、私も昔ポケコンBASICでオセロの対人ゲームのソースを改造して
> > 対コンピュータのオセロを作ったことがあります。恐らく世界最弱のアルゴリズム
>
> これ、とっても気になります。
> どういうアルゴリズムだったか、覚えておられます?

全く覚えていないんですよ。(;_;)
もしかしたらカセットテープにソースが残っているかもですが、今では取り出す方法が・・・
ああ、本当に諸々捨てないで取っておけば良かったなぁ、と思う今日この頃です。(;_;)

> ちなみに、私の作ろうとしていたのは、俗に優先順位法というアルゴリズムです。
> 全てのマスに1から60までの優先順位をふって、優先順位の高い方からおけるか
> 判定して、置ければそこに置く、というやつ。なので、優先順位のふり方次第で、
> それなりに強かったり全く弱かったり、となります。たとえば、四隅の優先度が
> 一番低かったら弱くなる、ということで。

何となくそれに近い考え方で作ったような気がします。
でも出来たのは、世界最弱のコンピュータオセロでした。(>_<)
私自身が頭が悪いせいですね。(;_;)

> そういえば、8ビットの昔も昔、PC-8001用のオセロと対戦したことがあるのです
> が、えらく強かったなぁ。

将棋でもオセロでも、強い人がアルゴリズムを考えることで本当に強いものが出来るのでしょうね。

      - No.10945 -    このTreeへ    コメント元:10943 へ [リストへもどる] soft

(10933) 10947Re^2: オセロ  投稿者:としき   2023/11/23(木) 13:31
参照先:http://toshiki.la.coocan.jp/
    10945 番 konno さんへのコメント    コメント数 2

> としきさんはオセロ強いですか? 私はヘタの横好きで。(^^;

中学生のころまでは、クラスで3番くらいの強さでした。
でも、大人になったら、平均よりちょっと強いくらい、でしょうか。

> > ちなみに、私の作ろうとしていたのは、俗に優先順位法というアルゴリズムです。
> 何となくそれに近い考え方で作ったような気がします。
> でも出来たのは、世界最弱のコンピュータオセロでした。(>_<)

これ、世間には優先順位のサンプルがいくらでもあったはずなので、そういうのを
そのまま実装すればそこまで弱くはならないはず。
例えば、乱数で手を打つプログラムを作ったら、強い時と弱い時がある、気分屋と
いうか不安定な強さになるだろうし。
本当に安定して弱いプログラムなら、むしろそのアルゴリズムを教えてほしい。
いや、マジで。

> 将棋でもオセロでも、強い人がアルゴリズムを考えることで本当に強いものが出来る

8ビット当時の最強は森田オセロだったはず。
私が対戦したのは、もしかしたらそれかもしれない。
もう覚えていませんが。
      - No.10947 -    このTreeへ    コメント元:10945 へ [リストへもどる] soft

(10933) 10950Re^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 -    このTreeへ    コメント元:10947 へ [リストへもどる] soft

(10933) 10954Re^4: オセロ  投稿者:としき   2023/11/24(金) 20:35
参照先:http://toshiki.la.coocan.jp/
    10950 番 めざら さんへのコメント

XLISって知らなかったのですが、コラムスのようなゲームですね。
落ち物でいうと、PC-98のDOSでは「ぽろりす」をずいぶんやりました。
http://ozuma.o.oo7.jp/old_game/game/porolith/
こいつには、作者謹製のANSI版があって、モノクロ環境でも実行できたはず。
そういえば、ポケ3では試したことはない。
けど、画面サイズを考えると、絶対に目が死にそう。
試すもんか。

      - No.10954 -    このTreeへ    コメント元:10950 へ [リストへもどる] soft

(10933) 10957Re^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 -    このTreeへ    コメント元:10950 へ [リストへもどる] soft

(10933) 10951Re^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 -    このTreeへ    コメント元:10947 へ [リストへもどる] pre

(10933) 10937VGAで動くアナログ時計とカレンダのアクセサリの説明書  投稿者:konno   2023/11/18(土) 23:30
    10933 番 konno さんへのコメント

STIME.EXE 説明書	Ver 8.231116

DOSVAXJ3のVGAで動くアナログ時計とカレンダのアクセサリです。
現状データファイルの置き場所指定できないので、カレントに全部置いて使ってください。
DOSVAXJ3を起動したら、chev jp して、ファイル群のあるフォルダをカレントにしてから起動してください。


・STIME.LZH に同梱されているファイル
STIME.EXE 実行ファイル
STIME.TXT このファイル
SEDIT.BAT SEDIT.BATで指定したエデイタ(非常駐VZなど)で各種設定表を編集
TODAY2.BAT TODAY2.BATで指定したCNFファイルでTODAYを実行 (歴史データ大型版表示など)
HOLIDAY.DAT 休日データ。TODAY のデータに準じている? 新しい祝日形式には対応していません。
SCHEDULE.DAT 日程データ。表示のバグがあるので実用ではないです。
FLOWER.TBL 誕生花 TODAY のデータを流用。使えるかは?


・ファンクションキーなどの機能

F1:カレンダー 当月の大きなカレンダーを表示
F2:カレンダ2 当月の大きなカレンダーと次月を表示
F3:カレンダ3 月を指定してカレンダーを表示
F4:日程 SEDIT.BAT で指定したエデイタでスケジュール表SCHEDULE.DATを編集
F5:TODAY TODAY.EXE があれば TODAY を実行
F6:Time1 タイマー1の表示。押すたびに経過時間を表示
F7:Time2 タイマー2の表示。押すたびに経過時間を表示
F8:日時変 日時の変更。DOSVAXJ3では時間の変更不可
F9: CLS 画面をクリアして時計表示
F10: END 終了

[SHIFT]
F1:MS-DOS 終了
F3:Bio
F5:TODAY2 TODAY2.BAT で別の設定(TODAY3.CNFなど) でTODAYを実行
F7:Vmap VMAP.COM があれば VMAP を実行

[CTRL ]
F1:sys 終了 (DOSVAXJ3 ではキーマップ表示?)
F2:HR

[ ALT ]
F1:end 終了
F2:秒針2 秒針表示を2本線に
F3:秒針1 秒針表示を1本線に
F4:長針青 時分針を青色表示
F5:長針透 時分針を色無しで表示

[PGUP] 押すたびにアナログ時計を縮小表示
[PGDN] 押すたびにアナログ時計を拡大表示


・バグ、更新履歴
※ 日程表示はカレンダ表示を2度押さないと表示しないバグ有り
※ DOSVAXJ3で負荷が100%になるのでキー入力ループで INT28 INT2F(AX1680)を入れた。
※ DOSVAXJ3でカーソルが表示しないのでグラフィックで疑似カーソル使用。

      - No.10937 -    このTreeへ    コメント元:10933 へ [リストへもどる] pre

(10933) 10946新祝日対応のデータ形式  投稿者:konno   2023/11/23(木) 02:38
    10933 番 konno さんへのコメント    コメント数 2

STIME.EXE は古いプログラムゆえ、カレンダは新祝日法に対応していません。
日曜が祝日の場合に月曜が振替休日になるようには作っているみたいですが。

で、コメントの整理中にふと、カレンダマクロが対応しているから見てみようかと思ったのです。
CALENDAR.DEF Yushi さんのモノクロ版カレンダー拡張wanama版は全く理解できませんでした。
LXCLND.def  Emmettさんのカレンダーは祝日データに工夫がしてありました。

72: ;---- holiday definition -----------------------------------------
; (6) 日付の位置に半角大文字アルファベットを書くと「?回目の?曜日」
; を指定したことになる(回数の数値は A==1, B==2, ...を意味し、曜日
; は A==日曜日, B==月曜日 ... を意味すると解する)。

hh..1 = "1874>0=1;1874>1948=3;1949>1999=15;2000>0=BB",


これは1月の祝日データですが、注目すべきは後半の成人の日。

1949>1999=15; 1949年から1999年までは、15日固定
2000>0=BB", 2000年以降は、B(2回目の)B(月曜日)

この形式は使える!
HOLIDAY.DAT に早速入れてみました。

01/15 1948-1999 成人の日
01/BB 2000-2099 成人の日

これで同じように解釈させれば出来るはず!
と思ったのですが、マクロが全然読めなくて、解釈する部分もわかりません。(;_;)
どうしよう・・・・

      - No.10946 -    このTreeへ    コメント元:10933 へ [リストへもどる] pre

(10933) 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 -    このTreeへ    コメント元:10946 へ [リストへもどる] pre

(10933) 11093Re: 新祝日対応のデータ形式  投稿者:めざら   2024/02/17(土) 13:33
参照先:http://mezala.la.coocan.jp/
    10946 番 konno さんへのコメント    コメント数 1

古いところにぶら下げを御免なさい。

> CALENDAR.DEF Yushi さんのモノクロ版カレンダー拡張wanama版は
……を見て,そう言えば令和対応ってどうなってたっけ?と思ったら何処にも
情報が出ていなかったので,野ざらし言#5481 に使用中のを貼り付けておきました。

機能は変わらずデータ追加だけなので版に変更はありませんが,
何か識別子がないと紛らわしいため v1.08wm と仮表示してあります。


和生師匠は元気にしてますかねぇ……
……と言うことがあまり現実的でないことは承知しています。

以前,うちの大根と秩父の杓子菜漬をお送りしたところが大層なお返しをいただいて
尻込みしてしまい,その後ほとんど連絡も途絶えてしまっているのですが,
お便りくらいは出してもばちは当たらないですよね。……暖かくなったら……
      - No.11093 -    このTreeへ    コメント元:10946 へ [リストへもどる] soft

(10933) 11095Re^2: 新祝日対応のデータ形式  投稿者:konno   2024/02/18(日) 21:38
    11093 番 めざら さんへのコメント

> > CALENDAR.DEF Yushi さんのモノクロ版カレンダー拡張wanama版は
> ……を見て,そう言えば令和対応ってどうなってたっけ?と思ったら何処にも
> 情報が出ていなかったので,野ざらし言#5481 に使用中のを貼り付けておきました。

めざらさん、ありがとうございます。
うちの BASIC カレンダーも2月23日が平日のままだったので、データを更新しました。

02/23 2024-2099 天皇誕生日 (令和天皇)

> 機能は変わらずデータ追加だけなので版に変更はありませんが,
> 何か識別子がないと紛らわしいため v1.08wm と仮表示してあります。

結構修正箇所が多いのですね、これはもう VerUP レベルですね。

> 和生師匠は元気にしてますかねぇ……
> ……と言うことがあまり現実的でないことは承知しています。

みなさん音沙汰がないので、卒業されたのならいいのですが。
私は Emmett さんの LXCLND.DEF を愛用しているので、Vector の VZマクロ関連を覗いてみました。
私の VZk07p 2005年 のが最新になっていました。(^^;
うーん、まだパスワード更新出来るなら、新しい版と入れ替えようかな。
うちのホームページのURLももう繋がっていないので、リンクを新しくしないと。(^^;

> お便りくらいは出してもばちは当たらないですよね。……暖かくなったら……

ぜひともよろしくお願いします。m(__)m

      - No.11095 -    このTreeへ    コメント元:11093 へ [リストへもどる] soft

(10933) 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 -    このTreeへ    コメント元:10933 へ [リストへもどる] pre

(10933) 10961Re: アナログ時計とカレンダのアクセサリ 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 -    このTreeへ    コメント元:10955 へ [リストへもどる] soft

(10933) 10962Re^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 -    このTreeへ    コメント元:10961 へ [リストへもどる] soft

(10933) 10964Re^3: アナログ時計とカレンダのアクセサリ 11月24日版  投稿者:konno   2023/12/02(土) 00:04
    10962 番 としき さんへのコメント

> #10961を書き込むことによって、#10941あたりからの乱れ方が大幅に改善している。
> ツリー最後の#10955前後はまだ乱れているけど、乱れ方が変化している。
> この辺、コードを追いかける際の手がかりになるかも。

なるほど、見てみますね。
でも今まで何度も見ているのにわからなかったので、やっぱりとしきさんにも見てもらおうかなぁ。

# 記事閲覧t #

のルーチンだけ切り出してメールで送ります。

宜しくお願いします。

      - No.10964 -    このTreeへ    コメント元:10962 へ [リストへもどる] soft

(10933) 10963Re^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 -    このTreeへ    コメント元:10961 へ [リストへもどる] soft

(10933) 10965Re^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 -    このTreeへ    コメント元:10963 へ [リストへもどる] soft

(10933) 10966Re^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 -    このTreeへ    コメント元:10965 へ [リストへもどる] soft

(10933) 10967Re^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 -    このTreeへ    コメント元:10966 へ [リストへもどる] soft

(10933) 10968Re^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 -    このTreeへ    コメント元:10967 へ [リストへもどる] soft

(10933) 10969Re^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 -    このTreeへ    コメント元:10968 へ [リストへもどる] soft

(10933) 10970Re^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 -    このTreeへ    コメント元:10969 へ [リストへもどる] soft

(10933) 10971STIME.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 -    このTreeへ    コメント元:10933 へ [リストへもどる] pre

(10933) 10975Re: 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 -    このTreeへ    コメント元:10971 へ [リストへもどる] soft

(10933) 10976Re^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 -    このTreeへ    コメント元:10975 へ [リストへもどる] soft

(10933) 10980STIME.EXE Ver 231212  投稿者:konno   2023/12/13(水) 01:12
    10933 番 konno さんへのコメント

  STIME.EXE Ver 231212 に更新しました。

・DOSVAXJ3 の VGAで動くアナログ時計とカレンダのアクセサリです。
・NCPATH= でデータファイルの置き場所を指定してください。末尾に "\" が無ければ追加します。
・PATH が通っていないとカレントから読み出しますが、無い場合は祝日情報が表示されません。

・DOSVAXJ3 を起動したら、chev jp でVGAモードにして、STIME.EXE を起動してください。
・MS-DOS Player では、chej jp でVGAモードにします。文字のデジタル時計とカレンダのみ表示します。
・VTDOS では動作しません。

23-12-12
・NCPATH が通ってなくてデータファイル読めない場合エラー終了していたのを警告表示に修正。


自作、改作アプリの放置部屋に置いてあります。

      - No.10980 -    このTreeへ    コメント元:10933 へ [リストへもどる] soft