ときどきの雑記帖 RE* (新南口)
It Might Be An Apple
削除
色々なサイトの記事の翻訳記事をたくさん置いていたあのサイトが いきなりなくなっていてびっくりした。 1/10にアクセスしたときはまだあって、 1/12の時点で
okuranagaimo.blogspot.com のブログは削除されました。このアドレスは新しいブログではご利用いただけません。
こうなってた。 現在はまた微妙に変わっているけどなくなっているのは同じ。
1/11はアクセスしていないので、どのあたりのタイミングで削除されたのかはわからん。
なくなった(削除された)と言えば 古いLispについての記事が良く投稿されていた あのサイトもなくなっていていたなあ (こっちに気がついたのは昨年の12月)。
まあ理由はいろいろあるのだろうけど。
絶滅メディア博物館
東京の神田に凄いの出来てた
— 編集長729号 (@koan9999) January 13, 2023
絶滅メディア博物館 pic.twitter.com/aoNepIOzgk
というのを見かけ、へーどの辺にあるのだろうとぐぐったら サジェストで「高円寺」とか「大手町」が出てきて (一方で「神田」はでてこなかった)どういうことだと思ったら、 先に高円寺にあって 神田(大手町)はオープンしたばかりだったということのよう。
「大手町の絶滅メディア博物館」公式ページ : 絶滅メディア博物館:Extinct Media Museum
【お知らせ / News】
・2023年1月13日オープン
住所: 101-0047 東京都千代田区内神田2-3-6 楓(かえで)ビル1階
住所としては「神田」だけど最寄り駅は神田駅か大手町駅と。
絶滅メディア博物館★公式(@extinct_media)さん / Twitter
メモ
- 松屋「ごろごろチキンの濃厚カルボナーラ」を発売 → 「お前シュクメルリだろ」「シュクメルリ2.0」と話題に(1/2 ページ) - ねとらぼ
- MSX0 Stackで伝説の8ビットMSXパソコンが甦り、IoT用コンピュータに - CAMPFIRE (キャンプファイヤー)
GNU
spotlight
12月分。
自分的にこれは。という更新は見当たらなかったけど
gcl-2.6.13: GCL is an implementation of the Common Lisp language. It features the ability to compile to native object code and to load native object code modules directly into its lisp core. It also features a stratified garbage collection strategy, a source-level debugger and a built-in interface to the Tk widget system.
GCLも更新続いてたのね。
Java
以前、GCCのJavaフロントエンドがなくなっていて云々という 話題を書いたことがあるけれど、復活の動きが出ている?
A Developer Hopes To Restore GCC’s Java Front-End - Phoronix
Those interested can find the current GCC Java front-end discussion via gcc-patches.
Java front-end and library patches v2
FORTRAN Compiler on IBM 704
CA000 ASSEMBLES STATEMENT
- x CA100
- x CA010
- SR6DC1
- TET00
- DIAG
- C0190X
- C0190
- CC500
REM CA000/ CALLS=CA100,SR6DC1,TET00,DIAG. 4F11641
REM CA000 ASSEMBLES STATEMENT IN THE F-REGION AND ASSIGNS AN IFN.4F11642
CA000をざっと眺めたのでお次はそこから呼び出しているサブルーチンをというところなのだけど、 CA000から直接呼び出しているSRCDC1などの前にC0190とC0190Xを見ることにする。
C0190X
これはC0190で使っている領域の初期化を行っている。
REM C0190X,4/ CALLERS=CD000,CB000,CC000,C0300,C3300. 4F10532
REM C0190X INITIALIZES C0190 TO OBTAIN 1ST WORD OF FORMULA IN F. 4F10533
C0190X CLA DCF SET FORMULA WORD 4F10534
STD FWA ADDRESS = -(F-REGION ADDRESS), 4F10535
SXD CHCTR,0 SET CHARACTER C0UNT = 0, 4F10536
TRA 1,4 * RETURN TO MAIN ROUTINE. 4F10537
REM END OF PROGRAM C0190X. 4F10538
操作している領域は以下の三つで
- DCF
- FWA
- CHCTR
具体的には以下のように定義されている。
DCF TXI C0180,0,-F REPEAT PROCESS FOR NEXT CHARACTER. 4F10528
FWA TXI C0152,0,** GO SET I FOR NUMERIC. 4F10468
CHCTR TXI C0191,0,** GO EXAMINE NEXT CHARACTER. 4F10573
命令コードの一部を変数に使っているというパターン。
TXI命令のインデックスレジスター指定部が0の場合、decrement part(上記の例での
-Fや**
が置かれているところ)は命令実行時には無視されるので
こんな使い方ができるという。
DCFのところで-F
としているのは
この値をインデックスレジスターにロードして使われる際には
符号が逆転するのであらかじめここでひっくり返しておくと。
FWA
の定義場所についてもう少し詳しく書くと
別のサブルーチンの中にある。
REM C0150,2/ CALLS=C0190,DIAG,C0180,C0160. CALLER=C0100. 4F10455
REM C0150 INSPECTS 1ST NB CHAR STARTING IN MQ. IF NUMERIC, SETS I4F10456
REM = 0, AND CONVERTS SUCCESSIVE NUMERICS TO BINARY. IF NON- 4F10457
REM NUMERIC, SETS I = -0, AND PACKS INTO 1G SUCCESSIVE CHARACTERS4F10458
REM UNTIL A ,()= OR ENDMK IS MET, AND LEFT IN THE AC. 4F10459
C0150 SXD C015X,2 SAVE THE C(XR2). 4F10460
TSX C0190,4 * TEST 1ST NON-BLANK CHARACTER 4F10461
CAS L(9) FOR NUMERIC OR NON-NUMERIC. 4F10462
C015X TXI C0151,0,** IF NON-NUMERIC, TRANSFER. 4F10463
NOP IF NUMERIC, THEN 4F10464
TSX C0180,2 * GO CONVERT TO BINARY. 4F10465
STO 2G SAVE NEXT NON-NUMERIC CHARACTER. 4F10466
CLA L(0) PREPARE TO SET I TO +0. 4F10467
FWA TXI C0152,0,** GO SET I FOR NUMERIC. 4F10468
C0151 TSX C0160,2 * ASSEMBLE NON-NUMERICS IN 1G. 4F10469
STO 2G SAVE PUNCTUATION MARK, AND 4F10470
CLS L(0) PREPARE TO SET I TO -0. 4F10471
C0152 STO I SET I = +0, OR -0. 4F10472
CLA 2G PICKUP NEXT CHARACTER, 4F10473
LXD C015X,2 RESTORE THE C(XR2), AND 4F10474
TRA 1,2 * RETURN TO CALLER. 4F10475
REM END OF PROGRAM C0150. 4F10476
このサブルーチンにはTXI命令が2個あるけれども、 一つ目はサブルーチン自身が使っている。 この種の「領域」の管理はどう行っていたんだろうか? 番地の若い順に割り当てかなあ。
DCFも同様でまた別のサブルーチンの中にある (今回はこのサブルーチンの詳細には触れない)。
REM C0180,2/ CALLS=C0190,DIAG. CALLERS=C0100,C0200,C0300,C0400, 4F10512
REM C1000,C1100,C1200,C1400,C1500,C0150. 4F10513
REM C0180 CONVERTS SUCCESSIVE NUMERICS STARTING IN THE MQ TO 4F10514
REM BINARY, PLACES RESULT IN 1G, AND LEAVES 1ST NON-NUMERIC IN 4F10515
REM THE AC. 1ST NUMERIC IS ASSUMED TO BE ALREADY IN THE AC. 4F10516
C0180X TSX C0190,4 * OBTAIN 1ST NUMERIC IN THE AC. 4F105165
C0180 STO 1G PLACE 1ST NUMERIC IN 1G. 4F10517
TSX C0190,4 * EXAMINE NEXT NON-BLANK CHARACTER, 4F10518
CAS L(9) AND IF NON-NUMERIC, THEN 4F10519
TRA 1,2 * RETURN TO CALLER. 4F10520
NOP IF NUMERIC, THEN 4F10521
STO 2G SAVE DIGIT IN 2G. 4F10522
CLA 1G MULTIPLY 4F10523
ALS 2 C(1G) 4F10524
ADD 1G BY 4F10525
ALS 1 10, 4F10526
ADD 2G AND ADD CURRENT DIGIT. 4F10527
DCF TXI C0180,0,-F REPEAT PROCESS FOR NEXT CHARACTER. 4F10528
REM END OF PR0GRAM C01080 4F10529
CHCTRも…と言いたいところだけど、自分でも使っているC0190の中なので 違いがあると言えばある。
C0190
C0190はOBTAINS IN AC THE NEXT NON-BLANK CHARACTER OF FORMULA
とあるように「次の一文字」を取ってくるためのサブルーチン。
REM C0190,4/ CALLERS=CD000,CB000,CC000,C0100,C200,C00300,C0400, 4F10556
REM C0900,C1000,C1100,C1200,C1400,C1500,C1600,C3000,C3100,C3200, 4F10557
REM C3300,C3400,C0150,C0160,C0190,SS000,ROYCNV,RSC,LPR. 4F10558
REM C0190 OBTAINS IN AC THE NEXT NON-BLANK CHARACTER OF FORMULA. 4F10559
C0190 SXD C0194,1 SAVE THE C(XR1), AND 4F10560
LXD CHCTR,1 SET XR1 = CHARACTER COUNT. 4F10561
LDQ RESIDU PICK UP ANY REMAINING CHARACTERS. 4F10562
C0191 TIX C0193,1,1 IF NONE, 4F10563
LXD FWA,1 PICK UP NEXT FORMULA 4F10564
LDQ 0,1 WORD FROM F-REGION, 4F10565
TXI C0192,1,-1 AND INCREASE 4F10566
C0192 SXD FWA,1 FORMULA WORD ADDRESS BY 1. 4F10567
LXA L(6),1 RESET XR1 FOR 6 NEW CHARACTERS. 4F10568
C0193 PXD ,0 EXAMINE 4F10569
LGL 6 NEXT CHARACTER 4F10570
CAS BLANK AND COMPARE WITH A BLANK. 4F10571
C0194 TXI C0195,0,** IF BLANK, 4F10572
CHCTR TXI C0191,0,** GO EXAMINE NEXT CHARACTER. 4F10573
C0195 SXD CHCTR,1 IF NOT BLANK, RESET CHAR COUNT, 4F10574
STQ RESIDU SAVE ANY REMAINING CHARACTERS, 4F10575
LXD C0194,1 RESTORE THE C(XR1), AND 4F10576
TRA 1,4 * RETURN TO MAIN ROUTINE. 4F10577
REM END OF PROGRAM C0190. 4F10578
6文字ごとのワード単位でしかアクセスできないので 1文字だけを得る(アキュムレーターに格納する)ために 色々やっている。
関連する(使用している)作業領域は以下の通り。
- CHCTR
- RESIDU
- FWA
- L(6)
- BLANK
CHCTRとFWAは既出なので省略して、 他のものは以下のような定義がされている。
RESIDU BSS 1 REMAINDER OF F-REGION WORD.(C0190) 4F10297
L(6) BCD 1000006 6 4F10327
BLANK OCT 60 000000000060 4F10339
まあ名前そのままっすね (と言いつつRESIDUは元の語が想像できん)。
さきほど気づいたんですが、いつの間にかエクセルでスムーズスクロール(セル単位ではないスクロール)ができるようになっています…?
— 風柳 (@furyutei) January 12, 2023
※Microsoft® Excel® for Microsoft 365 MSO (バージョン 2212 ビルド 16.0.15928.20196) 32 ビット https://t.co/2Ljnt8rD8h