Compare commits

..

3 Commits
master ... 720k

Author SHA1 Message Date
Juhani Krekelä 199f632d53 Reset floppy disks upon read failure 2022-03-29 04:44:35 +03:00
Juhani Krekelä 1cbd918b56 Proof of concept 720k disk support 2022-03-28 16:53:55 +03:00
Juhani Krekelä fea43699d7 Put debug output behind debug define in io.asm 2022-03-28 16:15:46 +03:00
3 changed files with 18 additions and 9 deletions

View File

@ -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 ::

View File

@ -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

13
io.asm
View File

@ -568,14 +568,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
@ -585,6 +586,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