新規投稿は記事一覧のフォームからお願いします
> 誤動作が怖くて RX+ には出来ません。
> そういえば、ZK じゃなくて、ZH+ 全/半同一視もVZでは使わないなぁ。
> どうも掲示板のツリー構造がおかしくなっているように見えます。
> 微妙に違いますけどね。MSXより、こっちのほうが近いのでは?
> PC-Techknow 98V 安井勉 1986_text.pdf
> PC-Techknow6000Vol1_text.pdf
> PC-Techknow8000.pdf
> PC-Techknow8801 Vol.1 1982_text.pdf
> PC-Techknow8801mkII.pdf
> もちろん中身は見ていません。
> もー大変になっちゃってるのよん! あーやだやだ。
> もしくは、思考の柔軟性に欠けているのか。
> > せっかくなので私も DEBUG の結果を張っておきます。
> これこれ、こういうのがほしかった。
> ちなみに私は常時RX+です。
>[\s\t]+ のことをすっかり忘れて[\s\t][0-9]+ ;直前の空白文字1つのみ とすれば、バッファの節約になりませんか? それぞれのやり方で完成に近づいているみたいですね!
> 考慮漏れといえば、検索文字列バッファのすり替えというか退避
>> ということで引っ張り出してきたのが、ASCIIの出版した「PC-Techkonw 8800」
>> という本。ISBN4-87148-292-8。archive.orgにあるかなぁ。
>ググったら MSX2のがありました。\(^^)/
> ちなみに私は常時RX+です。
> 4000 FOR I=1 TO A:NEXT'4000
> VZで開いて見えたイメージをテキストにしたのです。ここの人達ならわかるかと。(^^;
> マシン語ならそのくらいで出来るかもしれませんね。
> せっかくなので私も DEBUG の結果を張っておきます。
> 「必ずしも」と言うからには,通るときも通らないときもあるってことで。
> どこにこだわるってのはありますけど,文法にこだわるのは大切。
> また美しく読みやすくコーディングするって,一番大事なことだと思う。
> あと,ひとつ。重要な仕様の再確認なのですが……
> goto gosub だけでよいのですか? then とか else は?
> わたしはキーワードに束縛されないように組んでいるけど,気になる。
> FGO(Fateか)なんてキーワードがなきゃいいですが……でも,
> カーソル移動とか発生しませんか?
#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・・・ガンダムネタか? #「ようやくわかりましたよ、シャア少佐。よしんばこのネタを打ち漏らしても、 我が見方の方に引き寄せる、二段構えの作戦ですな」
> そもそも「コメント行」がどこなのかわからないし,そんなの知らんし。
> さらに,飛び先に前置された命令にどんなものがあるか知らされていません。
> つまり仕様ですね。
> > > (4) VZ側でのワードサーチは無視されます。
> やっぱりそっちか〜。となると手がない。一括置換式はギブアップかな〜。
> 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
お忙しいのにこちらばかり盛り上がって申し訳ない。 まだ学校が始まっていないので,超絶ヒマしてます。 その一方で畑仕事のエンジンはかからないままです。 週末以降に次の 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 は? わたしはキーワードに束縛されないように組んでいるけど,気になる。