chore: sync repo
This commit is contained in:
		
							parent
							
								
									4022be6c36
								
							
						
					
					
						commit
						40d3009b1a
					
				
					 13 changed files with 154 additions and 21 deletions
				
			
		|  | @ -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…
	
	Add table
		
		Reference in a new issue