新着記事

− 野ざらし言 −

新規投稿は記事一覧のフォームからお願いします

[5788] Re^18: N88-BASICの中間語

めざら 2025/04/11(Fri) 08:12
[関連記事] [5783]へのコメント
http://mezala.la.coocan.jp/
> 誤動作が怖くて RX+ には出来ません。

誤動作ってわけじゃなくても,慣れ親しんだ環境ですからね。
メインフレームで Vi だの Emacs だの使っていた人ならともかく,ワードプロセッサから入った者はなかなか……。
まぁ,ふつうのテキストを検索する分にはそう変なことはないのだけれど,置換はちょっと怖い感じがしますね。置換前には必ずテキスト保存。(笑)

> そういえば、ZK じゃなくて、ZH+ 全/半同一視もVZでは使わないなぁ。

自分は半角カタカナと全角英数字は極力使わないようにしているので全半同一視の必要は感じないのですが,それが便利だという人もそれなりにいるでしょうね。

またG寝たw

[5787] Re^2: 果樹・果実 2025 (不知火)

めざら 2025/04/11(Fri) 07:49
[関連記事] [5729]へのコメント
http://mezala.la.coocan.jp/
もう旬は過ぎているのですが,四月はじめに別の店の訳あり品10Kgを注文し,今度は三日後に届いてしまいました。

これはクレームのレベルかと思うくらい,初めから傷んでいるものがいくつかありましたが,まぁ,旬は過ぎてるし仕方がないかと。

それにしても,訳あり品の価格設定が異常。昨年より千円くらい高い……と言っても,倍になっている食材もあるし,農家さんも大変さもわかるので,今までが安すぎたのかもしれません。

地元のスーパーマーケットで購入しても価格は変わらないなぁ……

早くうちの不知火が育たないかなぁ……

[5786] Re: 果樹・果実 2025 (ル・レクチェ)

めざら 2025/04/11(Fri) 07:38
[関連記事] [5720]へのコメント
http://mezala.la.coocan.jp/
今年もル・レクチェの花が3輪ほど咲きました。

ル・レクチェは主に新潟で作られている洋梨の一種です。
かなり高級品種で高価なので,自宅で生らないかと苗を植えたのですが,植えてから七年を経過して依然こんな感じ。あまりに花が少なくて受粉もできなさそう。

花びらは白くて可愛いです。

[5785] Re: 掲示板のツリー構造がおかしい?

めざら 2025/04/11(Fri) 07:01
[関連記事] [5782]へのコメント
http://mezala.la.coocan.jp/
> どうも掲示板のツリー構造がおかしくなっているように見えます。

確認しました。確かにインデント分の入れ子になっている部分が独立したような見栄えになっていますね。

しばらく当面注意深く様子を見てみましょう。
……と言ってしまっては何もしないみたいだから……こしょこしょ

ログの中で行の順序が変になってました。
なぜ見た目が変になるかの原因と直し方はわかったのですが,ログが壊れる原因はわからないので,再発の可能性はあります。まぁ,その時は手で直しましょうかね。

あれ? 別のスレッドがまた変だな……

[5784] Re: Techknow シリーズ

konno 2025/04/11(Fri) 01:36
[関連記事] [5778]へのコメント
>  微妙に違いますけどね。MSXより、こっちのほうが近いのでは?
> PC-Techknow 98V 安井勉 1986_text.pdf
> PC-Techknow6000Vol1_text.pdf
> PC-Techknow8000.pdf
> PC-Techknow8801 Vol.1 1982_text.pdf
> PC-Techknow8801mkII.pdf

おお! これは凄い! PDF付きではPDFのみ表示されますが重いし使いづらいので
.PDF を除いて検索するとお馴染みのデータが表示されました。\(^^)/

>  もちろん中身は見ていません。
>  もー大変になっちゃってるのよん! あーやだやだ。

大変の意味はわからないですが、全てのデータを保存も無理な話ですしね。(^^;

[5783] Re^17: N88-BASICの中間語

konno 2025/04/11(Fri) 01:33
[関連記事] [5775]へのコメント
> もしくは、思考の柔軟性に欠けているのか。

老化なのか最近はこれをよく感じます。
中間語ファイルをVZで開いたら読めそうだったのでそのまま使ってしまいました。
としきさんのDUMPを見るまでDEBUGが使えるとか思いもしなかったです。(>_<)

> > せっかくなので私も DEBUG の結果を張っておきます。
> これこれ、こういうのがほしかった。

私もほんとはこういう表示にしたかったんです。(^^;

> ちなみに私は常時RX+です。

私は正規表現をあまり知らないので誤動作が怖くて RX+ には出来ません。
そういえば、ZK じゃなくて、ZH+ 全/半同一視もVZでは使わないなぁ。

# ZKとは違うのだよ、ZK(ザク)とは! (゜゜)グフ☆\(--#)

[5782] 掲示板のツリー構造がおかしい?

konno 2025/04/10(Thu) 22:06
[関連記事]
今の「N88-BASICのRENUMのようなマクロ」のツリーは#5731からですが
一括表示にするとその上に#5770が来ています。
どうも掲示板のツリー構造がおかしくなっているように見えます。

一度ログのバックアップを取って確認してみたほうが良い気がします。
新規の発言にしてしまいましたが、必要ならこれは削除しても構いません。
ご確認願います。

[5781] Re^18: N88-BASICのRENUMのようなマクロ

めざら 2025/04/10(Thu) 20:42
[関連記事] [5780]へのコメント
http://mezala.la.coocan.jp/
そういえば,わたしのは + を入れてなかったんだっけ。

で,わたしの手法だと打ち止めです。限界がわかったので。

[5780] Re^17: N88-BASICのRENUMのようなマクロ

文太 2025/04/10(Thu) 15:18
[関連記事] [5779]へのコメント
>[\s\t]+ のことをすっかり忘れて
 [\s\t][0-9]+	;直前の空白文字1つのみ

 とすれば、バッファの節約になりませんか?
 それぞれのやり方で完成に近づいているみたいですね!

[5779] Re^16: N88-BASICのRENUMのようなマクロ

めざら 2025/04/10(Thu) 10:53
[関連記事] [5773]へのコメント
http://mezala.la.coocan.jp/
> 考慮漏れといえば、検索文字列バッファのすり替えというか退避

これは自前でなくても ps[=pa, …… ps], でも十分でしょう。

手元でちょっとした失敗があったので,ご参考までに。

自前バッファを最初は「行番号だから8バイトもあればいいだろう」ということにしたら,どうやってもうまくいかない。バッファの中身を見たら行番号が途中でちょん切れていました。[\s\t]+ のことをすっかり忘れていたわけです。

大は小を兼ねる。まぁ,大きすぎる必要もありませんが……。

[5778] Techknow シリーズ

文太 2025/04/10(Thu) 10:35
[関連記事] [5770]へのコメント
 微妙に違いますけどね。MSXより、こっちのほうが近いのでは?
 なお、スペリングミスがありました。"Techknow" が正しい。

>> ということで引っ張り出してきたのが、ASCIIの出版した「PC-Techkonw 8800」
>> という本。ISBN4-87148-292-8。archive.orgにあるかなぁ。
>ググったら MSX2のがありました。\(^^)/

C:\WK\0000>bll
PC-Techknow 98V 安井勉 1986_text.pdf
PC-Techknow6000Vol1_text.pdf
PC-Techknow8000.pdf
PC-Techknow8801 Vol.1 1982_text.pdf
PC-Techknow8801mkII.pdf

 もちろん中身は見ていません。
 もー大変になっちゃってるのよん! あーやだやだ。

[5777] Re^17: N88-BASICの中間語

めざら 2025/04/10(Thu) 07:24
[関連記事] [5775]へのコメント
http://mezala.la.coocan.jp/
> ちなみに私は常時RX+です。

「別にどうでも……」とは言ったものの,手元でだけなら問題はありませんが,場末とは言え「おおやけ」の場に書くなら RX の退避・復帰は必要かと思います。

赤く塗っても中身は一緒?

[5776] Re^11: renum.def 改

めざら 2025/04/10(Thu) 07:05
[関連記事] [5772]へのコメント
http://mezala.la.coocan.jp/
> 4000 FOR I=1 TO A:NEXT'4000

ふ〜む。もしも I = 1 という記述だったら,わたしのだと変換の対象になりうるってことですね。1ならスルーされるとしても,2000 とかだったら必ず……。

やはり,キーワードを教えてもらわないとだな。


G寝た(笑)

[5775] Re^16: N88-BASICの中間語

としき 2025/04/10(Thu) 00:34
[関連記事] [5770]へのコメント
http://toshiki.la.coocan.jp/
> VZで開いて見えたイメージをテキストにしたのです。ここの人達ならわかるかと。(^^;

全くわかりません。
というか、テキストにしたことによって情報が化けてしまい、正確性が失われてしまっている。
化けた情報から元の情報を推測するなんてこと、konnoさんのようなニュータイプにしかできません。
どうもkonnoさん、善人かもしれませんが、自分の基準で他人を推し量る傾向が強いとみた。
もしくは、思考の柔軟性に欠けているのか。

> マシン語ならそのくらいで出来るかもしれませんね。
> せっかくなので私も DEBUG の結果を張っておきます。

これこれ、こういうのがほしかった。
これなら例えば GOSUB は A4 01 0E あたりかな、INPUT は A7 っぽいな、とわかりやすい。

ちなみに私は常時RX+です。

[5774] Re^12: N88-BASICのRENUMのようなマクロ

としき 2025/04/10(Thu) 00:33
[関連記事] [5768]へのコメント
http://toshiki.la.coocan.jp/
> 「必ずしも」と言うからには,通るときも通らないときもあるってことで。

これは「省略可能」という用語をいささか曖昧というか厳密性を欠いた方向に言い換えただけのような気がする。

> どこにこだわるってのはありますけど,文法にこだわるのは大切。
> また美しく読みやすくコーディングするって,一番大事なことだと思う。

文法は、こだわらないと、コンピュータ相手の場合は、きちんと動いてくれませんからね。ただ、美しく読みやすく、という点は、使い捨ての場合はこだわる必要もないと思う。もちろん、こだわったほうがいいのは間違いありません。でも、逆に、何回もみることになるコードの場合、見るのもうんざりするようなコードは、やっぱり見たくなくなるわけで。そんなコードは書きたくないな。

[5773] Re^15: N88-BASICのRENUMのようなマクロ

としき 2025/04/10(Thu) 00:33
[関連記事] [5769]へのコメント
http://toshiki.la.coocan.jp/
新バージョンありがとうございます。のちほど試させてただ来ます。

まずはこちらから。

> あと,ひとつ。重要な仕様の再確認なのですが……
> goto gosub だけでよいのですか? then とか else は?
> わたしはキーワードに束縛されないように組んでいるけど,気になる。

惑わせてしまって申し訳ない。
手元では GOTO GOSUB THEN ELSE RESTORE RESUME の置換を行うようになっています。
とはいえ、実は GOTO と GOSUB 以外はほとんどコメントアウトして実行しています。
それだけで十分に試験の役に立つと考えたからです。
GOTO だけでも試験できるかもしれませんが、1つだけだとうまくいっても複数だとうまくいかない、という経験があるもので、その2つを変換するようにしています。
で、一応、文法的には、その他に RETURN も行番号をとるので、フルスペックというかオリジナルに対する高い互換性ということを考えると対応したほうがいいのでしょうが、私にニーズがないので省略。
もうひとつ、これは当初は考慮漏れだったのですが、現実的にはニーズがないのでどうしよう、というのがあって。なにかというと、異体字、ではないな、表記の揺れ、といったほうがいいのかもしれない。実は、GOTO って、"GO TO" という、あいだに空白が入った表記を許容するのですよ。フルスペックを目指すなら、ここも対応が必要なところ。しないけど。

考慮漏れといえば、検索文字列バッファのすり替えというか退避も、全く考えていませんでした。完成バージョンでは必要でしょう。ただ、完成前の段階では、ヒストリーで残っていたほうがデバッグの役に立つな、と考えています。


> FGO(Fateか)なんてキーワードがなきゃいいですが……でも,
> カーソル移動とか発生しませんか?

厳密性を問わなければ、最初の変換で GOTO を FGOTO に変換。
そして最後に、FGOTO を GOTO に一括置換。
う〜ん、安直。

[5772] Re^10: renum.def 改

konno 2025/04/09(Wed) 17:35
[関連記事] [5753]へのコメント
#5753 のとしきさんのマクロを見直しました。
あれ? 正規表現を使っているのに RX+ が無い? としきさん、RX+ 派だったの? (^^;
ということで、めざらさんのマクロから部品を拝借して、マクロの冒頭に

mp[=2, ps[, RX[+, Ec[+,		;★ ;検索モード,正規表現,英大/小文字同一視有効

この行を追加
GOSUB ルーチンの後ろに

#56 "THEN\([ \t]+\)" &?("%d",o) "$$" #m		;★ これ以降コピペして追加
    "THEN\1" &?("%d",n) #m "ay"
#56 "THEN\([ \t]+\)" &?("%d",o) "\([^0-9]\)" #m
    "THEN\1" &?("%d",n) "\2" #m "ay"

#56 "ELSE\([ \t]+\)" &?("%d",o) "$$" #m
    "ELSE\1" &?("%d",n) #m "ay"
#56 "ELSE\([ \t]+\)" &?("%d",o) "\([^0-9]\)" #m
    "ELSE\1" &?("%d",n) "\2" #m "ay"

>w
:u 
Ec], RX], ps], mp], . 				;★ 追加

*

これらを追加、変更したら正常に動作するようになりました。

10 A=10:GOSUB 4000'10
30 INPUT A'30
200  IF A$=CHR$(13) THEN 3000 ELSE 200'200
210 'if a$=chr$(13) then 3000 else 200	'210
300  GOTO 30'300
3000 END'3000
4000 FOR I=1 TO A:NEXT'4000
4200 RETURN'4200
   ↓ ↓ ↓
10 A=10:GOSUB 70'10
20 INPUT A'30
30  IF A$=CHR$(13) THEN 60 ELSE 30'200
40 'if a$=chr$(13) THEN 60 ELSE 30	'210
50  GOTO 20'300
60 END'3000
70 FOR I=1 TO A:NEXT'4000
80 RETURN'4200

コメント行も変換されますが、むしろこの方がいいかも。
それにしても、RX+かぁ・・・ ハッ!! RX78・・・ガンダムネタか?


#「ようやくわかりましたよ、シャア少佐。よしんばこのネタを打ち漏らしても、
 我が見方の方に引き寄せる、二段構えの作戦ですな」

[5771] Re^16: likereno.def

konno 2025/04/09(Wed) 16:54
[関連記事] [5767]へのコメント
> そもそも「コメント行」がどこなのかわからないし,そんなの知らんし。
> さらに,飛び先に前置された命令にどんなものがあるか知らされていません。
> つまり仕様ですね。

なるほど。それぞれの思惑は羅生門のように一致しない、と。(^^;

> > > (4) VZ側でのワードサーチは無視されます。
> やっぱりそっちか〜。となると手がない。一括置換式はギブアップかな〜。

としきさんのは一括置換式ですよね。見直したら正常動作するようになりました。
詳細は後ほど。(^^;

[5770] Re^15: N88-BASICの中間語

konno 2025/04/09(Wed) 16:53
[関連記事] [5766]へのコメント
> konnoさんが誠実な人であるのは間違いがないところでしょう。

根がいい加減なのでなるべく誠実なふりをしているとバレてるかもしれんが。(^^;

> > NP2でN88BASIC を使って RENUM や中間語に変換してみました。
> これ、変換に使ったツールの記述はありますが、変換後をどうやって表示している
> のかがよくわからない。文字化けっぽい表記になっている、というのもあって。

VZで開いて見えたイメージをテキストにしたのです。ここの人達ならわかるかと。(^^;

> ということで引っ張り出してきたのが、ASCIIの出版した「PC-Techkonw 8800」
> という本。ISBN4-87148-292-8。archive.orgにあるかなぁ。

ググったら MSX2のがありました。\(^^)/ 
https://archive.org/details/MSX2TechnicalHandBookFE1986/mode/2up

> この本には、ROM内のルーチンのどのアドレスに何をするコードがあるか、と
> いう表も載っていて、それによると、RENUMを行うルーチンは75DDH〜7673Hに
> あるとか。なんと、150バイト。もちろん、どこかよそのサブルーチンを呼んで
> いるのかもしれませんが、でもRENUMでも使うような汎用性のあるルーチンて
> ちょっと思いつかないので、これで全部のような気もする。

マシン語ならそのくらいで出来るかもしれませんね。
せっかくなので私も DEBUG の結果を張っておきます。

3D6A:0100  FE 15 00 0A 00 01 41 00-F1 0F 0A 3A A4 01 0E A0   ......A....:....
3D6A:0110  0F 00 27 31 30 00 0E 00-1E 00 01 A7 01 41 00 00   ..'10........A..
3D6A:0120  27 33 30 00 24 00 C8 00-02 A8 01 41 00 24 F1 FF   '30.$......A.$..
3D6A:0130  9C 28 0F 0D 29 01 D6 01-0E B8 0B 01 3A 99 01 0E   .(..).......:...
3D6A:0140  C8 00 00 27 32 30 30 00-2E 00 D2 00 01 00 27 69   ...'200.......'i
3D6A:0150  66 20 61 24 3D 63 68 72-24 28 31 33 29 20 74 68   f a$=chr$(13) th
3D6A:0160  65 6E 20 33 30 30 30 20-65 6C 73 65 20 32 30 30   en 3000 else 200
3D6A:0170  09 27 32 31 30 00 10 00-2C 01 02 A3 01 0E 1E 00   .'210...,.......
3D6A:0180  00 27 33 30 30 00 0D 00-B8 0B 01 9A 00 27 33 30   .'300........'30
3D6A:0190  30 30 00 19 00 A0 0F 01-9E 01 49 00 F1 11 01 DA   00........I.....
3D6A:01A0  01 41 00 3A B7 00 27 34-30 30 30 00 0D 00 68 10   .A.:..'4000...h.
3D6A:01B0  01 C6 00 27 34 32 30 30-00 1A 00 00 00 00 00 00   ...'4200........

10 A=10:GOSUB 4000'10
30 INPUT A'30
200  IF A$=CHR$(13) THEN 3000 ELSE 200'200
210 'if a$=chr$(13) then 3000 else 200	'210
300  GOTO 30'300
3000 END'3000
4000 FOR I=1 TO A:NEXT'4000
4200 RETURN'4200

[5769] Re^14: N88-BASICのRENUMのようなマクロ

めざら 2025/04/09(Wed) 13:38
[関連記事] [5764]へのコメント
http://mezala.la.coocan.jp/
お忙しいのにこちらばかり盛り上がって申し訳ない。
まだ学校が始まっていないので,超絶ヒマしてます。
その一方で畑仕事のエンジンはかからないままです。

週末以降に次の v0.20 を試してみてください。初版は破棄します。

= likereno v0.20 = by H_ear
#if 0
Like RENUM
#endif
* mad for vz!
1 ^\ "" ?.
        #^ #<
        a=10,                           ;増分値 (a)
        &n b=c=r,                       ;番号付開始値を取得 (b/c) 可変
        (r+1)??{ &m(41) . }             ;準備ができていないなら終了
        mp[=2, ps[, RX[+,               ;検索モード,正規表現有効
        &01 ps=r,
        mi[-,                           ;挿入有効
 :L     ; ---- main loop ----
        #t &?("%u",b)
        &#M(1)                          ;戻る位置をマーク
        ; ---- 飛び先の処理
        ; #56 &?("[\s\t]%u",c) #m &?("♭%u",b) #m "ay" ; v0.10 ×
        ; \x は \w を無効化するため マッチした番号を &n で都度確認
        #F &?("[\s\t]%u",c) #m
        #^ #<
 :J     #c
        (r)?{                           ;見つからなければ
                &#U(1) >N               ;戻って次行へ
        }?{                             ;見つかったら
                #f &n                   ;番号の照合
                (r==c)?{                ;一致すれば
                        #t &?("♯%u",b) ;飛び先に書き換える+処理印
                }
                >J                      ;次を探す
        }
 :N     #> #d                           ;通常は r==-1 なら停止だが
        &n c=r,                         ;旧行番号を取得 (c)
        (r+1)?{ b+=a, >L }              ;&n の値が不正になるので無視
 :Q     ; ---- 飛び先有効化 ----
        #56 "♯" #m "" #m "ay"
 :z     ; ---- exit ----
        mi], RX], ps], mp],
        &d #] .
01:     ; ---- buffer ----
        (5+$)."$(10,0)$[16]"
*

> 単にGOTOやGOSUBの頭にフラグという意味で"F"をつけるだけでもいい

このあたりは好きずきでしょうね。わたしは昔から一時文字使用派です。
確か,最初の実用仕事マクロでも使った手でした。骨身に染みてる。
FGO(Fateか)なんてキーワードがなきゃいいですが……でも,
カーソル移動とか発生しませんか?

> アルゴリズムを見るといずれも、旧行番号と新行番号の対応表を作る

最初はそうするものかなぁ……と思って,旧番号抽出マクロを作っては
みたのですが,ひどく面倒だったので付け替え単位にしました。


あと,ひとつ。重要な仕様の再確認なのですが……
goto gosub だけでよいのですか? then とか else は?
わたしはキーワードに束縛されないように組んでいるけど,気になる。

↑ このページの先頭