arm64 ubuntu linuxのgasでpc98で起動する画像プログラムを書いて、画像プログラム起動システムを書きこんだフロッピーディスクの仮想イメージをつくった

エミュを使ってIPLプログラミングもどき (2)(PC-98のプログラム作成に関するエトセトラ)を参考に、gasとnp2kaiでやってみた。

asm1.S

.code16
.text
.globl _start
.org 0
_start:
	mov $0x0a000, %ax
	mov %ax, %es
	mov $23, %cx
	mov $0x2000, %di
	add $80, %di
	mov $0x0f1, %ax
POINT1:
	push %cx
	mov $30, %cx
	rep stosw
	pop %cx
	add $100, %di
	loop POINT1

	mov $23, %cx
	mov $0x087, %ax
	mov $80, %di
POINT2:
	push %cx
	mov $30, %cx
	rep stosw
	pop %cx
	add $100, %di
	loop POINT2

POINT3:
	jmp POINT3

.org +0x400

asでアセンブルして、How to generate plain binaries like nasm -f bin with the GNU GAS assembler?(stackoverflow)を参考にldとobjdumpでバイナリコードだけにし、初心者のためのPC-98プログラミング(1)【OS無しでbeepを鳴らす】(qiita)を参考にhoodと結合して、np2で起動する.TFDフロッピーイメージファイルにする。

#!/bin/sh
rm *.elf *.com *.tfd
i686-linux-gnu-as asm1.S -o asm1.elf
i686-linux-gnu-ld --oformat binary asm1.elf -o asm1.com
i686-linux-gnu-objdump -D -b binary -m i8086 asm1.com
cat asm1.com ../hood > asm1.tfd

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です