Update documentation for night build
git-svn-id: svn://kolibrios.org@3835 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
26
data/eng/docs/OPENDIAL.TXT
Normal file
26
data/eng/docs/OPENDIAL.TXT
Normal file
@@ -0,0 +1,26 @@
|
||||
OpenDialog - file open dialog:
|
||||
1) Move the cursor inside the panel:
|
||||
a) up and down arrows (including add. keyb.) - move the cursor one position up or down.
|
||||
b) PageUp - list page up.
|
||||
c) PageDown - list page down.
|
||||
d) Home - move to the top of directory.
|
||||
e) End - move to the end of directory.
|
||||
2) Enter - operations with the selected file:
|
||||
a) enter the folder.
|
||||
b) choose a file.
|
||||
3) Using the menu:
|
||||
Alt+F1 - call disk selection menu.
|
||||
Alt+F2 - call sort menu.
|
||||
Alt+F3 - call filter menu.
|
||||
Inside the menu:
|
||||
Arrow cursor up and down - move to item.
|
||||
Esc - close the window.
|
||||
Enter - close the window with confirmation.
|
||||
Arrow cursor left and right - move into the adjacent menu.
|
||||
4) Ctrl+R - update the contents of a directory.
|
||||
5) Backspace - exit from the directory.
|
||||
6) Insert - highlighted by red color the file at the cursor and move the cursor one position down.
|
||||
7) Ctrl+A and Ctrl+(NumPad(+) Up) - select all files and directories in the active panel, with the exception of the directory '..'
|
||||
8) Ctrl+(NumPad(-) Up) - deselect all files and directories in the active panel with the exception of the directory '..'
|
||||
9) Ctrl+(NumPad(*) Up) - invert the selection of all files and directories in the active panel, with the exception of the directory '..'
|
||||
10) Esc - shutdown the program, without opening of a file.
|
26
data/it/docs/OPENDIAL.TXT
Normal file
26
data/it/docs/OPENDIAL.TXT
Normal file
@@ -0,0 +1,26 @@
|
||||
OpenDialog - file open dialog:
|
||||
1) Move the cursor inside the panel:
|
||||
a) up and down arrows (including add. keyb.) - move the cursor one position up or down.
|
||||
b) PageUp - list page up.
|
||||
c) PageDown - list page down.
|
||||
d) Home - move to the top of directory.
|
||||
e) End - move to the end of directory.
|
||||
2) Enter - operations with the selected file:
|
||||
a) enter the folder.
|
||||
b) choose a file.
|
||||
3) Using the menu:
|
||||
Alt+F1 - call disk selection menu.
|
||||
Alt+F2 - call sort menu.
|
||||
Alt+F3 - call filter menu.
|
||||
Inside the menu:
|
||||
Arrow cursor up and down - move to item.
|
||||
Esc - close the window.
|
||||
Enter - close the window with confirmation.
|
||||
Arrow cursor left and right - move into the adjacent menu.
|
||||
4) Ctrl+R - update the contents of a directory.
|
||||
5) Backspace - exit from the directory.
|
||||
6) Insert - highlighted by red color the file at the cursor and move the cursor one position down.
|
||||
7) Ctrl+A and Ctrl+(NumPad(+) Up) - select all files and directories in the active panel, with the exception of the directory '..'
|
||||
8) Ctrl+(NumPad(-) Up) - deselect all files and directories in the active panel with the exception of the directory '..'
|
||||
9) Ctrl+(NumPad(*) Up) - invert the selection of all files and directories in the active panel, with the exception of the directory '..'
|
||||
10) Esc - shutdown the program, without opening of a file.
|
@@ -1,387 +1,203 @@
|
||||
Cosaè implementato
|
||||
==================
|
||||
eax = 74 - Work directly with network interface
|
||||
ebx = -1 (Get number of active network devices)
|
||||
|
||||
Le seguenti feature sono presenti nel codice stack TCP/IP:
|
||||
out:
|
||||
eax = number of active network devices
|
||||
|
||||
IP layer.
|
||||
ICMP.
|
||||
TCP layer.
|
||||
UDP layer.
|
||||
local loopback.
|
||||
Realtek 8029 PCI ethernet interface.
|
||||
Realtek 8139 PCI ethernet interface.
|
||||
Intel i8255x PCI ethernet interface.
|
||||
Dynamic ARP table.
|
||||
PPP dialer
|
||||
bh = device number, for all following functions !
|
||||
|
||||
E sono implementate le seguenti applicazioni:
|
||||
bl = 0 (Get device type)
|
||||
|
||||
Server HTTP
|
||||
Telnet
|
||||
Client POP
|
||||
DNS Name resolver
|
||||
Server MP3
|
||||
Client TFTP
|
||||
Client IRC
|
||||
out:
|
||||
eax = device type number
|
||||
|
||||
Vi sono inoltre applicazioni sperimentali, per los terming di musica e
|
||||
per la comunicazione via socket, in fase di sviluppo vi è anche un
|
||||
browser web.
|
||||
bl = 1 (Get device name)
|
||||
|
||||
in:
|
||||
ecx = pointer to 64 byte buffer
|
||||
out:
|
||||
name is copied into the buffer
|
||||
eax = -1 on error
|
||||
|
||||
Cosa non è implementato
|
||||
=======================
|
||||
bl = 2 (Reset the device)
|
||||
|
||||
Il layer IP non processa le opzioni dello header.
|
||||
Il layer IP non supporta il routing.
|
||||
Non è supportata la 'Packet fragmentation'.
|
||||
in
|
||||
none
|
||||
out
|
||||
eax = -1 on error
|
||||
|
||||
bl = 3 (Stop device)
|
||||
|
||||
Come configurare Kolibri per il PPP
|
||||
===================================
|
||||
in
|
||||
none
|
||||
out
|
||||
eax = -1 on error
|
||||
|
||||
Vedi ppp.txt
|
||||
TO BE FIGURED OUT
|
||||
|
||||
eax = 75 - Work with Sockets
|
||||
|
||||
Come configurare Kolibri per l'Ethernet
|
||||
=======================================
|
||||
These functions work like the ones found in UNIX (and windows)
|
||||
for more info, please read http://beej.us/guide/bgnet/
|
||||
|
||||
Inanzitutto è necessario possedere una scheda ethernet supportata e
|
||||
installata, o presente sulla scheda madre. Se non si è certi del tipo di
|
||||
hardware, si può provare a configurare lo stack. Se l'hardware è
|
||||
supportato allora verrà notificato e configurato correttamente.
|
||||
bl = 0 (Open Socket)
|
||||
|
||||
Setting Up the ARP Table
|
||||
------------------------
|
||||
in:
|
||||
ecx = domain
|
||||
edx = type
|
||||
esi = protocol
|
||||
out:
|
||||
eax = socket number, -1 on error
|
||||
|
||||
Kolibri's ARP table is dynamically created and maintained; You can see what
|
||||
hosts Kolibri has communicated with by running the ARPSTAT application.
|
||||
bl = 1 (Close Socket)
|
||||
|
||||
Enabling Ethernet
|
||||
-----------------
|
||||
|
||||
Boot Kolibri, then select STACKCFG from the NET menu.
|
||||
Press the 'Read' Button, then select 'Packet Driver'.
|
||||
Press 'Change' next to the IP address, and enter the IP address you want
|
||||
to use. Make sure it is on the same sub-net as the LAN to which you are
|
||||
connected.
|
||||
Press 'Apply' to action the changes.
|
||||
Close the program.
|
||||
|
||||
|
||||
The stack is now running, which you can test by pinging Kolibri from a
|
||||
remote host.
|
||||
|
||||
|
||||
The simplest way to connect two PC's together is using a 'Null Modem'
|
||||
Ethernet cable. These simply cross certain wires over. They can be
|
||||
purchased from PC stores, but are simple to make. Details can be found
|
||||
on the web. Look on google for 'ethernet cross over cable' or similar.
|
||||
|
||||
|
||||
How to use TCP/IP locally, with no Network
|
||||
==========================================
|
||||
|
||||
Kolibri supports a form of local loopback that means applications on the
|
||||
same PC can communicate with each other via sockets as though they
|
||||
were on separate hosts. To connect to an application on the same machine,
|
||||
specify the local IP address as the destination address. You do not even
|
||||
need to configure the stack for ethernet; local loopback will work without
|
||||
any network hardware. It's great for development and testing.
|
||||
|
||||
|
||||
Application Programming Interface
|
||||
=================================
|
||||
|
||||
The developer can access the stack through interrupt 0x40, function 53.
|
||||
The file TFTPC.ASM gives a good example of how to use the programming
|
||||
interface ( at least, for UDP), but as network communication is complex
|
||||
I'll give an overview.
|
||||
|
||||
|
||||
Sockets
|
||||
=======
|
||||
|
||||
Applications connect to each other and pass information between themselves
|
||||
through a mechanism called a 'socket'. Sockets are end-points for
|
||||
communication; You need one at each application to communicate.
|
||||
|
||||
Using sockets is a little like using files on an OS; You open them, read
|
||||
and write to them, then close them. The only thing that makes life slightly
|
||||
more complicated is that unlike with a file, you have something intelligent
|
||||
at the other end ( which for example may not want to close when you do! )
|
||||
|
||||
Lets deal with the terminology before we go any further.
|
||||
|
||||
socket A unique identifier used by the application for communication.
|
||||
local port A number that identifies this application on the local host.
|
||||
Ports are a way to allow multiple applications to communicate
|
||||
with other hosts without the data becoming mixed up. ( The
|
||||
technical term is 'multiplex' ). Port numbers are 16 bit.
|
||||
remote port A number that identifies the application on the remote host
|
||||
to which we are communicating with. To the remote host, this is
|
||||
it's 'local port'. Port numbers are 16 bit.
|
||||
IP Address A 32 bit number that identifies the remote host PC that we are
|
||||
communicating with.
|
||||
Passive Refers to the mode by which a socket is opened; When opening in
|
||||
passive mode, the local PC is awaiting an incoming connection.
|
||||
Active Refers to the mode by which a socket is opened; When opening in
|
||||
active mode, the local PC will attempt to connect to a remote
|
||||
PC.
|
||||
|
||||
When you connect to a socket on a remote PC, you need to specify more than
|
||||
just the IP address, otherwise the remote stack will not know to which
|
||||
application it should send your data. You must fully qualify the address,
|
||||
which means you specify the IP address and the port number. This would be
|
||||
written like this
|
||||
|
||||
192.168.1.10:80 ; Connect to port 80 on the machine 192.168.1.10
|
||||
|
||||
Port numbers are important. Some are 'well known' and provide access to
|
||||
common applications. For example port 80 is used by HTTP servers; That
|
||||
way I can connect to a webserver on a host without having to find out
|
||||
what port number the application is listening on.
|
||||
|
||||
This brings me to the way in which you open a socket; As I said earlier,
|
||||
there are two modes, Passive and Active. A webserver would open a passive
|
||||
socket, as it is waiting for incoming connection requests. A web browser
|
||||
would open an active socket because it is attempting to connect to a
|
||||
specified remote host.
|
||||
|
||||
|
||||
Access to programming interface
|
||||
===============================
|
||||
The developer accesses the stack functions through interrupt 0x40,
|
||||
function 53. Some functions may be accessed through function 52, but these
|
||||
are mainly for stack configuration.
|
||||
Here is a summary of the functions that you may use and the parameter
|
||||
definitions.
|
||||
|
||||
|
||||
Get Local IP Address
|
||||
--------------------
|
||||
eax = 52
|
||||
ebx = 1
|
||||
|
||||
IP address returned in eax ( in internet byte order )
|
||||
|
||||
|
||||
Write to stack input queue
|
||||
--------------------------
|
||||
eax = 52
|
||||
ebx = 6
|
||||
edx = number of bytes to write
|
||||
esi = pointer to data ( in application space )
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
This interface is for slow network drivers only ( PPP, SLIP )
|
||||
|
||||
|
||||
Read data from network output queue
|
||||
-----------------------------------
|
||||
eax = 52
|
||||
ebx = 8
|
||||
esi = pointer to data ( in application space )
|
||||
|
||||
On return, eax holds number of bytes transferred.
|
||||
This interface is for slow network drivers only ( PPP, SLIP )
|
||||
|
||||
|
||||
Open a UDP socket
|
||||
-----------------
|
||||
eax = 53
|
||||
ebx = 0
|
||||
ecx = local port
|
||||
edx = remote port
|
||||
esi = remote ip address ( in internet byte order )
|
||||
|
||||
The socket number allocated is returned in eax.
|
||||
A return value of 0xFFFFFFFF means no socket could be opened.
|
||||
|
||||
|
||||
Open a TCP socket
|
||||
-----------------
|
||||
eax = 53
|
||||
ebx = 5
|
||||
ecx = local port
|
||||
edx = remote port
|
||||
esi = remote ip address ( in internet byte order )
|
||||
edi = mode : SOCKET_PASSIVE or SOCKET_ACTIVE ( defined in stack.inc )
|
||||
|
||||
The socket number allocated is returned in eax.
|
||||
A return value of 0xFFFFFFFF means no socket could be opened.
|
||||
|
||||
|
||||
Close a socket (UDP Only )
|
||||
--------------------------
|
||||
eax = 53
|
||||
ebx = 1
|
||||
in:
|
||||
ecx = socket number
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 2 (Bind)
|
||||
|
||||
|
||||
Close a socket (TCP Only )
|
||||
--------------------------
|
||||
eax = 53
|
||||
ebx = 8
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 3 (Listen)
|
||||
|
||||
|
||||
Poll socket
|
||||
-----------
|
||||
eax = 53
|
||||
ebx = 2
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = backlog
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds the number of bytes in the receive buffer.
|
||||
bl = 4 (connect)
|
||||
|
||||
|
||||
Read socket data
|
||||
----------------
|
||||
eax = 53
|
||||
ebx = 3
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds the number of bytes remaining, bl holds a data byte.
|
||||
bl = 5 (accept)
|
||||
|
||||
|
||||
Write to socket ( UDP only )
|
||||
----------------------------
|
||||
eax = 53
|
||||
ebx = 4
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = number of bytes to write
|
||||
esi = pointer to data ( in application space )
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = socket number, -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 6 (send)
|
||||
|
||||
|
||||
Return socket status ( TCP only )
|
||||
---------------------------------
|
||||
eax = 53
|
||||
ebx = 6
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to buffer
|
||||
esi = length of buffer
|
||||
edi = flags
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds the sockets TCP status.
|
||||
This function can be used to determine when a socket has actually connected
|
||||
to another socket - data cannot be written to a socket until the connection
|
||||
is established (TCB_ESTABLISHED). The states a socket can be in are defined
|
||||
in stack.inc as TCB_
|
||||
bl = 7 (receive)
|
||||
|
||||
|
||||
Write to socket ( TCP only )
|
||||
----------------------------
|
||||
eax = 53
|
||||
ebx = 7
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = number of bytes to write
|
||||
esi = pointer to data ( in application space )
|
||||
edx = pointer to buffer
|
||||
esi = length of buffer
|
||||
edi = flags
|
||||
out:
|
||||
eax = number of bytes copied, -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 8 (set socket options)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = level
|
||||
esi = optionname
|
||||
edi = ptr to buffer
|
||||
|
||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
||||
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 9 (get socket options
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = level
|
||||
esi = optionname
|
||||
edi = ptr to buffer
|
||||
|
||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
||||
|
||||
out:
|
||||
eax = -1 on error, socket option otherwise
|
||||
|
||||
TIP
|
||||
|
||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
||||
|
||||
|
||||
Check port number
|
||||
-----------------
|
||||
eax = 53
|
||||
ebx = 9
|
||||
ecx = port number
|
||||
for example, to open a socket
|
||||
|
||||
This function is used to determine if a port number
|
||||
is in use by any sockets as a local port number. Local
|
||||
port numbers are normally unique.
|
||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
||||
mov [socketnum], eax
|
||||
|
||||
On return, eax is 1 for port number not in use, 0 otherwise.
|
||||
then to connect to a server
|
||||
|
||||
mcall connect, [socketnum], sockaddr, 18
|
||||
|
||||
|
||||
Opening a TCP socket in Kolibri
|
||||
===============================
|
||||
eax = 76 - Work with protocols
|
||||
|
||||
There are two ways to open a socket - Passive or Active.
|
||||
high half of ebx = protocol number (for all subfunctions!)
|
||||
bh = device number (for all subfunctions!)
|
||||
bl = subfunction number, depends on protocol type
|
||||
|
||||
In a Passive connection your application 'listens' for incoming
|
||||
requests from remote applications. Typically this will be done when
|
||||
you are implementing a server application that allows any other
|
||||
application to connect to it. You would specify a 'known' local
|
||||
port number, such as 80 for a web server. You would leave the
|
||||
remote IP and remote port number as 0, which indicates any
|
||||
remote application may connect.
|
||||
For Ethernet protocol
|
||||
|
||||
Once the socket has been opened you would wait for an incoming
|
||||
connection before doing anything. This can be by either checking
|
||||
the socket status for TCB_ESTABLISHED, or waiting for data in the
|
||||
receive buffer.
|
||||
0 - Read # Packets send
|
||||
1 - Read # Packets received
|
||||
2 - Read # Bytes send
|
||||
3 - Read # Bytes received
|
||||
4 - Read MAC
|
||||
5 - Write MAC
|
||||
6 - Read IN-QUEUE size
|
||||
7 - Read OUT-QUEUE size
|
||||
For IPv4 protocol
|
||||
|
||||
In an Active connection, you are making a connection to a specified
|
||||
remote port. The remote IP and remote port parameters must be filled
|
||||
in with non-zero values ( otherwise, what are you connecting to? ).
|
||||
You also specify a unique local port number so the remote application
|
||||
can uniquely identify you - after all, there may be several applications
|
||||
on your machine connected to the same remote host. See below for finding
|
||||
a unique port number.
|
||||
0 - Read # IP packets send
|
||||
1 - Read # IP packets received
|
||||
2 - Read IP
|
||||
3 - Write IP
|
||||
4 - Read DNS
|
||||
5 - Write DNS
|
||||
6 - Read subnet
|
||||
7 - Write subnet
|
||||
8 - Read gateway
|
||||
9 - Write gateway
|
||||
For ARP protocol
|
||||
|
||||
0 - Read # ARP packets send
|
||||
1 - Read # ARP packets received
|
||||
2 - Get # ARP entry's
|
||||
3 - Read ARP entry
|
||||
4 - Add static ARP entry
|
||||
5 - Remove ARP entry (-1 = remove all)
|
||||
For ICMP protocol
|
||||
|
||||
How to find an unused local port number
|
||||
=======================================
|
||||
0 - Read # ICMP packets send
|
||||
1 - Read # ICMP packets received
|
||||
3 - enable/disable ICMP echo reply
|
||||
For UDP protocol
|
||||
|
||||
Typically when you are creating an active connection to a remote
|
||||
socket you will want to choose a unique local port number. Local
|
||||
port numbers normally start from 1000; The following code may
|
||||
be used to obtain an unused port number prior to making the
|
||||
open socket call.
|
||||
0 - Read # UDP packets send
|
||||
1 - Read # UDP packets received
|
||||
For TCP protocol
|
||||
|
||||
mov ecx, 1000 ; local port starting at 1000
|
||||
|
||||
getlp:
|
||||
inc ecx
|
||||
push ecx
|
||||
mov eax, 53
|
||||
mov ebx, 9
|
||||
int 0x40
|
||||
pop ecx
|
||||
cmp eax, 0 ; is this local port in use?
|
||||
jz getlp ; yes - so try next
|
||||
|
||||
; ecx contains a free local port number
|
||||
|
||||
|
||||
|
||||
Writing data to a socket
|
||||
========================
|
||||
|
||||
There are two functions available depending on whether the socket
|
||||
was opened for TCP or UDP protocol; The call parameters are the
|
||||
same however. When the socket is being opened for TCP, use the
|
||||
status function to poll for a connection - data cannot be written
|
||||
to a socket until another socket has connected to it, and the
|
||||
state of the socket is TCB_ESTABLISHED.
|
||||
|
||||
When you write data, the call results in a single IP packet being
|
||||
created and transmitted. Thus the user application is responsible for
|
||||
the size of transmitted packets. Keep the packet sizes under 768 bytes.
|
||||
If you are writing a terminal program like telnet, you may want to send
|
||||
a packet for each keystroke ( inefficient ) or use a timer to send data
|
||||
periodically ( say, every second ).
|
||||
|
||||
|
||||
Reading data from a socket
|
||||
==========================
|
||||
|
||||
There is one function to read data from a sockets receive buffer. This
|
||||
function retrieves one byte at a time. You can use the poll function to
|
||||
test the receive buffer for data.
|
||||
|
||||
|
||||
Closing a socket
|
||||
================
|
||||
|
||||
Simply call the appropriate function - there is one for TCP, and another
|
||||
for UDP. When closing a TCP socket, don't forget that the other end
|
||||
may continue to send data, so the socket may remain active for a
|
||||
few seconds after your call.
|
||||
|
||||
|
||||
If you have any questions or have suggestions for improving this
|
||||
document please contact me at mikeh@oceanfree.net.
|
||||
0 - Read # TCP packets send
|
||||
1 - Read # TCP packets received
|
26
data/rus/docs/OPENDIAL.TXT
Normal file
26
data/rus/docs/OPENDIAL.TXT
Normal file
@@ -0,0 +1,26 @@
|
||||
OpenDialog - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>:
|
||||
1) <20><>६<EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
<20>) <20><>५<EFBFBD><E0A5AB> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28> ⮬ <20><> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮<E2A5AB> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) - <20><>६<EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
<20>) PageUp - <20><><EFBFBD><EFBFBD>࠭<EFBFBD>筮<EFBFBD> <20><><EFBFBD>⠭<EFBFBD><E2A0AD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20>) PageDown - <20><><EFBFBD><EFBFBD>࠭<EFBFBD>筮<EFBFBD> <20><><EFBFBD>⠭<EFBFBD><E2A0AD> <20><><EFBFBD><EFBFBD>.
|
||||
<20>) Home - <20> <20><>砫<EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD> <20> 䠩<><E4A0A9><EFBFBD><EFBFBD>.
|
||||
<20>) End - <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD> <20> 䠩<><E4A0A9><EFBFBD><EFBFBD>.
|
||||
2) Enter - <20><><EFBFBD><EFBFBD>⢨<EFBFBD> <20> 䠩<><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD>ண<EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>:
|
||||
<20>) <20>室 <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20>) <20>롮<EFBFBD> 䠩<><E4A0A9>.
|
||||
3) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>:
|
||||
Alt+F1 - <20>맮<EFBFBD> <20><><EFBFBD><EFBFBD> <20>롮<EFBFBD><EBA1AE> <20><>᪠.
|
||||
Alt+F2 - <20>맮<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>.
|
||||
Alt+F3 - <20>맮<EFBFBD> <20><><EFBFBD><EFBFBD> 䨫<><E4A8AB><EFBFBD><EFBFBD>樨.
|
||||
<20> <20><><EFBFBD><EFBFBD>:
|
||||
<20><>५<EFBFBD><E0A5AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD>饭<EFBFBD><E9A5AD> <20><> <20>㭪⠬.
|
||||
Esc - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
Enter - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⢥ত<E2A2A5><E0A6A4><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA>.
|
||||
<20><>५<EFBFBD><E0A5AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ࠢ<EFBFBD> <20><>६<EFBFBD>饭<EFBFBD><E9A5AD> <20> <20><>ᥤ<EFBFBD><E1A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
4) Ctrl+R - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>ਨ.
|
||||
5) Backspace (<28><>५<EFBFBD><E0A5AB> <20><><EFBFBD><EFBFBD><EFBFBD> <20>冷<EFBFBD> <20> Insert) - <20><>室 <20><> <20><>४<EFBFBD><E0A5AA>ਨ.
|
||||
6) Insert - <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮬ 䠩<><E4A0A9> <20><> <20><><EFBFBD><EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>६<EFBFBD>饭<EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
7) Ctrl+A <20> Ctrl+(NumPad(+) Up) - <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD> <20> <20><>४<EFBFBD><E0A5AA> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20>᪫<EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> <20><>४<EFBFBD><E0A5AA>ਨ '..'
|
||||
8) Ctrl+(NumPad(-) Up) - <20><><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD> <20> <20><>४<EFBFBD><E0A5AA> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20>᪫<EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> <20><>४<EFBFBD><E0A5AA>ਨ '..'
|
||||
9) Ctrl+(NumPad(*) Up) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD> <20> <20><>४<EFBFBD><E0A5AA> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20>᪫<EFBFBD>祭<EFBFBD><E7A5AD><EFBFBD> <20><>४<EFBFBD><E0A5AA>ਨ '..'
|
||||
10) Esc - <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> ࠡ<><E0A0A1><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>.
|
203
data/rus/docs/STACK.TXT
Normal file
203
data/rus/docs/STACK.TXT
Normal file
@@ -0,0 +1,203 @@
|
||||
eax = 74 - Work directly with network interface
|
||||
ebx = -1 (Get number of active network devices)
|
||||
|
||||
out:
|
||||
eax = number of active network devices
|
||||
|
||||
bh = device number, for all following functions !
|
||||
|
||||
bl = 0 (Get device type)
|
||||
|
||||
out:
|
||||
eax = device type number
|
||||
|
||||
bl = 1 (Get device name)
|
||||
|
||||
in:
|
||||
ecx = pointer to 64 byte buffer
|
||||
out:
|
||||
name is copied into the buffer
|
||||
eax = -1 on error
|
||||
|
||||
bl = 2 (Reset the device)
|
||||
|
||||
in
|
||||
none
|
||||
out
|
||||
eax = -1 on error
|
||||
|
||||
bl = 3 (Stop device)
|
||||
|
||||
in
|
||||
none
|
||||
out
|
||||
eax = -1 on error
|
||||
|
||||
TO BE FIGURED OUT
|
||||
|
||||
eax = 75 - Work with Sockets
|
||||
|
||||
These functions work like the ones found in UNIX (and windows)
|
||||
for more info, please read http://beej.us/guide/bgnet/
|
||||
|
||||
bl = 0 (Open Socket)
|
||||
|
||||
in:
|
||||
ecx = domain
|
||||
edx = type
|
||||
esi = protocol
|
||||
out:
|
||||
eax = socket number, -1 on error
|
||||
|
||||
bl = 1 (Close Socket)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 2 (Bind)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 3 (Listen)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = backlog
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 4 (connect)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 5 (accept)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = socket number, -1 on error
|
||||
|
||||
bl = 6 (send)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to buffer
|
||||
esi = length of buffer
|
||||
edi = flags
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 7 (receive)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to buffer
|
||||
esi = length of buffer
|
||||
edi = flags
|
||||
out:
|
||||
eax = number of bytes copied, -1 on error
|
||||
|
||||
bl = 8 (set socket options)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = level
|
||||
esi = optionname
|
||||
edi = ptr to buffer
|
||||
|
||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
||||
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 9 (get socket options
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = level
|
||||
esi = optionname
|
||||
edi = ptr to buffer
|
||||
|
||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
||||
|
||||
out:
|
||||
eax = -1 on error, socket option otherwise
|
||||
|
||||
TIP
|
||||
|
||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
||||
|
||||
|
||||
for example, to open a socket
|
||||
|
||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
||||
mov [socketnum], eax
|
||||
|
||||
then to connect to a server
|
||||
|
||||
mcall connect, [socketnum], sockaddr, 18
|
||||
|
||||
|
||||
eax = 76 - Work with protocols
|
||||
|
||||
high half of ebx = protocol number (for all subfunctions!)
|
||||
bh = device number (for all subfunctions!)
|
||||
bl = subfunction number, depends on protocol type
|
||||
|
||||
For Ethernet protocol
|
||||
|
||||
0 - Read # Packets send
|
||||
1 - Read # Packets received
|
||||
2 - Read # Bytes send
|
||||
3 - Read # Bytes received
|
||||
4 - Read MAC
|
||||
5 - Write MAC
|
||||
6 - Read IN-QUEUE size
|
||||
7 - Read OUT-QUEUE size
|
||||
For IPv4 protocol
|
||||
|
||||
0 - Read # IP packets send
|
||||
1 - Read # IP packets received
|
||||
2 - Read IP
|
||||
3 - Write IP
|
||||
4 - Read DNS
|
||||
5 - Write DNS
|
||||
6 - Read subnet
|
||||
7 - Write subnet
|
||||
8 - Read gateway
|
||||
9 - Write gateway
|
||||
For ARP protocol
|
||||
|
||||
0 - Read # ARP packets send
|
||||
1 - Read # ARP packets received
|
||||
2 - Get # ARP entry's
|
||||
3 - Read ARP entry
|
||||
4 - Add static ARP entry
|
||||
5 - Remove ARP entry (-1 = remove all)
|
||||
For ICMP protocol
|
||||
|
||||
0 - Read # ICMP packets send
|
||||
1 - Read # ICMP packets received
|
||||
3 - enable/disable ICMP echo reply
|
||||
For UDP protocol
|
||||
|
||||
0 - Read # UDP packets send
|
||||
1 - Read # UDP packets received
|
||||
For TCP protocol
|
||||
|
||||
0 - Read # TCP packets send
|
||||
1 - Read # TCP packets received
|
@@ -1,378 +0,0 @@
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD>
|
||||
==================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 <20>ᮡ<EFBFBD><E1AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> TCP/IP <20>⥪<EFBFBD>:
|
||||
|
||||
|
||||
<20><EFBFBD><E0AEA2><EFBFBD> IP.
|
||||
ICMP.
|
||||
<20><EFBFBD><E0AEA2><EFBFBD> TCP.
|
||||
<20><EFBFBD><E0AEA2><EFBFBD> UDP.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<><E6A8AA>.
|
||||
Realtek 8029 <20><><EFBFBD><EFBFBD><EFBFBD>䥩ᮢ <20><><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> Ethernet PCI.
|
||||
Realtek 8139 <20><><EFBFBD><EFBFBD><EFBFBD>䥩ᮢ <20><><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> Ethernet PCI.
|
||||
Intel i8255x PCI <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD> <20><><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> Ethernet.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪠<EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD>⮪<EFBFBD><E2AEAA><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ.
|
||||
Point-to-point <20><><EFBFBD>⮪<EFBFBD><E2AEAA>(PPP)
|
||||
|
||||
<EFBFBD> <><E1ABA5><EFBFBD>騥 <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>:
|
||||
|
||||
HTTP <20><>ࢥ<EFBFBD>
|
||||
POP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Telnet
|
||||
DNS Name resolver
|
||||
Mp3 <20><>ࢥ<EFBFBD>
|
||||
TFTP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
IRC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
FTP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
PPP - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ᯥਬ<E1AFA5><E0A8AC>⠫<EFBFBD><E2A0AB><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>ந<EFBFBD><E0AEA8>뢠<EFBFBD><EBA2A0><EFBFBD> <20><>⮪<EFBFBD><E2AEAA><EFBFBD><EFBFBD> <20><><EFBFBD>모 <20>
|
||||
<EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ <20><>१ ᮪<><E1AEAA><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⥭쪨<E2A5AD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>㧥<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ᥬ<EFBFBD>୮<EFBFBD> <20><><EFBFBD>⨭<EFBFBD>(WWW).
|
||||
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB><EFBFBD>
|
||||
===================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><> <20><>ࠡ<EFBFBD><E0A0A1>뢠<EFBFBD><EBA2A0> <20><>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨧<EFBFBD><E2A8A7><EFBFBD><EFBFBD>.
|
||||
<EFBFBD>ࠣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>䨣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PPP <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
===========================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ppp.txt(<28><><EFBFBD> ppp_rus.txt <20> <20><><EFBFBD>᪨<EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD><EFBFBD>)
|
||||
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <>䨣<EFBFBD><E4A8A3><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
==============================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><>砫<EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>⥢<EFBFBD><E2A5A2> <20><><EFBFBD><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> Ethernet <20><><EFBFBD>, <20> <20><> <20><><EFBFBD>,
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20> <20><>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><>⥢<EFBFBD><E2A5A2>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><E0AEA1><EFBFBD><EFBFBD> <>䨣<EFBFBD><E4A8A3><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20>⥪. <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>
|
||||
ᬮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><>.
|
||||
|
||||
<EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD>⮪<EFBFBD><E2AEAA><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ
|
||||
-----------------------------------------------
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮪<EFBFBD><E2AEAA><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㦥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨ ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20>
|
||||
<EFBFBD>䨣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᬮ<EFBFBD><E1ACAE><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠬ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<>⠥<EFBFBD>,
|
||||
<EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ARPSTAT.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
---------------------------
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧨<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>⥬ <20>롥<EFBFBD><EBA1A5><EFBFBD><EFBFBD> STACKCFG(<28><><EFBFBD>䨣<EFBFBD><E4A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>) <20> <20><><EFBFBD><EFBFBD> NET(<28><><EFBFBD><EFBFBD>).
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27>⥭<EFBFBD><E2A5AD>', <20><>⥬ <20>롥<EFBFBD><EBA1A5><EFBFBD><EFBFBD> '<27>ࠩ<EFBFBD><E0A0A9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "Change"(<28>롮<EFBFBD>) <20>冷<EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮬ IP, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㦭<EFBFBD><E3A6AD> IP, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>⮢<EFBFBD><E2AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><> <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20> ⮩ <20><> ᠬ<><E1A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20> ᠬ<> <20><><EFBFBD><EFBFBD><EFBFBD>쭠<EFBFBD> <20><><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD>ன <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "Apply"(<28>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>)
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⢥ত<E2A2A5><E0A6A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD>ன<EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>.
|
||||
|
||||
<EFBFBD>⥪ <>䨣<EFBFBD><E4A8A3><EFBFBD><EFBFBD><E0AEA2> <20> <20><><EFBFBD><EFBFBD>饭. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD>, <20>ய<EFBFBD><E0AEAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ ᯮᮡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> PC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20>㫥<EFBFBD><E3ABA5><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD>筮<EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>।<EFBFBD>⢮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>㯫<EFBFBD><E3AFAB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᤥ<><E1A4A5><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><E0AEA1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ADA5>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><E1AAAE><EFBFBD><EFBFBD><EFBFBD>, (<28><><EFBFBD>ਬ<EFBFBD><E0A8AC> www.gogle.ru) <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ப<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>᪠: '<27>࣠<EFBFBD><E0A3A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> TCP/IP <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20> <20><><EFBFBD><EFBFBD>
|
||||
=============================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<><E6A8AA>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>
|
||||
<EFBFBD>ਫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ⮬ <20><> ᠬ<><E1A0AC> PC <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><>㣮<EFBFBD> <20><>१
|
||||
᮪<EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20> <20><> <20><><EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20><> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>⮡<EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD> <20><>設<EFBFBD>, <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>䨣<EFBFBD><E4A8A3><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20>⥪ <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> Ethernet,
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<><E6A8AA> <20>㤥<EFBFBD> ࠡ<><E0A0A1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>⥢<EFBFBD><E2A5A2>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>室<EFBFBD><E5AEA4> <20><><EFBFBD> <20><EFBFBD>ન <20> <20>⫠<EFBFBD><E2ABA0><EFBFBD> <20><>⥢<EFBFBD><E2A5A2> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD>ਪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD>
|
||||
================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ࠡ<EFBFBD><EFBFBD>稪 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⥪<EFBFBD> <20><>१ <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> 0x40, <20>㭪樨 53. <20><><EFBFBD><EFBFBD>
|
||||
TFTPC.ASM - <20><><EFBFBD><EFBFBD>訩 <20>ਬ<EFBFBD><E0A8AC> ⮣<>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD>
|
||||
(<28><> <20>ࠩ<EFBFBD><E0A0A9><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> UDP), <20><> <20><><EFBFBD> <20><>⥢<EFBFBD><E2A5A2> <20><><EFBFBD><EFBFBD>㭨<EFBFBD><E3ADA8><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>쭮 <><E1ABAE><EFBFBD>. <20> <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>⪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
=======
|
||||
|
||||
<EFBFBD>ਫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><>㣮<EFBFBD> <20> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᮡ<><E1AEA1> <20><>१
|
||||
<EFBFBD><EFBFBD>堭<EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '᮪<>⮬'. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>窨 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㭨<EFBFBD><E3ADA8>樨. <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㦭<EFBFBD><E3A6AD><EFBFBD> <20><>⥢<EFBFBD><E2A5A2><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> ᮪<><E1AEAA>.
|
||||
|
||||
<EFBFBD>ᯮ<EFBFBD>짮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮪<>⮢ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD><E5AEA4> <20><> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9><EFBFBD> <20> <20><>. <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD>, <20><>⠥<EFBFBD><E2A0A5> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>, <20><>⥬ <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <><E1ABAE><EFBFBD><EFBFBD> - <20><><EFBFBD> <20><>, <20><><EFBFBD> <20> <20>⫨稥 <20><> ࠡ<><E0A0A1><EFBFBD> <20>
|
||||
䠩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFA2A8><EFBFBD> <20><>㤭<EFBFBD><E3A4AD><EFBFBD><EFBFBD> <20> ࠡ<>⮩ ᮪<>⮢ (<28><><EFBFBD>ਬ<EFBFBD><E0A8AC>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ନ<EFBFBD><E0ACA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>०<EFBFBD><E0A5A6>, 祬 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
*<2A><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD>㥬<EFBFBD><E3A5AC> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㭨<EFBFBD><EFBFBD>樨.
|
||||
|
||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㦭<EFBFBD><E3A6AD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> - ᯮᮡ, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢠<EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>㣨<EFBFBD><E3A3A8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࠬ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祬<> <20><><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD> <20> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>孨<EFBFBD><E5ADA8><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27><><EFBFBD><EFBFBD>⨯<EFBFBD><E2A8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'). <20><> <20><><EFBFBD><EFBFBD><EFBFBD> - 16 <20><><EFBFBD>.
|
||||
|
||||
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 㤠<><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>頥<EFBFBD><E9A0A5><EFBFBD>. <20><> 㤠<><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'. <20><> <20><><EFBFBD><EFBFBD><EFBFBD> - 16 <20><><EFBFBD>.
|
||||
|
||||
*<2A><><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD> 32 <20><>⭮<EFBFBD> <20><>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC,
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>頥<EFBFBD><E9A0A5><EFBFBD>.
|
||||
|
||||
*<2A><><EFBFBD>ᨢ<EFBFBD><E1A8A2><EFBFBD> ०<><E0A5A6> <20><><EFBFBD> ०<><E0A5A6>, <20> <20><><EFBFBD><EFBFBD> ᮪<><E1AEAA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC <20><><EFBFBD><EFBFBD>
|
||||
ᮥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
*<2A><>⨢<EFBFBD><E2A8A2><EFBFBD> ०<><E0A5A6> <20><><EFBFBD> ०<><E0A5A6>, <20> <20><><EFBFBD><EFBFBD> ᮪<><E1AEAA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC <20><>⠥<EFBFBD><E2A0A5><EFBFBD>
|
||||
ᮥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᮪<>⮬ <20><> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ⮫쪮 <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD>, <20>.<2E>. <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪ <20><> 㤠<><EFBFBD> PC <20><> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>让 <20>ਬ<EFBFBD><E0A8AC>:
|
||||
|
||||
192.168.1.10:80 ;<3B><> <20><><EFBFBD>ᮥ<EFBFBD><E1AEA5><EFBFBD>塞<EFBFBD><EFA5AC> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> IP <20><><EFBFBD><EFBFBD>ᮬ 192.168.1.10 <20>
|
||||
80 <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>묨. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' <20> <20><><EFBFBD>ᯥ稢<E1AFA5><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
||||
<EFBFBD><EFBFBD>騬 <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>ਬ<EFBFBD><E0A8AC>, <20><><EFBFBD><EFBFBD> 80 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࢥࠬ<E0A2A5> <20><><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD>⮢<EFBFBD><E2AEA2><EFBFBD>
|
||||
<EFBFBD>࠭ᯮ<EFBFBD>⭮<EFBFBD><EFBFBD> <20><><EFBFBD>⮪<EFBFBD><E2AEAA><EFBFBD>(HTTP). <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>ࢥ <20><>
|
||||
<EFBFBD>㦭<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㧭<><E3A7AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD> ०<><E0A5A6><EFBFBD>: <20><><EFBFBD>ᨢ<EFBFBD><E1A8A2><EFBFBD> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>ࢥ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ᨢ<EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA>, <20><><EFBFBD><E1AAAE><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ᮢ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD>.
|
||||
Web-<2D><><EFBFBD>㧥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> ᮪<><E1AEAA>, <20><>⮬<EFBFBD> <20><><EFBFBD> <20><> <20><>⠥<EFBFBD><E2A0A5><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
||||
㪠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD><E4A5A9>
|
||||
====================================
|
||||
<EFBFBD><EFBFBD><EFBFBD>ࠡ<EFBFBD><EFBFBD>稪 <20><><EFBFBD><EFBFBD>頥<EFBFBD><E9A0A5><EFBFBD> <20> <20>㭪<EFBFBD><E3ADAA><EFBFBD><EFBFBD> <20>⥪<EFBFBD> <20><>१ <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD> 0x40, <20>㭪樨 53. <20>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>१ <20>㭪<EFBFBD><E3ADAA><EFBFBD> 52, <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠧ<EFBFBD><E0A0A7>
|
||||
<EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD> <20><><EFBFBD> <20><><EFBFBD>䨣<EFBFBD><E4A8A3><EFBFBD>樨 <20>⥪<EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20>㭪権, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD>:
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
---------------------------
|
||||
eax = 52
|
||||
ebx = 1
|
||||
|
||||
IP <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨫<EFBFBD><E2A8AB> <20> eax (<28> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>⮢, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⥪<EFBFBD> <20>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD>।<EFBFBD>
|
||||
-----------------------------------------------
|
||||
eax = 52
|
||||
ebx = 6
|
||||
edx = <20><> <20><><EFBFBD>⮢ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
esi = 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20>ਪ<EFBFBD><E0A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢥)
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, <20> eax ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> 0, <20> OK, <20><><EFBFBD> 0xFFFFFFFF, <20> <20>訡<EFBFBD><E8A8A1>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD> - ⮫쪮 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⥢<EFBFBD><E2A5A2> <20>ࠩ<EFBFBD><E0A0A9> (PPP, SLIP)
|
||||
|
||||
<EFBFBD>⥭<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>⥢<EFBFBD><E2A5A2> <20><><EFBFBD>।<EFBFBD> <20>뢮<EFBFBD><EBA2AE>
|
||||
---------------------------------------
|
||||
eax = 52
|
||||
ebx = 8
|
||||
esi = 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20>ਪ<EFBFBD><E0A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢥)
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, eax <20><><EFBFBD>⠥<EFBFBD> <20><> <20><><EFBFBD>⮢ <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>䥩<EFBFBD> - ⮫쪮 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⥢<EFBFBD><E2A5A2> <20>ࠩ<EFBFBD><E0A0A9> (PPP, SLIP)
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD> UDP ᮪<><E1AEAA>
|
||||
-------------------
|
||||
eax = 53
|
||||
ebx = 0
|
||||
ecx = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
edx = 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
esi = 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip <20><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>⮢, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> eax.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> 0xFFFFFFFF <20><><EFBFBD><EFBFBD>砥<EFBFBD>, <20><><EFBFBD> ᮪<><E1AEAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>뫨<EFBFBD><EBABA8>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD> TCP ᮪<><E1AEAA>
|
||||
-------------------
|
||||
eax = 53
|
||||
ebx = 5
|
||||
ecx = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
edx = 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
esi = 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip <20><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>⮢, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
edi = ०<><E0A5A6>: SOCKET_PASSIVE <20><><EFBFBD> SOCKET_ACTIVE (<28><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20> stack.inc)
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><E9A0A5><EFBFBD> <20> eax.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> 0xFFFFFFFF <20><><EFBFBD><EFBFBD>砥<EFBFBD>, <20><><EFBFBD> ᮪<><E1AEAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>뫨<EFBFBD><EBABA8>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨥ ᮪<><E1AEAA><EFBFBD> (<28><><EFBFBD>쪮 UDP)
|
||||
----------------------------
|
||||
eax = 53
|
||||
ebx = 1
|
||||
ecx = <20><><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, <20> eax ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> 0, <20> OK, <20><><EFBFBD> 0xFFFFFFFF, <20> <20>訡<EFBFBD><E8A8A1>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨥ ᮪<><E1AEAA><EFBFBD> (<28><><EFBFBD>쪮 TCP)
|
||||
----------------------------
|
||||
eax = 53
|
||||
ebx = 8
|
||||
ecx = <20><> ᮪<><E1AEAA><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, <20> eax ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> 0, <20> OK, <20><><EFBFBD> 0xFFFFFFFF, <20> <20>訡<EFBFBD><E8A8A1>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD>
|
||||
-------------
|
||||
eax = 53
|
||||
ebx = 2
|
||||
ecx = <20><><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, eax <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><> <20><><EFBFBD>⮢ <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD>⥭<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᮪<><E1AEAA><EFBFBD>
|
||||
----------------------
|
||||
eax = 53
|
||||
ebx = 3
|
||||
ecx = <20><> ᮪<><E1AEAA><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, eax ᮤ<>ন<EFBFBD> <20><> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, bl ᮤ<>ন<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᮪<><E1AEAA> (<28><><EFBFBD>쪮 UDP)
|
||||
---------------------------
|
||||
eax = 53
|
||||
ebx = 4
|
||||
ecx = <20><> ᮪<><E1AEAA><EFBFBD>
|
||||
edx = <20><> <20><><EFBFBD>⮢ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
esi = 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20>ਪ<EFBFBD><E0A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢥)
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, <20> eax ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> 0, <20> OK, <20><><EFBFBD> 0xFFFFFFFF, <20> <20>訡<EFBFBD><E8A8A1>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> ᮪<><E1AEAA><EFBFBD> (<28><><EFBFBD>쪮 TCP)
|
||||
-----------------------------------------
|
||||
eax = 53
|
||||
ebx = 6
|
||||
ecx = <20><><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, <20> eax ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> TCP ᮪<>⮢.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>⮡<EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA> 䠪<><E4A0AA><EFBFBD><EFBFBD>᪨
|
||||
ᮥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>㣨<EFBFBD> ᮪<>⮬. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD> <20> ᮪<><E1AEAA>,
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TCB_ESTABLISHED). <20><><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> ᮪<>⮢ <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> 䠩<><E4A0A9> stack.inc, <20><><EFBFBD> TCB_
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᮪<><E1AEAA> (<28><><EFBFBD>쪮 TCP)
|
||||
---------------------------
|
||||
eax = 53
|
||||
ebx = 7
|
||||
ecx = <20><><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD>
|
||||
edx = <20><> <20><><EFBFBD><EFBFBD>, <20>㦭<EFBFBD><E3A6AD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
esi = 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20>ਪ<EFBFBD><E0A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢥)
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, <20> eax ᮤ<>ন<EFBFBD><E0A6A8><EFBFBD> 0, <20> OK, <20><><EFBFBD> 0xFFFFFFFF, <20> <20>訡<EFBFBD><E8A8A1>.
|
||||
|
||||
<EFBFBD><EFBFBD>ઠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
---------------------
|
||||
eax = 53
|
||||
ebx = 9
|
||||
ecx = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>⮡<EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- <20><><EFBFBD><EFBFBD> ᮪<>⠬<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>筮 㭨<><E3ADA8><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD>, eax = - 1 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> 0.
|
||||
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨥ TCP ᮪<><E1AEAA><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
=============================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ᯮᮡ<E1AFAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD> - <20><><EFBFBD>ᨢ<EFBFBD><E1A8A2><EFBFBD> <20><><EFBFBD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨢ<EFBFBD><E1A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD>, <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27><><EFBFBD>蠥<EFBFBD>' <20>室<EFBFBD>騥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ਫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>筮 <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢫<EFBFBD><E2A2AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><>ࢥ<EFBFBD>. <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EEA1AE> <20><>㣮<EFBFBD><E3A3AE> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20>⮣<EFBFBD> <20>㦭<EFBFBD>
|
||||
<EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> <20><><EFBFBD><EFBFBD><EFBFBD> (80 <20><><EFBFBD> <20><><EFBFBD>-<2D><>ࢥ<EFBFBD><E0A2A5>), <20><><EFBFBD>⠢<EFBFBD><E2A0A2><EFBFBD>
|
||||
㤠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ࠢ<><E0A0A2><EFBFBD> 0(㪠<>뢠<EFBFBD><EBA2A0>, <20><><EFBFBD> <20><EFBFBD> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>ਫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> ⮫쪮 ᮪<><E1AEAA> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>ਤ<EFBFBD><E0A8A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>室<EFBFBD>饣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><>।
|
||||
<EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祣<> - <20><><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>મ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> ࠧꥬ<E0A0A7> <20><><EFBFBD>
|
||||
TCB_ESTABLISHED <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饬<EFBFBD><E9A5AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⮬. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
IP <20> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>㫥<EFBFBD><E3ABA5><EFBFBD> <20><><EFBFBD>祭<EFBFBD>ﬨ
|
||||
(<28><><EFBFBD><EFBFBD><EFBFBD>, <20> 祬 ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?). <20><><EFBFBD><EFBFBD><EFBFBD>, <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> 㭨<><E3ADA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ⠪ <20>⮡<EFBFBD> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>㦭<EFBFBD><E3A6AD> <20>ணࠬ<E0AEA3><E0A0AC> <20> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <20><><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>쪮 <20>ணࠬ<E0AEA3> <20><> <20><>襩 <20><>設<EFBFBD>,
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ⮬<> <20><> 㤠<><EFBFBD><F1ADADAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 㭨<><E3ADA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
====================================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20> 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮪<>⮬, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFA2A8><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㭨<><E3ADA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>筮, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>稭<EFBFBD><E7A8AD><EFBFBD><EFBFBD><EFBFBD> <20> 1000. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>⮡<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ᯮ<EFBFBD>짮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA><EFBFBD>.
|
||||
|
||||
mov ecx, 1000 ; <20><>।<EFBFBD><E0A5A4>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><>稭<EFBFBD><E7A8AD><EFBFBD> <20> 1000
|
||||
|
||||
getlp:
|
||||
inc ecx
|
||||
push ecx
|
||||
mov eax, 53
|
||||
mov ebx, 9
|
||||
int 0x40
|
||||
pop ecx
|
||||
cmp eax, 0 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
jz getlp ; <20><> - <20>த<EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ॡ<EFBFBD><E0A5A1><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
; ecx ᮤ<>ন<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ᮪<><E1AEAA>
|
||||
=====================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>㭪樨, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 <20><> ⮣<>, <20><><EFBFBD> <20><> ࠧꥬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>⮪<EFBFBD><E2AEAA><EFBFBD> TCP <20><><EFBFBD>
|
||||
UDP. <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><> <20><> ᠬ<><E1A0AC> <20><><EFBFBD> <20><> <20><> <20><> <20>뫮. <20><><EFBFBD><EFBFBD><EFBFBD> ᮪<><E1AEAA> <20><><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD> TCP, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD>, <20>⮡<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD> ᮪<><E1AEAA><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>㣮<EFBFBD> <20><> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⨬. <20><><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD>
|
||||
᮪<EFBFBD><EFBFBD><EFBFBD> - TCB_ESTABLISHED.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>뫠<EFBFBD><EBABA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>ந<EFBFBD>室<EFBFBD><E5AEA4> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>ࠢ<EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⢥砥<E2A2A5> <20><> ࠧ<><E0A0A7><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢. <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 祬 768 <20><><EFBFBD>⮢ ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> (⠪<><E2A0AA>, <20><><EFBFBD> telnet), <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>䥪⨢<E4A5AA><E2A8A2><EFBFBD>) <20><><EFBFBD><EFBFBD>⨥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> ⠩<><E2A0A9><EFBFBD>, <20>⮡<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ਮ<EFBFBD><E0A8AE><EFBFBD><EFBFBD>᪨ (᪠<><E1AAA0><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ㭤<E1A5AA>).
|
||||
|
||||
<EFBFBD>⥭<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᮪<><E1AEAA><EFBFBD>
|
||||
=======================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD> <20>⥭<EFBFBD><E2A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᮪<><E1AEAA><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>
|
||||
<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>⮡<EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩<EFBFBD><E9A8A9> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨥ ᮪<><E1AEAA><EFBFBD>
|
||||
================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>맮<EFBFBD><EBA7AE><EFBFBD><EFBFBD> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> (<28><><EFBFBD> TCP <20><><EFBFBD> UDP, ᮮ⢥<E1AEAE><E2A2A5>⢥<EFBFBD><E2A2A5><EFBFBD>).
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD> TCP ᮪<><E1AEAA>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><> <20><>㣮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ᮪<><E1AEAA> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>த<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ⠪ <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD> <20> <20><>祭<EFBFBD><E7A5AD> <20><><EFBFBD>쪨<EFBFBD>
|
||||
ᥪ㭤 <20><> <20><>襣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
|
||||
|
||||
<EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20>⮣<EFBFBD> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>, <20><>
|
||||
<EFBFBD><EFBFBD>諨<EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>쬮 <20><> mikeh@oceanfree.net.
|
||||
<EFBFBD><EFBFBD>ॢ<EFBFBD><EFBFBD> <20><><EFBFBD>㬥<EFBFBD><E3ACA5> Hex.
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᮤ<>ঠ<EFBFBD><E0A6A0><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD>졠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>
|
||||
mestack@yandex.ru <20><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: http://meos.sysbin.com
|
26
data/sp/docs/OPENDIAL.TXT
Normal file
26
data/sp/docs/OPENDIAL.TXT
Normal file
@@ -0,0 +1,26 @@
|
||||
OpenDialog - file open dialog:
|
||||
1) Move the cursor inside the panel:
|
||||
a) up and down arrows (including add. keyb.) - move the cursor one position up or down.
|
||||
b) PageUp - list page up.
|
||||
c) PageDown - list page down.
|
||||
d) Home - move to the top of directory.
|
||||
e) End - move to the end of directory.
|
||||
2) Enter - operations with the selected file:
|
||||
a) enter the folder.
|
||||
b) choose a file.
|
||||
3) Using the menu:
|
||||
Alt+F1 - call disk selection menu.
|
||||
Alt+F2 - call sort menu.
|
||||
Alt+F3 - call filter menu.
|
||||
Inside the menu:
|
||||
Arrow cursor up and down - move to item.
|
||||
Esc - close the window.
|
||||
Enter - close the window with confirmation.
|
||||
Arrow cursor left and right - move into the adjacent menu.
|
||||
4) Ctrl+R - update the contents of a directory.
|
||||
5) Backspace - exit from the directory.
|
||||
6) Insert - highlighted by red color the file at the cursor and move the cursor one position down.
|
||||
7) Ctrl+A and Ctrl+(NumPad(+) Up) - select all files and directories in the active panel, with the exception of the directory '..'
|
||||
8) Ctrl+(NumPad(-) Up) - deselect all files and directories in the active panel with the exception of the directory '..'
|
||||
9) Ctrl+(NumPad(*) Up) - invert the selection of all files and directories in the active panel, with the exception of the directory '..'
|
||||
10) Esc - shutdown the program, without opening of a file.
|
@@ -1,387 +1,203 @@
|
||||
What is implemented
|
||||
===================
|
||||
eax = 74 - Work directly with network interface
|
||||
ebx = -1 (Get number of active network devices)
|
||||
|
||||
The following features are present in the TCP/IP stack code:
|
||||
out:
|
||||
eax = number of active network devices
|
||||
|
||||
IP layer.
|
||||
ICMP.
|
||||
TCP layer.
|
||||
UDP layer.
|
||||
local loopback.
|
||||
Realtek 8029 PCI ethernet interface.
|
||||
Realtek 8139 PCI ethernet interface.
|
||||
Intel i8255x PCI ethernet interface.
|
||||
Dynamic ARP table.
|
||||
PPP dialer
|
||||
bh = device number, for all following functions !
|
||||
|
||||
And the following internet applcations are implemented
|
||||
bl = 0 (Get device type)
|
||||
|
||||
HTTP Server
|
||||
Telnet
|
||||
POP Client
|
||||
DNS Name resolver
|
||||
MP3 Server
|
||||
TFTP Client
|
||||
IRC Client
|
||||
out:
|
||||
eax = device type number
|
||||
|
||||
There are also a number of experimental applications for streaming music
|
||||
and performing interprocess communication via sockets. A Web broswer is in
|
||||
development
|
||||
bl = 1 (Get device name)
|
||||
|
||||
in:
|
||||
ecx = pointer to 64 byte buffer
|
||||
out:
|
||||
name is copied into the buffer
|
||||
eax = -1 on error
|
||||
|
||||
What is not implemented
|
||||
=======================
|
||||
bl = 2 (Reset the device)
|
||||
|
||||
The IP layer does not process header options.
|
||||
The IP layer does not support routing.
|
||||
Packet fragmentation is not supported.
|
||||
in
|
||||
none
|
||||
out
|
||||
eax = -1 on error
|
||||
|
||||
bl = 3 (Stop device)
|
||||
|
||||
How to configure Kolibri for PPP
|
||||
===============================
|
||||
in
|
||||
none
|
||||
out
|
||||
eax = -1 on error
|
||||
|
||||
See ppp.txt
|
||||
TO BE FIGURED OUT
|
||||
|
||||
eax = 75 - Work with Sockets
|
||||
|
||||
How to configure Kolibri for Ethernet
|
||||
====================================
|
||||
These functions work like the ones found in UNIX (and windows)
|
||||
for more info, please read http://beej.us/guide/bgnet/
|
||||
|
||||
First, you need to have a supported ethernet card fitted, or present
|
||||
on your motherboard. If you are uncertain what type of hardware you
|
||||
have, try to configue the stack. If you have supported hardware it
|
||||
will be found, and enabled.
|
||||
bl = 0 (Open Socket)
|
||||
|
||||
Setting Up the ARP Table
|
||||
------------------------
|
||||
in:
|
||||
ecx = domain
|
||||
edx = type
|
||||
esi = protocol
|
||||
out:
|
||||
eax = socket number, -1 on error
|
||||
|
||||
Kolibri's ARP table is dynamically created and maintained; You can see what
|
||||
hosts Kolibri has communicated with by running the ARPSTAT application.
|
||||
bl = 1 (Close Socket)
|
||||
|
||||
Enabling Ethernet
|
||||
-----------------
|
||||
|
||||
Boot Kolibri, then select STACKCFG from the NET menu.
|
||||
Press the 'Read' Button, then select 'Packet Driver'.
|
||||
Press 'Change' next to the IP address, and enter the IP address you want
|
||||
to use. Make sure it is on the same sub-net as the LAN to which you are
|
||||
connected.
|
||||
Press 'Apply' to action the changes.
|
||||
Close the program.
|
||||
|
||||
|
||||
The stack is now running, which you can test by pinging Kolibri from a
|
||||
remote host.
|
||||
|
||||
|
||||
The simplest way to connect two PC's together is using a 'Null Modem'
|
||||
Ethernet cable. These simply cross certain wires over. They can be
|
||||
purchased from PC stores, but are simple to make. Details can be found
|
||||
on the web. Look on google for 'ethernet cross over cable' or similar.
|
||||
|
||||
|
||||
How to use TCP/IP locally, with no Network
|
||||
==========================================
|
||||
|
||||
Kolibri supports a form of local loopback that means applications on the
|
||||
same PC can communicate with each other via sockets as though they
|
||||
were on separate hosts. To connect to an application on the same machine,
|
||||
specify the local IP address as the destination address. You do not even
|
||||
need to configure the stack for ethernet; local loopback will work without
|
||||
any network hardware. It's great for development and testing.
|
||||
|
||||
|
||||
Application Programming Interface
|
||||
=================================
|
||||
|
||||
The developer can access the stack through interrupt 0x40, function 53.
|
||||
The file TFTPC.ASM gives a good example of how to use the programming
|
||||
interface ( at least, for UDP), but as network communication is complex
|
||||
I'll give an overview.
|
||||
|
||||
|
||||
Sockets
|
||||
=======
|
||||
|
||||
Applications connect to each other and pass information between themselves
|
||||
through a mechanism called a 'socket'. Sockets are end-points for
|
||||
communication; You need one at each application to communicate.
|
||||
|
||||
Using sockets is a little like using files on an OS; You open them, read
|
||||
and write to them, then close them. The only thing that makes life slightly
|
||||
more complicated is that unlike with a file, you have something intelligent
|
||||
at the other end ( which for example may not want to close when you do! )
|
||||
|
||||
Lets deal with the terminology before we go any further.
|
||||
|
||||
socket A unique identifier used by the application for communication.
|
||||
local port A number that identifies this application on the local host.
|
||||
Ports are a way to allow multiple applications to communicate
|
||||
with other hosts without the data becoming mixed up. ( The
|
||||
technical term is 'multiplex' ). Port numbers are 16 bit.
|
||||
remote port A number that identifies the application on the remote host
|
||||
to which we are communicating with. To the remote host, this is
|
||||
it's 'local port'. Port numbers are 16 bit.
|
||||
IP Address A 32 bit number that identifies the remote host PC that we are
|
||||
communicating with.
|
||||
Passive Refers to the mode by which a socket is opened; When opening in
|
||||
passive mode, the local PC is awaiting an incoming connection.
|
||||
Active Refers to the mode by which a socket is opened; When opening in
|
||||
active mode, the local PC will attempt to connect to a remote
|
||||
PC.
|
||||
|
||||
When you connect to a socket on a remote PC, you need to specify more than
|
||||
just the IP address, otherwise the remote stack will not know to which
|
||||
application it should send your data. You must fully qualify the address,
|
||||
which means you specify the IP address and the port number. This would be
|
||||
written like this
|
||||
|
||||
192.168.1.10:80 ; Connect to port 80 on the machine 192.168.1.10
|
||||
|
||||
Port numbers are important. Some are 'well known' and provide access to
|
||||
common applications. For example port 80 is used by HTTP servers; That
|
||||
way I can connect to a webserver on a host without having to find out
|
||||
what port number the application is listening on.
|
||||
|
||||
This brings me to the way in which you open a socket; As I said earlier,
|
||||
there are two modes, Passive and Active. A webserver would open a passive
|
||||
socket, as it is waiting for incoming connection requests. A web browser
|
||||
would open an active socket because it is attempting to connect to a
|
||||
specified remote host.
|
||||
|
||||
|
||||
Access to programming interface
|
||||
===============================
|
||||
The developer accesses the stack functions through interrupt 0x40,
|
||||
function 53. Some functions may be accessed through function 52, but these
|
||||
are mainly for stack configuration.
|
||||
Here is a summary of the functions that you may use and the parameter
|
||||
definitions.
|
||||
|
||||
|
||||
Get Local IP Address
|
||||
--------------------
|
||||
eax = 52
|
||||
ebx = 1
|
||||
|
||||
IP address returned in eax ( in internet byte order )
|
||||
|
||||
|
||||
Write to stack input queue
|
||||
--------------------------
|
||||
eax = 52
|
||||
ebx = 6
|
||||
edx = number of bytes to write
|
||||
esi = pointer to data ( in application space )
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
This interface is for slow network drivers only ( PPP, SLIP )
|
||||
|
||||
|
||||
Read data from network output queue
|
||||
-----------------------------------
|
||||
eax = 52
|
||||
ebx = 8
|
||||
esi = pointer to data ( in application space )
|
||||
|
||||
On return, eax holds number of bytes transferred.
|
||||
This interface is for slow network drivers only ( PPP, SLIP )
|
||||
|
||||
|
||||
Open a UDP socket
|
||||
-----------------
|
||||
eax = 53
|
||||
ebx = 0
|
||||
ecx = local port
|
||||
edx = remote port
|
||||
esi = remote ip address ( in internet byte order )
|
||||
|
||||
The socket number allocated is returned in eax.
|
||||
A return value of 0xFFFFFFFF means no socket could be opened.
|
||||
|
||||
|
||||
Open a TCP socket
|
||||
-----------------
|
||||
eax = 53
|
||||
ebx = 5
|
||||
ecx = local port
|
||||
edx = remote port
|
||||
esi = remote ip address ( in internet byte order )
|
||||
edi = mode : SOCKET_PASSIVE or SOCKET_ACTIVE ( defined in stack.inc )
|
||||
|
||||
The socket number allocated is returned in eax.
|
||||
A return value of 0xFFFFFFFF means no socket could be opened.
|
||||
|
||||
|
||||
Close a socket (UDP Only )
|
||||
--------------------------
|
||||
eax = 53
|
||||
ebx = 1
|
||||
in:
|
||||
ecx = socket number
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 2 (Bind)
|
||||
|
||||
|
||||
Close a socket (TCP Only )
|
||||
--------------------------
|
||||
eax = 53
|
||||
ebx = 8
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 3 (Listen)
|
||||
|
||||
|
||||
Poll socket
|
||||
-----------
|
||||
eax = 53
|
||||
ebx = 2
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = backlog
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds the number of bytes in the receive buffer.
|
||||
bl = 4 (connect)
|
||||
|
||||
|
||||
Read socket data
|
||||
----------------
|
||||
eax = 53
|
||||
ebx = 3
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds the number of bytes remaining, bl holds a data byte.
|
||||
bl = 5 (accept)
|
||||
|
||||
|
||||
Write to socket ( UDP only )
|
||||
----------------------------
|
||||
eax = 53
|
||||
ebx = 4
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = number of bytes to write
|
||||
esi = pointer to data ( in application space )
|
||||
edx = pointer to sockaddr structure
|
||||
esi = length of sockaddr structure
|
||||
out:
|
||||
eax = socket number, -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 6 (send)
|
||||
|
||||
|
||||
Return socket status ( TCP only )
|
||||
---------------------------------
|
||||
eax = 53
|
||||
ebx = 6
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = pointer to buffer
|
||||
esi = length of buffer
|
||||
edi = flags
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
On return, eax holds the sockets TCP status.
|
||||
This function can be used to determine when a socket has actually connected
|
||||
to another socket - data cannot be written to a socket until the connection
|
||||
is established (TCB_ESTABLISHED). The states a socket can be in are defined
|
||||
in stack.inc as TCB_
|
||||
bl = 7 (receive)
|
||||
|
||||
|
||||
Write to socket ( TCP only )
|
||||
----------------------------
|
||||
eax = 53
|
||||
ebx = 7
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = number of bytes to write
|
||||
esi = pointer to data ( in application space )
|
||||
edx = pointer to buffer
|
||||
esi = length of buffer
|
||||
edi = flags
|
||||
out:
|
||||
eax = number of bytes copied, -1 on error
|
||||
|
||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
||||
bl = 8 (set socket options)
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = level
|
||||
esi = optionname
|
||||
edi = ptr to buffer
|
||||
|
||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
||||
|
||||
out:
|
||||
eax = -1 on error
|
||||
|
||||
bl = 9 (get socket options
|
||||
|
||||
in:
|
||||
ecx = socket number
|
||||
edx = level
|
||||
esi = optionname
|
||||
edi = ptr to buffer
|
||||
|
||||
The buffer's first dword is the length of the buffer, minus the first dword offcourse
|
||||
|
||||
out:
|
||||
eax = -1 on error, socket option otherwise
|
||||
|
||||
TIP
|
||||
|
||||
when you import 'network.inc' and 'macros.inc' into your source code, you can use the following syntax to work with sockets:
|
||||
|
||||
|
||||
Check port number
|
||||
-----------------
|
||||
eax = 53
|
||||
ebx = 9
|
||||
ecx = port number
|
||||
for example, to open a socket
|
||||
|
||||
This function is used to determine if a port number
|
||||
is in use by any sockets as a local port number. Local
|
||||
port numbers are normally unique.
|
||||
mcall socket, AF_INET, SOCK_DGRAM,0
|
||||
mov [socketnum], eax
|
||||
|
||||
On return, eax is 1 for port number not in use, 0 otherwise.
|
||||
then to connect to a server
|
||||
|
||||
mcall connect, [socketnum], sockaddr, 18
|
||||
|
||||
|
||||
Opening a TCP socket in Kolibri
|
||||
===============================
|
||||
eax = 76 - Work with protocols
|
||||
|
||||
There are two ways to open a socket - Passive or Active.
|
||||
high half of ebx = protocol number (for all subfunctions!)
|
||||
bh = device number (for all subfunctions!)
|
||||
bl = subfunction number, depends on protocol type
|
||||
|
||||
In a Passive connection your application 'listens' for incoming
|
||||
requests from remote applications. Typically this will be done when
|
||||
you are implementing a server application that allows any other
|
||||
application to connect to it. You would specify a 'known' local
|
||||
port number, such as 80 for a web server. You would leave the
|
||||
remote IP and remote port number as 0, which indicates any
|
||||
remote application may connect.
|
||||
For Ethernet protocol
|
||||
|
||||
Once the socket has been opened you would wait for an incoming
|
||||
connection before doing anything. This can be by either checking
|
||||
the socket status for TCB_ESTABLISHED, or waiting for data in the
|
||||
receive buffer.
|
||||
0 - Read # Packets send
|
||||
1 - Read # Packets received
|
||||
2 - Read # Bytes send
|
||||
3 - Read # Bytes received
|
||||
4 - Read MAC
|
||||
5 - Write MAC
|
||||
6 - Read IN-QUEUE size
|
||||
7 - Read OUT-QUEUE size
|
||||
For IPv4 protocol
|
||||
|
||||
In an Active connection, you are making a connection to a specified
|
||||
remote port. The remote IP and remote port parameters must be filled
|
||||
in with non-zero values ( otherwise, what are you connecting to? ).
|
||||
You also specify a unique local port number so the remote application
|
||||
can uniquely identify you - after all, there may be several applications
|
||||
on your machine connected to the same remote host. See below for finding
|
||||
a unique port number.
|
||||
0 - Read # IP packets send
|
||||
1 - Read # IP packets received
|
||||
2 - Read IP
|
||||
3 - Write IP
|
||||
4 - Read DNS
|
||||
5 - Write DNS
|
||||
6 - Read subnet
|
||||
7 - Write subnet
|
||||
8 - Read gateway
|
||||
9 - Write gateway
|
||||
For ARP protocol
|
||||
|
||||
0 - Read # ARP packets send
|
||||
1 - Read # ARP packets received
|
||||
2 - Get # ARP entry's
|
||||
3 - Read ARP entry
|
||||
4 - Add static ARP entry
|
||||
5 - Remove ARP entry (-1 = remove all)
|
||||
For ICMP protocol
|
||||
|
||||
How to find an unused local port number
|
||||
=======================================
|
||||
0 - Read # ICMP packets send
|
||||
1 - Read # ICMP packets received
|
||||
3 - enable/disable ICMP echo reply
|
||||
For UDP protocol
|
||||
|
||||
Typically when you are creating an active connection to a remote
|
||||
socket you will want to choose a unique local port number. Local
|
||||
port numbers normally start from 1000; The following code may
|
||||
be used to obtain an unused port number prior to making the
|
||||
open socket call.
|
||||
0 - Read # UDP packets send
|
||||
1 - Read # UDP packets received
|
||||
For TCP protocol
|
||||
|
||||
mov ecx, 1000 ; local port starting at 1000
|
||||
|
||||
getlp:
|
||||
inc ecx
|
||||
push ecx
|
||||
mov eax, 53
|
||||
mov ebx, 9
|
||||
int 0x40
|
||||
pop ecx
|
||||
cmp eax, 0 ; is this local port in use?
|
||||
jz getlp ; yes - so try next
|
||||
|
||||
; ecx contains a free local port number
|
||||
|
||||
|
||||
|
||||
Writing data to a socket
|
||||
========================
|
||||
|
||||
There are two functions available depending on whether the socket
|
||||
was opened for TCP or UDP protocol; The call parameters are the
|
||||
same however. When the socket is being opened for TCP, use the
|
||||
status function to poll for a connection - data cannot be written
|
||||
to a socket until another socket has connected to it, and the
|
||||
state of the socket is TCB_ESTABLISHED.
|
||||
|
||||
When you write data, the call results in a single IP packet being
|
||||
created and transmitted. Thus the user application is responsible for
|
||||
the size of transmitted packets. Keep the packet sizes under 768 bytes.
|
||||
If you are writing a terminal program like telnet, you may want to send
|
||||
a packet for each keystroke ( inefficient ) or use a timer to send data
|
||||
periodically ( say, every second ).
|
||||
|
||||
|
||||
Reading data from a socket
|
||||
==========================
|
||||
|
||||
There is one function to read data from a sockets receive buffer. This
|
||||
function retrieves one byte at a time. You can use the poll function to
|
||||
test the receive buffer for data.
|
||||
|
||||
|
||||
Closing a socket
|
||||
================
|
||||
|
||||
Simply call the appropriate function - there is one for TCP, and another
|
||||
for UDP. When closing a TCP socket, don't forget that the other end
|
||||
may continue to send data, so the socket may remain active for a
|
||||
few seconds after your call.
|
||||
|
||||
|
||||
If you have any questions or have suggestions for improving this
|
||||
document please contact me at mikeh@oceanfree.net.
|
||||
0 - Read # TCP packets send
|
||||
1 - Read # TCP packets received
|
@@ -2419,391 +2419,6 @@ dword-значение цвета 0x00RRGGBB
|
||||
* eax = -1 - ошибка (в системе слишком много потоков)
|
||||
* иначе eax = TID - идентификатор потока
|
||||
|
||||
======================================================================
|
||||
= Функция 52, подфункция 0 - получить конфигурацию сетевого драйвера.
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 0 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = двойное слово конфигурации
|
||||
Замечания:
|
||||
* Слово конфигурации можно установить подфункцией 2.
|
||||
* Ядро не использует соответствующую переменную.
|
||||
Ценность этой переменной и работающих с ней подфункций 0 и 2
|
||||
представляется сомнительной.
|
||||
|
||||
======================================================================
|
||||
======= Функция 52, подфункция 1 - получить локальный IP-адрес. ======
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 1 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = IP-адрес (4 байта)
|
||||
Замечания:
|
||||
* Локальный IP-адрес устанавливается подфункцией 3.
|
||||
|
||||
======================================================================
|
||||
Функция 52, подфункция 2 - установить конфигурацию сетевого драйвера.
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 2 - номер подфункции
|
||||
* ecx = двойное слово конфигурации; если младшие 7 бит образуют
|
||||
число 3, это воспринимается как запрос на [пере-]инициализацию
|
||||
Ethernet-карты, в противном случае Ethernet выключается
|
||||
Возвращаемое значение:
|
||||
* если не запрошен Ethernet-интерфейс, то возвращается eax=2,
|
||||
но это может измениться в будущих версиях ядра
|
||||
* если запрошен Ethernet-интерфейс, то eax=0 означает ошибку
|
||||
(отсутствие Ethernet-карты), а ненулевое значение - успех
|
||||
Замечания:
|
||||
* Слово конфигурации можно прочитать подфункцией 0.
|
||||
* Ядро не использует соответствующую переменную.
|
||||
Ценность этой переменной, подфункции 0 и части подфункции 2,
|
||||
устанавливающей эту переменную, представляется сомнительной.
|
||||
|
||||
======================================================================
|
||||
====== Функция 52, подфункция 3 - установить локальный IP-адрес. =====
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 3 - номер подфункции
|
||||
* ecx = IP-адрес (4 байта)
|
||||
Возвращаемое значение:
|
||||
* текущая реализация возвращает eax=3, но это может быть изменено
|
||||
в будущих версиях
|
||||
Замечания:
|
||||
* Локальный IP-адрес можно получить подфункцией 1.
|
||||
|
||||
======================================================================
|
||||
= Функция 52, подфункция 6 - добавить данные в стек входной очереди. =
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 6 - номер подфункции
|
||||
* edx = размер данных
|
||||
* esi = указатель на данные
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - ошибка
|
||||
* eax = 0 - успешно
|
||||
Замечания:
|
||||
* Эта функция предназначена только для медленных сетевых драйверов
|
||||
(PPP, SLIP).
|
||||
* Размер данных не должен превосходить 1500 байт,
|
||||
хотя проверок корректности не делается.
|
||||
|
||||
======================================================================
|
||||
====================== Функция 52, подфункция 8 ======================
|
||||
============= Прочитать данные из сетевой очереди вывода. ============
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 8 - номер подфункции
|
||||
* esi = указатель на буфер размером 1500 байт
|
||||
Возвращаемое значение:
|
||||
* eax = число прочитанных байт (в текущей реализации
|
||||
либо 0 = нет данных, либо 1500)
|
||||
* данные скопированы в буфер
|
||||
Замечания:
|
||||
* Эта функция предназначена только для медленных сетевых драйверов
|
||||
(PPP, SLIP).
|
||||
|
||||
======================================================================
|
||||
=========== Функция 52, подфункция 9 - получить gateway IP. ==========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 9 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = gateway IP (4 байта)
|
||||
|
||||
======================================================================
|
||||
========= Функция 52, подфункция 10 - получить маску подсети. ========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 10 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = маска подсети
|
||||
|
||||
======================================================================
|
||||
========= Функция 52, подфункция 11 - установить gateway IP. =========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 11 - номер подфункции
|
||||
* ecx = gateway IP (4 байта)
|
||||
Возвращаемое значение:
|
||||
* текущая реализация возвращает eax=11, но это может быть изменено
|
||||
в будущих реализациях
|
||||
|
||||
======================================================================
|
||||
======== Функция 52, подфункция 12 - установить маску подсети. =======
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 12 - номер подфункции
|
||||
* ecx = маска подсети
|
||||
Возвращаемое значение:
|
||||
* текущая реализация возвращает eax=12, но это может быть изменено
|
||||
в будущих версиях
|
||||
|
||||
======================================================================
|
||||
============ Функция 52, подфункция 13 - получить DNS IP. ============
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 13 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = DNS IP (4 байта)
|
||||
|
||||
======================================================================
|
||||
=========== Функция 52, подфункция 14 - установить DNS IP. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 14 - номер подфункции
|
||||
* ecx = DNS IP (4 байта)
|
||||
Возвращаемое значение:
|
||||
* текущая реализация возвращает eax=14, но это может быть изменено
|
||||
в следующих версиях
|
||||
|
||||
======================================================================
|
||||
====== Функция 52, подфункция 15 - получить локальный MAC-адрес. =====
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 52 - номер функции
|
||||
* ebx = 15 - номер подфункции
|
||||
* ecx = 0 - читать первые 4 байта,
|
||||
ecx = 4 - читать последние 2 байта
|
||||
Возвращаемое значение:
|
||||
* для ecx=0: eax = первые 4 байта MAC-адреса
|
||||
* для ecx=4: ax = последние 2 байта MAC-адреса,
|
||||
старшая половина eax разрушается
|
||||
* для других ecx: eax = -1 как признак ошибки
|
||||
|
||||
======================================================================
|
||||
============ Функция 53, подфункция 0 - открыть UDP-сокет. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 0 - номер подфункции
|
||||
* ecx = локальный порт (учитывается только младшее слово),
|
||||
ecx = 0 - предоставить системе выбор локального порта
|
||||
* edx = удалённый порт (учитывается только младшее слово)
|
||||
* esi = удалённый IP
|
||||
Возвращаемое значение:
|
||||
* eax = -1 = 0xFFFFFFFF - ошибка; ebx разрушается
|
||||
* eax = хэндл сокета (некоторое число, однозначно идентифицирующее
|
||||
сокет и имеющее смысл только для системы) - успешно;
|
||||
ebx разрушается
|
||||
|
||||
======================================================================
|
||||
============ Функция 53, подфункция 1 - закрыть UDP-сокет. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 1 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - неверный хэндл
|
||||
* eax = 0 - успешно
|
||||
* ebx разрушается
|
||||
Замечания:
|
||||
* Текущая реализация не закрывает автоматически все сокеты потока
|
||||
при его завершении. В частности, не следует прибивать поток
|
||||
с кучей открытых сокетов - будет утечка ресурсов.
|
||||
|
||||
======================================================================
|
||||
============== Функция 53, подфункция 2 - опрос сокета. ==============
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 2 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
Возвращаемое значение:
|
||||
* eax = число полученных байт, 0 для неверного хэндла
|
||||
* ebx разрушается
|
||||
|
||||
======================================================================
|
||||
======== Функция 53, подфункция 3 - прочитать байт из сокета. ========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 3 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
Возвращаемое значение:
|
||||
* если нет принятых данных или указан неверный хэндл:
|
||||
eax=0, bl=0, прочие байты ebx разрушаются
|
||||
* если были принятые данные: eax=число оставшихся байт
|
||||
(возможно, 0), bl=прочитанный байт, прочие байты ebx разрушаются
|
||||
|
||||
======================================================================
|
||||
========== Функция 53, подфункция 4 - записать в UDP-сокет. ==========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 4 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
* edx = число байт для записи
|
||||
* esi = указатель на данные для записи
|
||||
Возвращаемое значение:
|
||||
* eax = 0xffffffff - ошибка (неверный хэндл или недостаточно памяти)
|
||||
* eax = 0 - успешно
|
||||
* ebx разрушается
|
||||
Замечания:
|
||||
* Число байт для записи не может превышать 1500-28, хотя
|
||||
соответствующей проверки не делается.
|
||||
|
||||
======================================================================
|
||||
============ Функция 53, подфункция 5 - открыть TCP-сокет. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 5 - номер подфункции
|
||||
* ecx = локальный порт (учитывается только младшее слово),
|
||||
ecx = 0 - предоставить системе выбор локального порта
|
||||
* edx = удалённый порт (учитывается только младшее слово)
|
||||
* esi = удалённый IP
|
||||
* edi = режим открытия: SOCKET_PASSIVE=0 или SOCKET_ACTIVE=1
|
||||
Возвращаемое значение:
|
||||
* eax = -1 = 0xFFFFFFFF - ошибка; ebx разрушается
|
||||
* eax = хэндл сокета (некоторое число, однозначно идентифицирующее
|
||||
сокет и имеющее смысл только для системы) - успешно;
|
||||
ebx разрушается
|
||||
|
||||
======================================================================
|
||||
====== Функция 53, подфункция 6 - получить состояние TCP-сокета. =====
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 6 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
Возвращаемое значение:
|
||||
* eax = 0 для неверного сокета или статус: одно из
|
||||
* TCB_LISTEN = 1
|
||||
* TCB_SYN_SENT = 2
|
||||
* TCB_SYN_RECEIVED = 3
|
||||
* TCB_ESTABLISHED = 4
|
||||
* TCB_FIN_WAIT_1 = 5
|
||||
* TCB_FIN_WAIT_2 = 6
|
||||
* TCB_CLOSE_WAIT = 7
|
||||
* TCB_CLOSING = 8
|
||||
* TCB_LAST_ASK = 9
|
||||
* TCB_TIME_WAIT = 10
|
||||
* TCB_CLOSED = 11
|
||||
* ebx разрушается
|
||||
|
||||
======================================================================
|
||||
========== Функция 53, подфункция 7 - записать в TCP-сокет. ==========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 7 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
* edx = число байт для записи
|
||||
* esi = указатель на данные для записи
|
||||
Возвращаемое значение:
|
||||
* eax = 0xffffffff - ошибка (неверный хэндл или недостаточно памяти)
|
||||
* eax = 0 - успешно
|
||||
* ebx разрушается
|
||||
Замечания:
|
||||
* Число байт для записи не может превышать 1500-40,
|
||||
хотя соответствующей проверки не делается.
|
||||
|
||||
======================================================================
|
||||
============ Функция 53, подфункция 8 - закрыть TCP-сокет. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 8 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - ошибка (неверный хэндл или
|
||||
недостаточно памяти для пакета закрытия сокета)
|
||||
* eax = 0 - успешно
|
||||
* ebx разрушается
|
||||
Замечания:
|
||||
* Текущая реализация не закрывает автоматически все сокеты потока
|
||||
при его завершении. В частности, не следует прибивать поток
|
||||
с кучей открытых сокетов - будет утечка ресурсов.
|
||||
|
||||
======================================================================
|
||||
== Функция 53, подфункция 9 - проверить, свободен ли локальный порт. =
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 9 - номер подфункции
|
||||
* ecx = номер локального порта (используются только младшие 16 бит)
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - порт используется
|
||||
* eax = 1 - порт свободен
|
||||
* ebx разрушается
|
||||
|
||||
======================================================================
|
||||
==== Функция 53, подфункция 10 - получить статус кабеля Ethernet. ====
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 10 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* al = -1 - драйвер сетевой карты не загружен или
|
||||
не поддерживает эту функцию
|
||||
* al = 0 - кабель не подключён
|
||||
* al = 1 - кабель подключён
|
||||
* ebx разрушается
|
||||
Замечания:
|
||||
* Текущая реализация ядра поддерживает эту функцию
|
||||
только для сетевых карт RTL8139.
|
||||
|
||||
======================================================================
|
||||
==== Функция 53, подфункция 11 - прочитать данные сетевого стека. ====
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 11 - номер подфункции
|
||||
* ecx = хэндл сокета
|
||||
* edx = указатель на буфер
|
||||
* esi = число байт для чтения;
|
||||
* esi = 0 - читать все данные (максимум 4096 байт)
|
||||
Возвращаемое значение:
|
||||
* eax = число прочитанных байт (0 при неверном хэндле)
|
||||
* ebx разрушается
|
||||
|
||||
======================================================================
|
||||
Функция 53, подфункция 255 - отладочная информация сетевого драйвера.
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 53 - номер функции
|
||||
* ebx = 255 - номер подфункции
|
||||
* ecx = тип запрашиваемой информации (смотри ниже)
|
||||
Возвращаемое значение:
|
||||
* eax = запрошенная информация
|
||||
* ebx разрушается
|
||||
Возможные значения ecx:
|
||||
* 100: длина очереди 0 (empty queue)
|
||||
* 101: длина очереди 1 (ip-out queue)
|
||||
* 102: длина очереди 2 (ip-in queue)
|
||||
* 103: длина очереди 3 (net1out queue)
|
||||
* 200: число элементов в таблице ARP
|
||||
* 201: размер таблицы ARP (в элементах) (20 в текущей версии)
|
||||
* 202: прочитать элемент edx таблицы ARP во временный буфер, откуда
|
||||
берут информацию 5 последующих типов;
|
||||
в этом случае eax неопределён
|
||||
* 203: IP-адрес, запомненный типом 202
|
||||
* 204: старшее dword MAC-адреса, запомненного типом 202
|
||||
* 205: младшее word MAC-адреса, запомненного типом 202
|
||||
* 206: слово статуса, запомненное типом 202
|
||||
* 207: слово ttl, запомненное типом 202
|
||||
* 2: общее число полученных IP-пакетов
|
||||
* 3: общее число переданных IP-пакетов
|
||||
* 4: общее число сдампленных полученных пакетов
|
||||
* 5: общее число полученных ARP-пакетов
|
||||
* 6: статус драйвера пакетов, 0=неактивен,
|
||||
ненулевое значение=активен
|
||||
|
||||
======================================================================
|
||||
====================== Функция 55, подфункция 55 =====================
|
||||
========== Начать проигрывать данные на встроенном спикере. ==========
|
||||
|
@@ -2410,408 +2410,6 @@ Returned value:
|
||||
* otherwise eax = TID - thread identifier
|
||||
</UL>
|
||||
|
||||
======================================================================
|
||||
=========================== Function 52 ==============================
|
||||
======================================================================
|
||||
|
||||
WARNING: This function is obsolete and is only present in the
|
||||
documentation as a guide to understand/port the older network
|
||||
applications. For new programs, use function 74
|
||||
|
||||
======================================================================
|
||||
=== Function 52, subfunction 0 - get network driver configuration. ===
|
||||
======================================================================
|
||||
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 0 - subfunction number
|
||||
Returned value:
|
||||
* eax = configuration dword
|
||||
Remarks:
|
||||
* Configuration dword can be set by subfunction 2.
|
||||
* The kernel does not use this variable. The value of this
|
||||
variable and working with it subfunctions 0 and 2 is represented
|
||||
doubtful.
|
||||
|
||||
======================================================================
|
||||
========= Function 52, subfunction 1 - get local IP-address. =========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 1 - subfunction number
|
||||
Returned value:
|
||||
* eax = IP-address (4 bytes)
|
||||
Remarks:
|
||||
* Local IP-address is set by subfunction 3.
|
||||
|
||||
======================================================================
|
||||
=== Function 52, subfunction 2 - set network driver configuration. ===
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 2 - subfunction number
|
||||
* ecx = configuration dword; if low 7 bits derivate the number 3,
|
||||
function [re-]initializes Ethernet-card, otherwise
|
||||
Ethernet turns off
|
||||
Returned value:
|
||||
* if Ethernet-interface is not requested, function returns eax=2,
|
||||
but this can be changed in future kernel versions
|
||||
* if Ethernet-interface is requested, eax=0 means error
|
||||
(absence of Ethernet-card), and nonzero value - success
|
||||
Remarks:
|
||||
* Configuration dword can be read by subfunction 0.
|
||||
* The kernel does not use this variable. The value of this
|
||||
variable, subfunction 0 and part of subfunction 2, which set it,
|
||||
is represented doubtful.
|
||||
|
||||
======================================================================
|
||||
========= Function 52, subfunction 3 - set local IP-address. =========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 3 - subfunction number
|
||||
* ecx = IP-address (4 bytes)
|
||||
Returned value:
|
||||
* the current implementation returns eax=3, but this can be changed
|
||||
in future versions
|
||||
Remarks:
|
||||
* Local IP-address can be get by subfunction 1.
|
||||
|
||||
======================================================================
|
||||
= Function 52, subfunction 6 - add data to the stack of input queue. =
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 6 - subfunction number
|
||||
* edx = data size
|
||||
* esi = data pointer
|
||||
Returned value:
|
||||
* eax = -1 - error
|
||||
* eax = 0 - success
|
||||
Remarks:
|
||||
* This function is intended only for slow network drivers
|
||||
(PPP, SLIP).
|
||||
* Data size must not exceed 1500 bytes, though function
|
||||
performs no checks on correctness.
|
||||
|
||||
======================================================================
|
||||
Function 52, subfunction 8 - read data from the network output queue.
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 8 - subfunction number
|
||||
* esi = pointer to 1500-byte buffer
|
||||
Returned value:
|
||||
* eax = number of read bytes (in the current implementation
|
||||
either 0 = no data or 1500)
|
||||
* data was copied in buffer
|
||||
Remarks:
|
||||
* This function is intended only for slow network drivers
|
||||
(PPP, SLIP).
|
||||
|
||||
======================================================================
|
||||
============ Function 52, subfunction 9 - get gateway IP. ============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 9 - subfunction number
|
||||
Returned value:
|
||||
* eax = gateway IP (4 bytes)
|
||||
|
||||
======================================================================
|
||||
=========== Function 52, subfunction 10 - get subnet mask. ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 10 - subfunction number
|
||||
Returned value:
|
||||
* eax = subnet mask
|
||||
|
||||
======================================================================
|
||||
============ Function 52, subfunction 11 - set gateway IP. ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 11 - subfunction number
|
||||
* ecx = gateway IP (4 bytes)
|
||||
Returned value:
|
||||
* the current implementation returns eax=11, but this can be changed
|
||||
in future versions
|
||||
|
||||
======================================================================
|
||||
=========== Function 52, subfunction 12 - set subnet mask. ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 12 - subfunction number
|
||||
* ecx = subnet mask
|
||||
Returned value:
|
||||
* the current implementation returns eax=12, but this can be changed
|
||||
in future versions
|
||||
|
||||
======================================================================
|
||||
============== Function 52, subfunction 13 - get DNS IP. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 13 - subfunction number
|
||||
Returned value:
|
||||
* eax = DNS IP (4 bytes)
|
||||
|
||||
======================================================================
|
||||
============== Function 52, subfunction 14 - set DNS IP. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 14 - subfunction number
|
||||
* ecx = DNS IP (4 bytes)
|
||||
Returned value:
|
||||
* the current implementation returns eax=14, but this can be changed
|
||||
in future versions
|
||||
|
||||
======================================================================
|
||||
======== Function 52, subfunction 15 - get local MAC address. ========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 52 - function number
|
||||
* ebx = 15 - subfunction number
|
||||
* ecx = 0 - read first 4 bytes,
|
||||
ecx = 4 - read last 2 bytes
|
||||
Returned value:
|
||||
* for ecx=0: eax = first 4 bytes of MAC address
|
||||
* for ecx=4: ax = last 2 bytes of MAC address,
|
||||
high half of eax is destroyed
|
||||
* for other ecx: eax = -1 indicates an error
|
||||
|
||||
======================================================================
|
||||
=========================== Function 53 ==============================
|
||||
======================================================================
|
||||
|
||||
WARNING: This function is obsolete and is only present in the
|
||||
documentation as a guide to understand/port the older network
|
||||
applications. For new programs, use function 75.
|
||||
|
||||
======================================================================
|
||||
============ Function 53, subfunction 0 - open UDP-socket. ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 0 - subfunction number
|
||||
* ecx = local port (only low word is taken into account),
|
||||
ecx = 0 - let the system choose a port
|
||||
* edx = remote port (only low word is taken into account)
|
||||
* esi = remote IP
|
||||
Returned value:
|
||||
* eax = -1 = 0xFFFFFFFF - error; ebx destroyed
|
||||
* eax = socket handle (some number which unambiguously identifies
|
||||
socket and have sense only for the system) - success;
|
||||
ebx destroyed
|
||||
|
||||
======================================================================
|
||||
=========== Function 53, subfunction 1 - close UDP-socket. ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 1 - subfunction number
|
||||
* ecx = socket handle
|
||||
Returned value:
|
||||
* eax = -1 - incorrect handle
|
||||
* eax = 0 - success
|
||||
* ebx destroyed
|
||||
Remarks:
|
||||
* The current implementation does not close automatically all
|
||||
sockets of a thread at termination. In particular, one should not
|
||||
kill a thread with many opened sockets - there will be an outflow
|
||||
of resources.
|
||||
|
||||
======================================================================
|
||||
============== Function 53, subfunction 2 - poll socket. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 2 - subfunction number
|
||||
* ecx = socket handle
|
||||
Returned value:
|
||||
* eax = number of read bytes, 0 for incorrect handle
|
||||
* ebx destroyed
|
||||
|
||||
======================================================================
|
||||
========= Function 53, subfunction 3 - read byte from socket. ========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 3 - subfunction number
|
||||
* ecx = socket handle
|
||||
Returned value:
|
||||
* if there is no read data or handle is incorrect: eax=0, bl=0,
|
||||
other bytes of ebx are destroyed
|
||||
* if there are read data: eax=number of rest bytes
|
||||
(possibly 0), bl=read byte, other bytes of ebx are destroyed
|
||||
|
||||
======================================================================
|
||||
========== Function 53, subfunction 4 - write to UDP-socket. =========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 4 - subfunction number
|
||||
* ecx = socket handle
|
||||
* edx = number of bytes to write
|
||||
* esi = pointer to data to write
|
||||
Returned value:
|
||||
* eax = 0xffffffff - error (invalid handle or not enough memory)
|
||||
* eax = 0 - success
|
||||
* ebx destroyed
|
||||
Remarks:
|
||||
* Number of bytes to write must not exceed 1500-28, though
|
||||
the appropriate check is not made.
|
||||
|
||||
======================================================================
|
||||
============ Function 53, subfunction 5 - open TCP-socket. ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 5 - subfunction number
|
||||
* ecx = local port (only low word is taken into account),
|
||||
ecx = 0 - let the system choose a port
|
||||
* edx = remote port (only low word is taken into account)
|
||||
* esi = remote IP
|
||||
* edi = open mode: SOCKET_PASSIVE=0 or SOCKET_ACTIVE=1
|
||||
Returned value:
|
||||
* eax = -1 = 0xFFFFFFFF - error; ebx destroys
|
||||
* eax = socket handle (some number which unambiguously identifies
|
||||
socket and have sense only for the system) - success;
|
||||
ebx destroyed
|
||||
|
||||
======================================================================
|
||||
========= Function 53, subfunction 6 - get TCP-socket status. ========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 6 - subfunction number
|
||||
* ecx = socket handle
|
||||
Returned value:
|
||||
* eax = 0 for incorrect handle or socket status: one of
|
||||
* TCB_LISTEN = 1
|
||||
* TCB_SYN_SENT = 2
|
||||
* TCB_SYN_RECEIVED = 3
|
||||
* TCB_ESTABLISHED = 4
|
||||
* TCB_FIN_WAIT_1 = 5
|
||||
* TCB_FIN_WAIT_2 = 6
|
||||
* TCB_CLOSE_WAIT = 7
|
||||
* TCB_CLOSING = 8
|
||||
* TCB_LAST_ASK = 9
|
||||
* TCB_TIME_WAIT = 10
|
||||
* TCB_CLOSED = 11
|
||||
* ebx destroyed
|
||||
|
||||
======================================================================
|
||||
========== Function 53, subfunction 7 - write to TCP-socket. =========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 7 - subfunction number
|
||||
* ecx = socket handle
|
||||
* edx = number of bytes to write
|
||||
* esi = pointer to data to write
|
||||
Returned value:
|
||||
* eax = 0xffffffff - error (invalid handle or not enough memory)
|
||||
* eax = 0 - success
|
||||
* ebx destroyed
|
||||
Remarks:
|
||||
* Number of bytes to write must not exceed 1500-40, though
|
||||
the appropriate check is not made.
|
||||
|
||||
======================================================================
|
||||
=========== Function 53, subfunction 8 - close TCP-socket. ===========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 8 - subfunction number
|
||||
* ecx = socket handle
|
||||
Returned value:
|
||||
* eax = -1 - error (invalid handle or
|
||||
not enough memory for socket close packet)
|
||||
* eax = 0 - success
|
||||
* ebx destroyed
|
||||
Remarks:
|
||||
* The current implementation does not close automatically all
|
||||
sockets of a thread at termination. In particular, one should not
|
||||
kill a thread with many opened sockets - there will be an outflow
|
||||
of resources.
|
||||
|
||||
======================================================================
|
||||
=== Function 53, subfunction 9 - check whether local port is free. ===
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 9 - subfunction number
|
||||
* ecx = local port number (low 16 bits are used only)
|
||||
Returned value:
|
||||
* eax = 0 - port is used
|
||||
* eax = 1 - port is free
|
||||
* ebx destroyed
|
||||
|
||||
======================================================================
|
||||
===== Function 53, subfunction 10 - query Ethernet cable status. =====
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 10 - subfunction number
|
||||
Returned value:
|
||||
* al = -1 - a network driver is not loaded or
|
||||
does not support this function
|
||||
* al = 0 - Ethernet cable is unplugged
|
||||
* al = 1 - Ethernet cable is plugged
|
||||
* ebx destroyed
|
||||
Remarks:
|
||||
* The current kernel implementation supports this function
|
||||
only for RTL8139 network cards.
|
||||
|
||||
======================================================================
|
||||
======= Function 53, subfunction 11 - read network stack data. =======
|
||||
======================================================================
|
||||
Paramters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 11 - subfunction number
|
||||
* ecx = socket handle
|
||||
* edx = pointer to buffer
|
||||
* esi = number of bytes to read;
|
||||
* esi = 0 - read all data (maximum 4096 bytes)
|
||||
Returned value:
|
||||
* eax = number of bytes read (0 for incorrect handle)
|
||||
* ebx destroyed
|
||||
|
||||
======================================================================
|
||||
= Function 53, subfunction 255 - debug information of network driver.
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 53 - function number
|
||||
* ebx = 255 - subfunction number
|
||||
* ecx = type of requested information (see below)
|
||||
Returned value:
|
||||
* eax = requested information
|
||||
* ebx destroyed
|
||||
Possible values for ecx:
|
||||
* 100: length of queue 0 (empty queue)
|
||||
* 101: length of queue 1 (ip-out queue)
|
||||
* 102: length of queue 2 (ip-in queue)
|
||||
* 103: length of queue 3 (net1out queue)
|
||||
* 200: number of items in the ARP table
|
||||
* 201: size of the ARP table (in items) (20 for current version)
|
||||
* 202: read item at edx of the ARP table to the temporary buffer,
|
||||
whence 5 following types take information;
|
||||
in this case eax is not defined
|
||||
* 203: IP-address saved by type 202
|
||||
* 204: high dword of MAC-address saved by type 202
|
||||
* 205: low word of MAC-address saved by type 202
|
||||
* 206: status word saved by type 202
|
||||
* 207: ttl word saved by type 202
|
||||
* 2: total number of received IP-packets
|
||||
* 3: total number of transferred IP-packets
|
||||
* 4: total number of dumped received packets
|
||||
* 5: total number of received ARP-packets
|
||||
* 6: status of packet driver, 0=inactive, nonzero=active
|
||||
|
||||
======================================================================
|
||||
Function 55, subfunction 55 - begin to play data on built-in speaker.
|
||||
======================================================================
|
||||
|
@@ -180,13 +180,13 @@ end if
|
||||
embed_file 'MTDBG.TXT' ;e
|
||||
if lang eq ru
|
||||
embed_file 'SYSFUNCR.TXT' ;f
|
||||
embed_file 'STACK_RU.TXT' ;g
|
||||
else
|
||||
embed_file 'SYSFUNCS.TXT' ;f
|
||||
embed_file 'STACK.TXT' ;g
|
||||
end if
|
||||
embed_file 'STACK.TXT' ;g
|
||||
embed_file 'KFAR_KEYS.TXT' ;h
|
||||
embed_file 'INI.TXT' ;i
|
||||
embed_file 'OPENDIAL.TXT' ;j
|
||||
; -- End of embedding area -------
|
||||
|
||||
dd 0
|
||||
|
Reference in New Issue
Block a user