diff --git a/Makefile b/Makefile index b05fd49..d319812 100644 --- a/Makefile +++ b/Makefile @@ -73,6 +73,10 @@ fate.bs: boot/fat.asm %.rom: rom/%.asm utils/fix-rom $(NASM) $(NASM_ARGS) -o $@ $< && utils/fix-rom $@ +# rdos drivers +%.drv: driver/%.asm + $(NASM) $(NASM_ARGS) -o $@ $< + fdimage.img: fat1.bs $(DISTFILES) mformat -C -i $@ -f $(FLOPPY) -B fat1.bs :: mmd -i $@ ::rdos diff --git a/rom/loaddrv.asm b/rom/loaddrv.asm new file mode 100644 index 0000000..26d340f --- /dev/null +++ b/rom/loaddrv.asm @@ -0,0 +1,43 @@ +cpu 8086 +org 0x0000 + + db 0x55, 0xAA + db 0x00 + jmp init + nop + + times (0x18 - ($-$$)) db 0 + dw 0 + dw pnp + +pnp: + db "$PnP" +.version: + db 1 ; version 1 +.length: + db 2 ; 2 * 16 length + dw 0 ; offset of next header + db 0 +.checksum: + db 0 ; checksum (filled by fix-rom) + dd 0 ; device identifier + dw 0 ; manufacturer string + dw name ; product name string + db 0,0,0 ; device type string + db 0x20 ; device indicator, bit for "read cacheable" set + dw 0 ; boot connection vector + dw 0 ; boot disconnect vector + dw 0 ; bootstrap entry point + dw 0 ; reserved + dw 0 + +name: + db "rdos drv loader" + +init: + mov ax, 0x0e37 + xor bx, bx + int 0x10 + retf + +align 512