diff --git a/Asuro.iso b/Asuro.iso index 9256384a..29f8af35 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 836b67dd..34e4b584 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 836b67dd..34e4b584 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/ACE.ppu b/lib/ACE.ppu index 66999b06..fb904f75 100644 Binary files a/lib/ACE.ppu and b/lib/ACE.ppu differ diff --git a/lib/BPE.ppu b/lib/BPE.ppu index f453759c..5372d3c7 100644 Binary files a/lib/BPE.ppu and b/lib/BPE.ppu differ diff --git a/lib/BTSSE.ppu b/lib/BTSSE.ppu index 6dce0bbd..7ec0e9b0 100644 Binary files a/lib/BTSSE.ppu and b/lib/BTSSE.ppu differ diff --git a/lib/CFE.ppu b/lib/CFE.ppu index c9be1f38..393f601f 100644 Binary files a/lib/CFE.ppu and b/lib/CFE.ppu differ diff --git a/lib/CSOE.ppu b/lib/CSOE.ppu index be5eeccc..fb321a5f 100644 Binary files a/lib/CSOE.ppu and b/lib/CSOE.ppu differ diff --git a/lib/DBGE.ppu b/lib/DBGE.ppu index f34c2fb7..2c74b213 100644 Binary files a/lib/DBGE.ppu and b/lib/DBGE.ppu differ diff --git a/lib/DBZ.ppu b/lib/DBZ.ppu index 00ba5f33..4fdb170b 100644 Binary files a/lib/DBZ.ppu and b/lib/DBZ.ppu differ diff --git a/lib/DFE.ppu b/lib/DFE.ppu index 721e0f92..9aa2de95 100644 Binary files a/lib/DFE.ppu and b/lib/DFE.ppu differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index f43ea689..6e5253a6 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/GPF.ppu b/lib/GPF.ppu index 42b58ded..3ad0b7ce 100644 Binary files a/lib/GPF.ppu and b/lib/GPF.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu index 2f187c24..8072e4af 100644 Binary files a/lib/IDE.ppu and b/lib/IDE.ppu differ diff --git a/lib/IDOE.ppu b/lib/IDOE.ppu index 2b7d1671..87941e6a 100644 Binary files a/lib/IDOE.ppu and b/lib/IDOE.ppu differ diff --git a/lib/IOPE.ppu b/lib/IOPE.ppu index 077ff261..56c4fb0f 100644 Binary files a/lib/IOPE.ppu and b/lib/IOPE.ppu differ diff --git a/lib/MCE.ppu b/lib/MCE.ppu index 127444bd..6cca51bb 100644 Binary files a/lib/MCE.ppu and b/lib/MCE.ppu differ diff --git a/lib/NCE.ppu b/lib/NCE.ppu index 4686574c..0b60cade 100644 Binary files a/lib/NCE.ppu and b/lib/NCE.ppu differ diff --git a/lib/NMIE.ppu b/lib/NMIE.ppu index c0ce4d29..6e51783f 100644 Binary files a/lib/NMIE.ppu and b/lib/NMIE.ppu differ diff --git a/lib/OOBE.ppu b/lib/OOBE.ppu index 73080166..3ddef5f7 100644 Binary files a/lib/OOBE.ppu and b/lib/OOBE.ppu differ diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 770f062c..362d760a 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/PF.ppu b/lib/PF.ppu index 15246c6d..25ec827d 100644 Binary files a/lib/PF.ppu and b/lib/PF.ppu differ diff --git a/lib/PS2_KEYBOARD_ISR.ppu b/lib/PS2_KEYBOARD_ISR.ppu index e821abd2..49d13d2e 100644 Binary files a/lib/PS2_KEYBOARD_ISR.ppu and b/lib/PS2_KEYBOARD_ISR.ppu differ diff --git a/lib/RTC.ppu b/lib/RTC.ppu index 62a5845b..9e495da4 100644 Binary files a/lib/RTC.ppu and b/lib/RTC.ppu differ diff --git a/lib/SFE.ppu b/lib/SFE.ppu index 2579761c..97ec83ce 100644 Binary files a/lib/SFE.ppu and b/lib/SFE.ppu differ diff --git a/lib/SNPE.ppu b/lib/SNPE.ppu index 97fdef12..2fd7687a 100644 Binary files a/lib/SNPE.ppu and b/lib/SNPE.ppu differ diff --git a/lib/TMR_0_ISR.ppu b/lib/TMR_0_ISR.ppu index 8e212515..0bef30cc 100644 Binary files a/lib/TMR_0_ISR.ppu and b/lib/TMR_0_ISR.ppu differ diff --git a/lib/UIE.ppu b/lib/UIE.ppu index 2b28ba1d..62860a35 100644 Binary files a/lib/UIE.ppu and b/lib/UIE.ppu differ diff --git a/lib/USB.ppu b/lib/USB.ppu index 186cf958..e7718f85 100644 Binary files a/lib/USB.ppu and b/lib/USB.ppu differ diff --git a/lib/arp.ppu b/lib/arp.ppu index d4a25320..e837eb83 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index d30b75a1..795d5ce7 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/console.ppu b/lib/console.ppu index 4f1d49f4..220b452b 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index 051647e4..b78f1bf1 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/fat32.ppu b/lib/fat32.ppu index 290afffe..fff44511 100644 Binary files a/lib/fat32.ppu and b/lib/fat32.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index fde9a046..6605f394 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index 2f3137b6..3d38bc82 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 761d27ba..62d0c84d 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isrmanager.ppu b/lib/isrmanager.ppu index f9575fd7..717571c4 100644 Binary files a/lib/isrmanager.ppu and b/lib/isrmanager.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index f774cf38..42361e84 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index b74bf176..90aaa25f 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index ada44e6c..5cb61e3d 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 5ad48dd1..9bd552c8 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 83fa072b..662bc26e 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lists.ppu b/lib/lists.ppu index e80f0744..a83d8f82 100644 Binary files a/lib/lists.ppu and b/lib/lists.ppu differ diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index ec6bd60c..e440e2f2 100644 Binary files a/lib/lmemorymanager.ppu and b/lib/lmemorymanager.ppu differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index 9814917b..5e8b2a27 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/lib/netutils.ppu b/lib/netutils.ppu index e870f95e..f5257f6b 100644 Binary files a/lib/netutils.ppu and b/lib/netutils.ppu differ diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index 8ef6b1dd..b8c8666b 100644 Binary files a/lib/pmemorymanager.ppu and b/lib/pmemorymanager.ppu differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu index 4741d718..e9237dfb 100644 Binary files a/lib/storagemanagement.ppu and b/lib/storagemanagement.ppu differ diff --git a/lib/strings.ppu b/lib/strings.ppu index ceeea445..8460b2a5 100644 Binary files a/lib/strings.ppu and b/lib/strings.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index 3861e0eb..08c21936 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/tracer.ppu b/lib/tracer.ppu index 0f950971..2375a027 100644 Binary files a/lib/tracer.ppu and b/lib/tracer.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index 73f4ba7a..c470a40a 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index 400d3c9c..17d3900b 100644 Binary files a/lib/vmemorymanager.ppu and b/lib/vmemorymanager.ppu differ diff --git a/src/driver/timers/RTC.pas b/src/driver/timers/RTC.pas index ece4b65a..3c53aef3 100644 --- a/src/driver/timers/RTC.pas +++ b/src/driver/timers/RTC.pas @@ -37,9 +37,9 @@ end; procedure update(); begin - outb($70, $0C); // select register C - io_wait(); - inb($71); + //outb($70, $0C); // select register C + //io_wait(); + //inb($71); //console.writestringln('RTC Update'); //while not is_update_in_progress do begin //end; @@ -47,35 +47,35 @@ begin //end; outb($70, $00); io_wait(); - DateTime.Seconds:= inb($71); + DateTime.Seconds:= BCDToUint8(inb($71)); io_wait(); outb($70, $02); io_wait(); - DateTime.Minutes:= inb($71); + DateTime.Minutes:= BCDToUint8(inb($71)); io_wait(); outb($70, $04); io_wait(); - DateTime.Hours:= inb($71); + DateTime.Hours:= BCDToUint8(inb($71)); io_wait(); outb($70, $06); io_wait(); - DateTime.Weekday:= inb($71); + DateTime.Weekday:= BCDToUint8(inb($71)); io_wait(); outb($70, $07); io_wait(); - DateTime.Day:= inb($71); + DateTime.Day:= BCDToUint8(inb($71)); io_wait(); outb($70, $08); io_wait(); - DateTime.Month:= inb($71); + DateTime.Month:= BCDToUint8(inb($71)); io_wait(); outb($70, $09); io_wait(); - DateTime.Year:= inb($71); + DateTime.Year:= BCDToUint8(inb($71)); io_wait(); outb($70, $32); io_wait(); - DateTime.Century:= inb($71); + DateTime.Century:= BCDToUint8(inb($71)); io_wait(); end; @@ -92,7 +92,7 @@ begin io_wait(); //enable ints - outb($70, $8B); + {outb($70, $8B); io_wait(); prev:= inb($71); io_wait(); @@ -101,7 +101,7 @@ begin outb($71, prev OR $40); STI; outb($70, $00); - inb($71); + inb($71);} //isrmanager.registerISR(32 + 8, @update); TMR_0_ISR.hook(uint32(@update)); diff --git a/src/include/asuro.pas b/src/include/asuro.pas index cd6cee98..59125c67 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -3,11 +3,11 @@ unit asuro; interface const - VERSION = '1.0.0-575a'; + VERSION = '1.0.0-577a'; VERSION_MAJOR = '1'; VERSION_MINOR = '0'; VERSION_SUB = '0'; - REVISION = '575'; + REVISION = '577'; RELEASE = 'a'; implementation diff --git a/src/include/util.pas b/src/include/util.pas index 4456b33a..f879945e 100644 --- a/src/include/util.pas +++ b/src/include/util.pas @@ -45,6 +45,8 @@ procedure halt_and_dont_catch_fire(); procedure BSOD(fault : pchar; info : pchar); procedure psleep(t : uint16); +function BCDToUint8(bcd : uint8) : uint8; + var endptr : uint32; external name '__end'; stack : uint32; external name 'KERNEL_STACK'; @@ -296,6 +298,11 @@ begin getByte:= (i AND mask) SHR (8*index); end; +function BCDToUint8(bcd : uint8) : uint8; +begin + BCDToUint8:= ((bcd SHR 4) * 10) + (bcd AND $0F); +end; + procedure BSOD(fault : pchar; info : pchar); var trace : pchar; diff --git a/src/terminal.pas b/src/terminal.pas index 14afdd21..523f9672 100644 --- a/src/terminal.pas +++ b/src/terminal.pas @@ -252,22 +252,20 @@ end; procedure printTime(Params : PParamList); begin - writeStringWND('Seconds: ', TERMINAL_HWND); + writeIntWND(DateTime.Day, TERMINAL_HWND); + writeStringWND('/', TERMINAL_HWND); + writeIntWND(DateTime.Month, TERMINAL_HWND); + writeStringWND('/', TERMINAL_HWND); + writeIntWND(DateTime.Century, TERMINAL_HWND); + writeIntWND(DateTime.Year, TERMINAL_HWND); + writeStringWND(' ', TERMINAL_HWND); + writeIntWND(DateTime.Hours, TERMINAL_HWND); + writeStringWND(':', TERMINAL_HWND); + writeIntWND(DateTime.Minutes, TERMINAL_HWND); + writeStringWND(':', TERMINAL_HWND); writeIntlnWND(DateTime.Seconds, TERMINAL_HWND); - writeStringWND('Minutes: ', TERMINAL_HWND); - writeIntlnWND(DateTime.Minutes, TERMINAL_HWND); - writeStringWND('Hours: ', TERMINAL_HWND); - writeIntlnWND(DateTime.Hours, TERMINAL_HWND); - writeStringWND('Weekday: ', TERMINAL_HWND); - writeIntlnWND(DateTime.Weekday, TERMINAL_HWND); - writeStringWND('Day: ', TERMINAL_HWND); - writeIntlnWND(DateTime.Day, TERMINAL_HWND); - writeStringWND('Month: ', TERMINAL_HWND); - writeIntlnWND(DateTime.Month, TERMINAL_HWND); - writeStringWND('Year: ', TERMINAL_HWND); - writeIntlnWND(DateTime.Year, TERMINAL_HWND); - writeStringWND('Century: ', TERMINAL_HWND); - writeIntlnWND(DateTime.Century, TERMINAL_HWND); + //writeStringWND('Weekday: ', TERMINAL_HWND); + //writeIntlnWND(DateTime.Weekday, TERMINAL_HWND); end; procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar);