090306

|



昨日は新宿に本を買いに行ったついでにDISK UNIONに。IMPELLITTERI御大の新
作と、90年のリマスター盤を。ボーカルがRob Rockに戻った。一曲目いきなり
のシャウトがいい! 雰囲気も僕の一番好きな"Victim Of The System"っぽい。
もちろん御大のことだから弾きまくりなのだけど、もっとはっちゃけてくれて
もいいかな...。筑波選手権の表彰式で最初の部分だけちょこっとかかるのは御
大の"STAND IN LINE"の中の"Somewhere Over The Rainbow"。これ、好きなんだ
よね。

やはり新宿に降り立つとその後は呑みに。来週レースなのでほどほどに。 菊姫の先一杯がうまかった。
これは3回目のニス塗り。#400でペーパーかけて、エアブローして、脱脂剤(プ レソルベント)で、削りくずをきっちり落としてから塗ります。透明感ある仕上 りを目指したい。
3回目でやっと目止めが終わった感じかな。

x86続き。ちょっと書きはじめた。どうもx86に対する苦手意識が強くて手が動かない。 まずはhello worldから。BIOSルーチンを使って"ohayo"と画面に表示するプログラム。 QEMUは楽でいいね。
----------------------------------------------------------------------
	.arch i8086
	.section .text
	.code16
	.balign 4
	cld			/* increment.*/
	movw	$_test_data, %si
loop:
	lodsb
	cmp	$0,	%al
	jz	end
	movb	$0x0e,	%ah
	movb	$0x00,	%bh
	movb	$0x07,	%bl
	int	$0x10
	jmp	loop
end:
	jmp	end

	.balign 4
	.section .data
	.global _test_data
_test_data:
	.string "ohayo"
----------------------------------------------------------------------

----------------------------------------------------------------------
OUTPUT_FORMAT ("binary")

MEMORY
{
	mbr_vma		: o = 0x7c00,	l = 0x1fe
	mbr_lma		: o = 0,	l = 0x1fe
	signature	: o = 0x1fe,	l = 2
}

SECTIONS
{
	_stack_start = 0xfff0;

	 .text :
	 {
	 	 *(.text)
		 *(.rodata)
		 . = ALIGN (4);
	 } > mbr_vma AT > mbr_lma

	 .data :
	 {
		 *(.data)
		 . = ALIGN (4);
	 } > mbr_vma AT > mbr_lma

	 .bss :
	 {
		 *(.bss)
	 } > mbr_vma AT > mbr_lma

	 .signature :
	 {
		SHORT (0xaa55)
	 }  > signature
}
----------------------------------------------------------------------

----------------------------------------------------------------------
AS	= gcc
LD	= ld
OBJCOPY	= objcopy
OBJDUMP	= objdump

OBJS	= simple_test.o
PROG	= boot1

.S.o:
	${AS} ${INCLUDES} ${ASFLAGS} ${DEPEND_UPDATE} -c -o $@ $<

all:	${PROG} check

${PROG}:	${OBJS}
	${LD} -T mbr.ldscript -o $@  ${OBJS}

clean:
	-rm -f ${OBJS} ${PROG}

check:
	${OBJDUMP} -b binary -m i8086 -D ${PROG}

test:
#	qemu -fda ${PROG}
#	qemu -nographic -serial stdio -hda ${PROG}
	qemu  -serial stdio -hda ${PROG}
# C-a x : exit QEMU
----------------------------------------------------------------------