Proof of concept 720k disk support
This commit is contained in:
parent
fea43699d7
commit
1cbd918b56
2
Makefile
2
Makefile
|
@ -2,7 +2,7 @@ DOSBOX=dosbox -conf dosbox-build.conf -exit
|
|||
|
||||
ordos.img: BOOT.BIN IO.SYS ORDOS.SYS COMMAND.COM debug.com edlin.com exe2bin.exe link.exe masm.exe
|
||||
rm -f ordos.img
|
||||
mkfs.fat -C $@ -M 0xff 320
|
||||
mkfs.fat -C $@ 720
|
||||
rw -I 0x7c00 -i BOOT.BIN -o $@ -c 512
|
||||
mcopy -i $@ IO.SYS ::
|
||||
mcopy -i $@ ORDOS.SYS ::
|
||||
|
|
12
boot.asm
12
boot.asm
|
@ -17,12 +17,12 @@ jmp code
|
|||
dw 512 ; Bytes per sector
|
||||
db 2 ; Sectors per cluster
|
||||
dw 1 ; Reserved sectors
|
||||
db 2 ; FATs
|
||||
fats db 2 ; FATs
|
||||
dw 112 ; Root directory entries
|
||||
dw 2*320 ; Total sectors
|
||||
db 0ffh ; Media descriptor
|
||||
dw 1 ; Sectors per fat
|
||||
sectorspertrack dw 8
|
||||
dw 2*720 ; Total sectors
|
||||
db 0f9h ; Media descriptor
|
||||
sectorsperfat dw 3 ; Sectors per fat
|
||||
sectorspertrack dw 9
|
||||
heads dw 2
|
||||
dd 0 ; Hidden sectors
|
||||
dd 0 ; Total sectors (large)
|
||||
|
@ -40,7 +40,7 @@ code:
|
|||
mov drivenumber, dl
|
||||
|
||||
; TODO: Check we actually have the OS
|
||||
mov ax, 10
|
||||
mov ax, 14
|
||||
mov bx, 600h
|
||||
mov cx, 17 ; This is what PC-DOS 1.10's full size ends up at
|
||||
call loadsectors
|
||||
|
|
15
io.asm
15
io.asm
|
@ -1,7 +1,7 @@
|
|||
; SPDX-License-Identifier: MIT
|
||||
; Copyright (c) 2021 Juhani 'nortti' Krekelä.
|
||||
|
||||
debug equ 0
|
||||
debug equ 1
|
||||
|
||||
iosegment equ 60h
|
||||
dossegment equ iosegment + 1*1024/16 ; DOS starts 1KiB after IO system
|
||||
|
@ -558,14 +558,15 @@ code ends
|
|||
|
||||
constants segment
|
||||
|
||||
sectorspertrack dw 8 ; TODO: Don't hardcode
|
||||
sectorspertrack dw 9 ; TODO: Don't hardcode
|
||||
heads dw 2 ; TODO: Don't hardcode
|
||||
|
||||
disks_table:
|
||||
db 1 ; 1 drive, TODO: Don't hardcode
|
||||
|
||||
db 0 ; Physical drive 0
|
||||
dw offset iogroup:parameters_320k
|
||||
;dw offset iogroup:parameters_320k
|
||||
dw offset iogroup:parameters_720k
|
||||
|
||||
parameters_320k:
|
||||
dw 512 ; Sector size in bytes
|
||||
|
@ -575,6 +576,14 @@ parameters_320k:
|
|||
dw 112 ; Number of directory entries
|
||||
dw 320*2 ; Number of sectors
|
||||
|
||||
parameters_720k:
|
||||
dw 512 ; Sector size in bytes
|
||||
db 2 ; Sectors per cluster
|
||||
dw 1 ; Number of reserved sectors
|
||||
db 2 ; Number of FATs
|
||||
dw 112 ; Number of directory entries
|
||||
dw 720*2 ; Number of sectors
|
||||
|
||||
doubleticks_per_hour dw 32772 ; 1800B0h / 2 / 24
|
||||
ticks_per_minute dw 1092 ; 1800B0h / 24 / 60
|
||||
ticks_per_second dw 18 ; 1800B0h / 24 / 60 / 60
|
||||
|
|
Loading…
Reference in New Issue