2011年3月アーカイブ



菜園状況。トマトは芽が出ました。ナスはまだ。ナスの種は有効期限を半年過
ぎてしまっている。結構この期限って効くような気がしている。



ネジ穴をもう一度タップ入れて塗装を落として、後は完全硬化を待って組み立て。

マイOSはgcc-4.6.0/binutils-2.11化終了。俺V7mallocも完成。


黒を吹きました。何色でもいい時は隠蔽力の強い黒が楽でいい。例によってロッ
クエースで主剤60gでぴったし。シンナーx1.7で。表面はこだわらないので空気
多め柚肌上等セットで。

正直、塗装は腰が重い。お膳立て、後かたづけが面倒だし、時間にも追われる。 洗浄不足でガンを一個お釈迦にしてしまったこともある。 ガン捌く時だけはノリノリなんだけど(たぶん誰でもそう)。
実は途中で主剤が切れてしまい、久々に塗料のオカジマ樽町店に。ここずっと 通販使ってたから数年ぶりかも。綱島駅周りの狭っ苦しさはあいかわらずだね。 交差点の乗用車一台入らない大きさのガススタもまだやってるのか?

ミスト凄い。

塗膜が柔らかいうちに摺動部のマスキングを剥し。段々実用段階に近づいてきた。

V7 mallocのアルゴリズムの通りのマイmallocを書きおろし、H8/300H H8/3052 でLua。H8/300H、アドバンスドモードはアドレス空間が24bitなのでポインタは 32bit、マイOSでははintを16bitとしてるので、下手にポインタをintに入れる ようなのはだめなのだ。動いた。Lua流石だな。
$ tip hmon
connected
SIO@
stack_start: 0x9fffc
ROM data: 0x3d11c-0x3d694
RAM data: 0x9e000-0x9e578 1400byte
bss: 0x9e580-0x9fa38 5304byte
NMI return address|CCR: 0x80008646
delay_div=40
calibrated. delay_div=40
delay_div=40
calibrated. delay_div=40
H8/3052 ud01 Monitor Build Mar 30 2011 09:00:26
[ VIRTUAL VECTOR TABLE *OFF* ]
 OFF: overlay module, ON: standalone module.
>> l
~>Local file name? a.mot
808 lines transferred in 1 second 
!
Read 18065 byte. success
Start address: 0x813f0
stack_start: 0x9dffc
RAM data: 0x8181c-0x81820 4byte
bss: 0x81820-0x81828 8byte
NMI return address|CCR: 0x81408
ohayo0
->lua
sbrk:base=0x81828 size=8
sbrk:base=0x81830 size=1024
sbrk:base=0x81c30 size=1024
sbrk:base=0x82030 size=1024
sbrk:base=0x82430 size=1024
sbrk:base=0x82830 size=1024
sbrk:base=0x82c30 size=1024
sbrk:base=0x83030 size=1024
sbrk:base=0x83430 size=2048
sbrk:base=0x83c30 size=1024
sbrk:base=0x84030 size=1024
sbrk:base=0x84430 size=1024
sbrk:base=0x84830 size=2048
sbrk:base=0x85030 size=1024
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> 
> x=4
> y=3
sbrk:base=0x85430 size=1024
> z=4+x*y
> io.write ("hello",z,z,x,y,"world\n");
sbrk:base=0x85830 size=1024
stdin:1: ')' expected near '0'
> io.write ("hello",z,x,y,"world\n")
sbrk:base=0x85c30 size=1024
fwrite
hello1643fwrite
world
> 
次はLPC2388。これはsetjmp/longjmpを実装するくらいで終わり。
$ tip umon230400
connected
0x4000fff0
ROM data: 0x20f90-0x211bc
RAM data: 0x40000000-0x4000022c 556byte
bss: 0x4000022c-0x40000344 280byte
current stack=0x4000ffe4
Clock: IRC, PLL NOT connected, PLL MSEL:0 NSEL:0, CCLKCFG 0
Clock: MAIN, PLL connected, PLL MSEL:11 NSEL:0, CCLKCFG 3
sysclock:288000000Hz cpuclock:72000000Hz
PCLK0: 0, PCLK1: 0 PCONP: 4280ffe
bss RAM check passed.
user> elp
user> help
avaliable command: help reset test 
user> test
sbrk:base=0x40000344 size=8
sbrk:base=0x4000034c size=1024
sbrk:base=0x4000074c size=1024
sbrk:base=0x40000b4c size=1024
sbrk:base=0x40000f4c size=1024
sbrk:base=0x4000134c size=1024
sbrk:base=0x4000174c size=1024
sbrk:base=0x40001b4c size=1024
sbrk:base=0x40001f4c size=2048
sbrk:base=0x4000274c size=1024
sbrk:base=0x40002b4c size=1024
sbrk:base=0x40002f4c size=1024
sbrk:base=0x4000334c size=2048
sbrk:base=0x40003b4c size=1024
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> 
> x=3
sbrk:base=0x40003f4c size=1024
stdin:1: unexpected symbol near 'char(8)'
> x=3
> print "hello"
hello
> y=12
sbrk:base=0x4000434c size=1024
> z=y/x
> io.write ("hello",x,y,z,"world\n");
sbrk:base=0x4000474c size=1024
fwrite
hello3124fwrite
world
> 


ジンクプラサフまで吹きました。フレーム物はなかなか見積りが難しいのだけ
ど(ほとんどがミストになってしまうため)、(主剤100g、硬化剤20g)でシンナー
でx1.3で。ちょっとx1.3はシャバシャバ過ぎた。量的にはちょうどいいとこだっ
た。新しく買ったガン(アネストイワタのPS-95)を使ったこともあり最初はかな
りあたふた。でもなれるとなかなか調整しやすいかも。


しかしなかなか塗装条件が厳しい。本塗装が不安だ。錆防止のための塗装だから どうでもいいっていえばいいんだけど。

昨日RX用にツールチェーンを更新したついでにarm-elf i386-elf h8300-elf sh-elfも 更新してみたところ、h8300-elfがstdc++のビルドに失敗。クラスを使うとそれだけで ランタイムで40KBちかく使われ、C++は現実的でないので、C++はパスに。
libtool: compile:  /home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/./gcc/xgcc -shared-libgcc -B/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/./gcc -nostdinc++ -L/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/h8300-elf/libstdc++-v3/src -L/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/h8300-elf/libstdc++-v3/src/.libs -B/usr/home/uch/os/w/tools/h8300-elf/bin/ -B/usr/home/uch/os/w/tools/h8300-elf/lib/ -isystem /usr/home/uch/os/w/tools/h8300-elf/include -isystem /usr/home/uch/os/w/tools/h8300-elf/sys-include -I/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/h8300-elf/libstdc++-v3/include/h8300-elf -I/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/h8300-elf/libstdc++-v3/include -I/home/uch/os/w/tools/work/gcc-4.6.0/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c ../../../../libstdc++-v3/src/locale-inst.cc -o locale-inst.o
/tmp/cccyeTXf.s: Assembler messages:
/tmp/cccyeTXf.s:976: Warning: operand #0xffffffffffffffe2 out of range.
/tmp/cccyeTXf.s:1006: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:1028: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:1057: Warning: operand #0xffffffffffffffe2 out of range.
/tmp/cccyeTXf.s:1087: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:1109: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:1512: Warning: operand #0xffffffffffffffe0 out of range.
/tmp/cccyeTXf.s:1568: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:1589: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2190: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2350: Warning: operand #0xffffffffffffffe2 out of range.
/tmp/cccyeTXf.s:2383: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2412: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2444: Warning: operand #0xffffffffffffffe2 out of range.
/tmp/cccyeTXf.s:2479: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2514: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2548: Warning: operand #0xffffffffffffffe2 out of range.
/tmp/cccyeTXf.s:2580: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2607: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2638: Warning: operand #0xffffffffffffffca out of range.
/tmp/cccyeTXf.s:2666: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2803: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2935: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:2965: Warning: operand #0xffffffffffffffcc out of range.
/tmp/cccyeTXf.s:3364: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:3532: Warning: operand #0xffffffffffffffe0 out of range.
/tmp/cccyeTXf.s:3589: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:3628: Warning: operand #0xffffffffffffffde out of range.
/tmp/cccyeTXf.s:3687: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:3726: Warning: operand #0xffffffffffffffde out of range.
/tmp/cccyeTXf.s:3785: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:4040: Warning: operand #0xffffffffffffffe0 out of range.
/tmp/cccyeTXf.s:4097: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:4136: Warning: operand #0xffffffffffffffde out of range.
/tmp/cccyeTXf.s:4195: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:4234: Warning: operand #0xffffffffffffffde out of range.
/tmp/cccyeTXf.s:4293: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:4669: Warning: operand #0xffffffffffffffdc out of range.
/tmp/cccyeTXf.s:4729: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:4792: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:4833: Warning: operand #0xffffffffffffffdc out of range.
/tmp/cccyeTXf.s:4893: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:4956: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:5251: Warning: operand #0xffffffffffffffe0 out of range.
/tmp/cccyeTXf.s:5307: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:5346: Warning: operand #0xffffffffffffffde out of range.
/tmp/cccyeTXf.s:5404: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:5443: Warning: operand #0xffffffffffffffde out of range.
/tmp/cccyeTXf.s:5501: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:5706: Warning: operand #0xffffffffffffffdc out of range.
/tmp/cccyeTXf.s:5765: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:5827: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:6568: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:6617: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:6787: Warning: operand #0xffffffffffffffe0 out of range.
/tmp/cccyeTXf.s:6847: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:6886: Warning: operand #0xffffffffffffffde out of range.
/tmp/cccyeTXf.s:6948: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:6987: Warning: operand #0xffffffffffffffd4 out of range.
/tmp/cccyeTXf.s:7056: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:7158: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8067: Warning: operand #0xffffffffffffffe0 out of range.
/tmp/cccyeTXf.s:8130: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8159: Warning: operand #0xffffffffffffffe2 out of range.
/tmp/cccyeTXf.s:8221: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8393: Warning: operand #0xffffffffffffffdc out of range.
/tmp/cccyeTXf.s:8417: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8460: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8499: Warning: operand #0xffffffffffffffdc out of range.
/tmp/cccyeTXf.s:8523: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8566: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8605: Warning: operand #0xffffffffffffffe0 out of range.
/tmp/cccyeTXf.s:8668: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8833: Warning: operand #0xffffffffffffffdc out of range.
/tmp/cccyeTXf.s:8902: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:8944: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:9054: Warning: operand #0xfffffffffffffff2 out of range.
/tmp/cccyeTXf.s:9163: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:9582: Warning: operand #0xffffffffffffffb0 out of range.
/tmp/cccyeTXf.s:9608: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:10396: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:10742: Warning: operand #0xffffffffffffffa8 out of range.
/tmp/cccyeTXf.s:10768: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:11760: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:11997: Warning: operand #0xffffffffffffffa8 out of range.
/tmp/cccyeTXf.s:12023: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:13015: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:13386: Warning: operand #0xffffffffffffff74 out of range.
/tmp/cccyeTXf.s:14557: Warning: operand #0xfffffffffffffff4 out of range.
/tmp/cccyeTXf.s:14964: Warning: operand #0xffffffffffffff9a out of range.
/tmp/cccyeTXf.s:14973: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:15004: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:15101: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:15143: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:15690: Warning: operand #0xfffffffffffffff2 out of range.
/tmp/cccyeTXf.s:16184: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:16235: Warning: operand #0xffffffffffffff9a out of range.
/tmp/cccyeTXf.s:16244: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:16275: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:16372: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:16414: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:16961: Warning: operand #0xfffffffffffffff2 out of range.
/tmp/cccyeTXf.s:17455: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:17568: Warning: operand #0xffffffffffffffc8 out of range.
/tmp/cccyeTXf.s:17613: Warning: operand #0xffffffffffffffd6 out of range.
/tmp/cccyeTXf.s:17886: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18325: Warning: operand #0xffffffffffffffa4 out of range.
/tmp/cccyeTXf.s:18451: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18498: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18576: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18651: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18663: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18808: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18859: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:18904: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19028: Warning: operand #0xffffffffffffffa4 out of range.
/tmp/cccyeTXf.s:19154: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19201: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19279: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19354: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19366: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19511: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19562: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19607: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:19735: Warning: operand #0xfffffffffffffffa out of range.
/tmp/cccyeTXf.s:19948: Warning: operand #0xffffffffffffffb6 out of range.
/tmp/cccyeTXf.s:19970: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:20065: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:20091: Warning: operand #0xffffffffffffffea out of range.
/tmp/cccyeTXf.s:20150: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:20203: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:20404: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:20449: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:20533: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:20674: Warning: operand #0xffffffffffffffb6 out of range.
/tmp/cccyeTXf.s:20692: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:20787: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:20813: Warning: operand #0xffffffffffffffea out of range.
/tmp/cccyeTXf.s:20872: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:20957: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21206: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21251: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21370: Warning: operand #0xffffffffffffff90 out of range.
/tmp/cccyeTXf.s:21422: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21526: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21567: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21704: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21759: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21817: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21872: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:21940: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:22039: Warning: operand #0xffffffffffffffe6 out of range.
/tmp/cccyeTXf.s:22077: Warning: operand #0xfffffffffffffff0 out of range.
/tmp/cccyeTXf.s:22193: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:22280: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:22344: Warning: operand #0xffffffffffffffb2 out of range.
/tmp/cccyeTXf.s:22370: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:22465: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:22491: Warning: operand #0xffffffffffffffd6 out of range.
/tmp/cccyeTXf.s:22551: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:22604: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:22615: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:22817: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:22862: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:22946: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:22991: Warning: operand #0xffffffffffffffa8 out of range.
/tmp/cccyeTXf.s:23017: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:23112: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:23139: Warning: operand #0xffffffffffffffd6 out of range.
/tmp/cccyeTXf.s:23200: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:23334: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:23340: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:23592: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:23636: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:23720: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:23778: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:23869: Warning: operand #0xfffffffffffffff6 out of range.
/tmp/cccyeTXf.s:24018: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:24166: Warning: operand #0xfffffffffffffff4 out of range.
/tmp/cccyeTXf.s:24200: Warning: operand #0xfffffffffffffffa out of range.
/tmp/cccyeTXf.s:24344: Warning: operand #0xffffffffffffffa2 out of range.
/tmp/cccyeTXf.s:24382: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:24478: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:24515: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:24747: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:24931: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:25019: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:25391: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:25552: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:25613: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:25767: Warning: operand #0xfffffffffffffff6 out of range.
/tmp/cccyeTXf.s:25857: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:25961: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:26085: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:26386: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:26530: Warning: operand #0xffffffffffffffa2 out of range.
/tmp/cccyeTXf.s:26568: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:26664: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:26701: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:26933: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:27117: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:27205: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:27577: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:27738: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:27799: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:27953: Warning: operand #0xfffffffffffffff6 out of range.
/tmp/cccyeTXf.s:28043: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:28147: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:28271: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:28572: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:28716: Warning: operand #0xffffffffffffffce out of range.
/tmp/cccyeTXf.s:28738: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:29004: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:29045: Warning: operand #0xffffffffffffffd6 out of range.
/tmp/cccyeTXf.s:29221: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:29266: Warning: operand #0xffffffffffffffee out of range.
/tmp/cccyeTXf.s:29424: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:29647: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:29777: Warning: operand #0xffffffffffffffc0 out of range.
/tmp/cccyeTXf.s:29925: Warning: operand #0xfffffffffffffffa out of range.
/tmp/cccyeTXf.s:30063: Warning: operand #0xffffffffffffffd4 out of range.
/tmp/cccyeTXf.s:30171: Warning: operand #0xfffffffffffffffa out of range.
/tmp/cccyeTXf.s:30309: Warning: operand #0xffffffffffffffec out of range.
/tmp/cccyeTXf.s:30534: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:30690: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:30775: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:30913: Warning: operand #0xffffffffffffff90 out of range.
/tmp/cccyeTXf.s:31524: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:31949: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:32171: Warning: operand #0xfffffffffffffffa out of range.
/tmp/cccyeTXf.s:32327: Warning: operand #0xfffffffffffffffa out of range.
/tmp/cccyeTXf.s:32360: Warning: operand #0xfffffffffffffffa out of range.
/tmp/cccyeTXf.s:32443: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:32611: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:32748: Warning: operand #0xfffffffffffffff8 out of range.
/tmp/cccyeTXf.s:32881: Warning: operand #0xffffffffffffffb0 out of range.
/tmp/cccyeTXf.s:32984: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33002: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33036: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33069: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33132: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33167: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33175: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33185: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33295: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33403: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33411: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33421: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33447: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:33892: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:34151: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:34783: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:34965: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:35191: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:35260: Warning: operand #0xffffffffffffffd4 out of range.
/tmp/cccyeTXf.s:35453: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:35494: Warning: operand #0xffffffffffffffd4 out of range.
/tmp/cccyeTXf.s:35687: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:35728: Warning: operand #0xffffffffffffffd4 out of range.
/tmp/cccyeTXf.s:35921: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:35967: Warning: operand #0xffffffffffffff9e out of range.
/tmp/cccyeTXf.s:35976: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:36070: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36117: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36172: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36274: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36282: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36292: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36502: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36510: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36520: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36546: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:36897: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:37139: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:37493: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:37618: Warning: operand #0xffffffffffffffc6 out of range.
/tmp/cccyeTXf.s:37675: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:37717: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:37847: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:37917: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:37950: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38049: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38057: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38113: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38327: Warning: operand #0xffffffffffffffb0 out of range.
/tmp/cccyeTXf.s:38428: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38475: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38531: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38633: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38641: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38651: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38861: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38869: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38879: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38905: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:38990: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:39205: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:39421: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:39598: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:39737: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:39860: Warning: operand #0xffffffffffffffb0 out of range.
/tmp/cccyeTXf.s:39961: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40008: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40064: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40166: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40174: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40184: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40394: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40402: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40412: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40438: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40523: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40738: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:40954: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41131: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41270: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41397: Warning: operand #0xffffffffffffffa2 out of range.
/tmp/cccyeTXf.s:41406: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:41500: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41547: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41602: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41704: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41712: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41722: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41932: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41940: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41950: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:41976: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:42313: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:42550: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:42884: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:42972: Warning: operand #0xfffffffffffffff4 out of range.
/tmp/cccyeTXf.s:43124: Warning: operand #0xffffffffffffff4e out of range.
/tmp/cccyeTXf.s:43133: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:43227: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43274: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43329: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43433: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43441: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43451: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43660: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43668: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43678: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43704: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43792: Warning: operand #0xffffffffffff8000 out of range.
/tmp/cccyeTXf.s:43804: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:43824: Warning: operand #0xfffffffffffffff0 out of range.
/tmp/cccyeTXf.s:44022: Warning: operand #0xfffffffffffffff0 out of range.
/tmp/cccyeTXf.s:44257: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:44415: Warning: operand #0xfffffffffffffff0 out of range.
/tmp/cccyeTXf.s:44668: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:44864: Warning: operand #0xffffffffffff8000 out of range.
/tmp/cccyeTXf.s:44877: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45077: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45206: Warning: operand #0xffffffffffffff76 out of range.
/tmp/cccyeTXf.s:45215: Warning: operand #0xfffffffffffffffc out of range.
/tmp/cccyeTXf.s:45309: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45356: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45412: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45516: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45524: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45534: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45742: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45750: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45760: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45786: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45884: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:45885: Warning: operand #0xfffffffffffffff0 out of range.
/tmp/cccyeTXf.s:46078: Warning: operand #0xfffffffffffffff0 out of range.
/tmp/cccyeTXf.s:46251: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:46409: Warning: operand #0xfffffffffffffff0 out of range.
/tmp/cccyeTXf.s:46600: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:46780: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:46982: Warning: operand #0xffffffffffffffff out of range.
/tmp/cccyeTXf.s:83815: Error: value of 65765 too large for field of 2 bytes at 65807
/tmp/cccyeTXf.s:85608: Error: value of 68541 too large for field of 2 bytes at 70376
/tmp/cccyeTXf.s:86580: Error: value of 71027 too large for field of 2 bytes at 72862
/tmp/cccyeTXf.s:87655: Error: value of 75490 too large for field of 2 bytes at 75531
/tmp/cccyeTXf.s:87694: Error: value of 75207 too large for field of 2 bytes at 75626
/tmp/cccyeTXf.s:88125: Error: value of 76616 too large for field of 2 bytes at 76657
/tmp/cccyeTXf.s:88164: Error: value of 76333 too large for field of 2 bytes at 76752
/tmp/cccyeTXf.s:88644: Error: value of 77678 too large for field of 2 bytes at 77903
/tmp/cccyeTXf.s:88809: Error: value of 78274 too large for field of 2 bytes at 78313
/tmp/cccyeTXf.s:89160: Error: value of 78904 too large for field of 2 bytes at 79122
/tmp/cccyeTXf.s:89338: Error: value of 79527 too large for field of 2 bytes at 79566
/tmp/cccyeTXf.s:90195: Error: value of 81486 too large for field of 2 bytes at 81721
/tmp/cccyeTXf.s:90360: Error: value of 82092 too large for field of 2 bytes at 82131
/tmp/cccyeTXf.s:90593: Error: value of 82465 too large for field of 2 bytes at 82683
/tmp/cccyeTXf.s:90771: Error: value of 83088 too large for field of 2 bytes at 83127
/tmp/cccyeTXf.s:92424: Error: value of 84873 too large for field of 2 bytes at 87134
/tmp/cccyeTXf.s:94047: Error: value of 88931 too large for field of 2 bytes at 91192
/tmp/cccyeTXf.s:98044: Error: value of 100674 too large for field of 2 bytes at 100884
/tmp/cccyeTXf.s:100723: Error: value of 107162 too large for field of 2 bytes at 107534
/tmp/cccyeTXf.s:101926: Error: value of 110194 too large for field of 2 bytes at 110566
/tmp/cccyeTXf.s:102785: Error: value of 112348 too large for field of 2 bytes at 112720
/tmp/cccyeTXf.s:103644: Error: value of 114502 too large for field of 2 bytes at 114874
/tmp/cccyeTXf.s:104645: Error: value of 116966 too large for field of 2 bytes at 117338
/tmp/cccyeTXf.s:105503: Error: value of 119122 too large for field of 2 bytes at 119494
/tmp/cccyeTXf.s:122420: Error: value of 68805 too large for field of 2 bytes at 20484
/tmp/cccyeTXf.s:123584: Error: value of 71291 too large for field of 2 bytes at 22202
/tmp/cccyeTXf.s:127434: Error: value of 79957 too large for field of 2 bytes at 28052
/tmp/cccyeTXf.s:127651: Error: value of 80402 too large for field of 2 bytes at 28383
/tmp/cccyeTXf.s:127791: Error: value of 80537 too large for field of 2 bytes at 28605
/tmp/cccyeTXf.s:127870: Error: value of 80672 too large for field of 2 bytes at 28721
/tmp/cccyeTXf.s:127954: Error: value of 80803 too large for field of 2 bytes at 28847
/tmp/cccyeTXf.s:128052: Error: value of 80980 too large for field of 2 bytes at 28989
/tmp/cccyeTXf.s:135776: Error: value of 97910 too large for field of 2 bytes at 40654
/tmp/cccyeTXf.s:136170: Error: value of 97927 too large for field of 2 bytes at 41264
/tmp/cccyeTXf.s:136187: Error: value of 97944 too large for field of 2 bytes at 41291
/tmp/cccyeTXf.s:141301: Error: value of 109496 too large for field of 2 bytes at 49039
/tmp/cccyeTXf.s:141307: Error: value of 109496 too large for field of 2 bytes at 49049
/usr/home/uch/os/w/tools/h8300-elf/bin/as: BFD (GNU Binutils) 2.21 ???????? ../../bfd/elf.c:2795
xgcc: コンパイラ内部エラー: Segmentation fault (プログラム as)
完全なバグ報告を送って下さい。
適切ならば前処理後のソースをつけてください。
<http://gcc.gnu.org/bugs.html> を見れば方法が書いてあります。
gmake[4]: *** [locale-inst.lo] エラー 1
gmake[4]: ディレクトリ `/usr/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/h8300-elf/libstdc++-v3/src' から出ます
gmake[3]: *** [all-recursive] エラー 1
gmake[3]: ディレクトリ `/usr/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/h8300-elf/libstdc++-v3' から出ます
gmake[2]: *** [all] エラー 2
gmake[2]: ディレクトリ `/usr/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf/h8300-elf/libstdc++-v3' から出ます
gmake[1]: *** [all-target-libstdc++-v3] エラー 2
gmake[1]: ディレクトリ `/usr/home/uch/os/w/tools/work/gcc-4.6.0/.objs.h8300-elf' から出ます
gmake: *** [all] エラー 2
$ 
実際gcc-4.6.0を使ってみると、またちょっと厳しくなってますね
void
a ()
{
  int a;
  a = 10;
}
こんなのを見つけてくれます。
main.c: 関数 ‘a’ 内:
main.c:71:7: エラー: 変数 ‘a’ が設定されましたが使用されていません [-Werror=unused-but-set-variable]
ここ数日、読んでいた2.10BSDのmalloc.c(実際はV7そのまま)を読み終えました。 今後のデバッグのためにこのアルゴリズムのまま俺流に書き起こします。

V7 malloc

コントロールブロックは最低でポインタサイズ。なので最低でも下1ビットは0
なので、この1ビットをブロックが使用中か、開放されているかのフラグに使う。

なのでアロケート単位は最低でもsizeof (void *)

ブロックのリンクは必ずポインタの値が上昇する方向にする。そうすることで
次のリンクのポインタが現在よりも小さいということをループ条件とできる。
リンクの一番下と上は(積荷はないけれど)常に使用中の特別の役割にすること
でリンクのつけかえの面倒さを廃している。

sbrkの返り値は不連続でもかまわない。その場合、開放されたブロックの結合
ができなくなるので空間効率は悪くなる。

リンクのどこから場所を探すか。
  + mallocの後は今回確保した場所の次のブロックをスタート地点とするよ
うに設定する。

  + freeの後は、今回開放した場所をスタート地点とする。

ブロックの結合はどこで行うか。
  mallocの度に設定されたスタート地点からリンクを辿りながら結合する。その
最中に、指定されたバイト数のある領域があれば、そこで結合は終了。どこにも
なかった場合には最低でも一周、最悪で二周する。

ブロックの伸張は必ず、一番上に追加する。追加する場合1KB単位に丸めて追加
する。

reallocは現在の領域を開放し、新しくmallocする。freeの後のmallocはfreeし
た場所から取得しようとするので、後に開放のブロックがあり、十分な領域が
とれれば、内容のコピーは不要になる。

新しくmallocした領域にfreeした領域のポインタからコピーする。

freeした場所の前方に開放のブロックがあり、そこと結合した場合には、新し
い場所と古い場所が重なり、mallocの段階で古い場所の途中にコントロールブ
ロックが置かれる場合がある。この場合、上記のコピーの内容がコントロール
ブロックで上書きされてしまっているので、mallocの段階でコントロールブロッ
クを書きこむ前にそこの内容を保存しておき、reallocの段階でそれを元に戻す。
その値がallocx

pがreallocに渡された場所
qが新しく確保された場所
q->nextの場所はコントロールブロックになる。
                            + overwrited by control block.
                 p              p->next
old        | p-q |          *  |
                 /         /|  /
                /         / | /
               /         /  |/
              /         /   /
             /         /   /|           
            /         /   / |
           /         /   /  |
new       |         |  p-q  |
          q         ^      q->next (q+nw)
          |       nw        |

                    ^ここは q->next - (p -q)
q->next = q+nwなので q+nw - (p -q) = q + (q + nw - p)

/*	@(#)malloc.c	2.1	SCCS id keyword	*/
#ifdef debug
#define ASSERT(p) if(!(p))botch("p");else
botch(s)
char *s;
{
	printf("assertion botched: %s\n",s);
	abort();
}
#else
#define ASSERT(p)
#endif

/*	avoid break bug */
#ifdef pdp11
#define GRANULE 64
#else
#define GRANULE 0
#endif
/*	C storage allocator
 *	circular first-fit strategy
 *	works with noncontiguous, but monotonically linked, arena
 *	each block is preceded by a ptr to the (pointer of) 
 *	the next following block
 *	blocks are exact number of words long 
 *	aligned to the data type requirements of ALIGN
 *	pointers to blocks must have BUSY bit 0
 *	bit in ptr is 1 for busy, 0 for idle
 *	gaps in arena are merely noted as busy blocks
 *	last block of arena (pointed to by alloct) is empty and
 *	has a pointer to first
 *	idle blocks are coalesced during space search
 *
 *	a different implementation may need to redefine
 *	ALIGN, NALIGN, BLOCK, BUSY, INT
 *	where INT is integer type to which a pointer can be cast
*/
#define INT int
#define ALIGN int
#define NALIGN 1
#define WORD sizeof(union store)
#define BLOCK 1024	/* a multiple of WORD*/
#define BUSY 1
#define NULL 0
#define testbusy(p) ((INT)(p)&BUSY)
#define setbusy(p) (union store *)((INT)(p)|BUSY)
#define clearbusy(p) (union store *)((INT)(p)&~BUSY)

union store { union store *ptr;
	      ALIGN dummy[NALIGN];
	      int calloc;	/*calloc clears an array of integers*/
};

static	union store allocs[2];	/*initial arena*/
ここでallocsをデータセクションにとっているのはデータセクション < bssを
仮定している
static	union store *allocp;	/*search ptr*/
static	union store *alloct;	/*arena top*/
static	union store *allocx;	/*for benefit of realloc*/
char	*sbrk();

char *
malloc(nbytes)
unsigned nbytes;
{
	register union store *p, *q;
	register nw;
	static temp;	/*coroutines assume no auto*/

	if(allocs[0].ptr==0) {	/*first time*/
		allocs[0].ptr = setbusy(&allocs[1]);
		allocs[1].ptr = setbusy(&allocs[0]);
		alloct = &allocs[1];
		allocp = &allocs[0];
底辺とてっぺんを双方向リンクし、ここからは領域をとらないようにビジーと設定。
	}
	nw = (nbytes+WORD+WORD-1)/WORD;
コントロールブロック(union store)の領域を追加してユニットに丸める。

	ASSERT(allocp>=allocs && allocp<=alloct);
	ASSERT(allock());
	for(p=allocp; ; ) {
		for(temp=0; ; ) {
			if(!testbusy(p->ptr)) {
開放ブロックが続く限りつなげる
				while(!testbusy((q=p->ptr)->ptr)) {
					ASSERT(q>p&&q<alloct);
					p->ptr = q->ptr;
				}
				if(q>=p+nw && p+nw>=p)
					goto found;
その途中で場所があればそこを使う。
			}
開放ブロックの連続が切れた。
			q = p;
			p = clearbusy(p->ptr);
ポインタと使用中のフラグを共用しているのでポインタを取り出すには
BUSYを落とさないといけない。ここでqがBUSY、pがその次のブロック
			if(p>q) 登り
				ASSERT(p<=alloct);
登りならそれはてっぺんより下
			else if(q!=alloct || p!=allocs) {
下りならqはてっぺんで、pは一番下じゃないといけない。(ここはデバッグ用)
				ASSERT(q==alloct&&p==allocs);
				return(NULL);
			} else if(++temp>1)
二回下りを検出することで全部のリンクを廻ったことになる。
				break;
		}
メモリがなかった時にはalloc_topの上に新しく拾ってきたメモリをつけたす。
		temp = ((nw+BLOCK/WORD)/(BLOCK/WORD))*(BLOCK/WORD);
BLOCKに丸める。
		q = (union store *)sbrk(0);
		if(q+temp+GRANULE < q) {
			return(NULL);
		}
		q = (union store *)sbrk(temp*WORD);
		if((INT)q == -1) {
			return(NULL);
		}
		ASSERT(q>alloct);
		alloct->ptr = q;
てっぺんにつなげる。
		if(q!=alloct+1)
			alloct->ptr = setbusy(alloct->ptr);
sbrkが前回から連続したアドレスじゃなかった場合このブロックを越して
結合しないようにbusyにしておく。
sbrk連続
  alloct
    ||
     q
これはalloctとqを結合できる。
sbrk不連続
  alloct
    |
             |
             q
これは結合できないのでalloctはBUSYにする。

		alloct = q->ptr = q+temp-1;
		alloct->ptr = setbusy(allocs);
新しくてっぺん(alloct)を設定し、それは一番下にリンクし、メモリ獲得に
使われない(BUSY)ようにする。
	}
found:
	allocp = p + nw;
次のmallocのスタートは(allocp)は今回確保した領域の次にする。
	ASSERT(allocp<=alloct);
	if(q>allocp) {
獲得した領域よりも、必要な領域が小さい時はそこを分割する。
		allocx = allocp->ptr;
reallocで直前に開放した領域(まだコピー前)と領域が重なってしまった時の
ためにコントロールブロックを設定する前にそこの値を保存しておく。
		allocp->ptr = p->ptr;
コントロールブロックを設定
	}
	p->ptr = setbusy(allocp);
この領域は使用中。
	return((char *)(p+1));
コントロールブロックの後が実際の積荷。
}

/*	freeing strategy tuned for LIFO allocation
*/
free(ap)
register char *ap;
{
	register union store *p = (union store *)ap;

	ASSERT(p>clearbusy(allocs[1].ptr)&&p<=alloct);
clearbusy(allocs[1].ptr)なので(これは一番下のポインタ)一番下よりも上ということ。
	ASSERT(allock());
	allocp = --p;
コントロールブロックはその一つ下で、次にmallocする時はここから探すようにする。
	ASSERT(testbusy(p->ptr));
そしてここは使用中
	p->ptr = clearbusy(p->ptr);
このブロックを開放。
	ASSERT(p->ptr > allocp && p->ptr <= alloct);
このブロックの次のポインタが登りであり(てっぺんじゃない)、それがてっぺん
以下である。(てっぺんなら、そこは積荷を持たないし、次のブロックは一番下(下り))
}

/*	realloc(p, nbytes) reallocates a block obtained from malloc()
 *	and freed since last call of malloc()
 *	to have new size nbytes, and old content
 *	returns new location, or 0 on failure
*/

char *
realloc(p, nbytes)
register union store *p;
unsigned nbytes;
{
	register union store *q;
	union store *s, *t;
	register unsigned nw;
	unsigned onw;

	if(testbusy(p[-1].ptr))
		free((char *)p);
まずは場所を開放する。
	onw = p[-1].ptr - p;
	q = (union store *)malloc(nbytes);
新しく場所をとる。
	if(q==NULL || q==p)
		return((char *)q);
とれなかったり、運よく次のブロックから結合できたらそのまま終了。

	s = p;
	t = q;
	nw = (nbytes+WORD-1)/WORD;
	if(nw<onw)
		onw = nw;
	while(onw--!=0)
		*t++ = *s++;
場所が変更されたのでコピーする。

	if(q<p && q+nw>=p)
		(q+(q+nw-p))->ptr = allocx;
前回の場所の途中に、今回の領域の次のコントロールブロックが設定されてし
まった場合は、それがコピーされてしまっているので、とっておいた元の値を
戻す。

	return((char *)q);
}

#ifdef debug
allock()
{
#ifdef longdebug
	register union store *p;
	int x;
	x = 0;
	for(p= &allocs[0]; clearbusy(p->ptr) > p; p=clearbusy(p->ptr)) {
全部のリンクをまわる。
		if(p==allocp)
			x++;
	}
	ASSERT(p==alloct);
	return(x==1|p==allocp);
mallocの場所探しの位置(allocp)は一つだけであり、なかったとしたら、それは
てっぺん(alloct)に設定されている。
#else
	return(1);
#endif
}
#endif


うちの桜も幹の下の方のは咲きはじめた。



木工部屋を塗装部屋に模様換え。赤い色のついた建材はパーツクリーナー程度 で色が落ちるので剥離することに。結構大変なんだよね。強アルカリの洗浄液 セーフティクリーンSにドブ漬け。
黒皮にこびりついた汚れもなかなかとれないし。鉄は塗装が面倒。小物パーツ もたくさんあるので、段取りだけでも一苦労だ。でもここをいい加減にすると 後で泣きを見るからね...。

ついにRX基板が手元に..(今迄ルネサスのプレゼントに二回応募したけれど落ち た)インターフェースの付録は毎年ツボを突いてくる。これはM32C系だから目新 しくて面白いかも。gcc-4.6.0,binutils-2.21,newlib-1.19.0だとRXのターゲッ トが追加されている。gccのコンパイルのために追加にmpc-0.9、mpc-0.9のため にmpfr-2.4.2とgmp-4.3.2以上に更新する必要がある。
TEXINFO=texinfo-4.8
#MPFR=mpfr-2.3.2
MPFR=mpfr-3.0.0
#GMP=gmp-4.2.4
GMP=gmp-4.3.2
MPC=mpc-0.9
#BINUTILS=binutils-2.18
BINUTILS=binutils-2.21
#GCC=gcc-4.3.2
GCC=gcc-4.6.0
#NEWLIB=newlib-1.17.0
NEWLIB=newlib-1.19.0
こんな感じの更新でツールチェーンはOKっぽい。これに手を出す程暇もないの だが...。はやく腰を落ちつけてサーボモータの制御をやりたいのに。
$ rx-elf-gcc --target-help
このオプションはターゲット固有のものです:
  -fpu                        RX FPU 命令の使用を有効にする
                              (デフォルト)。
  -m32bit-doubles             double を 32 ビットで保存する
                              (デフォルト)。
  -m64bit-doubles             double を 64 ビットで保存する。
  -mas100-syntax              Generate assembler output that is compatible with
                              the Renesas AS100 assembler.  This may restrict
                              some of the compiler's capabilities.  The default
                              is to generate GAS compatable syntax.
  -mbig-endian-data           ビッグエンディアン形式でデータを保存する。
  -mcpu=                      ターゲット RX CPU 型を設定する。
  -mint-register=             割り込みハンドラ用に予約されるレジスタサイズを指定する
  -mlittle-endian-data        リトルエンディアン形式でデータを保存する
                              (デフォルト)。
  -mmax-constant-size=        被演算子として許可される定数値のバイト単位での最大サイズ
  -mrelax                     リンカの緩和を有効にする。
  -msave-acc-in-interrupts    Specifies whether interrupt functions should save
                              and restore the accumulator register.
  -msim                       シミュレータランタイムを使用する。
  -msmall-data-limit=         Maximum size of global and static variables which
                              can be placed into the small data area.
  -nofpu                      RX FPU 命令の使用を無効にする。

アセンブラオプション
=================

"OPTION" をアセンブラに渡すには "-Wa,OPTION" を使用してください

 RX specific command line options:
  --mbig-endian-data
  --mlittle-endian-data [default]
  --m32bit-doubles [default]
  --m64bit-doubles
  --muse-conventional-section-names
  --muse-renesas-section-names [default]
  --msmall-data-limit

リンカオプション
==============

"OPTION" をリンカに渡すには "-Wl,OPTION" を使用してください

rx-elf-gcc: エラー: ライブラリ探索パス内にデフォルトリンカスクリプト ‘rx.ld’ の位置確認ができません
elf32rx: 
  --build-id[=STYLE]          Generate build ID note
  --audit=AUDITLIB            Specify a library to use for auditing
  -P AUDITLIB, --depaudit=AUDITLIB
                              Specify a library to use for auditing dependencies
  --no-flag-mismatch-warnings Don't warn about objects with incompatible                                endian or dsp settings
$ 




クランプに木の押し板を取りつけました。あまり考えてなくて、結構この部品
を作るのが手間。消耗品を楽に取り換えれるように設計すべきであった。

とりあえず切削テスト。昨日作ったケガキ目安のプレートはクランプと干渉し てしまう。このプレートの両側に押しあてるユニットをつけて、そこで中心を 設定して、そのまま上下にプレートを移動できるようにするといいかも。
他にもいろいろ実装してみたいのはあるのだけど、とりあえずここで一度、実 用に供してみます。

本田谷田部からホワイトパイン60kgを購入。選別基準外の安いやつ。

端材で種まき用の棚も作ったり。こう地震が多いと中途半端な置き方だと不安 なので。

こんなの出てきた。FORTRANのコーディングシート。昔はこれに手書きでコード を書き、オペレータに渡してプログラミングしていたらしい。大変だ。



特に径の指定がない時はφ10にしておくと垂直をとるのが楽かも。



アルミフラットバーから作成。真中黒、次黄、その先青で色を入れてみたのだけど、ちょっとスジボリが浅かったか。中心から3mm間隔。

こんな感じでワークのケガキ線と合わせます。



菜園状況。五寸人参の種を蒔いてみました。人参は3回目。徐々に大きいのが収
穫できるようになってきたけど、今回は...。最初の時は指先程度の大きさのし
か採れなかった。



去年からカエルが減っている気がする。カエルツボカビ病だろうか。

ベースプレートをもう一つ切削。二台用意しているのは蟻溝を掘る時に最初ス トレートビットでおおまかに切削して、次に蟻溝ビットで切削するため。この ユニットに溝の中心線をセットするだけですべての工程を終わらせたいのだ。

マイOSは、H8SX/1655でLua。コンパイラではまった。Luaを-Oでコンパイルする とlua_registerの下でだんまり。オプション外してなんとか動いた。まだSH2A よりはいいんだけどね。SH2Aで-Oだと長いswitch文で失敗することある。
1655はRAM40KBなので、フラッシュに書き込んでテスト。気になるメモリ使用量 はというと、最低でもヒープ17KB、スタック3KBは必要。ぎりぎり遊びで使える かどうか。OSの方もstdin/stdoutでLuaを動かす最低限しか実装してない状態だ し。
消費量はbssの終わりからスタックのてっぺんまで0xff書きこんでおいて、 lua_pcallの度にsbrkのてっぺんからどこまで0xffが続くかで測っています。
SIO@
stack_start: 0xffc000
ROM data: 0x2dbe8-0x2dd34
RAM data: 0xff2000-0xff214c 332byte
bss: 0xff214c-0xff2244 248byte
VBR: 0x0 (0x0)
PA7 clock output: On
Input clock: 12000000Hz, MDCLK=0
System clock: x4 (48000000Hz)
Peripheral clock: x2 (24000000Hz)
External clock: x4 (48000000Hz)
user> lua
->lua
sbrk:base=0xff2244 size=0
sbrk:base=0xff2244 size=1024
sbrk:base=0xff2644 size=0
sbrk:base=0xff2644 size=1024
sbrk:base=0xff2a44 size=0
sbrk:base=0xff2a44 size=1024
sbrk:base=0xff2e44 size=0
openlib start: heap 0xff2244-0xff2e44 (3072), stack 0xffbd48-0xffc000 (696) remain 36612
sbrk:base=0xff2e44 size=0
: heap 0xff2244-0xff2e44 (3072), stack 0xffbd3c-0xffc000 (708) remain 36600
sbrk:base=0xff2e44 size=0
sbrk:base=0xff2e44 size=0
sbrk:base=0xff2e44 size=1024
sbrk:base=0xff3244 size=0
sbrk:base=0xff3244 size=1024
sbrk:base=0xff3644 size=0
sbrk:base=0xff3644 size=1024
sbrk:base=0xff3a44 size=0
package: heap 0xff2244-0xff3a44 (6144), stack 0xffbac0-0xffc000 (1344) remain 32892
sbrk:base=0xff3a44 size=0
sbrk:base=0xff3a44 size=1024
sbrk:base=0xff3e44 size=0
sbrk:base=0xff3e44 size=2048
sbrk:base=0xff4644 size=0
table: heap 0xff2244-0xff4644 (9216), stack 0xffbac0-0xffc000 (1344) remain 29820
sbrk:base=0xff4644 size=0
io: heap 0xff2244-0xff4644 (9216), stack 0xffbac0-0xffc000 (1344) remain 29820
sbrk:base=0xff4644 size=0
sbrk:base=0xff4644 size=1024
sbrk:base=0xff4a44 size=0
sbrk:base=0xff4a44 size=1024
sbrk:base=0xff4e44 size=0
os: heap 0xff2244-0xff4e44 (11264), stack 0xffbac0-0xffc000 (1344) remain 27772
sbrk:base=0xff4e44 size=0
sbrk:base=0xff4e44 size=1024
sbrk:base=0xff5244 size=0
sbrk:base=0xff5244 size=2048
sbrk:base=0xff5a44 size=0
string: heap 0xff2244-0xff5a44 (14336), stack 0xffbac0-0xffc000 (1344) remain 24700
sbrk:base=0xff5a44 size=0
debug: heap 0xff2244-0xff5a44 (14336), stack 0xffbac0-0xffc000 (1344) remain 24700
sbrk:base=0xff5a44 size=0
sbrk:base=0xff5a44 size=1024
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> io.write ("hello", _VERSION,"\n")
sbrk:base=0xff5e44 size=0
sbrk:base=0xff5e44 size=1024
fwrite
hellofwrite
Lua 5.1fwrite

sbrk:base=0xff6244 size=0
lua_pcall: heap 0xff2244-0xff6244 (16384), stack 0xffb648-0xffc000 (2488) remain 21508
> x=3
sbrk:base=0xff6244 size=0
lua_pcall: heap 0xff2244-0xff6244 (16384), stack 0xffb648-0xffc000 (2488) remain 21508
> y=4
sbrk:base=0xff6244 size=0
lua_pcall: heap 0xff2244-0xff6244 (16384), stack 0xffb648-0xffc000 (2488) remain 21508
> z=x*y
sbrk:base=0xff6244 size=0
sbrk:base=0xff6244 size=1024
sbrk:base=0xff6644 size=0
lua_pcall: heap 0xff2244-0xff6644 (17408), stack 0xffb648-0xffc000 (2488) remain 20484
> io.write ("ohayo",x,y,z)
fwrite
ohayo3412sbrk:base=0xff6644 size=0
lua_pcall: heap 0xff2244-0xff6644 (17408), stack 0xffb648-0xffc000 (2488) remain 20484
> 


支柱をプレスで打ちこんでみたところ、あっさり割れた。この鋳物かなり脆い
とは思っていたけれど、やっぱり...。嵌め合いがきつ過ぎたのもある。ちゃん
と計算しないといけなかった。次は17Sあたりで作り直そう。



こんな感じでの使い道もいいかも。

トマトとナスを種蒔きしました。去年は大玉トマトで惨敗したので、今年は実 績のあるホーム桃太郎で。新聞紙をかぶせておくと発芽を忘れがちなので水槽 の中に入れて温室に。



ドリルプレスの軸をプレスで打ち抜き、やたら巣の入ったアルミの鋳物から台
座を切削しました。



マイOSにLuaがなんとかのりはじめました。ここずっとlibcをちまちま書いてい たのだけど、実際動かしてみるとケアレスミスが多くて手間取りました。 printはfputs経由だけど、io.writeはfwrite経由。Luaは浮動小数点はなしの 仕様にしました。
#define LUA_NUMBER_SCAN		"%d"
#define LUA_NUMBER_FMT		"%d"
#define lua_number2str(s,n)	sprintf((s), LUA_NUMBER_FMT, (n))
#define LUAI_MAXNUMBER2STR	32 /* 16 digits, sign, point, and \0 */
#define lua_str2number(s,p)	strtol((s), (p), 10)
こんな感じにすればいい。いわゆるdoprntは必要な部分だけ、きっちり書いて みたのだけど、doscanは面倒くさくなって2.10BSDからひっぱってきました。 2.10BSD、その清廉快活で無駄な気配りのない実装には、心洗われます...。 malloc、これもマイOSになかった部分なのだけど、同じく2.10BSDからもってき てみた。当時のmalloc,free,reallocというのは本当単純でfree(0)したらだめ。 realloc(0,x)したらだめという仕様だった。
SH2AでフルスペックLua積んだこのプログラムは280KB程度。
> SH7262 Simple Monitor Build Jun  6 2010 16:50:45
mon> l
CCR1=0 CCR2=0
~>Local file name? a.mot
30676 lines transferred in 3 minutes 7 seconds 
!
Read 720810 byte. success
Start address: 0x1c02f968
mon> 
mon> g
Start address: 0x1c02f968
SIO@
stack_start: 0x1c080400
RAM data: 0x1c03be18-0x1c03bf60 328byte
bss: 0x1c03bf60-0x1c03c064 260byte
VBR: 0x1c000000 (0x1c000000)
FRQCR=104
PLL: x12, Internal x1/1, Peripheral x1/6
Ick=144MHz, Pck=24MHz, Bck=48MHz
STBCR2: ........ [0x0] 0
STBCR3: ......|. [0x2] 2
STBCR4: ........ [0x0] 0
STBCR5: ...|.... [0x10] 16
STBCR6: ........ [0x0] 0
STBCR7: ..|.|.|. [0x2a] 42
STBCR8: ........ [0x0] 0
user> test
->lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print "hello world"
hello world
> io.write("Hello world, from ",_VERSION,"!\n")
Hello world, from Lua 5.1!
> x=3
> y=5
> z=x-y
> io.write (x,"-",y,"=",z,"desu\n")
3-5=-2desu
> 


ルーターのベースプレートを作りました。SS400,t10.0 160x125なので結構ずっ
しり。振り回す用途じゃないので重い方が安定するでしょう。φ30の穴をホー
ルソーで開けるのはt10.0が限界。両側から掘ってなんとか。



取り付けビスの穴の位置を痛恨の失敗。表裏間違えてた...。穴開け位置は採寸 をもとにQCAD2で設計し、原寸大でプリントアウトして0.5mmくらいづつ調整。 一穴だけずれた場所にあるのが大変だった。

出番のないドリルスタンドを使ってこんな機械にもしたいのだけど、

なかなか難しい。これ小学生の時にお年玉で買った思い出の品なので、あまり 切り刻みたくもないという思いもあり...。軸をプレスで打ち抜いてベースを作 るか。

ふと、そういえばRoosがウランの二量体の計算してたな...。と思い出しページ を見にいくとBjörn Olof ROOS(1937-2010)。.....
感傷にひたって押し入れから引出してきた。Roosといえば自分的にはこれだな。 Direct-CI

もう現役を離れて15年。どういうものだったかも忘れてしまったが、当時のノー ト見て思いだしてきた。プログラム的に言うとループ展開の場所を変えること でおいしい行列計算にもっていくことだ。と、当時は思っていたのだけど、そ れもあるけど、いや、もっと突っ込んだところでおいしさがあったのかな...。 お恥ずかしす。このあたりでおつむの限界を越えてしまい。



明日から雨が降るようなので、ちょっと気合い入れて菜園の耕し。本当はレー
スの帰りにホームジョイ本田で堆肥を買ってくるつもりだったのだけど、こん
なことになってしまったので、自家腐葉土をすきこみました。



手持ちの残りの堆肥、鶏糞、苦土石灰もちょくちょく入れつつなんとか終わり。 水はけを良くするために周りを掘りこんでみました。

スライドレールの軸受けはぴったし合うサイズで長ナットから作り直し、溶接 しました。うっかり溶接位置を間違えてしまい、ビード削って外してつけなお し。意外に溶け込みが浅いというか、深かったら外せなかったんだけど。

かなりできてきた。今となってはスライドレールの長辺用にあけた穴が邪魔だ な。これがあるおかげで上からの押しつけ位置に不自由な場所がある。あと、 もっとスライド距離をとれるようにすべきだった。



左右のレバーをSGP15A(白管)で連結。



こんな感じ。無意味に動かしているだけで楽しい機械です。

スライドレールに乗せるプレートはこれまたt10.0のSS400。アングルの角が丸 いので、角を落とします。かなり甘い保持だけど、精度は必要ないのでOK。

レールはかなりきつめにしておいたので、ちまちま研削しながらセッティング。 スムーズに動くとこまでもってきたけれど、ちょっと削り過ぎたかも...。



もう既に菜園の季節。出遅れてしまった。何も種蒔いてないし。とりあえず耕
しています。菜園をはじめてから3年目。まだまだ痩せた土です。それでもかな
りフカフカになってきた。ミミズとかもいるし。



スライドレール移動ユニット。あまりいいリンクじゃないのだけど、仕方ない。 レバーの長さは思案中。

ピボットの部分は肉厚が1.5mmで、ところどころ溶け落ちてしまった。どうも溶 接機の電源入れて最初は調子が悪いような気がする。あと自動遮光面もなんか 具合悪くなることがあって、時折り目潰しくらう。

ここもCR85のコンロッド小端ベアリング入り。これで全て使いきってしまった。 結構捨ててたし、もったいなかったな。これを入れる中刳りはφ18のホールソー を使っています。中のスリーブは手持ちφ20のホールソーが内径13.8mmくらい になるので、それを使って切り出し。



スライドレールを動かすリンクユニットは延々と考えた末、レールの両側にユ
ニットを設置してそれをつなげることにした。かなり手間はかかるけれど、こ
うじゃないとクランプユニットの干渉が避けれない。ちょっとづつ試作しなが
らパーツを作っています。



マイOSも大改修中。俺による俺のためのOSなので、敢えて俺俺インターフェー スにしていたのだけど、そこそこPOSIXの軍門に下ることにしました。
#define	printf(fmt, args...)	fprintf (stdout, fmt, ##args)
にする改修。これ、大変...。マイOS、サポートアーキテクチャがH8/300H, H8/300, H8SX, SH2A, SH4A, ARM7, x86と無闇に多い故...。おまけにH8/3664に なるとRAM2KBだからね。ちょっとデバッグプリントが多くなるとメモリに入ら ないんだ。

H8/3052, H8/3664, H8SX/1655, SH7262, LPC2388でテストの図。



最近、大物の切削が多く、保持に苦労していたのでラボジャッキを導入。ラボ
ジャッキなんて大学の実験以来で懐しい。

クランプユニットの四隅のクリアランスがきついのでφ18までルーズホールに。 φ18のノスドリルは手持ちになかったので買い出し。ハンズにはなく、井の頭 線渋谷駅西口近くの金物屋で購入。まさか在庫があるとは思わなかったので驚 いた。鑿も売ってたし、今度鑿も買いにいこうか。
NACHIの定価なので6130円。MonotaROでTPTなら3100円なんだけど、すぐ欲しかっ たので。

スライドレールの移動ははやっぱりリンクでいこうかなと思いはじめ、試行錯 誤。




ルーターユニット続き。ワークを上から押さえるパーツを作りました。小物量
産なのでQCAD2で図面作ってt3.0鉄板にスプレー糊貼り付けでケガキ。



こんな感じで保持。

木型屋バイスは取り外しました。取付ボルトが天板の下なのでルーターで天板 削って取り出し。こいつはガレージの作業台に持っていこうか。とにかく設置 条件、取付が大変なバイスなので難しいです。ちょっと失敗したと思っている。
細かに位置設定できるのは溶接にいいかも?

前に作ったチェーンユニットはこんな感じでレールの移動に使ってみようか。 見ての通りクランプユニットのトグルと干渉してしまうのだけど...。

区割りの変更で、うちはギリギリ計画停電から外れた。助かる...。



計画停電にとまどっている。自宅サーバをどうするべきか...UPS付けてるので
そこと連動すればいいのだけど、ちょっと乗り気がしない。ということで落ち
てたら上げることで。痛い目会ってから考えよう。



        


手持ちの材料でエンジン棚の落下防止。上段左から、CR80予備、NS-1, CR85燃
焼室容量測定用、下段左からNSR50、CR80(電ポン試験機)、RS125'92。CR以外は
いらないといえばいらないのだが...。



これはRX50スペシャル。高校時代1万5千円で購入、なんとかレーサー風にでき ないかと、とりあえずキャスター立てようと、トップブリッジを切断。でもこ の先どうしよう...と、お蔵入りしてしまった苦い記憶のマシンだ。MBX系の E/Gが50だと思っていると、この手の空冷のヤマハ(YSRもこの系列だ)の非力さ には驚く。ストトトトンとのっそり走る。そしてこのE/Gで驚いたのがケースの 合わせがプラスビスなのだ。
バラして捨てるのも面倒なので庭に放置。

とりあえず、やっつけで落下防止策を。

壁収納というのは、考えないといけないな。




さっそく耐震対策に。落ちてくるとダメージがありそうなのは下に降ろしまし
た。上方に物を置くなら扉つきのキャビネットじゃないとだめね。

旋盤を固定しました。なんで固定していなかったかというと、ちょっと移動で きた方が掃除がしやすいからなんだよね。倒れるものでもなし。

プレスも一応天井からワイヤ。昨日、このプレス機が倒れるんじゃないかと、 観察していたのだけど、意外に安定感あった。

一番揺れがひどかったのがこの棚。あと10秒揺れてたら倒れてたはず。壁にア ンカーで固定。

家の中の家具も、あちこち補強の固定。本棚はぴっちり押し込み気味につめま した。机の上はこのオシロの上のPCが落ちそうだった。とりあえず落ちること はないだろ程度で。

これで余震が来てもちょっと安心かな。



水曜練習に行って金曜は体力温存する予定が、水曜は疲労のため断念(予約まで
してあったのに。)、今日筑波に行ってきました。何を勘違いしたのか4時起き
で出発してしまい、はじめてゲートオープン前に並ぶことに。



一本目のS1は8:30、4℃切ってるし。指がかじかんでしまって操作どころじゃな い。次第に指先の痛みに耐えられなくなり15分ちょっとで走行終了。指が動かなくてヘルメットを脱ぐのも大変でした。

二本目のS2は10:30。暖かくなってきたとはいえまだ10℃切ってる。でも10℃近 辺なら十分走れる。が、またロガーの液晶が不調に...。そして赤旗が二回も出 る荒れ場でした。
そして速攻でもつ定。特スポは走らずに家に帰って整備。

腰上整備をしていると、地震。妙に長いなと思っていると強烈な揺れ。飾って おいたトロフィーとか、棚の上に置いておいたパーツリストやら落ちてくる。 旋盤は作業台の上で踊ってるし(唯一旋盤だけ固定していない)。旋盤を押さえ ながら、これ以上揺れがひどくなったら放置しよう。と思ったとこで揺れが終 わった。
そしてまた黙々と整備。やっと積み込みも終わって、さっきの地震どのくらい だったんだろ?とニュースを見てみると、とんでもなかったことを知った。レー スどころの話しじゃなかった...。
8:20 -404m 3.5℃→5.6℃ 34.7% 1013.1hPa 晴れ
5.5枚65℃

10:20 -174m 9.3℃→10.7℃ 38.5% 1011.8hPa 晴れ
4枚65℃



ハンドルにM12x1.25切って取り付けました。押し側のクランプの動きはなかな
かいい感じ。このユニット、縦取り付けも考えたりしてる。アタッチメントで
横ボール盤のように使えないかなと思ってます。



ロガーの修理。予備のLCDと交換してみたところ、これもだめ。どうも配線がい かれたらしい...。これはきつい。。壊れるとしたらまず自分の作ったとこだよ ね...。

マイOSも地味にちょこちょこいじってます。newlibも今となってはコンパクト ではなくなってしまったので、ちまちま最低限のlibcを用意していったり。悩 みどころはprintf。どこまで実装するかなのだけど(今の実装はNetBSDのlibsa より機能を削ってる)、ここで嫌らしいのがva_listの扱いだ。これ引数として 渡すと、同じgccでもアーキテクチャごとに実装が異なるんだよね...。安牌は va_argはじめたらva_listをサブルーチンに渡さないなんだけど。それだと見通 しが悪い...。



クランプ押し側のチェーン駆動ユニットを作りました。これは例によって
SGP15Aにφ18ホールソーで16mm掘り、CR85の使用済みのコンロッド小端ベアリ
ングをはめました。

溶接前の脱脂はパーツクリーナーでは足りないかも。今日はシンナーで脱脂し てみたところとても調子がよかった。



アルミの端材から丸棒をクランプする取付具を作りました。



それを使って鉄丸棒から部品を切削。

簡単な治具で固定して溶接。

クランプのチェーン駆動ユニットです。ちょっとガタが大きくて動作が渋い。 こっち側はまず使わないのでよしです。チェーンは椿本チエインのRS25で。





起きると体ギシギシ。二の腕がやたら筋肉痛だし、熱っぽい。毎年どんどん老
化が進むのを実感する。レース前日の練習はパスして体力温存した方がよさそ
う...。しこしことCR85整備。


        



筑波、去年11/12のBS走行会以来、4ヶ月弱ぶりの走行です。久しぶりの早起き
は遅めの5時起きでもとても辛く、顎が痛くなるくらいあくびをしながら筑波に
辿りつき、速攻で寝袋で一時間半程爆睡。ここ最近ストレッチもサボってたの
で体も固い...。



S1を出走すると、点火がおかしい。ピットインしてレーシングするとなんとも ない。調べてみるとパルサーの線のギボシがゆるんでいました。ロガーは液晶 が壊れてしまってなにも見えず。その後10分もすると握力がなくなってしまい ピットイン。しばらく握力回復待ち...。
S2走行終了までこらえきれなくなり、S2までの間に、もつ定。...うまい!!

S2は25分ノンストップで走りきりました。やっぱりS枠はいいわ〜。安心して走 りに集中できる。エンジンの調子は良さそう。

帰りにD'sでRSタイチの4mmのチェストプロテクターを購入。試しに着てみると ツナギの修正はなくてもよさそう。
液晶は壊れて走行中は見れなかったけれど、データはとれてました。いつも通 りの走りだ。というか、いつも通りまで走れてよかった...。


9:25 晴 -184m 9.7℃→10.5℃ 57.8% 1001.6hPa 4枚60℃ 5枚68℃
11:25 晴 49m 12.0℃ 49.1% 1000.7hPa 3.5枚 65〜68℃