以下、メッセージがちょっとあれだったので、そこだけ変えました。 ほんと、僕がほぼ弄ったことがないような変数ばかり使われてる (調整されている)。 そして、エスケープシーケンス。これについて調べたかった。 え? 文太が見栄え? はい。 バッチとかコマンドラインとかDOSメモリとかばかり、このところ 考えているので(ちょっとイミフでしょう、ごめんなさい)。 うん、人は変わるものです。 そして、噂の&kも使われている。 いやぁ、ほんと久しぶりなのに、Vzマクロもniftyも、なかなか 忘れませんね。青春。 なごんでください。taglight OFF がお勧めです。変な色が残るから。 マクロの終わり方もいいですね。 === Macrotmp ===; 08/12/00 m(_H_)m H岡さん in DC13 * M 50 ^^ "Macrotmp" ?. dc[-, de[-, &m("") :H an[-, as[-, &d &b(2) dx"$(1b)[12;25H$(1b)[7mしつこく暑い夏、皆さん、ガンバ v(^.^)$$", ax$900, &i($21) &w(60) as], an], &d &w(60) &k (r-$1B)?>H ;[ESC] で終了(^^;) de], dc], &m("God & Source be with you! m(__)m") &b(10) * 【参考資料】 @int21_09h @0900 @09 @F_DSPSTR ◇ F_21H標準入出力 int21_09h 文字列の表示 F_DSPSTR VER.1 互換。使用は推奨されていない。 (といってもこれしかない。使用例多数) 設定値 AH = 09h DS:DX = 文字列のアドレス --------D-2109------------------------------- INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT ★ AH = 09h DS:DX -> '$'-terminated string Return: AL = 24h (the '$' terminating the string, despite official docs which state that nothing is returned) (at least DOS 2.1-7.0 and NWDOS) Notes: ^C/^Break are checked, and INT 23 is called if either pressed standard output is always the screen under DOS 1.x, but may be redirected under DOS 2+
(ちょびっと修正・加筆しました。) ゆっくり書きたいのですが(意味ないけど)、速攻で。m(__)m 前略。 --- 00.bat --- head -20 .\2cap31\2cap31.doc >>sum1.txt head -20 .\2csv11\2csv11.doc >>sum1.txt head -20 .\2htm16\2htm16.doc >>sum1.txt head -20 .\2txt11\2txt11.doc >>sum1.txt (後略) -------------- うまくwild.exe by Siが使えないかな、と思ったのですが、allfiles.exeと いうので、ファイル名を全部取り出し(>allfiles *.doc)、加工して、 上を得ました。 もちろん、行頭、行末は、「^」と「$」を使って書きました。cols.defが 得意なところ。50行くらいのファイルです、上。 使うのではなく、ソースを読むために、上のツールをコレクションしています。 フィルター系ばっか。Cのほうが楽なのだろうとは思うけど、アセンブラ・ ソース。貴重。 で、それぞれのドックの頭20行を1つのファイルに得たところで、 この読みづらさをどうする? と思う。 そうだ20行ごとに区切り線を入れよう、と思いつく。ファイル群の インデックスを作っているのですね。上では分からないでしょうけれど、 何しろ実行ファイル名がけっこう変なので。 さて、どうやって? 結論だけ(途中Vzマクロのモード型でごにゃごにゃすること30分)。 ----- 0.sed ----- #ssed -f 0.sed sum1.txt >sum2.txt 20~20i\ \ \ ===================================================================== ----------------- (追記:insert text の末尾が改行は許されないようです) これだけ。 「20~20」のアドレッシングがミソ。 ------- sed.shd ------- @~_ @~ アドレッシング <m>~<n> mから始めてn行ごと (gsed v3.02.80+) Sed -n 1~2pとすると、奇数行を出力。2~5は2行目から数え 始めて5行ごとの行をアドレスとして指定したことになる。 example: ※ssedで日本語ファイルOKだった 20~20i\ =============== 20行から始めて20行ごとに==を挿入 ----------------------- (Vzマクロだと1行挿入すると+1していかなくてはならなくて。Sedだと 挿入行は行カウンターに入らないのです。これが問題だったのではないのですが。 Vzマクロは長くなるのです。すぐバグを入れてしまうのです。) これは GNU の拡張であること。 そして、ssedという英語用 sed(もちろんWin用)でもスクリプトが 通ったこと(文字コードのこととか分からないですぅ)。 ま、中の文字に触れてないから大丈夫だろう、と。 この2点を報告したかったのです。 たぶん、onigsed.exeでも、これは大丈夫でしょう。serowとかlogosとかは、 もちろん、ダメですよ。(追記:onigsed.exe, 通りました) あとがき:Win用ということは、英語圏でも、改行は\n($0d0a)だってことですね。 当たり前か。もちろん、SJISの正規表現なんて通じるわけがありませんが。 とはいえ、「^」と「$」で、何かを書くだけなら、いけるかな?
> --- 00.bat ---
めざらさん 正直に回答してもあまり意味がないだろうとも思うのですが。m(__)m>こんなにたくさんのツールを使い分けているわけですか? 驚異的……実用ではありません。試用ぐらいはすると思うけど。>文太さんの使うツールだからコマンドラインツールなんですよね。DOS用、LFNなしの主にフィルタ−系単機能ツール群です。 ソースを読むためにコレクションしました。比較的DLしたてです。 だから中身が分からない。インデックスが必要。>使う前に,>command /? でその都度確認しないとちょっと使えないかな。偉いことに、これがないと思う。単機能。 # 大文字への変換>2CAP INFILE# 小文字への変換>2LC INFILE# 大文字←→小文字の交換 (3)>2CAPLC INFILE# 頭文字大文字、ほか小文字への変換>2WCAP INFILE>dir2001/07/05 02:52 3,117 2CAP.ASM 2001/07/05 02:53 2,843 2CAP.COM 2022/08/27 00:02 3,175 2CAP.DOC (以下略) これらは、名前から用途が比較的かんたんに類推できる連中です。 コマンドライン引数解釈に凝っていて、そこがやたら長いソースです。 ヘルプがないのに? はい。 niftyでそれなりの数がDLされていたみたいです。難しいことが嫌な人 (たとえば僕)にとっては、PC用ソフトって、用途が合致したら、余計な 機能はないほうが楽なのでしょう。 上の4つ、7、8割がた、ソースは同じです。 うーん、今、これをsedでやるとしたらどうする? と考えましたが、 (3)は泥縄で、ぜったいやりたくない方法しか思いつかなかった。まだまだ 甘いな。方法はあるような気がするのだけど……。もちろん、そんな用途は ないんですけど。 A (41h) a (61h) 数が数えられるVzマクロがぜったい楽だ。 別に回答いただかなくてもいいのですが、ふとある質問が頭をよぎりました。 質問させてくださいね。 めざらさん、ベーシックってどれくらいやられましたか? いつかそこそこ やってみたいな、と思って、QBasicの本をちらっと見ました(5,6冊所有)。 大文字なんですよね。 (追記) ヘルプはありました。 C:\>2cap 大文字に>2CAP FILE1 FILE2 FILE3 .. ret (追記2)できた! 日本語環境さまさま。 y/A...Z/あ...は/ #26文字 y/a...z/A...Z/ y/あ...は/a...z/ ファイルに日本語が入っていたら完全にこけます。 日本語が入っているファイルなら、s///の荒らし。このツールのお世話になります。 別のロジックはないか? しかし、いったいどんな時にそんな処理が必要なんでしょう? (追記3) 正解:そうだよ、1文字ずつ処理ならこれでいいよ。マシン語だから十分速いよ。 日本語対応もしてるよ。 (ラベル名が変ですが、僕のじゃないので、気にしないでください。でも コメントが優しいでしょ) ;漢字ではないとき 大文字小文字交換 jn: cmp al, 41h ;a から jb owl cmp al, 5ah ;z まで ja omjn add al, 20h ;小文字に変換致します。 mov ji, al jmp owl omjn: cmp al, 61h ;a から jb owl cmp al, 7ah ;z まで ja owl sub al, 20h ;大文字に変換致します。 mov ji, al jmp owl kfl db 00h ;漢字フラグ owl: ;◆これ、「終わり」だよ。
> # 大文字への変換
> >2CAP INFILE
> # 小文字への変換
> >2LC INFILE
> # 大文字←→小文字の交換 (3)
> >2CAPLC INFILE
> # 頭文字大文字、ほか小文字への変換
> >2WCAP INFILE
> # 大文字←→小文字の交換 (3)
>これって、同一の作者の作品でしょうか。
>差し支えなければ、作者のお名前をお教えいただけますか?
>> # 大文字←→小文字の交換 (3)
>これ、文太さんの希望がどのようなものかがわかってないのですが、
> 藤井 陽一/ふじい よういち (さん)
>思い出は全て美化され始めています。
>> 藤井 陽一/ふじい よういち (さん)
>あぁ、やっぱりもぐらさんでしたか。覚えています。
>この系統のツールを量産される方でした。
>口の悪い人は、粗製乱造、なんていい方もしたかも。
>でも、相手はカッカしているのに、もぐらさんはマイペースというか暖簾に腕押しというか、
>相手のいっていることが理解できていないのか。
> 権力への批判はつねに忘れるべきではない
> 先生はつねに偉い。
> 乱造でもなく、常に生産していたい人だったんじゃないのかな? ネットワークで見てるだけですむときには、がんばるなぁ、という感想だったのじゃないのかなぁ。
> >相手のいっていることが理解できていないのか。
> こうなれるのが、一つの才能です。
> 先生を選べるのが独学のいいところですね。
としきさん 簡単にすませよっと。 どうやら、白い鯨の尻尾を踏んでしまったようで。 一部分からないところがありましたが(文化的言及だろう)、全体にうんうん、と。 まず、「先生はエライ」は誤解まねくだろうな、と思ったけど、学習者は先生 をエライと思ったほうが得です、というだけです。 ただ、やはり、先生は選びたいですね。 あと、学校は権力装置。間違いなく。学校、病院、軍隊。近代の社会秩序の 生産装置。権力関係の源泉。ミシェル・フーコーという人が有名です。 たぶん計10時間くらいソースとお付き合いしました。うわっと思うこと12回、 なるほど! と思うこと10回、どこまでやって卒業しようかと悩むこと3回、 ぐらいです。 サブルーチン・コールをするように書き換える。マクロに分けのわからない要素を 入れない。2cap.asm (2cap.h でなく) に、いきなり分けのわからない siが突然 出てこないようにする、etc etc .... たぶん、他の先生を探しそう、、、かな。 < ちょっと奢ってるぞ、感謝せい。 車輪の2度目発明。間違いなく。 間違った方向への進化。たぶんそう。進化成長はないかも。 しかし、すんごい記憶力。こういうところありますね、としきさん。ちょっとした 才能だと思いますよ。僕にはないもの。老化ではなく、元々なかった。 僕は、「先生」が幸福であったかそうでなかったかに強い関心はありませんが、 幸福だったんじゃないかな、と思う。12年とかでしょ。でも、あのやり方じゃ 成長しねえぞ、と思う。晩年の作品のソースはまだ見てませんが。 構造化って言うんだよ、それ。あ、あ、あ、やばい。 熱中するって、自分の世界をつくりそこに引きこもることですよね。それをこれだけ 継続できたら、幸福だったろうな、とやはり思う。 じゃなんのために発表する? やっぱり、他者の評価が欲しかったから。褒め てもらったり感謝されたりしたかったから。普通の人だったのでしょう。 nifty でのDL数は少数でした。ベクターで数千。ベクターはほぼタダですか らね。 ま、勉強になっています。「表」と「¥」とかね。ああ、参った。それを勉強 することになるとは。これは、もうアセンブラとかコンパイラとかライブラリー とかで片付いた問題なんですかね? MS-DOS で、SJIS で、アセンブラでやって る限り、自分で解決するしかないんですかね? そういうのあったねぇ、遠い目、 って感じ? ;----- wchar handle ----- ifkanji macro kjyes local kjno cmp al,81h ;80H〜9FH,E0H〜FFH jb kjno ; = 2byte char's first code cmp al,9Fh jbe kjyes cmp al,0E0h ;こういうところは、0を入れなくちゃ jb kjno ;いけないんだよ、と cmp al,0FCh ;もぐらさんに思い出させてもらいました。 jbe kjyes kjno: endm これだけではすまないはず。もっと深い。でも美しいねぇ。 zcopy.asmでも、やってるはずなんだよな。あれも美しいですぅ。 原理が少し分かっただけで、ますますVzに感謝しちゃう。秀丸だって同じこと、 してるはずだけどね。それが、どれだけコンパイラとかライブラリーとかにしてもらった ことなのかは、僕には分かりませんが。 (追記)後半を読み返したら。TS(DCにもいたかな)にISS** という方がいましたね。引用がやたら長くて、ねこさんとケンカしてました。Zaz??さん (パワフル sedder)は、人格者(あるいは偽善者)な感じでした。 この辺は止めときましょうね。自分にも刺さるから。
> どうやら、白い鯨の尻尾を踏んでしまったようで。
> たぶん計10時間くらいソースとお付き合いしました。
> いきなり分けのわからない siが突然出てこないようにする
> nifty でのDL数は少数でした。ベクターで数千。ベクターはほぼタダですからね。
としきさん 興味はないでしょうが、すいませんね、手元に資料があったものですから。>裏表画面パレット高速切り替え表示 10 PALAV10.LZH 95/08/14 29446一番右の数字がベクターでのDL数じゃないかと思うのだけど、ベクターでは そのような数字は、表には出していないような気がする。現在時点では、少なく とも。約3万回DL、たぶん。だいたい最高回数だと思う。 NEC 98用じゃないかと思うけど、そんなに需要のあるソフトなのかな? 253個。LZH -> LZH の置換によるカウント。これが彼の nifty での作品の アップ数。 同じものを verup してULしてるみたいだけど、100種類以上は 作っていたように見える。ま、オプションで4つを1つに纏めようとするのが 普通だろうよという作品を含めてだけど。Upper/Lower/UPLWer/ 頭文字のみ Upper みたいなの。 「フーコーの振り子」。うん遠く遠く知ってたけど、ググラないと、すぐ誰だか 分からなかった。レオン先生なんですね。理科の時間に出てきた偉人については、 たぶん、ほんと忘却のブラックホールに消えていってますね。 あ、こういうタイトルの小説があった。もってた! エーコだ。う、やだやだ。 (しつこいけど)表の 2Cap.asm (*.h でなく) で、いきなりラベルジャンプ したり、いきなり意味不明 si が出てくることはあると。ただ、量産する気なら、 きちんとパーツ化しようとすると思うのだけどなぁ。 ま、色んなところに色んな人がいるので外れてるかもしれませんが、大学【職員】 なのじゃないかな? ストレスにまみれている人たちです。いっぱい見てます。 研究者は、はやり、あれはやらないと思う。効率を求めるだろうから。その公表は、 違う方面の自尊心を損なうと思う。ま、変人もいるからなぁ……。>ドライブ情報取得 di10.lzh 03/08/29 5843>ドライブファイルサイズ dsize10.lzh 03/08/29 8037年月日はあてにならないけど、たぶん晩年。あんまり、進化とか効率とかとは関係 がないように見える。 ま、あまり周りにちやほやされるタイプではなかったろうと思うけど(.docの 書き方からしても)、それでも、幸せだったんじゃないかな、と(しつこいけど) 思います。先生が幸せな人なのは、僥倖でしょう。 読みにくいのだけど。 とはいえ、コマンドライン解析(分からない話でごめんなさい)は、多少変だけど、 合理性はあります。しばらく考えて、ああ、そういうことか、と納得してます。 「省略ワイルド」とか要らないと思うけどね。そういう独自な世界へ一人で進化され ても……。ま、許そう。偉そうだな。
ほぼ独り言です。 さらっと、しれっと報告しておきます。 もぐらツールなのですが、MASMのソースが付いてきます。でも、これ masm6用 の疑似命令がいっぱい入っているようで、Win用(?)の ml.exe でしかアセンブル できなかったんですね。これじゃ困るのです。DOS 用 MASM でアセンブルできない と。DOS 機でごにゃごにゃするのが好きなので。>Microsoft (R) Macro Assembler Version 6.14.8444>Copyright (C) Microsoft Corp 1981-1997. All rights reserved.>cannot run in DOS mode知ってましたよ、わざとやりました。↑ で、ま、ごにゃごにゃうろうろしました。 ml.exe 244,690 1991-04-03 14:59 というのが version 6.00 の DOS用の(?)masm ないし ml.exe だと判明。 しかしアセンブルできない。 dosxnt.386 dosxnt.exe を入れろと。な、ないじゃん >whereis dosxnt.386 c:\masm6 (いわゆる dos extender ですよね? このマシンは元XPであったDOS マシンです。CPU は、セレロンだけどペン3ぐらいです) ところが、masm611 (version 6.11) にはありました。コピー。 できました! いろいろと問題のあるソースなのですが、コツコツがんばりたいと思います。 変なところは変だ(独特な癖)、とは気づけているので、染まらないから 大丈夫です。やっぱりソースが長くて、1日に1つ学ぶと、続きは明日、という ようなことになっています。「そうか、local 疑似命令のところだけ、ラベルが 数字変換して、local でないと、そのままなんだ」というのが今日の収穫。 tasm 1.0 とか optasm ? とかでアサンブルできるようになるまで、このソースを 書き換える、というのは僕の目標には入っていません。そこまで野心的ではあり ません。深いんですね、アセンブラ。疑似命令。 報告したかったのは以下です。 C:\01>What ml.exe ml.exe: Microsoft (R) Macro Assembler Version 6.00 C:\01>Strings ml.exe (ryaku) @(#) Microsoft (R) Macro Assembler Version 6.00 (ryaku) 前回は、GNU ものでこれが効かなかったのですが(UNIX系ですからね)、 マイクロソフトものでは、きちんと機能しました。>Ml timeout.asmのように、Vzをスワップさせないとダメ。これが割と安心してやれるのが DOS機のいいところです。自慢でした、ごめんなさい。 としきさんに感謝です。多謝、としきさん。m(__)m もう時効ですよね、、、ボソ、、、。 「何をやろうとしてるのか分からない」とめざらさんにこぼされそうですが、 遊んでるだけです。でも、いつか、Vzの#Bのバグを取る! ウソ。 いそがば回れ。ぜったい回るだけで終わるでしょう。元の場所にはぜったいに 戻って来れない。 今日は達成感があったぞぉ。 フロッピーを使いまくっています。だから、>xcopy /S /E /T が大事だと。 DOS 6.20 では効かないのだけど。>Dir /S /AD からバッチファイルを手で作り ましたよ。複数枚のFDに同じディレクトリ構造を作ります。するとコピーが 自動化できる。これのために、それを求めていたわけじゃないですが。