やりたいこと
CompactFlash(CF)カードのブートセクタに自作のプログラムを書き込み、
それをPocket8086(実際のIntel 8086を搭載した復刻PC)上で起動させる。
ブートセクタへ書き込むプログラム
以下は、画面に "Hello, Pocket8086!" と表示するだけの簡単なブートローダーです。
boot.asm
[bits 16]
[org 0x7C00]
mov si, msg
call print_string
jmp $
print_string:
lodsb
or al, al
jz .done
mov ah, 0x0E
int 0x10
jmp print_string
.done:
ret
msg db "Hello, Pocket8086!", 0
times 510-($-$$) db 0
dw 0xAA55
Ubuntsu上で作業
Windowsでrufus等を試したがうまく書き込めなかった。
以下のコマンドを実行して、コンパイル後CFへ書き込む
nasm boot.asm -f bin -o boot.bin # コンパイル
lsblk # CFカードの名前確認
sudo umount /media/ubuntu/cf1 #lsblkの結果に合わせて
sudo dd if=boot.bin of=/dev/sdc bs=512 count=1 conv=notrunc
sync
結果
無事に起動し、Pocket8086の画面に設定した文言が表示された。
環境
Ubuntsu 22.04.5