|
|
@ -2,6 +2,36 @@ BITS 16 |
|
|
|
%define DISK_SERVICE 0x0050:0x0256 |
|
|
|
%define KERNEL 0x0050:0x0512 |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
jmp short vbr_lfsf |
|
|
|
nop ; Used later as a FLAG byte for extended INT 13 Disk Func.'s (See instruction at: 7CADh). |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
; Disk description table, to make it a valid floppy |
|
|
|
; Note: some of these values are hard-coded in the source! |
|
|
|
; Values are those used by IBM for 1.44 MB, 3.5" diskette |
|
|
|
; NOTE(jakob): From MikeOS |
|
|
|
; Why do we need this... damn BIOS |
|
|
|
;times 71 - ($-$$) db 0 |
|
|
|
OEMLabel db "SingOs " ; Disk label |
|
|
|
; BytesPerSector dw 512 ; Bytes per sector |
|
|
|
; SectorsPerCluster db 1 ; Sectors per cluster |
|
|
|
; ReservedForBoot dw 1 ; Reserved sectors for boot record |
|
|
|
; NumberOfFats db 2 ; Number of copies of the FAT |
|
|
|
; RootDirEntries dw 224 ; Number of entries in root dir |
|
|
|
; ; (224 * 32 = 7168 = 14 sectors to read) |
|
|
|
; LogicalSectors dw 0x4000 ; Number of logical sectors |
|
|
|
; MediumByte db 0xF0 ; Medium descriptor byte |
|
|
|
; SectorsPerFat dw 9 ; Sectors per FAT |
|
|
|
; SectorsPerTrack dw 18 ; Sectors per track (36/cylinder) |
|
|
|
; Sides dw 2 ; Number of sides/heads |
|
|
|
; HiddenSectors dd 0 ; Number of hidden sectors |
|
|
|
; LargeSectors dd 0 ; Number of LBA sectors |
|
|
|
; DriveNo dw 0 ; Drive No: 0 |
|
|
|
; Signature db 0 ; Drive signature: 41 for floppy |
|
|
|
; VolumeID dd 0x00000000 ; Volume ID: any number |
|
|
|
; VolumeLabel db "SingOs "; Volume Label: any 11 chars |
|
|
|
; FileSystem db "VSFS " ; File system type: don't change! |
|
|
|
|
|
|
|
vbr_lfsf: |
|
|
|
; Volume Boot Record |
|
|
|
; This will start SingOS from the disk |
|
|
|