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.
|
bh = device number, for all following functions !
|
||||||
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
|
|
||||||
|
|
||||||
E sono implementate le seguenti applicazioni:
|
bl = 0 (Get device type)
|
||||||
|
|
||||||
Server HTTP
|
out:
|
||||||
Telnet
|
eax = device type number
|
||||||
Client POP
|
|
||||||
DNS Name resolver
|
|
||||||
Server MP3
|
|
||||||
Client TFTP
|
|
||||||
Client IRC
|
|
||||||
|
|
||||||
Vi sono inoltre applicazioni sperimentali, per los terming di musica e
|
bl = 1 (Get device name)
|
||||||
per la comunicazione via socket, in fase di sviluppo vi è anche un
|
|
||||||
browser web.
|
|
||||||
|
|
||||||
|
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.
|
in
|
||||||
Il layer IP non supporta il routing.
|
none
|
||||||
Non è supportata la 'Packet fragmentation'.
|
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
|
bl = 0 (Open Socket)
|
||||||
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.
|
|
||||||
|
|
||||||
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
|
bl = 1 (Close Socket)
|
||||||
hosts Kolibri has communicated with by running the ARPSTAT application.
|
|
||||||
|
|
||||||
Enabling Ethernet
|
in:
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
|
||||||
ecx = socket number
|
ecx = socket number
|
||||||
|
out:
|
||||||
|
eax = -1 on error
|
||||||
|
|
||||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
bl = 2 (Bind)
|
||||||
|
|
||||||
|
in:
|
||||||
Close a socket (TCP Only )
|
|
||||||
--------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 8
|
|
||||||
ecx = socket number
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Poll socket
|
|
||||||
-----------
|
|
||||||
eax = 53
|
|
||||||
ebx = 2
|
|
||||||
ecx = socket number
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Read socket data
|
|
||||||
----------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 3
|
|
||||||
ecx = socket number
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Write to socket ( UDP only )
|
|
||||||
----------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 4
|
|
||||||
ecx = socket number
|
ecx = socket number
|
||||||
edx = number of bytes to write
|
edx = pointer to sockaddr structure
|
||||||
esi = pointer to data ( in application space )
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Return socket status ( TCP only )
|
|
||||||
---------------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 6
|
|
||||||
ecx = socket number
|
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.
|
bl = 7 (receive)
|
||||||
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_
|
|
||||||
|
|
||||||
|
in:
|
||||||
Write to socket ( TCP only )
|
|
||||||
----------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 7
|
|
||||||
ecx = socket number
|
ecx = socket number
|
||||||
edx = number of bytes to write
|
edx = pointer to buffer
|
||||||
esi = pointer to data ( in application space )
|
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
|
for example, to open a socket
|
||||||
-----------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 9
|
|
||||||
ecx = port number
|
|
||||||
|
|
||||||
This function is used to determine if a port number
|
mcall socket, AF_INET, SOCK_DGRAM,0
|
||||||
is in use by any sockets as a local port number. Local
|
mov [socketnum], eax
|
||||||
port numbers are normally unique.
|
|
||||||
|
|
||||||
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
|
For Ethernet protocol
|
||||||
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.
|
|
||||||
|
|
||||||
Once the socket has been opened you would wait for an incoming
|
0 - Read # Packets send
|
||||||
connection before doing anything. This can be by either checking
|
1 - Read # Packets received
|
||||||
the socket status for TCB_ESTABLISHED, or waiting for data in the
|
2 - Read # Bytes send
|
||||||
receive buffer.
|
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
|
0 - Read # IP packets send
|
||||||
remote port. The remote IP and remote port parameters must be filled
|
1 - Read # IP packets received
|
||||||
in with non-zero values ( otherwise, what are you connecting to? ).
|
2 - Read IP
|
||||||
You also specify a unique local port number so the remote application
|
3 - Write IP
|
||||||
can uniquely identify you - after all, there may be several applications
|
4 - Read DNS
|
||||||
on your machine connected to the same remote host. See below for finding
|
5 - Write DNS
|
||||||
a unique port number.
|
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
|
0 - Read # UDP packets send
|
||||||
socket you will want to choose a unique local port number. Local
|
1 - Read # UDP packets received
|
||||||
port numbers normally start from 1000; The following code may
|
For TCP protocol
|
||||||
be used to obtain an unused port number prior to making the
|
|
||||||
open socket call.
|
|
||||||
|
|
||||||
mov ecx, 1000 ; local port starting at 1000
|
0 - Read # TCP packets send
|
||||||
|
1 - Read # TCP packets received
|
||||||
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.
|
|
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.
|
bh = device number, for all following functions !
|
||||||
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
|
|
||||||
|
|
||||||
And the following internet applcations are implemented
|
bl = 0 (Get device type)
|
||||||
|
|
||||||
HTTP Server
|
out:
|
||||||
Telnet
|
eax = device type number
|
||||||
POP Client
|
|
||||||
DNS Name resolver
|
|
||||||
MP3 Server
|
|
||||||
TFTP Client
|
|
||||||
IRC Client
|
|
||||||
|
|
||||||
There are also a number of experimental applications for streaming music
|
bl = 1 (Get device name)
|
||||||
and performing interprocess communication via sockets. A Web broswer is in
|
|
||||||
development
|
|
||||||
|
|
||||||
|
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.
|
in
|
||||||
The IP layer does not support routing.
|
none
|
||||||
Packet fragmentation is not supported.
|
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
|
bl = 0 (Open Socket)
|
||||||
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.
|
|
||||||
|
|
||||||
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
|
bl = 1 (Close Socket)
|
||||||
hosts Kolibri has communicated with by running the ARPSTAT application.
|
|
||||||
|
|
||||||
Enabling Ethernet
|
in:
|
||||||
-----------------
|
|
||||||
|
|
||||||
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
|
|
||||||
ecx = socket number
|
ecx = socket number
|
||||||
|
out:
|
||||||
|
eax = -1 on error
|
||||||
|
|
||||||
On return, eax holds 0 for OK, or 0xFFFFFFFF for error.
|
bl = 2 (Bind)
|
||||||
|
|
||||||
|
in:
|
||||||
Close a socket (TCP Only )
|
|
||||||
--------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 8
|
|
||||||
ecx = socket number
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Poll socket
|
|
||||||
-----------
|
|
||||||
eax = 53
|
|
||||||
ebx = 2
|
|
||||||
ecx = socket number
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Read socket data
|
|
||||||
----------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 3
|
|
||||||
ecx = socket number
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Write to socket ( UDP only )
|
|
||||||
----------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 4
|
|
||||||
ecx = socket number
|
ecx = socket number
|
||||||
edx = number of bytes to write
|
edx = pointer to sockaddr structure
|
||||||
esi = pointer to data ( in application space )
|
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)
|
||||||
|
|
||||||
|
in:
|
||||||
Return socket status ( TCP only )
|
|
||||||
---------------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 6
|
|
||||||
ecx = socket number
|
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.
|
bl = 7 (receive)
|
||||||
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_
|
|
||||||
|
|
||||||
|
in:
|
||||||
Write to socket ( TCP only )
|
|
||||||
----------------------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 7
|
|
||||||
ecx = socket number
|
ecx = socket number
|
||||||
edx = number of bytes to write
|
edx = pointer to buffer
|
||||||
esi = pointer to data ( in application space )
|
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
|
for example, to open a socket
|
||||||
-----------------
|
|
||||||
eax = 53
|
|
||||||
ebx = 9
|
|
||||||
ecx = port number
|
|
||||||
|
|
||||||
This function is used to determine if a port number
|
mcall socket, AF_INET, SOCK_DGRAM,0
|
||||||
is in use by any sockets as a local port number. Local
|
mov [socketnum], eax
|
||||||
port numbers are normally unique.
|
|
||||||
|
|
||||||
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
|
For Ethernet protocol
|
||||||
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.
|
|
||||||
|
|
||||||
Once the socket has been opened you would wait for an incoming
|
0 - Read # Packets send
|
||||||
connection before doing anything. This can be by either checking
|
1 - Read # Packets received
|
||||||
the socket status for TCB_ESTABLISHED, or waiting for data in the
|
2 - Read # Bytes send
|
||||||
receive buffer.
|
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
|
0 - Read # IP packets send
|
||||||
remote port. The remote IP and remote port parameters must be filled
|
1 - Read # IP packets received
|
||||||
in with non-zero values ( otherwise, what are you connecting to? ).
|
2 - Read IP
|
||||||
You also specify a unique local port number so the remote application
|
3 - Write IP
|
||||||
can uniquely identify you - after all, there may be several applications
|
4 - Read DNS
|
||||||
on your machine connected to the same remote host. See below for finding
|
5 - Write DNS
|
||||||
a unique port number.
|
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
|
0 - Read # UDP packets send
|
||||||
socket you will want to choose a unique local port number. Local
|
1 - Read # UDP packets received
|
||||||
port numbers normally start from 1000; The following code may
|
For TCP protocol
|
||||||
be used to obtain an unused port number prior to making the
|
|
||||||
open socket call.
|
|
||||||
|
|
||||||
mov ecx, 1000 ; local port starting at 1000
|
0 - Read # TCP packets send
|
||||||
|
1 - Read # TCP packets received
|
||||||
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.
|
|
@@ -2419,391 +2419,6 @@ dword-значение цвета 0x00RRGGBB
|
|||||||
* eax = -1 - ошибка (в системе слишком много потоков)
|
* eax = -1 - ошибка (в системе слишком много потоков)
|
||||||
* иначе eax = TID - идентификатор потока
|
* иначе 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 =====================
|
====================== Функция 55, подфункция 55 =====================
|
||||||
========== Начать проигрывать данные на встроенном спикере. ==========
|
========== Начать проигрывать данные на встроенном спикере. ==========
|
||||||
|
@@ -2410,408 +2410,6 @@ Returned value:
|
|||||||
* otherwise eax = TID - thread identifier
|
* otherwise eax = TID - thread identifier
|
||||||
</UL>
|
</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.
|
Function 55, subfunction 55 - begin to play data on built-in speaker.
|
||||||
======================================================================
|
======================================================================
|
||||||
|
@@ -180,13 +180,13 @@ end if
|
|||||||
embed_file 'MTDBG.TXT' ;e
|
embed_file 'MTDBG.TXT' ;e
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
embed_file 'SYSFUNCR.TXT' ;f
|
embed_file 'SYSFUNCR.TXT' ;f
|
||||||
embed_file 'STACK_RU.TXT' ;g
|
|
||||||
else
|
else
|
||||||
embed_file 'SYSFUNCS.TXT' ;f
|
embed_file 'SYSFUNCS.TXT' ;f
|
||||||
embed_file 'STACK.TXT' ;g
|
|
||||||
end if
|
end if
|
||||||
|
embed_file 'STACK.TXT' ;g
|
||||||
embed_file 'KFAR_KEYS.TXT' ;h
|
embed_file 'KFAR_KEYS.TXT' ;h
|
||||||
embed_file 'INI.TXT' ;i
|
embed_file 'INI.TXT' ;i
|
||||||
|
embed_file 'OPENDIAL.TXT' ;j
|
||||||
; -- End of embedding area -------
|
; -- End of embedding area -------
|
||||||
|
|
||||||
dd 0
|
dd 0
|
||||||
|
Reference in New Issue
Block a user