「ワンタッチ式突っ張りポールハンガー」と「くるくるシリコン水切り」購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

ここ最近、散財が過ぎる。無職のくせに。

¥9,690で購入。

IMG_1910IMG_1931
「設置名苦手な私でもカンタンね!」・・・設置名苦手??
自分が無知なだけだろうと、設置名苦手でググってみると、
もしかして: 設置が苦手
ダブルクォートで括ってググると、
“設置名苦手” に一致する結果は見つかりませんでした

結局良く分からず。

取説。
IMG_1933IMG_1934IMG_1935IMG_1936IMG_1937

2組みに分けて設置してみた。
IMG_1944

下に棚があるから真ん中の棒は取り付けず。
IMG_1945
しっかりしているから、倒れなそうだけど、地震来たらどうなるか。

 


¥3,280で購入。

以前、NHKのまちかど情報室で紹介されていて、後で買おうと思ったけどすっかり忘れていた。(2011年 10月17日(月)|まちかど情報室|NHKニュース おはよう日本)
狭い台所の作業スペースを広げたかった。折り畳み出来る机もあるけど、設置すると場所を取り過ぎる。

 

IMG_1920IMG_1921IMG_1922IMG_1924IMG_1926

設置してみた。Sサイズでピッタリ。
IMG_1948

まな板置いても、しなったりしない。
IMG_1946
耐熱温度が、220℃ってことで、火から下ろした鍋を置くスペースにもなるとのこと。

水が結構残る。
IMG_1928

カテゴリー: その他 | タグ: | コメントする

30日でできる! OS自作入門 3日目

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

OS自作入門がなかなか進まないのは、本が重いからだな。もしくは、重い本を置く場所が膝の上くらいしか無いから。我が家では。
広い机が欲しい。

三日目

ちゃんとしたIPL(*1)の作成、OS本体を書き始める、32ビットモード突入、C言語。

*1: ブートセクタ以外も読み込むIPLだとか


; ipl.nas
; haribote-ipl
; TAB=4

CYLS	EQU		10				; どこまで読み込むか

		ORG		0x7c00			; このプログラムがどこに読み込まれるのか

; 以下は標準的なFAT12フォーマットフロッピーディスクのための記述

		JMP		entry
		DB		0x90
		DB		"HARIBOTE"		; ブートセクタの名前を自由に書いてよい(8バイト)
		DW		512				; 1セクタの大きさ(512にしなければいけない)
		DB		1				; クラスタの大きさ(1セクタにしなければいけない)
		DW		1				; FATがどこから始まるか(普通は1セクタ目からにする)
		DB		2				; FATの個数(2にしなければいけない)
		DW		224				; ルートディレクトリ領域の大きさ(普通は224エントリにする)
		DW		2880			; このドライブの大きさ(2880セクタにしなければいけない)
		DB		0xf0			; メディアのタイプ(0xf0にしなければいけない)
		DW		9				; FAT領域の長さ(9セクタにしなければいけない)
		DW		18				; 1トラックにいくつのセクタがあるか(18にしなければいけない)
		DW		2				; ヘッドの数(2にしなければいけない)
		DD		0				; パーティションを使ってないのでここは必ず0
		DD		2880			; このドライブ大きさをもう一度書く
		DB		0,0,0x29		; よくわからないけどこの値にしておくといいらしい
		DD		0xffffffff		; たぶんボリュームシリアル番号
		DB		"HARIBOTEOS "	; ディスクの名前(11バイト)
		DB		"FAT12   "		; フォーマットの名前(8バイト)
		RESB	18				; とりあえず18バイトあけておく

; プログラム本体

entry:
		MOV		AX,0			; レジスタ初期化
		MOV		SS,AX
		MOV		SP,0x7c00
		MOV		DS,AX

; ディスクを読む

		MOV		AX,0x0820
		MOV		ES,AX
		MOV		CH,0			; シリンダ0
		MOV		DH,0			; ヘッド0
		MOV		CL,2			; セクタ2
readloop:
		MOV		SI,0			; 失敗回数を数えるレジスタ
retry:
		MOV		AH,0x02			; AH=0x02 : ディスク読み込み
		MOV		AL,1			; 1セクタ
		MOV		BX,0
		MOV		DL,0x00			; Aドライブ
		INT		0x13			; ディスクBIOS呼び出し
		JNC		next			; エラーがおきなければnextへ
		ADD		SI,1			; SIに1を足す
		CMP		SI,5			; SIと5を比較
		JAE		error			; SI >= 5 だったらerrorへ
		MOV		AH,0x00
		MOV		DL,0x00			; Aドライブ
		INT		0x13			; ドライブのリセット
		JMP		retry
next:
		MOV		AX,ES			; アドレスを0x200進める
		ADD		AX,0x0020
		MOV		ES,AX			; ADD ES,0x020 という命令がないのでこうしている
		ADD		CL,1			; CLに1を足す
		CMP		CL,18			; CLと18を比較
		JBE		readloop		; CL <= 18 だったらreadloopへ
		MOV		CL,1
		ADD		DH,1
		CMP		DH,2
		JB		readloop		; DH < 2 だったらreadloopへ
		MOV		DH,0
		ADD		CH,1
		CMP		CH,CYLS
		JB		readloop		; CH < CYLS だったらreadloopへ

; 読み終わったのでharibote.sysを実行だ!

		JMP		0xc200

error:
		MOV		AX,0
		MOV		ES,AX
		MOV		SI,msg
putloop:
		MOV		AL,[SI]
		ADD		SI,1			; SIに1を足す
		CMP		AL,0
		JE		fin
		MOV		AH,0x0e			; 一文字表示ファンクション
		MOV		BX,15			; カラーコード
		INT		0x10			; ビデオBIOS呼び出し
		JMP		putloop
fin:
		HLT						; 何かあるまでCPUを停止させる
		JMP		fin				; 無限ループ
msg:
		DB		0x0a, 0x0a		; 改行を2つ
		DB		"load error"
		DB		0x0a			; 改行
		DB		0

		RESB	0x7dfe-$		; 0x7dfeまでを0x00で埋める命令

		DB		0x55, 0xaa

↑のコードでは、読み込んだデータ(第2セクタ以降のデータ)を、0x08200~に入れていっている。


; ディスクを読む

		MOV		AX,0x0820
		MOV		ES,AX
		MOV		CH,0			; シリンダ0
		MOV		DH,0			; ヘッド0
		MOV		CL,2			; セクタ2
readloop:
		MOV		SI,0			; 失敗回数を数えるレジスタ
retry:
		MOV		AH,0x02			; AH=0x02 : ディスク読み込み
		MOV		AL,1			; 1セクタ
		MOV		BX,0
		MOV		DL,0x00			; Aドライブ
		INT		0x13			; ディスクBIOS呼び出し
・・・

0x08000~0x081ffには、後でブートセクタを入れるらしいので、
0x08000~ディスクを読み込んだデータが入る事になると。
FAT12の場合は(?)、ディスクイメージにファイルを保存すると、0x004200に保存されるらしく、
0x008000 + 0x004200 = 0xc200
だから、↓で0xc200にJMP。


; 読み終わったのでharibote.sysを実行だ!

		JMP		0xc200

そうすると、↓が実行される。


; haribote.nas
; haribote-os
; TAB=4

		ORG		0xc200			; このプログラムがどこに読み込まれるのか
fin:
		HLT
		JMP		fin

そんな感じのイメージの作成は、↓の部分らしい。


# Makefile
・・・
haribote.img : ipl.bin haribote.sys Makefile
$(EDIMG) imgin:../z_tools/fdimg0at.tek \
wbinimg src:ipl.bin len:512 from:0 to:0 \
copy from:haribote.sys to:@: \
imgout:haribote.img
・・・

tools/edimg – hrb-wikiによると、
copy from:xxx.xxx to:@:
は、ファイル(xxx.xxx)をディスクイメージにコピーする。

edimg.exeでコピーすると、
・ファイル名は、0x002600以降
・ファイルの中身は、0x004200以降
に入るとのこと。

The FAT File System
19~32セクタ(0x2600~0x41ff)が、Root Directory
33~2879セクタ(0x4200~0x167fff)が、File storage space
だとか。

32bitモードへ入るアセンブラの説明は後ほどとのこと。

OS自作入門でのC言語でのプログラミングは、
・cc1.exeでコンパイルし、gas(Gnu ASsembler)なファイルを作成する。
・gas2nask.exeを使って、gasなファイルをnaskなファイルに変換する。
・nask.exeを使って、naskなファイルをアセンブルする。
・obj2bim.exe(リンカ)を使って、リンクする。(bimは、Binary IMageの略だとか)
・bim2hrb.exeを使って、ハリボテOS用の形式にする。
という一連の流れが必要らしい。

Makefileでやってるので、叩くコマンドは変わらず。

カテゴリー: ソフトウェア | タグ: , | コメントする

K.Yairi LADYBIRD購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

ミニギターが欲しくてつい。中古で¥20,000。

LADY BIRDは生産中止のため、公式サイトに情報が無いけど、webarchive.orgに残ってた。
LADY BIRD

いつでもどこでも上質のアコースティックサウンド
もちろんトップ材には単版を使用
ネックにはエボニーを埋込む等、楽器の本質をまもり、オリジナルピックガードであなただけのギターになる、遊び心満点のミニギターLADY BIRDです。

中古だからピックガードは付いてなかった。残念。

IMG_1842

少々傷が付いているけど、中古だし仕方ない。
IMG_1844IMG_1847IMG_1857IMG_1865

サウンドホール内のシール。
IMG_1874

FG-730Sと並べてみた。
IMG_1888IMG_1892

レディバード用に、軽いカポ購入。

IMG_1915IMG_1916

まるで何もつけてないみたい!

カテゴリー: その他 | タグ: | 3件のコメント

30日でできる! OS自作入門 2日目

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

二日目

アセンブラの勉強と、レジスタの説明、BIOSの説明、Makefileの作成。

naskのマニュアルが見つからなかった。tools/nask – hrb-wikiによると,naskとNASMにほとんど差は無いらしい。
NASMのマニュアル(一部日本語化)は、NASM Manualに。(ver2.03)

アセンブラ(NASM)の勉強としては、Assembly Programming Linuxが分かりやすそう。標準入出力や、アセンブラからコマンドライン引数とか環境変数の扱い方とかも書かれている。Assembly Programming on x86-64 Linuxに、64bitについても。
OS自作入門では知らなくて良い情報かもしれないけど。

レジスタは、OS Project Wikiレジスタらへんに詳しく書いてある。

BIOSの割り込み機能(INTerrupt)の説明。(AT)BIOS – OS-Wiki に詳しく書いていると。
BIOS割り込みルーチン – Wikipediaにも。

メモリマップに注意してねとも書いてあった。決まった部分に書かないと動かないよと。
(AT)memorymap – OS-Wiki

二日目は、CD-ROM内のファイルの解説で終了。

ipl.nas


; hello-os
; TAB=4

		ORG		0x7c00			; このプログラムがどこに読み込まれるのか

; 以下は標準的なFAT12フォーマットフロッピーディスクのための記述

		JMP		entry
		DB		0x90
		DB		"HELLOIPL"		; ブートセクタの名前を自由に書いてよい(8バイト)
		DW		512				; 1セクタの大きさ(512にしなければいけない)
		DB		1				; クラスタの大きさ(1セクタにしなければいけない)
		DW		1				; FATがどこから始まるか(普通は1セクタ目からにする)
		DB		2				; FATの個数(2にしなければいけない)
		DW		224				; ルートディレクトリ領域の大きさ(普通は224エントリにする)
		DW		2880			; このドライブの大きさ(2880セクタにしなければいけない)
		DB		0xf0			; メディアのタイプ(0xf0にしなければいけない)
		DW		9				; FAT領域の長さ(9セクタにしなければいけない)
		DW		18				; 1トラックにいくつのセクタがあるか(18にしなければいけない)
		DW		2				; ヘッドの数(2にしなければいけない)
		DD		0				; パーティションを使ってないのでここは必ず0
		DD		2880			; このドライブ大きさをもう一度書く
		DB		0,0,0x29		; よくわからないけどこの値にしておくといいらしい
		DD		0xffffffff		; たぶんボリュームシリアル番号
		DB		"HELLO-OS   "	; ディスクの名前(11バイト)
		DB		"FAT12   "		; フォーマットの名前(8バイト)
		RESB	18				; とりあえず18バイトあけておく

; プログラム本体

entry:
		MOV		AX,0			; レジスタ初期化
		MOV		SS,AX
		MOV		SP,0x7c00
		MOV		DS,AX
		MOV		ES,AX

		MOV		SI,msg
putloop:
		MOV		AL,[SI]
		ADD		SI,1			; SIに1を足す
		CMP		AL,0
		JE		fin
		MOV		AH,0x0e			; 一文字表示ファンクション
		MOV		BX,15			; カラーコード
		INT		0x10			; ビデオBIOS呼び出し
		JMP		putloop
fin:
		HLT						; 何かあるまでCPUを停止させる
		JMP		fin				; 無限ループ

msg:
		DB		0x0a, 0x0a		; 改行を2つ
		DB		"hello, world"
		DB		0x0a			; 改行
		DB		0

		RESB	0x7dfe-$		; 0x7dfeまでを0x00で埋める命令

		DB		0x55, 0xaa

「ORG 0x7c00」は、メモリのどこに読み込まれるかをnaskに教える命令だとか。AT互換機だと(?)ブートセクタは、0x00007c00~0x00007dffに読み込まれるらしいので、ORGで0x7c00を指定する・・・と。
× 0x7c00に、読み込んでくれ
○ 0x7c00に、読み込まれます
って感じかな。

他に使われている命令のメモ。
JMP: JuMP。指定したラベルとかアドレスに飛ぶ
MOV: MOVe。代入。
ADD: ADD。足し算
CMP: CoMPare。比較
JE : Jump Equal。等しければJUMP
INT: INTerrupt。BIOSの割り込み機能呼び出し
HLT: HaLT。停止

↑のソースをアセンブルした結果を視覚的に表したもの(?)が、↓。

ipl.lst


     1 00000000                                 ; hello-os
     2 00000000                                 ; TAB=4
     3 00000000                                 
     4                                          		ORG		0x7c00			; このプログラムがどこに読み込まれるのか
     5 00007C00                                 
     6 00007C00                                 ; 以下は標準的なFAT12フォーマットフロッピーディスクのための記述
     7 00007C00                                 
     8 00007C00 EB 4E                           		JMP		entry
     9 00007C02 90                              		DB		0x90
    10 00007C03 48 45 4C 4C 4F 49 50 4C         		DB		"HELLOIPL"		; ブートセクタの名前を自由に書いてよい(8バイト)
    11 00007C0B 0200                            		DW		512				; 1セクタの大きさ(512にしなければいけない)
    12 00007C0D 01                              		DB		1				; クラスタの大きさ(1セクタにしなければいけない)
    13 00007C0E 0001                            		DW		1				; FATがどこから始まるか(普通は1セクタ目からにする)
    14 00007C10 02                              		DB		2				; FATの個数(2にしなければいけない)
    15 00007C11 00E0                            		DW		224				; ルートディレクトリ領域の大きさ(普通は224エントリにする)
    16 00007C13 0B40                            		DW		2880			; このドライブの大きさ(2880セクタにしなければいけない)
    17 00007C15 F0                              		DB		0xf0			; メディアのタイプ(0xf0にしなければいけない)
    18 00007C16 0009                            		DW		9				; FAT領域の長さ(9セクタにしなければいけない)
    19 00007C18 0012                            		DW		18				; 1トラックにいくつのセクタがあるか(18にしなければいけない)
    20 00007C1A 0002                            		DW		2				; ヘッドの数(2にしなければいけない)
    21 00007C1C 00000000                        		DD		0				; パーティションを使ってないのでここは必ず0
    22 00007C20 00000B40                        		DD		2880			; このドライブ大きさをもう一度書く
    23 00007C24 00 00 29                        		DB		0,0,0x29		; よくわからないけどこの値にしておくといいらしい
    24 00007C27 FFFFFFFF                        		DD		0xffffffff		; たぶんボリュームシリアル番号
    25 00007C2B 48 45 4C 4C 4F 2D 4F 53 20 20   		DB		"HELLO-OS   "	; ディスクの名前(11バイト)
       00007C35 20 
    26 00007C36 46 41 54 31 32 20 20 20         		DB		"FAT12   "		; フォーマットの名前(8バイト)
    27 00007C3E 00 00 00 00 00 00 00 00 00 00   		RESB	18				; とりあえず18バイトあけておく
       00007C48 00 00 00 00 00 00 00 00 
    28 00007C50                                 
    29 00007C50                                 ; プログラム本体
    30 00007C50                                 
    31 00007C50                                 entry:
    32 00007C50 B8 0000                         		MOV		AX,0			; レジスタ初期化
    33 00007C53 8E D0                           		MOV		SS,AX
    34 00007C55 BC 7C00                         		MOV		SP,0x7c00
    35 00007C58 8E D8                           		MOV		DS,AX
    36 00007C5A 8E C0                           		MOV		ES,AX
    37 00007C5C                                 
    38 00007C5C BE 7C74                         		MOV		SI,msg
    39 00007C5F                                 putloop:
    40 00007C5F 8A 04                           		MOV		AL,[SI]
    41 00007C61 83 C6 01                        		ADD		SI,1			; SIに1を足す
    42 00007C64 3C 00                           		CMP		AL,0
    43 00007C66 74 09                           		JE		fin
    44 00007C68 B4 0E                           		MOV		AH,0x0e			; 一文字表示ファンクション
    45 00007C6A BB 000F                         		MOV		BX,15			; カラーコード
    46 00007C6D CD 10                           		INT		0x10			; ビデオBIOS呼び出し
    47 00007C6F EB EE                           		JMP		putloop
    48 00007C71                                 fin:
    49 00007C71 F4                              		HLT						; 何かあるまでCPUを停止させる
    50 00007C72 EB FD                           		JMP		fin				; 無限ループ
    51 00007C74                                 
    52 00007C74                                 msg:
    53 00007C74 0A 0A                           		DB		0x0a, 0x0a		; 改行を2つ
    54 00007C76 68 65 6C 6C 6F 2C 20 77 6F 72   		DB		"hello, world"
       00007C80 6C 64 
    55 00007C82 0A                              		DB		0x0a			; 改行
    56 00007C83 00                              		DB		0
    57 00007C84                                 
    58 00007C84 00 00 00 00 00 00 00 00 00 00   		RESB	0x7dfe-$		; 0x7dfeまでを0x00で埋める命令
       00007C8E 00 00 00 00 00 00 00 00 00 00 
       00007C98 00 00 00 00 00 00 00 00 00 00 
       00007CA2 00 00 00 00 00 00 00 00 00 00 
       00007CAC 00 00 00 00 00 00 00 00 00 00 
       00007CB6 00 00 00 00 00 00 00 00 00 00 
       00007CC0 00 00 00 00 00 00 00 00 00 00 
       00007CCA 00 00 00 00 00 00 00 00 00 00 
       00007CD4 00 00 00 00 00 00 00 00 00 00 
       00007CDE 00 00 00 00 00 00 00 00 00 00 
       00007CE8 00 00 00 00 00 00 00 00 00 00 
       00007CF2 00 00 00 00 00 00 00 00 00 00 
       00007CFC 00 00 00 00 00 00 00 00 00 00 
       00007D06 00 00 00 00 00 00 00 00 00 00 
       00007D10 00 00 00 00 00 00 00 00 00 00 
       00007D1A 00 00 00 00 00 00 00 00 00 00 
       00007D24 00 00 00 00 00 00 00 00 00 00 
       00007D2E 00 00 00 00 00 00 00 00 00 00 
       00007D38 00 00 00 00 00 00 00 00 00 00 
       00007D42 00 00 00 00 00 00 00 00 00 00 
       00007D4C 00 00 00 00 00 00 00 00 00 00 
       00007D56 00 00 00 00 00 00 00 00 00 00 
       00007D60 00 00 00 00 00 00 00 00 00 00 
       00007D6A 00 00 00 00 00 00 00 00 00 00 
       00007D74 00 00 00 00 00 00 00 00 00 00 
       00007D7E 00 00 00 00 00 00 00 00 00 00 
       00007D88 00 00 00 00 00 00 00 00 00 00 
       00007D92 00 00 00 00 00 00 00 00 00 00 
       00007D9C 00 00 00 00 00 00 00 00 00 00 
       00007DA6 00 00 00 00 00 00 00 00 00 00 
       00007DB0 00 00 00 00 00 00 00 00 00 00 
       00007DBA 00 00 00 00 00 00 00 00 00 00 
       00007DC4 00 00 00 00 00 00 00 00 00 00 
       00007DCE 00 00 00 00 00 00 00 00 00 00 
       00007DD8 00 00 00 00 00 00 00 00 00 00 
       00007DE2 00 00 00 00 00 00 00 00 00 00 
       00007DEC 00 00 00 00 00 00 00 00 00 00 
       00007DF6 00 00 00 00 00 00 00 00 
    59 00007DFE                                 
    60 00007DFE 55 AA                           		DB		0x55, 0xaa

今まで書いていた、↓の部分は、


; 以下はブートセクタ以外の部分の記述

		DB		0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
		RESB	4600
		DB		0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
		RESB	1469432

↓のコマンドで作る模様。

..\z_tools\edimg.exe imgin:../z_tools/fdimg0at.tek wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img

edimg.exeの解説は、tools/edimg – hrb-wikiにあるけど、
fdimg0at.tekの内容については書かれていない。(空っぽの内容のディスクイメージらしいけど)

tek – OS-Wikiを見ると圧縮されたファイルの模様。
展開すると空の1.44MB相当のデータになるんだろうか。

結局は、ipl.nasをアセンブルして、ipl.binを作り、
edimg.exe で、fdimg0at.tek と ipl.bin を合体させて、helloos.img を作る。
ってことか。

カテゴリー: ソフトウェア | タグ: , , , , , | コメントする

30日でできる! OS自作入門を読み始める

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

職が見つかるまで試してみようかと。

ってことで、図書館で借りてきた。強風の中。
IMG_1835IMG_1838

機会があったら読んでみようと思ってから6年も経ってるのか。。
OS自作入門を読み終えるのが先か、職が見つかるのが先か、果たして。(挫折する可能性も大いに有り)

1日目

フロッピーディスクイメージを手書きで作る模様。
馬鹿正直に書いてみる。
20120403_171951_120120403_185231_1

付属のQEMUで動かしてみる。
20120403_183740_1

VMwareでも動かしてみる。
20120403_184307_120120403_184318_120120403_184401_120120403_184425_1

次は、手書きで書いたものを、アセンブラで書くとのこと。

NASMっぽい文法のnaskというアセンブラを使う模様。NASMより最適化能力が優れているとのこと。

GO/nask – OS-Wikiによると、
naskは、GO(じーおー)の一部。GO(じーおー)は、IA-32用の汎用gcc。GO – OS-Wiki

本の通りに、18万行超のコードを書いて(実際は、QuickBEの変換を使っただけだが)、
naskでアセンブルしようとしたら、でかすぎるって怒られる。

仕方ないので、RESBを使うコードを試す。
helloos.nas


DB 0xEB, 0x4E, 0x90, 0x48, 0x45, 0x4C, 0x4C, 0x4F
DB 0x49, 0x50, 0x4C, 0x00, 0x02, 0x01, 0x01, 0x00
DB 0x02, 0xE0, 0x00, 0x40, 0x0B, 0xF0, 0x09, 0x00
DB 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x40, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x29, 0xFF
DB 0xFF, 0xFF, 0xFF, 0x48, 0x45, 0x4C, 0x4C, 0x4F
DB 0x2D, 0x4F, 0x53, 0x20, 0x20, 0x20, 0x46, 0x41
DB 0x54, 0x31, 0x32, 0x20, 0x20, 0x20, 0x00, 0x00
RESB 16
DB 0xB8, 0x00, 0x00, 0x8E, 0xD0, 0xBC, 0x00, 0x7C
DB 0x8E, 0xD8, 0x8E, 0xC0, 0xBE, 0x74, 0x7C, 0x8A
DB 0x04, 0x83, 0xC6, 0x01, 0x3C, 0x00, 0x74, 0x09
DB 0xB4, 0x0E, 0xBB, 0x0F, 0x00, 0xCD, 0x10, 0xEB
DB 0xEE, 0xF4, 0xEB, 0xFD, 0x0A, 0x0A, 0x68, 0x65
DB 0x6C, 0x6C, 0x6F, 0x2C, 0x20, 0x77, 0x6F, 0x72
DB 0x6C, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 368
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xAA
DB 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432

DBは、Data Byte。
RESBは、REServe Byte とのこと。指定したバイトをゼロ埋め

アセンブル

C:\tools\devel\hariboteOS\work>..\tolset\z_tools\nask.exe helloos.nas helloos.img

C:\tools\devel\hariboteOS\work>dir
ドライブ C のボリューム ラベルは 1st です
ボリューム シリアル番号は 4ECF-B009 です

C:\tools\devel\hariboteOS\work のディレクトリ

2012/04/03 22:46 <DIR> .
2012/04/03 22:46 <DIR> ..
2012/04/03 18:34 1,474,560 fdimage0.bin
2012/04/03 22:47 1,474,560 helloos.img
2012/04/03 19:27 962 helloos.nas
3 個のファイル 2,950,082 バイト
2 個のディレクトリ 79,016,374,272 バイトの空き領域

C:\tools\devel\hariboteOS\work>fc /b helloos.img fdimage0.bin
ファイル helloos.img と FDIMAGE0.BIN を比較しています
FC: 相違点は検出されませんでした

DBとRESBだけのソースを、それっぽく書き換えたのが、↓だそうだ。


; hello-os
; TAB=4

; 以下は標準的なFAT12フォーマットフロッピーディスクのための記述

		DB		0xeb, 0x4e, 0x90
		DB		"HELLOIPL"		; ブートセクタの名前を自由に書いてよい(8バイト)
		DW		512				; 1セクタの大きさ(512にしなければいけない)
		DB		1				; クラスタの大きさ(1セクタにしなければいけない)
		DW		1				; FATがどこから始まるか(普通は1セクタ目からにする)
		DB		2				; FATの個数(2にしなければいけない)
		DW		224				; ルートディレクトリ領域の大きさ(普通は224エントリにする)
		DW		2880			; このドライブの大きさ(2880セクタにしなければいけない)
		DB		0xf0			; メディアのタイプ(0xf0にしなければいけない)
		DW		9				; FAT領域の長さ(9セクタにしなければいけない)
		DW		18				; 1トラックにいくつのセクタがあるか(18にしなければいけない)
		DW		2				; ヘッドの数(2にしなければいけない)
		DD		0				; パーティションを使ってないのでここは必ず0
		DD		2880			; このドライブ大きさをもう一度書く
		DB		0,0,0x29		; よくわからないけどこの値にしておくといいらしい
		DD		0xffffffff		; たぶんボリュームシリアル番号
		DB		"HELLO-OS   "	; ディスクの名前(11バイト)
		DB		"FAT12   "		; フォーマットの名前(8バイト)
		RESB	18				; とりあえず18バイトあけておく

; プログラム本体

		DB		0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
		DB		0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
		DB		0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
		DB		0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
		DB		0xee, 0xf4, 0xeb, 0xfd

; メッセージ部分

		DB		0x0a, 0x0a		; 改行を2つ
		DB		"hello, world"
		DB		0x0a			; 改行
		DB		0

		RESB	0x1fe-$			; 0x001feまでを0x00で埋める命令

		DB		0x55, 0xaa

; 以下はブートセクタ以外の部分の記述

		DB		0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
		RESB	4600
		DB		0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
		RESB	1469432

DW: Data Word。指定された値をワード(2byte)として書き込む
DD: Data Double word。指定された値をダブルワード(4byte)として書き込む


RESB 0x1fe-$ ; 0x001feまでを0x00で埋める命令

が特殊で、$は、現在の位置を表すから、現在の位置から、0x1feまでゼロ埋め出来るらしい。
$は他の意味もあるらしく、それは2日目以降のお楽しみとの話。

カテゴリー: ソフトウェア | タグ: , , | コメントする

窓の杜 – 【NEWS】「Emacs」風テキストエディター「xyzzy」が6年ぶりのアップデート

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

常用しているテキストエディタ(?環境?)が更新されていた。

xyzzy Projectは29日、Windows環境で動作する「Emacs」風のテキストエディター「xyzzy」の最新版v0.2.2.236を公開した。本ソフトのバージョンアップは、2005年12月以来となる約6年ぶり。
・・・
本ソフトはもともと亀井哲弥氏によって開発され長い間メンテナンスされてきたが、近年は更新が滞っていた。そこで今回、11人の有志によって開発が引き継がれ、34件の機能追加と51件の不具合修正が施された。開発はオープンソースで進められており、ソースコードは“GitHub”から入手可能。ライセンスはMITライセンスとなっている。

窓の杜 – 【NEWS】「Emacs」風テキストエディター「xyzzy」が6年ぶりのアップデート

http://xyzzy-022.github.com/ を見ると、既に、v0.2.2.237になってた。

GitHub見るとすごい活発。

 

他の派生として、multiframe版もあるみたいだけど、自分の使い方としてはバッファの切替で十分だから、しばらくこれ使ってみよう。
この機会にlisp勉強しようかしら。

カテゴリー: ソフトウェア | タグ: , , , , , , | コメントする

GEL-KAYANO 18-slimを購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

アシックスストアにて、¥15,225で。

Amazonとかの方が安いけど、アシックスストアだと、正確な足のサイズを測ってもらえて、そのサイズに見合った靴を選んでくれるという事で、原宿まで行った。

そこで笑顔の素敵なお姉さんに測ってもらった結果

IMG_1789

平均より足が細いとのことで、スリムタイプな靴が良いとのこと。
ランニングシューズの場合、サイズは足長+1.0cmが丁度良いらしい。測定結果が、26.5cmだから、27.5cmが丁度良いとのこと。
勧められたモデルは、GEL-KAYANO 18-slimと、GT-2170 NEW YORK-slim。
どっちもフィット感が良かったが、NEW YORKの方がより踵がフィットする、というかキツかった。
あと、KAYANOの方はつま先の両脇の一部(灰色の部分)が布になってい若干伸びるから、窮屈さが多少和らぐとのこと。
結局、GEL-KAYANO 18-slimを購入。(走ってみないことには分からないけど、窮屈すぎると足が痛くなったりするかも?とか思って。)

IMG_1791IMG_1793IMG_1794IMG_1795IMG_1796IMG_1797IMG_1798IMG_1801IMG_1802IMG_1805IMG_1806IMG_1808IMG_1809

カテゴリー: その他 | タグ: , , | コメントする

Mac mini(Lion)に、VNCでログイン出来たり出来なかったりした問題が解決したかも(?)

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

WindowsのPCから、Mac mini(Lion)に、VNCでログインしようとすると、固まる現象が発生していた。
具体的な現象としては、

  • ログイン画面で固まる(フリーズする)
  • ユーザをクリックすると固まる(フリーズする)
  • パスワード入力中に固まる

ただ、必ず発生する訳ではなく、正常にログイン出来る場合もあるので、原因不明で困ってましたが、

(Solved) How to fix VNC ARD screen…: Apple Support Communities

に書いてある方法で固まらずにログイン出来るようになりました。

  1. システム環境設定 → 共有を開く
    20120229_000901_1
  2. 画面共有、リモートログイン、リモートマネージメント、リモートアップルイベントをオフにする。
  3. 画面共有、リモートログイン、リモートマネージメント、リモートアップルイベントをオンにする。
    (「リモートログイン」と「リモートマネージメント」をオンにすると、「画面共有」が自動的にオフになったけど、とりあえず気にしない。)
  4. 画面共有、リモートログイン、リモートマネージメント、リモートアップルイベントをもう一度オフにする。
    kickstartがどうたらこうたらって書いてるけど、良く分からない。詳細は、↑のリンク先へ。。
  5. 有効にしたいサービスをオンにする。
    自分では、SSHとVNCが使いたいので、「リモートログイン」、「リモートマネージメント」をオンにしました。
    (VNCの設定等々は割愛)
  6. WindowsのPCから、Mac mini(Lion)にVNCで接続する。

この操作をした後、VNCでのログイン時に固まる現象は発生していないので、解決したのかな。

追記:↑と、思ったけど、やっぱ固まる。。↓をやれば良いのかな。。。

If it still doesn’t work, then you should try downgrading to ARD 3.4, but I don’t think this is necessary.

追記2: Apple Remote Desktop: Configuring remotely via command line (kickstart)に書いてある、


sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent

を実行した後だと、VNCでログイン出来るようになった。
VNCでログイン出来ず困る場合は、とりあえずSSHでログインして、これを実行してみようかと。
ただ、毎回入力するのは面倒なので、簡易スクリプトにしておく。


% cat kickstart-restart.sh
#!/bin/sh
 
/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent
% chmod a+x kickstart-restart.sh
% sudo ./kickstart-restart.sh

カテゴリー: MAC | タグ: , , , , | コメントする

Mac mini(2011 Mid)のメモリ増設(DDR3-1333 8GBx2: W3N1333F-8G)

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

↑これを、ソフマップにて、\9,980で購入。

DDR2-800 4GBなメモリ(WT-LD800-4GB)x4枚購入」でWindowsマシンのメモリを増設した結果、すこぶる快適になったので、、、Google chromeが4GBくらいメモリを使用していても、可愛いもんだと思えるようになったので、Mac miniも増設しようかと。(大して使ってないのに)

 

W3N1333F-8G_001W3N1333F-8G_002W3N1333F-8G_003W3N1333F-8G_004

Mac miniのフタを開ける
W3N1333F-8G_005
刺さってるメモリを外して、購入したメモリを取り付ける。

メモリを取り付けた後、最初にやることといえばメモリテスト。
memtest86+をインストールしたUSBメモリをMac miniに挿して電源ボタンを押す。その後すぐOptionキーを押下して、スタートアップマネージャを起動する。

んだけど、このスタートアップマネージャ起動にだいぶ手間取った。
WiressKeyboardの場合(?)、Optionキーを押すタイミングが早くても遅くてもスタートアップマネージャは起動しないらしい。

・・・
起動

ジャーンと鳴る

画面が白くなる ←ココ!

リンゴマークが現れる
・・・
起動時にキーボードコンビネーションが効か…: Apple サポートコミュニティより)

最初のうちは、画面が白くなった後、Optionキーを連打していたが、その場合スタートアップマネージャが立ち上がる率が悪かった。
連打よりは、長押しする方が立ち上がる確率が高い。(気がした)
あと、初回電源投入時はスタートアップマネージャが立ち上がる確率が悪い。ログイン画面が出た後、再起動した時の方が、スタートアップマネージャが立ち上がりやすい(気がした)

W3N1333F-8G_012

USBメモリ起動で、memtest86+を動かす。
W3N1333F-8G_013

エラー発生!?
W3N1333F-8G_014

Errorsが、どんどん増えていく!?
W3N1333F-8G_015
orz

Mac mini本体の問題か、メモリの問題か分からなかったので、元々刺さっていた2GBx2枚のメモリを挿しなおして、memtest86+を動かすとエラー無し。
相性的な問題があるのか?とかも思って、購入したメモリを1枚挿しにして、memtest86+でテスト。
その結果、1枚はエラー無し、もう1枚がエラー発生になったので、相性問題ではなく、十中八九メモリの初期不良だろうと思うので、購入店に持って行って交換してもおうかと。

ちなみに、MacOSX用のメモリテストツールRemberでもメモリテストしてみたけど、エラー無しだった。。
ram_1

サクっと交換してきてもらう。(再現確認することなく、交換してもらえた。きっと悲壮感が漂ってたからだろう)
W3N1333F-8G_021W3N1333F-8G_022W3N1333F-8G_023

早速、memtest86+。
W3N1333F-8G_024

2週Pass!!
W3N1333F-8G_025

16GBwww空き10.97GBwwwwwwwwwww
ram_2ram_3

 

続きを読む

カテゴリー: MAC, ハードウェア | タグ: , , , , , , , , | 3件のコメント

DDR2-800 4GBなメモリ(WT-LD800-4GB)x4枚購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

↑これが、4GBx2枚だったので、2つ買って\16,400+メール便送料200円。
精密機器をメール便とか!?自分で指定したんだけど。
今気付いたけど、Amazonで買ったほうが安かった。。。

1枚、\3,950。4枚で、\15,800。Amazonの配送だから送料無料。かつ、メール便じゃない。失敗した・・・orz
ま、いっか。

IMG_1681
IMG_1682

早速刺したところ、BIOSは特に問題なく認識。
IMG_1684

Memtest86+を回す。
IMG_1693

2週回ったのでOK。
IMG_1695

問題なさそうなので、OS起動してシステム情報見る。
ram_06
16.0GBwww何に使うんだかwwwwwwwwwww

CPU-Zで見てみる。
ram_01ram_02ram_03ram_04ram_05

Ramdiskを増やす。Sizeの変更が出来なかった(グレーアウトされてた)ので、RamdiskをRemoveした後、再度Addで増やす。
ram_08

4GBより大きいサイズを指定したら怒られる。
ram_10
VSuite Ramdisk Standard Editionは、1つのRamdiskが4GB。合計で6GBの制限があるのを忘れてた。(VSuite Ramdisk Edition Comparison Chart)

仕方ないので、4GB、2GBのRamdiskを作って使うことに。

ram_12

続きを読む

カテゴリー: ハードウェア | タグ: , , , , , | コメントする