From 7a24ea11ba044d135d424d6d964e2cb6a3c1c4b0 Mon Sep 17 00:00:00 2001 From: kieron Date: Tue, 16 May 2017 22:25:41 +0000 Subject: [PATCH] Standardized to standard types in types.pas git-svn-id: https://spexeah.com:8443/svn/Asuro@31 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5066752 -> 5066752 bytes bin/kernel.bin | Bin 12516 -> 12516 bytes iso/boot/asuro.bin | Bin 12516 -> 12516 bytes lib/gdt.ppu | Bin 2663 -> 2663 bytes lib/kernel.o | Bin 3932 -> 3784 bytes lib/kernel.ppu | Bin 1688 -> 1688 bytes lib/libpkernel.a | Bin 23460 -> 23244 bytes lib/types.ppu | Bin 1212 -> 1904 bytes src/bios_data_area.pas | 36 +++++------ src/console.pas | 134 ++++++++++++++++++++--------------------- src/gdt.pas | 30 +++++---- src/idt.pas | 16 +++++ src/kernel.pas | 14 ++--- src/keyboard.pas | 6 +- src/multiboot.pas | 42 ++++++------- src/types.pas | 33 +++++++--- src/util.pas | 36 +++++------ 17 files changed, 186 insertions(+), 161 deletions(-) create mode 100644 src/idt.pas diff --git a/Asuro.iso b/Asuro.iso index fac55fe9901f0613697763b72c59740de4169bbf..e6ae81295e7a586389e1efdec0a0fd451be224b5 100644 GIT binary patch delta 10178 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 IWZgXQKZ&h4;s5{u delta 10264 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 diff --git a/bin/kernel.bin b/bin/kernel.bin index 22e05476066272c831f93157774c7c03c878a4d4..5ef1ed728f1355d0ca9f520f5f02f8d5b8eccf22 100755 GIT binary patch delta 458 zcmaEo_#||g;BFBsW? z#2Jt}36MG^pt>CnAeID>_2M!okkA9kdVs`^09if0ACR;kVg)MboxDImtbQ4YSqN0o z?fT&bC(v++GN3UGFS;jgS5_r0uxM{GuBuu!%2i#}(!m z4L~OU_R9xfae!qCH=hx!Wn{PK5Mbb7IJ`MQ!iJG?!REP=&WxKCq#v+MHjqx3q;P?G jIkUjz^9qWRCM*IBjzH`O#L+;U0mP+1+_afj@j5>M@veRM delta 545 zcmYk0UnoOy6vxlCJAQ;+FaAYMEh(f%kB6%U{0b1y-(+WYZu{L)H+&9$&n zybxvdQbN~0u#A>tgr?J3+6B1IfiYg@;bl>#Ri-VXbS{T;ZqBu^8)UbSNY{j}$~ef) zFgItJB1{b#dqNf1^yd#Vnd~bWUlmrg0K_m)#e8GzMprMwwNm9_5E9;b67vF?`#336Hn5L~`faj@Hs^!*`{5>4g!56nh z<4Y&=555Y=E3C*4o$`yP!Z<8{mP7W7wS?VX*(@v2MH(QDlBP&Aq$N_wD5$!z{Q#u# Bs$>8F diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 22e05476066272c831f93157774c7c03c878a4d4..5ef1ed728f1355d0ca9f520f5f02f8d5b8eccf22 100755 GIT binary patch delta 458 zcmaEo_#||g;BFBsW? z#2Jt}36MG^pt>CnAeID>_2M!okkA9kdVs`^09if0ACR;kVg)MboxDImtbQ4YSqN0o z?fT&bC(v++GN3UGFS;jgS5_r0uxM{GuBuu!%2i#}(!m z4L~OU_R9xfae!qCH=hx!Wn{PK5Mbb7IJ`MQ!iJG?!REP=&WxKCq#v+MHjqx3q;P?G jIkUjz^9qWRCM*IBjzH`O#L+;U0mP+1+_afj@j5>M@veRM delta 545 zcmYk0UnoOy6vxlCJAQ;+FaAYMEh(f%kB6%U{0b1y-(+WYZu{L)H+&9$&n zybxvdQbN~0u#A>tgr?J3+6B1IfiYg@;bl>#Ri-VXbS{T;ZqBu^8)UbSNY{j}$~ef) zFgItJB1{b#dqNf1^yd#Vnd~bWUlmrg0K_m)#e8GzMprMwwNm9_5E9;b67vF?`#336Hn5L~`faj@Hs^!*`{5>4g!56nh z<4Y&=555Y=E3C*4o$`yP!Z<8{mP7W7wS?VX*(@v2MH(QDlBP&Aq$N_wD5$!z{Q#u# Bs$>8F diff --git a/lib/gdt.ppu b/lib/gdt.ppu index e9822f9794d2d7c6c48903b48fd2977aa36ecb28..54cd5770341abcb1253e166f3d90dbe9a5b7dfcb 100644 GIT binary patch delta 78 zcmaDZ@?2zs7n5_T22Ed!_dj=IXi(WEV=XmL(>?a diff --git a/lib/kernel.o b/lib/kernel.o index 230880e09f051a2bab28696ee91bd7c15696e034..c255324bed8d9f3d6e9817b561304c08b7a32844 100644 GIT binary patch delta 776 zcmZ9JJ!lj`7>3{3-7)KNyKcM)tH~wt7PJ2UH5S)gFo$4cbBI?c1|bL*M(k9$C|U+w zKM+Jz#6l5^JA(?6Mp01|4T4wrg9tW)oiP+Xe z((~-+L-*BFU;2Xqd1l_2_mVm1U0V%g(5?6b)~tkeCgr$0Zth9ToidXWdx=!NU2~_s zRmLT0Et_!agZ;#BYgxImV6gN=9DV8WPLC(fQXHC}=<$O+eyqnY{O=BK&dv6< zjhtNmOU~tPG*TdDTW38`B+Y7|q`mnia)b1@ zBRW3>997>6oKmu1L&<)Z$%YoLb_=(Z+kpE@)*p52^Q7VFo~U!<7wW^n>#l!PGXGV{ z#@}^*1o)xOjeje*10Ai80)I*E;~GrCtOa~tx&{kM24hl#MRf*C>b#azow>4-xr){k z-i$hPH6;&HSMne`xsl-ycqiBLd-^Y_tplzr$AG)?C%@ZF%XpC3CRZ#-78K-65Sba7 z4N`s|1gV|j`nG&yX1~jw<%Cy|p)j%;ttmUg#7=lXBz2BzeZXTm%TbsEt}JHf!^pXv hlegiRy~E;R>4b^#rMM!E<2-PHhw=GxCD><|DHKB^P=NpXQ|up z*^|+Q$*+&s7yo=;s#dF4yrs~bw^UpIEYn@}UVWj9#^nav(Ao=<-;B3x(4nB=*Il*| z(3W{#K^qfv$V{j?x@sO%6I3xBorE!dj#_>DW;4DPrRM2`?ox|X)D8z`^as8c8wLvR z6jpv~dG)!@%XJOfH>F988W3dA+^0eS6KV!e$`MBN|(P4yM`&M8&rP1Hx@U zT-XPAOw|VL7w7#E@d%Jv_N;I_Fe=;u9F_fc;JEls;Ea&_6@=XHI@6QFjpf2^VLxzB z$c-KedH>1s{xhcHDW8k;0I$S5f!CC8T33*kKcvzH{E`IUvLf6C{FQn)VDguelYXY^ z0c>&3g@v5!kUHn0;+%8E`F-?>b1p9AoF{dMUxhg5vI?=jX`c~03i+pg8%>k delta 13 UcmbQiJA-#Z08@q2#vnH~03UAzHUIzs diff --git a/lib/libpkernel.a b/lib/libpkernel.a index 131278a2b7a1ba85b1837fdfa5405e60ebd458f0..a14b95281ac7936937ac26d27606145f04277a33 100644 GIT binary patch delta 1114 zcmZuvT}V@57=FKRJG!#jIh(lrnXW0$#MXY?k0>~2YYr#L3|dzu1O*AM=u%3k3(Fhr z?J`0`BEmpDl@KNtA!?y0Wgvosx-j~o$e^O4?>n1%jBd_zp7(v;kN4*p93w9tkY2Ok z^Ll;0KC8#s31B)2kk8OO2w)ikD0vA`_5onuIzZ(w0EZU9T?pVU1vt7m(rqHCaui#0 zEH5v0l+)XO#o~N zpsf2JJZ=W~!#R6LLl`dt&@tpXBgaAr!ycYsLNgCAp_TJu02}8_Si_M$7~pXWK!|gu zJHnAQa*U&d^@a)z_;YB2V6oOphH*f&DPI#NMUnk|5p5a6Oe<2Hud!xKY5>?8B%M{b zA^@~vo56@(l1Nts95ChL9Z3{cSmFdemddwQJZkt#)%%|`srE0gnSQ6U{8*y}`t+?h z!-Op=pD!9v31r7!wL*@Us>|hs?W0Pp)IY1(R^PQ>t&qDN+v@w>>MZuVqw>0Uqh7I( z!Rfbm9I#j{&Z_FFYQ>~V9Bb>+V=+2ICC9%iWCLlPRSv)6wrM;QEG9$P6TFJW4IZ4V z>%-&CM*P{p7oT;o2j>oFFK51OQ_FxfN z#Me!iH9|;_ZP6el1{{eNrh6_SOY)`W0?HarX1c*1ZFjryY{Z72S^~^#F5a#lV4h=T z+HLX+^TM(SHUvb&_HODB@?%xq+9{7WGCG0?8C^DiI_pr;Rr4gs4+fz7*t*d&nL z52OzOlkcBA929rc$r#*Voe{sg?o!JbyeR2lgZEz4ok%9rbRy6vs`ORE1)5v?$@-W6 zxLI3TS~_gj{PSkbp5MAnvlH*lH8zN6thJ4g3vtPMwCS4YD40{(@!^S)O5QA2O1a^& z-1vyu)03Sln{?i@lb-jzbLgl#uxtTNGwQ%u#sF|$p=bjxF!uvjn70G!o;LrEQR#nR zRQew|-U0l?JP7>F7y|C_dMDr#imQDZ6pAju%RGn*T6v;`og7fY2y-QjGVccZnX3(l z7?sZCbpzPRT zhReO4b4qSVT5OAG-@AYXTGTgcpK3sf7Bd@VtA}osH&8jCYpovO06iJ#yVob{Sm0Ob z?BaCL(M9Xk;J?dJyXD8)y~{0UN}*`cGP>S&D!wtC3d`NIDnAsx?GW4f`!}u1@89fH zSgF{m{9@7>rDC#Zy_K%#D;HjpIsVUJuLDPF8 z+QSmKZU^q{&_$a3`KWx;Wp{HduWLtCv-eTsM2HUM>vyi^_c|Knj%P9%`w*Ar7-9x^FN)%q;TgHL^t;NDhE&7zRb(dX> vj2rl;UJIGfNYD4m*R^^v#2d6`qJO3F7vq9}i;#^3PlQ|~Oo)(=gp>%Kk>HBZ6$uFux+5Ve0%rFi4&VN-j3Q9P=cxBR(cRF5VUIiBE{{ z5T6vEA``7LMn)FiCrIDLp)|#P6q9HVaxY(W5n5;;IMA1>4DYThfM913lQO);VT{?p z#t;MyPgTa44eSPjfT8{j#%y2<2mV zN|+y7oTAnbJRQlOc+)C)= zRYNJI-&oVK*hROcWiweR`_rak8$Cdj&1&i|ORQF=g=uUOn|F-o6PJZUi+N3&77 zr1+*SjrQ^UV8@2E^t4SbO7cu&YjuOS?7Sw=F_xoQfREp8)Yl9RXJkhfnZf7)0by2-u@c9w#MujP?#PLA&`)B{0e-@Bh`SD9Ttu^_N22N|DbG))9@M4- N`CF^-%o9dO{{aE+p@9GZ delta 579 zcmYL_zb`{k6vxl$`_aCil*W&Wp>!4Lt2Sndff$}p2@(uMx|E?y2kC&xATL*9BC(2z z#bA*515751&1zH;oO`bK`jYeRIiFAN$v5}If3ON+SSyt)`XPb_kKq`c=>RVyKd(=} zcX<;4yr?jtb>8#Q;z4*%GiHqx9VS8sf$jk43}}jh$-wG@fPviwHUmc-;iP!OVt~+f z8UkC_kjo7!z;6l#xGsC{J`J&!I`!m?9VTC{xYVlc0ZDQ)pgz}VP6MVr-cTbl$c~qi zD^&qAN^T@lt};lL13*j3-9*YoQdXw`Z6)^;DWA#++cT}^4xp!OE3s*|Dv_^bo6ryy z<}&m*!~aMhj6IVSN7`Lfc-AJa}e`prBC)3 tRPlEOA~MU)HO)7Y;jnl%w?l2Z`7N_k=G#Hf>=lw{{R-nLkR!? diff --git a/src/bios_data_area.pas b/src/bios_data_area.pas index 5f32060a..a124223f 100644 --- a/src/bios_data_area.pas +++ b/src/bios_data_area.pas @@ -4,24 +4,24 @@ interface type TBDA = bitpacked record - COM1 : WORD; - COM2 : WORD; - COM3 : WORD; - COM4 : WORD; - LPT1 : WORD; - LPT2 : WORD; - LPT3 : WORD; - EBDA : WORD; - Hardware_Flags : WORD; - Keyboard_Flags : WORD; - Keyboard_Buffer : ARRAY[0..31] OF BYTE; - Display_Mode : BYTE; - BaseIO : WORD; - Ticks : WORD; - HDD_Count : BYTE; - Keyboard_Start : WORD; - Keyboard_End : WORD; - Keyboard_State : Byte; + COM1 : uint16; + COM2 : uint16; + COM3 : uint16; + COM4 : uint16; + LPT1 : uint16; + LPT2 : uint16; + LPT3 : uint16; + EBDA : uint16; + Hardware_Flags : uint16; + Keyboard_Flags : uint16; + Keyboard_Buffer : ARRAY[0..31] OF uint8; + Display_Mode : uint8; + BaseIO : uint16; + Ticks : uint16; + HDD_Count : uint8; + Keyboard_Start : uint16; + Keyboard_End : uint16; + Keyboard_State : uint8; end; PBDA = ^TBDA; diff --git a/src/console.pas b/src/console.pas index 1fc388dc..118e3e52 100644 --- a/src/console.pas +++ b/src/console.pas @@ -26,33 +26,33 @@ type procedure init(); procedure clear(); -procedure setdefaultattribute(attribute : char); +procedure setdefaultattribute(attribute : sint8); -procedure writechar(character : char); -procedure writestring(str: PChar); -procedure writeint(i: Integer); -procedure writeword(i: DWORD); -procedure writehex(i: DWORD); +procedure writechar(character : sint8); +procedure writestring(str: psint8); +procedure writeint(i: sint32); +procedure writeword(i: uint32); +procedure writehex(i: uint32); -procedure writecharln(character : char); -procedure writestringln(str: PChar); -procedure writeintln(i: Integer); -procedure writewordln(i: DWORD); -procedure writehexln(i: DWORD); +procedure writecharln(character : sint8); +procedure writestringln(str: psint8); +procedure writeintln(i: sint32); +procedure writewordln(i: uint32); +procedure writehexln(i: uint32); -procedure writecharex(character : char; attributes : char); -procedure writestringex(str: PChar; attributes : char); -procedure writeintex(i: Integer; attributes : char); -procedure writewordex(i: DWORD; attributes : char); -procedure writehexex(i : DWORD; attributes : char); +procedure writecharex(character : sint8; attributes : sint8); +procedure writestringex(str: psint8; attributes : sint8); +procedure writeintex(i: sint32; attributes : sint8); +procedure writewordex(i: uint32; attributes : sint8); +procedure writehexex(i : uint32; attributes : sint8); -procedure writecharlnex(character : char; attributes : char); -procedure writestringlnex(str: PChar; attributes : char); -procedure writeintlnex(i: Integer; attributes : char); -procedure writewordlnex(i: DWORD; attributes : char); -procedure writehexlnex(i: DWORD; attributes : char); +procedure writecharlnex(character : sint8; attributes : sint8); +procedure writestringlnex(str: psint8; attributes : sint8); +procedure writeintlnex(i: sint32; attributes : sint8); +procedure writewordlnex(i: uint32; attributes : sint8); +procedure writehexlnex(i: uint32; attributes : sint8); -function combinecolors(Foreground, Background : TColor) : char; +function combinecolors(Foreground, Background : TColor) : sint8; procedure _increment_x(); procedure _increment_y(); @@ -64,12 +64,12 @@ implementation type TConsoleProperties = record - Default_Attribute : Char; + Default_Attribute : sint8; end; TCharacter = bitpacked record - Character : Char; - Attributes : Char; + Character : sint8; + Attributes : sint8; end; PCharacter = ^TCharacter; @@ -80,8 +80,8 @@ type P2DVideoMemory = ^T2DVideoMemory; TCoord = record - X : Byte; - Y : Byte; + X : uint8; + Y : uint8; end; var @@ -98,7 +98,7 @@ end; procedure clear(); [public, alias: 'console_clear']; var - x,y: Byte; + x,y: uint8; begin for x:=0 to 79 do begin @@ -111,64 +111,64 @@ begin Console_Cursor.Y:= 0; end; -procedure setdefaultattribute(attribute: char); [public, alias: 'console_setdefaultattribute']; +procedure setdefaultattribute(attribute: sint8); [public, alias: 'console_setdefaultattribute']; begin Console_Properties.Default_Attribute:= attribute; end; -procedure writechar(character: char); [public, alias: 'console_writechar']; +procedure writechar(character: sint8); [public, alias: 'console_writechar']; begin console.writecharex(character, Console_Properties.Default_Attribute); end; -procedure writestring(str: PChar); [public, alias: 'console_writestring']; +procedure writestring(str: psint8); [public, alias: 'console_writestring']; begin console.writestringex(str, Console_Properties.Default_Attribute); end; -procedure writeint(i: Integer); [public, alias: 'console_writeint']; +procedure writeint(i: sint32); [public, alias: 'console_writeint']; begin console.writeintex(i, Console_Properties.Default_Attribute); end; -procedure writeword(i: DWORD); [public, alias: 'console_writeword']; +procedure writeword(i: uint32); [public, alias: 'console_writeword']; begin console.writewordex(i, Console_Properties.Default_Attribute); end; -procedure writecharln(character: char); [public, alias: 'console_writecharln']; +procedure writecharln(character: sint8); [public, alias: 'console_writecharln']; begin console.writecharlnex(character, Console_Properties.Default_Attribute); end; -procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; +procedure writestringln(str: psint8); [public, alias: 'console_writestringln']; begin console.writestringlnex(str, Console_Properties.Default_Attribute); end; -procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; +procedure writeintln(i: sint32); [public, alias: 'console_writeintln']; begin console.writeintlnex(i, Console_Properties.Default_Attribute); end; -procedure writewordln(i: DWORD); [public, alias: 'console_writewordln']; +procedure writewordln(i: uint32); [public, alias: 'console_writewordln']; begin console.writewordlnex(i, Console_Properties.Default_Attribute); end; -procedure writecharex(character: char; attributes: char); [public, alias: 'console_writecharex']; +procedure writecharex(character: sint8; attributes: sint8); [public, alias: 'console_writecharex']; begin Console_Matrix^[Console_Cursor.Y][Console_Cursor.X].Character:= character; Console_Matrix^[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; console._safeincrement_x(); end; -procedure writehexex(i : dword; attributes: char); [public, alias: 'console_writehexex']; +procedure writehexex(i : uint32; attributes: sint8); [public, alias: 'console_writehexex']; var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; + Hex : Array[0..7] of uint8; + Res : uint32; + Rem : uint32; + c : sint32; begin for c:=0 to 7 do begin @@ -209,25 +209,25 @@ begin end; end; -procedure writehex(i : dword); [public, alias: 'console_writehex']; +procedure writehex(i : uint32); [public, alias: 'console_writehex']; begin console.writehexex(i, Console_Properties.Default_Attribute); end; -procedure writehexlnex(i : dword; attributes : char); +procedure writehexlnex(i : uint32; attributes : sint8); begin console.writehexex(i, attributes); console._safeincrement_y(); end; -procedure writehexln(i : dword); +procedure writehexln(i : uint32); begin writehexlnex(i, Console_Properties.Default_Attribute); end; -procedure writestringex(str: PChar; attributes: char); [public, alias: 'console_writestringex']; +procedure writestringex(str: psint8; attributes: sint8); [public, alias: 'console_writestringex']; var - i : integer; + i : sint32; begin i:= 0; @@ -237,11 +237,11 @@ begin end; end; -procedure writeintex(i: Integer; attributes : char); [public, alias: 'console_writeintex']; +procedure writeintex(i: sint32; attributes : sint8); [public, alias: 'console_writeintex']; var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; + buffer: array [0..11] of sint8; + str: psint8; + digit: uint32; minus: Boolean; begin str := @buffer[11]; @@ -255,7 +255,7 @@ begin end; repeat Dec(str); - str^ := Char((digit mod 10) + Byte('0')); + str^ := sint8((digit mod 10) + uint8('0')); digit := digit div 10; until (digit = 0); if (minus) then begin @@ -265,11 +265,11 @@ begin console.writestringex(str, attributes); end; -procedure writewordex(i: DWORD; attributes : char); [public, alias: 'console_writedwordex']; +procedure writewordex(i: uint32; attributes : sint8); [public, alias: 'console_writedwordex']; var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; + buffer: array [0..11] of sint8; + str: psint8; + digit: uint32; begin for digit := 0 to 10 do buffer[digit] := '0'; str := @buffer[11]; @@ -277,45 +277,45 @@ begin digit := i; repeat Dec(str); - str^ := Char((digit mod 10) + Byte('0')); + str^ := sint8((digit mod 10) + uint8('0')); digit := digit div 10; until (digit = 0); console.writestringex(@Buffer[0], attributes); end; -procedure writecharlnex(character: char; attributes: char); [public, alias: 'console_writecharlnex']; +procedure writecharlnex(character: sint8; attributes: sint8); [public, alias: 'console_writecharlnex']; begin console.writecharex(character, attributes); console._safeincrement_y(); end; -procedure writestringlnex(str: PChar; attributes: char); [public, alias: 'console_writestringlnex']; +procedure writestringlnex(str: sint8; attributes: sint8); [public, alias: 'console_writestringlnex']; begin console.writestringex(str, attributes); console._safeincrement_y(); end; -procedure writeintlnex(i: Integer; attributes: char); [public, alias: 'console_writeintlnex']; +procedure writeintlnex(i: sint32; attributes: sint8); [public, alias: 'console_writeintlnex']; begin console.writeintex(i, attributes); console._safeincrement_y(); end; -procedure writewordlnex(i: DWORD; attributes: char); [public, alias: 'console_writewordlnex']; +procedure writewordlnex(i: uint32; attributes: sint8); [public, alias: 'console_writewordlnex']; begin console.writewordex(i, attributes); console._safeincrement_y(); end; -function combinecolors(Foreground, Background: TColor): char; [public, alias: 'console_combinecolors']; +function combinecolors(Foreground, Background: TColor): sint8; [public, alias: 'console_combinecolors']; begin - combinecolors:= char(((ord(Background) shl 4) or ord(Foreground))); + combinecolors:= sint8(((ord(Background) shl 4) or ord(Foreground))); end; procedure _update_cursor(); [public, alias: '_console_update_cursor']; var - pos : word; - b : byte; + pos : uint16; + b : uint8; begin pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; @@ -366,7 +366,7 @@ end; procedure _newline(); [public, alias: '_console_newline']; var - x, y : byte; + x, y : uint8; begin for x:=0 to 79 do begin diff --git a/src/gdt.pas b/src/gdt.pas index 74fa1a8a..92e8b8ec 100644 --- a/src/gdt.pas +++ b/src/gdt.pas @@ -7,18 +7,18 @@ uses type TGDT_Entry = bitpacked record - limit_low : int16; - base_low : int16; - base_middle : int8; - access : int8; - granularity : int8; - base_high : int8; + limit_low : uint16; + base_low : uint16; + base_middle : uint8; + access : uint8; + granularity : uint8; + base_high : uint8; end; PGDT_Entry = ^TGDT_Entry; TGDT_Pointer = bitpacked record - limit : int16; - base : int32; + limit : uint16; + base : uint32; end; var @@ -29,7 +29,7 @@ procedure init(); implementation -procedure flush_gdt(gdt_pointer : int32); assembler; nostackframe; +procedure flush_gdt(gdt_pointer : uint32); assembler; nostackframe; asm MOV EAX, gdt_pointer LGDT [EAX] @@ -40,13 +40,11 @@ asm MOV GS, AX MOV SS, AX db $EA // Bypass stupid inline ASM restrictions- - dw @@flush, $08 // by assembling the farjump instruction ourselves. - // It's just data, honest gov'. -@@flush: - RET + dw @@flush, $08 // by assembling the farjump instruction ourselves. +@@flush: // It's just data, honest gov'. end; -procedure set_gate(Gate_Number : int32; Base : int32; Limit : int32; Access : int8; Granularity : int8); +procedure set_gate(Gate_Number : uint32; Base : uint32; Limit : uint32; Access : uint8; Granularity : uint8); begin gdt_entries[Gate_Number].base_low := (Base AND $FFFF); gdt_entries[Gate_Number].base_middle := (Base SHR 16) AND $FF; @@ -59,13 +57,13 @@ end; procedure init(); begin gdt_pointer.limit := (sizeof(TGDT_Entry) * 5) - 1; - gdt_pointer.base := int32(@gdt_entries); + gdt_pointer.base := uint32(@gdt_entries); set_gate($00, $00, $00, $00, $00); set_gate($01, $00, $FFFFFFFF, $9A, $CF); set_gate($02, $00, $FFFFFFFF, $92, $CF); set_gate($03, $00, $FFFFFFFF, $FA, $CF); set_gate($04, $00, $FFFFFFFF, $F2, $CF); - flush_gdt(int32(@gdt_pointer)) + flush_gdt(uint32(@gdt_pointer)) end; end. \ No newline at end of file diff --git a/src/idt.pas b/src/idt.pas new file mode 100644 index 00000000..ee6a9677 --- /dev/null +++ b/src/idt.pas @@ -0,0 +1,16 @@ +unit idt; + +interface + +uses + system, + types; + +type + TIDT_Entry = bitpacked record + + end; + +implementation + +end. \ No newline at end of file diff --git a/src/kernel.pas b/src/kernel.pas index 78262362..8de23b9b 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -14,12 +14,12 @@ procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: DWORD); stdcall; implementation -procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: DWORD); stdcall; [public, alias: 'kmain']; +procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain']; var - c : byte; + c : uint8; mbi : Pmultiboot_info_t; - mbm : DWORD; - dds : DWORD; + mbm : uint32; + dds : uint32; begin mbi:= mbinfo; @@ -41,8 +41,6 @@ begin console.setdefaultattribute(console.combinecolors(Red, Black)); if dds = $08 then console.setdefaultattribute(console.combinecolors(Green, Black)); console.writehexln(dds); - util.halt_and_catch_fire; - console.setdefaultattribute(console.combinecolors(Green, Black)); console.writestringln('Asuro Booted Correctly!'); console.writestringln(''); @@ -57,11 +55,11 @@ begin console.writeint(((mbinfo^.mem_upper + 1000) div 1024) +1); console.writestringln('MB'); console.setdefaultattribute(console.combinecolors(lYellow, Black)); - while true do begin + {while true do begin c:= keyboard.get_scancode; console.writehexln(c); end; - util.halt_and_catch_fire; + util.halt_and_catch_fire;} end; end. diff --git a/src/keyboard.pas b/src/keyboard.pas index f51e7a7b..3ac2b5b5 100644 --- a/src/keyboard.pas +++ b/src/keyboard.pas @@ -7,13 +7,13 @@ interface uses util; -function get_scancode() : byte; +function get_scancode() : uint8; implementation -function get_scancode() : byte; [public, alias: 'get_scancode']; +function get_scancode() : uint8; [public, alias: 'get_scancode']; var - c : byte; + c : uint8; begin c:= 0; diff --git a/src/multiboot.pas b/src/multiboot.pas index 049a68d9..33c236af 100644 --- a/src/multiboot.pas +++ b/src/multiboot.pas @@ -9,40 +9,40 @@ const type Pelf_section_header_table_t = ^elf_section_header_table_t; elf_section_header_table_t = packed record - num: DWORD; - size: DWORD; - addr: DWORD; - shndx: DWORD; + num: uint32; + size: uint32; + addr: uint32; + shndx: uint32; end; Pmultiboot_info_t = ^multiboot_info_t; multiboot_info_t = packed record - flags: DWORD; - mem_lower: DWORD; - mem_upper: DWORD; - boot_device: DWORD; - cmdline: DWORD; - mods_count: DWORD; - mods_addr: DWORD; + flags: uint32; + mem_lower: uint32; + mem_upper: uint32; + boot_device: uint32; + cmdline: uint32; + mods_count: uint32; + mods_addr: uint32; elf_sec: elf_section_header_table_t; - mmap_length: DWORD; - mmap_addr: DWORD; + mmap_length: uint32; + mmap_addr: uint32; end; Pmodule_t = ^module_t; module_t = packed record - mod_start: DWORD; - mod_end: DWORD; - name: DWORD; - reserved: DWORD; + mod_start: uint32; + mod_end: uint32; + name: uint32; + reserved: uint32; end; Pmemory_map_t = ^memory_map_t; memory_map_t = packed record - size: DWORD; - base_addr : QWORD; - length : QWORD; - mtype: DWORD; + size: uint32; + base_addr : uint64; + length : uint64; + mtype: uint32; end; implementation diff --git a/src/types.pas b/src/types.pas index a78a15f1..fbc712f0 100644 --- a/src/types.pas +++ b/src/types.pas @@ -4,21 +4,34 @@ interface type //Standard Types - Int8 = BYTE; - Int16 = WORD; - Int32 = DWORD; - Int64 = QWORD; + uInt8 = BYTE; + uInt16 = WORD; + uInt32 = DWORD; + uInt64 = QWORD; + + sInt8 = shortint; + sInt16 = smallint; + sInt32 = integer; + sInt64 = longint; + + Float = Single; //Pointer Types - PByte = ^Byte; - PInt8 = PByte; - PInt16 = ^Int16; - PInt32 = ^Int32; - PInt64 = ^Int64; + PuByte = ^Byte; + PuInt8 = PuByte; + PuInt16 = ^uInt16; + PuInt32 = ^uInt32; + PuInt64 = ^uInt64; - Void = ^Int32; + PsInt8 = ^sInt8; + PsInt16 = ^sInt16; + PsInt32 = ^sInt32; + PsInt64 = ^sInt64; + PFloat = ^Float; + PDouble = ^Double; + Void = ^uInt32; implementation diff --git a/src/util.pas b/src/util.pas index 29174461..c41656a6 100644 --- a/src/util.pas +++ b/src/util.pas @@ -4,35 +4,35 @@ unit util; interface -function hi(b : byte) : byte; -function lo(b : byte) : byte; -function switchendian(b : byte) : byte; -procedure outb(port : word; val : byte); -procedure outw(port : word; val : word); -procedure outl(port : word; val : longword); +function hi(b : uint8) : uint8; +function lo(b : uint8) : uint8; +function switchendian(b : uint8) : uint8; +procedure outb(port : uint16; val : uint8); +procedure outw(port : uint16; val : uint16); +procedure outl(port : uint16; val : uint32); procedure halt_and_catch_fire(); -function inb(port : word) : byte; -function inw(port : word) : word; -function inl(port : word) : dword; +function inb(port : uint16) : uint8; +function inw(port : uint16) : uint16; +function inl(port : uint16) : uint32; implementation -function hi(b : byte) : byte; [public, alias: 'util_hi']; +function hi(b : uint8) : uint8; [public, alias: 'util_hi']; begin hi:= (b AND $F0) SHR 4; end; -function lo(b : byte) : byte; [public, alias: 'util_lo']; +function lo(b : uint8) : uint8; [public, alias: 'util_lo']; begin lo:= b AND $0F; end; -function switchendian(b : byte) : byte; [public, alias: 'util_switchendian']; +function switchendian(b : uint8) : uint8; [public, alias: 'util_switchendian']; begin switchendian:= (lo(b) SHL 4) OR hi(b); end; -procedure outl(port : word; val : longword); [public, alias: 'util_outl']; +procedure outl(port : uint16; val : uint32); [public, alias: 'util_outl']; begin asm PUSH EAX @@ -45,7 +45,7 @@ begin end; end; -procedure outw(port : word; val : word); [public, alias: 'util_outw']; +procedure outw(port : uint16; val : uint16); [public, alias: 'util_outw']; begin asm PUSH EAX @@ -58,7 +58,7 @@ begin end; end; -procedure outb(port : word; val : byte); [public, alias: 'util_outb']; +procedure outb(port : uint16; val : uint8); [public, alias: 'util_outb']; begin asm PUSH EAX @@ -79,7 +79,7 @@ begin end; end; -function inl(port : word) : dword; [public, alias: 'util_inl']; +function inl(port : uint16) : uint32; [public, alias: 'util_inl']; begin asm PUSH EAX @@ -92,7 +92,7 @@ begin end; end; -function inw(port : word) : word; [public, alias: 'util_inw']; +function inw(port : uint16) : uint16; [public, alias: 'util_inw']; begin asm PUSH EAX @@ -105,7 +105,7 @@ begin end; end; -function inb(port : word) : byte; [public, alias: 'util_inb']; +function inb(port : uint16) : uint8; [public, alias: 'util_inb']; begin asm PUSH EAX