chore: sync repo
This commit is contained in:
parent
4022be6c36
commit
40d3009b1a
|
@ -1,4 +1,4 @@
|
||||||
INCS = coff.h
|
INCS = coff.h elf.h
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all:
|
all:
|
||||||
|
|
8
include/elf.h
Normal file
8
include/elf.h
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef ELF_H
|
||||||
|
# define ELF_H 1
|
||||||
|
|
||||||
|
# include <stdint.h>
|
||||||
|
|
||||||
|
/* TODO */
|
||||||
|
|
||||||
|
#endif /* !ELF_H */
|
6
include/sys/errno.h
Normal file
6
include/sys/errno.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#ifndef SYS_ERRNO_H
|
||||||
|
# define SYS_ERRNO_H 1
|
||||||
|
|
||||||
|
# define ENODEV 19
|
||||||
|
|
||||||
|
#endif /* !SYS_ERRNO_H */
|
|
@ -131,3 +131,6 @@ cga_putc:
|
||||||
|
|
||||||
leave
|
leave
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cga_device:
|
||||||
|
db 'video', 0, 0, 0
|
||||||
|
|
|
@ -62,3 +62,5 @@ CMOS_REG_MINUTE = 0x02
|
||||||
CMOS_REG_HOUR = 0x04
|
CMOS_REG_HOUR = 0x04
|
||||||
|
|
||||||
CMOS_FLOPPY_TYPE = 0x10
|
CMOS_FLOPPY_TYPE = 0x10
|
||||||
|
|
||||||
|
CMOS_INSTALLED_EQUIPMENT = 0x14
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
;; File: com.inc
|
;; File: com.inc
|
||||||
|
|
||||||
|
COM_MAJOR = 1
|
||||||
|
|
||||||
com_probe:
|
com_probe:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
com_irq:
|
com_irq:
|
||||||
iret
|
iret
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
;; - <https://wiki.osdev.org/Floppy_Disk_Controller>
|
;; - <https://wiki.osdev.org/Floppy_Disk_Controller>
|
||||||
;; - <datasheet at http://www.osdever.net/documents/82077AA_FloppyControllerDatasheet.pdf>
|
;; - <datasheet at http://www.osdever.net/documents/82077AA_FloppyControllerDatasheet.pdf>
|
||||||
|
|
||||||
CMOS_FLOPPY_TYPE = 0x10
|
FLOPPY_BDEV_MAJOR = 0
|
||||||
|
FLOPPY_CDEV_MAJOR = 9
|
||||||
|
|
||||||
FLOPPY_NONE = 0x0
|
FLOPPY_NONE = 0x0
|
||||||
FLOPPY_360KB = 0x1
|
FLOPPY_360KB = 0x1
|
||||||
|
@ -13,6 +14,12 @@ FLOPPY_720KB = 0x3
|
||||||
FLOPPY_1_44MB = 0x4
|
FLOPPY_1_44MB = 0x4
|
||||||
FLOPPY_2_88MB = 0x5
|
FLOPPY_2_88MB = 0x5
|
||||||
|
|
||||||
|
FLOPPY_MAX = 2
|
||||||
|
|
||||||
|
struc Floppy {
|
||||||
|
.active db ?
|
||||||
|
}
|
||||||
|
|
||||||
floppy_probe:
|
floppy_probe:
|
||||||
mov al, CMOS_FLOPPY_TYPE
|
mov al, CMOS_FLOPPY_TYPE
|
||||||
out CMOS_COMMAND, al
|
out CMOS_COMMAND, al
|
||||||
|
@ -34,13 +41,33 @@ floppy_probe:
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
floppy_init:
|
||||||
|
call floppy_probe
|
||||||
|
ret
|
||||||
|
|
||||||
|
floppy_strategy:
|
||||||
|
ret
|
||||||
|
|
||||||
|
floppy_open:
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
floppy_close:
|
||||||
|
ret
|
||||||
|
|
||||||
|
floppy_ioctl:
|
||||||
|
mov eax, ENODEV
|
||||||
|
ret
|
||||||
|
|
||||||
floppy_irq:
|
floppy_irq:
|
||||||
iret
|
iret
|
||||||
|
|
||||||
floppy_device:
|
floppy_device:
|
||||||
dd floppy_probe
|
db 'floppy', 0, 0
|
||||||
dd 0
|
dd floppy_init
|
||||||
dd 0
|
db 0
|
||||||
|
db 0
|
||||||
|
|
||||||
szMsgFloppy0Found db "floppy0: Found", 0
|
szMsgFloppy0Found db "floppy0: Found", 0
|
||||||
szMsgFloppy1Found db "floppy1: Found", 0
|
szMsgFloppy1Found db "floppy1: Found", 0
|
||||||
|
|
|
@ -7,6 +7,27 @@ KBD_STATP = 0x64
|
||||||
KBD_ATAP = 0x60
|
KBD_ATAP = 0x60
|
||||||
KBS_DIB = 0x01
|
KBS_DIB = 0x01
|
||||||
|
|
||||||
|
;; function: kbd_probe
|
||||||
|
;;
|
||||||
|
;; Out:
|
||||||
|
;; AL - 0 if not found
|
||||||
|
kbd_probe:
|
||||||
|
mov al, CMOS_INSTALLED_EQUIPMENT
|
||||||
|
out CMOS_COMMAND, al
|
||||||
|
in al, CMOS_DATA
|
||||||
|
and al, 0x4
|
||||||
|
ret
|
||||||
|
|
||||||
|
kbd_init:
|
||||||
|
call kbd_probe
|
||||||
|
or al, al
|
||||||
|
jz @f
|
||||||
|
|
||||||
|
mov esi, szMsgKbdFound
|
||||||
|
call klog
|
||||||
|
@@:
|
||||||
|
ret
|
||||||
|
|
||||||
kbd_getc:
|
kbd_getc:
|
||||||
in al, KBD_STATP
|
in al, KBD_STATP
|
||||||
and al, KBS_DIB
|
and al, KBS_DIB
|
||||||
|
@ -34,7 +55,7 @@ kbd_irq:
|
||||||
popa
|
popa
|
||||||
iret
|
iret
|
||||||
|
|
||||||
szMsgKbdIRQ db "KBD: IRQ", 0
|
szMsgKbdFound db "KBD: found", 0
|
||||||
|
|
||||||
aKbdNormalMap:
|
aKbdNormalMap:
|
||||||
db 0, 0x1B, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'
|
db 0, 0x1B, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'
|
||||||
|
@ -44,11 +65,8 @@ aKbdNormalMap:
|
||||||
db 'b', 'n', 'm', ',', '.', '/', 0, '*', 0, ' ', 0, 0
|
db 'b', 'n', 'm', ',', '.', '/', 0, '*', 0, ' ', 0, 0
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '7'
|
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '7'
|
||||||
db '8', '9', '-', '4', '5', '6', '+', '1', '2', '3', '0', '.'
|
db '8', '9', '-', '4', '5', '6', '+', '1', '2', '3', '0', '.'
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1B, '1', '2'
|
db 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
db '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 0x08, 0x09
|
|
||||||
db 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']'
|
kbd_device:
|
||||||
db LF, 0, 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';'
|
db 'kbd', 0, 0, 0, 0, 0
|
||||||
db "'", '`', 0, '\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ','
|
dd kbd_init
|
||||||
db '.', '/', 0, '*', 0, ' ', 0, 0, 0, 0, 0, 0
|
|
||||||
db 0, 0, 0, 0, 0, 0, 0, '7', '8', '9', '-', '4'
|
|
||||||
db '5', '6', '+', '1', '2', '3', '0', '.'
|
|
||||||
|
|
|
@ -22,7 +22,8 @@ console_init:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
console_device:
|
console_device:
|
||||||
dd console_probe
|
db 'console', 0
|
||||||
|
dd console_init
|
||||||
dd console_write
|
dd console_write
|
||||||
dd console_write
|
dd console_write
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,51 @@
|
||||||
;; File: dev.inc
|
;; File: dev.inc
|
||||||
|
|
||||||
struc Device {
|
struc Device {
|
||||||
.probe dd ?
|
.name db 8 dup(?)
|
||||||
.write dd ?
|
.init dd ?
|
||||||
.read dd ?
|
|
||||||
}
|
}
|
||||||
DEFN Device
|
DEFN Device
|
||||||
|
|
||||||
|
struc BlkDev {
|
||||||
|
.open dd ?
|
||||||
|
.close dd ?
|
||||||
|
.strategy dd ?
|
||||||
|
.ioctl dd ?
|
||||||
|
.close dd ?
|
||||||
|
.dump dd ?
|
||||||
|
.psize dd ?
|
||||||
|
}
|
||||||
|
|
||||||
|
struc CharDev {
|
||||||
|
.open dd ?
|
||||||
|
.close dd ?
|
||||||
|
.read dd ?
|
||||||
|
.write dd ?
|
||||||
|
.ioctl dd ?
|
||||||
|
.select dd ?
|
||||||
|
.stop dd ?
|
||||||
|
.mmap dd ?
|
||||||
|
.reset dd ?
|
||||||
|
}
|
||||||
|
|
||||||
|
aBlockDevices:
|
||||||
|
dd 10 dup(0)
|
||||||
|
.end:
|
||||||
|
|
||||||
|
aCharDevices:
|
||||||
|
dd 10 dup(0)
|
||||||
|
.end:
|
||||||
|
|
||||||
aDevices:
|
aDevices:
|
||||||
dd console_device
|
|
||||||
dd floppy_device
|
dd floppy_device
|
||||||
|
dd kbd_device
|
||||||
|
dd console_device
|
||||||
.end:
|
.end:
|
||||||
|
|
||||||
dev_init:
|
dev_init:
|
||||||
mov ecx, aDevices
|
mov ecx, aDevices
|
||||||
@@:
|
@@:
|
||||||
mov eax, [ecx]
|
mov eax, [ecx]
|
||||||
mov eax, [eax + Device.probe]
|
mov eax, [eax + Device.init]
|
||||||
push ecx
|
push ecx
|
||||||
call eax
|
call eax
|
||||||
pop ecx
|
pop ecx
|
||||||
|
|
|
@ -36,6 +36,7 @@ struc FATFS_BootSector16 {
|
||||||
.code db 448 dup(?)
|
.code db 448 dup(?)
|
||||||
.signature dw ?
|
.signature dw ?
|
||||||
}
|
}
|
||||||
|
DEFN FATFS_BootSector16
|
||||||
|
|
||||||
struc FATFS_BootSector32 {
|
struc FATFS_BootSector32 {
|
||||||
.base FATFS_BootSectorBase
|
.base FATFS_BootSectorBase
|
||||||
|
@ -56,6 +57,7 @@ struc FATFS_BootSector32 {
|
||||||
.code db 420 dup(?)
|
.code db 420 dup(?)
|
||||||
.signature dw ?
|
.signature dw ?
|
||||||
}
|
}
|
||||||
|
DEFN FATFS_BootSector32
|
||||||
|
|
||||||
szVfsFatName db 'FATFS', 0
|
szVfsFatName db 'FATFS', 0
|
||||||
|
|
||||||
|
@ -95,3 +97,34 @@ fatfs_newvnode:
|
||||||
|
|
||||||
fatfs_mountroot:
|
fatfs_mountroot:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;; vnode ops
|
||||||
|
fatfs_open:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_close:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_rdwr:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_ioctl:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_select:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_getattr:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_setattr:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_access:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_lookup:
|
||||||
|
ret
|
||||||
|
|
||||||
|
fatfs_create:
|
||||||
|
ret
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
include 'sys/macro.inc'
|
include 'sys/macro.inc'
|
||||||
include 'sys/bootinfo.inc'
|
include 'sys/bootinfo.inc'
|
||||||
include 'sys/cpu.inc'
|
include 'sys/cpu.inc'
|
||||||
|
include 'sys/errno.inc'
|
||||||
|
|
||||||
org KBASE
|
org KBASE
|
||||||
use32
|
use32
|
||||||
|
|
2
kernel/sys/errno.inc
Normal file
2
kernel/sys/errno.inc
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
ENODEV = 19
|
Loading…
Reference in a new issue