git-svn-id: https://spexeah.com:8443/svn/Asuro@746 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
1 parent
4a1d7a942d
commit
8066634367
97 files changed
+422
-123
No files matched your search
@@ -3,7 +3,7 @@ unit serial;
|
||||
interface
|
||||
|
||||
uses
|
||||
util, isrmanager;
|
||||
util, isrmanager, strings;
|
||||
|
||||
const
|
||||
COM1 = $3F8;
|
||||
@@ -14,6 +14,7 @@ const
|
||||
procedure init();
|
||||
function receive(PORT : uint16; timeout : uint32) : uint8;
|
||||
function send(PORT : uint16; data : uint8; timeout : uint32) : boolean;
|
||||
function sendString(str : pchar) : boolean;
|
||||
|
||||
implementation
|
||||
|
||||
@@ -85,4 +86,17 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function sendString(str : pchar) : boolean;
|
||||
var
|
||||
i : uint32;
|
||||
|
||||
begin
|
||||
sendString:= true;
|
||||
for i:=0 to StringSize(str)-1 do begin
|
||||
sendString:= sendString AND send(COM1, uint8(str[i]), 10000);
|
||||
end;
|
||||
sendString:= sendString AND send(COM1, uint8(13), 10000);
|
||||
sendString:= sendString AND send(COM1, uint8(10), 10000);
|
||||
end;
|
||||
|
||||
end.
|
||||
+16
-12
@@ -22,6 +22,7 @@ function MACToIIPv4(mac : puint8) : puint8;
|
||||
procedure sendGratuitous;
|
||||
procedure sendRequest(ip : puint8);
|
||||
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
|
||||
function resolveIP(ip : puint8) : puint8;
|
||||
|
||||
implementation
|
||||
|
||||
@@ -67,18 +68,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function findCacheRecord(ip : puint8) : PARPCacheRecord;
|
||||
var
|
||||
CacheRecord : PARPCacheRecord;
|
||||
|
||||
begin
|
||||
CacheRecord:= findCacheRecordByIP(ip);
|
||||
if CacheRecord = nil then begin
|
||||
|
||||
end;
|
||||
findCacheRecord:= CacheRecord;
|
||||
end;
|
||||
|
||||
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
|
||||
var
|
||||
buf : void;
|
||||
@@ -171,6 +160,21 @@ begin
|
||||
sendRequestGateway(ip);
|
||||
end;
|
||||
|
||||
function resolveIP(ip : puint8) : puint8;
|
||||
var
|
||||
CacheRecord : PARPCacheRecord;
|
||||
|
||||
begin
|
||||
CacheRecord:= findCacheRecordByIP(ip);
|
||||
resolveIP:= nil;
|
||||
if CacheRecord = nil then begin
|
||||
sendRequest(ip);
|
||||
sendRequestGateway(ip);
|
||||
end else begin
|
||||
resolveIP:= @CacheRecord^.MAC[0];
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext);
|
||||
var
|
||||
Header : PARPHeader;
|
||||
|
||||
+179
-4
File diff suppressed because it is too large.
Load diff
@@ -45,9 +45,7 @@ procedure register();
|
||||
begin
|
||||
if not registered then begin
|
||||
asm
|
||||
mov al, $36
|
||||
out $46, al
|
||||
mov ax, 1165
|
||||
mov ax, 1193
|
||||
out $40, al
|
||||
mov al, ah
|
||||
out $40, al
|
||||
|
||||
Reference in new issue
Block a user