FPauk
                                                Michail O.Maksimov
Transfer is machine.
If will not understand then laugh.

        NETWORK OF VIRTUAL FORTH-machines (VFM).

        The problem soluble by the network VFM it is representation of a
        network of a COMPUTER in a kind of uniform computing environment.
        For maintenance of a opportunity to use resources of a COMPUTER,
belonging to other user (BOU), it is necessary to decide following problems:
        - to organize transfer of the messages on A COMPUTER BOU;
        - on A COMPUTER BOU to create object of which ( not interfering the
owner of a machine ) will accept a sending remake it and
the result will send to the given addressee;
        - to organize a reception of results from A COMPUTER BOU.
        For realization
This problem it is necessary to use following elements:
        - a real COMPUTER;
        - of a means of transfer of data;
        -VFM ( virtual FORTH-machine );
        - virtual channels connecting VFM.
        The problem, assigned on virtual network, consists of granting of
resources one COMPUTER to other COMPUTER. Thus to lower idle times and
to expand a opportunity. It is reached by granting at disposal of the user
 of virtual machines (VFM) located on other real, accessible by means Networks.
VFM connected by virtual channels will form a virtual network of which is
based on a real network of a COMPUTER.

        The application VFM permits to grant all free resources and to set any
restrictions to the other user, even if the real machine does not provide a
protected mode.
Traditionally the networks are used for transfer of data, with its help
it is possible to exchange given from A COMPUTER to you not belonging.
VFM is granted completely. For management she(it) on a channel transmits
commands.
        The virtual machines of the same type can is on real machines of a
different type. VFM can be replaced by real devices, thus, the system can be
accepted as the standard of intermachine dialogue.
        With the help of a system it is possible to organize sale of resources
submitted in the kind VFM.
        VFM presents from self process, performing program " interpreter of
commands ", which causes functions, attached to VFM. Among functions there are
ports of input/output.
Among source ports is main, from which interpreter of commands consistently
extracts a next command for fulfilment. The interrogation of the other ports
is made by functions, excited by interpreter of code& - commands pursuant to
received code - command. These functions can interrogate and main port, thus
through main port it is possible to transmit the information, if it
follows at a appropriate code - command.
 The ports can be: inside machine - transmitting information within the
framework of a real machine, RAM  cells using for transfer; and using means of
intermachine communication. The ports, interacting with transmitting
environment, will form virtual channels. The functions
attached to process are defined VFM type. A little VFM can divide a common set
of functions.

        The structure VFM.
The structure VFM presents from self set of following data sets:

1 area attached to VFM of the service information
2 stacks of date
3 stack  of returns
4 areas of program access date
5 files of addresses of points of a entrance in program - function.
  5.1 Main set the determining type of a machine can be shared several VFM.
  5.2 Set for subloading.
  5.3 Set for subloading of common access.

        VFM it is possible to program, a new code-command and accordance
function are thus created. It is reached by the transfer VFM in a mode
of compilation at which flow of code-commands is not executed
and compiled, forming new function, the reference to this function is recorded
in a file for subloading.
It permits gets rid of transfer frequently met sequences of codes.
Subloaded the function can be common access i.e. to be callable other
VFM within the framework of one COMPUTER.
Through these function it is possible to execute access to given programmed
VFM a channel of communication between VFM is thus organized.
        The virtual machines can be distributed on different real thus a real
network of a computer for the TRANSFER of code-commands should be used. A
virtual machine it is possible to use as a multiplexer of virtual channels,
then the codes-command such VFM act in a role of virtual channels, and
function to them appropriate in a role of drivers, operands of a code -
command i.e. the information following by it is given transmitted
on a channel.
Use of a multiplexer of virtual channels results in decomposition of a real
channel on a little virtual, that permits on one channel to operate several
VFM.
        The virtual network permits to organize distributed data processing.
At distributed processing hierarchy of subtasks will be formed.

        VFM can produce commands for other VFM.

The hierarchy VFM is thus received. The feedback is executed through VFM
located on 1-st real and possessing common accessible of the area of memory.
        Multithreading of processes on different real COMPUTERS consists in
initialization of data area of a client  with the server help.


        Multithreading of a problem 
Thus following actions occur:
Client of a COMPUTER for a data area tag not readiness and establishs sends
the task server. It will produce data and will send them client, there
them will accept VFM which will load a data and will establish a tag of its
readiness.

        The intensity of transfer of code-commands should not surpass
intensity of their fulfilment. For regulation of intensity of transfer a
channel with acknowledgement is used.
If intensity of transfer and the fulfilments change, but on the average this
condition is executed, it is possible will be limited to buffering.

There are following kinds of the references area on function:
        - the base area, is accessible several VFM for use in a mode of
         execution.
        - the base area, is accessible several VFM for use in a mode of
         compilation.
        - file for subloading, is given one of VFM, as for record so, and for
         use.
        - file for subloading of common access, is accessible on
         record 1-st of VFM, and for use several.
        - other additional.

        Use common access area is permits to economize memory,
        besides through function of common access it is conveniently
        to execute communication between VFM.
    data and references to function areas can be much more thus there should
be functions access possessing to it. Thus can be substitutionable area
i.e. with which just by a file is executed to interact depends depends from a
seted mode.

 The operands are had those codes, the functions of which interrogate
main port. In a mode of compilation it there can be only codes, possessing
attribute of immediate execution, thus sample of function will
occur from other file, specialized for execution during
compilation. Thus the codes possessing in the 7-st bit is 1 ( i.e. code > $7f 
can not be compilated. The access to the other files of the references
on function occurs on means of functions from base.
 The offered system of commands is private case, it can be replaced on other,
main that it was acceptable appropriate to it to a interpreter. The new 
interpreter can be started from given thus there should be a appropriate
command.
 At occurrence of emergency VFM sends on a feedback a code of emergency
completion and goes in a mode of expectation of a command restart. On
reception of this command VFM it executes, and all previous are ignored.

        The divided use VFM

        One VFM some problems of the customer can use.
It is thus necessary to observe following conditions:
-        Each command should be placed in one sending together with
         operands.
-        Only one problem has the right arbitrary to work with a stack, other
         should leave a stack without change between sendings.

  For observance of these conditions each problem should accumulate
  a sending in buffer for transfer and thus to look whether a command with
  operands in a buffer is stacked.

   Internal currency ( IC ).
  IC is a legal tender within the framework of a virtual network and presents
from self number, attached to given at the order to the remote user VFM.
At start of remote function, automatically with the account of the
user determined significance is diminished. By a call of function of
other user transfer to the account of this user occurs. Thus the users are
interested in granting of functions to the other - friend. At occurrence of
fear, that the action of called function does not according  to the
declaration, it is possible to use two stage account, with the help of the
intermediate account. The intermediate account the this account, which hangs
between two subjects, which can transfer from it one another, but can not
take to self. With a beginning the charge is made on the intermediate account,
at themes function is executed, if the consumer is satisfied, executes transfer
 further, if is not present, requires to return back.

    Exchange IC.

  The problem exchange IC results from occurrence of several systems VFM.
To organize exchange IC can the user of several systems VFM. Exchange IC
action of which is executed by start of paid function, consists charge IC of
other system VFM.

  FPAUK-server and FPAUK-members.

  FPAUK-server is set of server VFM (SVFM) given at the order
to the remote members of a system.
The member of a system is the user (customer) of system, but thus can grant
service for IC. The owner FPAUK-server grants the members system a interface
of management SVFM. SVFM is basically not intended for the decision of a
applied problem, it executes a role of unit of communication in the network
VFM and thus makes work with the inquiries and settles an invoice in IC.
The owner FPAUK-server set IC for which it is not a currency, as it has
access to the accounts of the members system and can add any sum, his
problem consists in a volume, that him IC have importance for the
members of its system. For this purpose he joined by goods and enables 
the users to grant one another services for IC.
The granting of services occurs by a way are created paid functions of
common access and distribution of the programs using by these functions.
The main conclusion SVFM, by default, is directed on the input VFM
of the member of a system  (MVFM), which is located on a machine of the
member of a system. With the help MVFM of the member of a system can accept
results from SVFM and to grant function on machine to the other members given
FPAUK-server.
The granting of functions on machine is made by the members of a system on
means of functions of general(common) access, loaded on FPAUK-server, thus
discipline of divided use VFM should be observed. SVFM has in order two target
buffers. First OUT_BUF for transfer MVFM, and other [OUT]_BUF for transfer
any connected to FPAUK-server MVFM, but on means of functions created by the
owners these MVFM. The circuit of communications(connections) one FPAUK-member
has a kind:


  Period.

  SVFM is granted not up to apocalypse, and on a determined
period of a time. 4 14 24 numbers of each month at 00.00 a moscow time 
(GMT+03:00) occurs end of one period and begin following.
In this moment is made scheduled reloading of a system: All SVFM leave and
are created new pursuant to a given configuration, purchasing SVFM on a
following period same of configurations(size) is automatically
made, to all members a command restart is dispatched, which anew load SVFM or
act under the own discretion.

 Bankruptcy.

 If means for the purchasing SVFM on a following period there will be
to shortage a purchasing not make, it means, that if in current of a set
in period will not be purchased SVFM on a following period it will not be
created at approach of a following period, and IP the address of the given
member will be brought in the black list, that will not allow him on one
period go as to the new user. A purchasing or reconfig SVFM on a
following period make by a command:
 Size-vfm_next ( +n1 +n2 +n3 +n4 -- )
 At here +n1
+n1 the space for loading of the programs.
     +n2 the size of the table of functions of common access.
     +n3 the size of the table of functions of individual access.
     +n4 the size of the area of data.

 The sale SVFM

 For replenishment account it is possible to sell SVFM of a following period by a
 command empty-vfm_0. Accordingly if SVFM of a following period before its
 approach will not be purchased, on the period IP the address of member
 falls in the black list.

 New member of a system.

 Each member of a system is identified IP by address.
If someone will go on FPAUK-server with new IP by address to him by gift
get SVFM on this with following by a period and some sum IC.
Accordingly the users not possessing constant IP of address, an not normally
use a system ( at present this problem is not resolved ).

 The start of the customer is executed by start of command PUSK.BAT from the
 catalogue FPAUK\MEMBER. For sale of information services it(he) should
 constantly work, so bring it(him) in StartUp.

  Programm interface of management SVFM.

        The main problem at organization of interaction between VFM this
installation of conformity between a code - command, sent in VFM and function,
which will execute this VFM.
This conformity is established by the sequence order in the sourse text.
The word defined through >>_0, at execution will
send on SVFM a code-command, which is numerically equal for the number of a
call of a word >>_0, which corresponds(meets) to displacement in a file of the
references on executed functions. A fragment of text:
        >>_0 name1 >>_0 name2 designates definition of 2-
words at fulfilment of which a code the auxiliary machine and will be sent, 
if
name1  will send a code n
then
Name2  will send a code n+1.

Thus the order bring of functions in a file of the references at
programming server VFM should correspond to the order of definition
of causing functions at definition of a programm interface of the customer.

The words y>_0 b>_0 work similarly >>_0, at exception:
Y>_0 -    At start of a word to defined to them a code the
          ensuring access to a file for subloading will be sent
B>_0 -    The words defined by to these word establish a tag "is not ready"
 to a file in which data from SVFM will act.
Words defined by >>_0, y>_0, b>_0 not at once send on SVFM,
and record in a buffer for transfer. In transfer from a buffer the command PWR
is engaged. At filling of buffer PWR actuation automatically.

OK_0 - Transfer of contents of a buffer on execution with issue
        of a attribute of successful completion

At occurrence of a emergency on SVFM, for restart of SVFM, it is necessary to
start the command QUIT_0.

At occurrence of a emergency in a FORTH-system of the customer, for restoration
multitask, it is necessary to start the command C_QUIT.

 Transfer given(data):

Lit_u ( c -- ) to send byte in SVFM
lit_0 ( SM: - bite ) to accept byte sent lit_u
SM: - stack SVFM
lit_u lit_0 ( c -- SM: -- bite )
lit_m ( n -- SM: -- n )
 to send n in the stack SVFM 
CM: -- stack MVFM

._0      ( SM: n - ) to deduce(remove) on a screen of a display significance
         lying on the top of stack SVFM ( on the means MVFM )

+_0     ( SM: n1 n2 - n1+n2 )

  For addition on SVFM of numbers 4 and 5 with returning of result to a
  display of the customer it is possible to enter:

  4 lit_m 5 lit_m + _0 ._0 OK_0

 Words:

   +_0  -_0  *_0  /_0

   Drop_0 dup_0

   Over_0 swap_0 pick_0 roll_0 2 dup_0

   Cause on SVFM actions, pursuant to their name without _0


 !_0 ( SM: n adr -- )
 @_0 ( SM: adr -- n )
 c!_0 ( SM: c adr - )
 c@_0 ( SM: adr - c )
 under adr is here understood the displacement in the area allocated to
 customer data on SVFM

 Mes_0 ( SM: n - ) to type on a screen the message, where n the
                     number of message
 receive_0 ( SM: adr n - ) to send n byte in MVFM from a file begin with adr

  >acc_0 to type on a screen of a display current significance of
  the account IC

  >yy_0 levelling significance variable, containing to displacement in a arrey
         of the references, following subloaded of a word

  >zz_0 levelling significance variable, containing to displacement in a arrey
         of the references of common access, following subload
         of a word

R[_0 initialization of a buffer [OUT]_BUF

]R_0 transfer of contents [OUT]_BUF to the owner of function

[Out]_0 ( SM: c -- ) to send byte in MVFM through [OUT]_BUF is used
         between the words r[_0 ]r_0

 Mi_vfm_0 ( SM: -- n ) n - namber SVFM
For subloading SVFM  :_0 word is used in a kind:
                :_0 name ... ;_0
	Creates in 2_st VFM function with the name "name"

The definition of which has a kind:

        : :_0  (:)_0 >>_0 ;

The word (:)_0 sends a command MVFM to execute following actions:
        To generate heading of function
        set mode of compilation
        to bring in a area the reference to created function

DO_0     ( N -- SM: runtime: n1 n2 - ) announces a degin of cycle DO
        on VFM n - restriction on number of cycles 
 is applied in a kind:
      :_0 name... N DO_0... LOOP_0...;_0

I_0 ( SM: - n a index of cycle DO_0

BEGIN_0 ( n - SM: runtime: --  ) n - the restriction on number of cycles
           is applied in a kind:
 :_0 name... N BEGIN_0... UNTIL_0...
                 N BEGIN_0... AGAIN_0...
                 N BEGIN_0... WHILE_0... REPEAT_0...
   ;_0

DHERE_M ( - adr ) border between engaged and free areas given on VFM as the
      top cod-file

 HERE_M ( SM: - adr ) border between engaged and free areas given on VFM as
      the top cod-file

CONSTANT_M ( n -- runtime: SM: -- n )
CREATE_M ( runtime: SM: -- adr )
VARIABLE_M (  Runtime: SM: -- adr ) defined variable on VFM

        VFM can grant cells given other VFM through function of
common access with the help of words:

!>_0 ( SM: n1 | n --- ) compiling of threaded code in a kind [@>_u][ a ]
        N is chosen from a source flow and will be transformed to address and
        SM: - stack of server VFM

@>_0 ( SM: | n --- n1 ) compiling of threaded code the code in a kind [%!>_u][a]
        n is chosen from a source flow and will be transformed to address
        and

At compilation the displacement chosen from source flow in file given VFM is
transformed into absolute address and is compiled as a operand for codes:

%@>_u ( --- n1 ) to put on a stack significance of operand - address

%!>_u ( n1 --- ) converse %@>_u

   Initialization of a file with the help SVFM

   Create a file with a tag of expectation of readiness data:

    Create_p v_p 50 allot

\ To define a driver for a reception of the information with the help MVFM

 :_2 vv_p4 v_p        \  Receiving driver
     0x4   dobuf_p ;_2

 DRIVE_P[ V:_4 VV_P4

 : #DOLO_0   ( n1 n2 -- )   \   Macroinstruction
   DO  DUP_0 I LIT_M  +_0 [OUT]_0 LOOP ;

 V:_4  V_4 V_P    \   Remote procedure
     4 0  #DOLO_0 ]R_0 ;_0 OK_0

 5 LIT_M V_4  OK_0
V_P 0X10 DUMP


  As a result of fulfilment of program v_4 the file v_p will be initialized by
  significances 5 6 7 8 with the help SVFM.
  The action v_4 consist in following: will establish V:_4 the
  buffer v_p in notready and will send on SVFM a code - command  will in turn
  generate a sending and first command of this sending will
  send it on MVFM initializes the driver vv_p4.

  The determining word :_2 takes from a source flow two words, first defines
  as a name of the new program, second take as a buffer a receiver with
  a tag of readiness.

  Dobuf_p ( n - ) write in a buffer taked :_2 n of significances of
                   channel read out from

  ;_2 establishs a tag of readiness take of :_2 buffers and closes
       definition


  The word V:_4 works similarly :_0, except that defined with the
  help it the word will establish a buffer, take from a source
  flow (v_p) in notready, and the sent code-command will start the driver
  vv_p4 on MVFM.

 Granting by the customer functions. 

:Z_0 ( n - )  defining of function of common access,
              n significance in IC, which will be transferred with the
              account causing function on the account of the owner
              of function.

Is applied in a kind:

1000 :Z_0 name1_1 ... ;_0
3000 :z_0 name2_1 ... ;_0
1500 :z_0 name3_1 ... ;_0
2000 :z_0 name4_1 ... ;_0 OK_0
\ |         |      |
\ |         |      + - text of the program
\ |         + - name of the program
\ + - the significance IC which is received  owner of function
\     by its call

The command Z FILE will generate a file in .\Z\z4 dir for distribution
among the customers given FPAUK-server with the name zz.f and containing:
4 lit_m >zz1_0 ok_wait ?_z
 Z>_1 name1_1
 z>_1 name2_1
 z>_1 name3_1
 z>_1 name4_1

4 - Number SVFM it - @ a identifier of the customer - owner of functions
      submitted here of common access.

 The file z.f should be contained programs with the help of which by
 customers given FPAUK-server can use function given SVFM.

 The files zz.f z.f are recorded in z.zip with the help of command MAKE_Z.ZIP
 A command 4 get-z.) extracted z.zip with the name z4.Zip.
 With its help other customers will have a interface to the given
 customer from 4- numbers.

 Granting of a calls of function on machine.

 The granting of a calls of function NAME on machine are had by(with) kind:
      Drive_r[ name[: NAME
       10000 name[: name_1 ... ]R_0 ;_0

 Name_1 is recorded in a file for distribution as at definition
 through: href=#q11>:Z_0
 A fragment of text: name [: name_1
      is equivalent: :Z_0 name_1 R[_0 ' name[: >body @ lit_m [Out]_0

 The parameters are transmitted with the help [Out]_0 ( also, as well as
 command )

 The feedback can is executed through FPAUK-server
 
   Items A,B,C,E are the separate programs.
  For a sending in another's port ( items D) the command
   MESSAGE_m ( addr len vfm n -- ) is used,
     addr - address of sending
     len  - long of sending
     vfm  - number of the customer with number SVFM conterminous
       n  - subfunction of 7-nd functions client VFM

  The cost of execution develops of the cost of  function and
  transfer len*20 on the account of the recepient.

 The feedback can is executed through a separate channel
 
 Thus in parameters of the inquiry the return address return
 address

 Debugging and research

 For debugging and research I recomend to start a separate
 FPAUK-system. It is thus possible to use following words: DEBUG SEE SEEY
 SEEZ.
 For installation of a break point it is possible to enter empty word,
 on a example : TST ; and subcompile it and place interesting by you
 and in a necessary moment to start DEBUG TST.
 For trace subloaded of function start on FPAUK-server before start on this
 function on the FPAUK-client:
  DEBUG EXECY \ for functions of individual access
  DEBUG EXECZ \ for functions of common access

  SEEY ( n vfm.) - ) disFORTH n-th of function from a area of
                     individual access
  SEEZ ( n vfm.) - ) disFORTH n-th of function from a area of common access

 Appendices

 At the first stage the system decides three problems Sale Of files, granting
 of the disk space at a level of files, Game cross-zero.

 For granting for sale Of files, 2 files: files_u.f and dir.f are used

 Files_u.f contains names of files with a way ( or they not in the current
   catalogue ) in a special frame First two file should be z.zip and dir.f
   their registration can serve a example.

   Z.zip - is formed by the command make_z.zip,
           Is extracted by the customers with the help of a command #get-z.
           and contains a interface of access to your services
   dir.f - sold files with the help of a command get1-file.) are submitted:
   In a kind: 1 get1-file: dir.f \ the inquiry to the client
              1 get-file: dir.f \ the inquiry to the server
              |
              +- file name number of sequence in files_u.f

  0 get-file: fpauk.zip \ the inquiry of the last version of a system

 The sale of the disk space is limited variable limit-space which contains the
 size of the represented space.

  Ways of further development:

    Work with databases.

  Work with a database can execute:
  1. Universal VFM, incorporating function of the inquiry to base.
  2. Specialized VFM the managers by several bases.
  3. Specialized VFM connected with particular base.
  In connection that the set of functions VFM is a means of
adaptation by environment on which it is based, it is possible
to supply independence of representation of data.
  The  idle simple the way of realization, if not to use variant with
subload, this spelling VFM in language of management of databases. Thus
VFM presents from self is simple a elementary interpreter.
  For variant with subload more expedient to use a FORTH-system thus VFM
on FORTH can transmit commands VFM written in language of management of
databases.
  The system permits to minimize volume of the inquiry and time of its
processing, but the specific significance of these sizes is not
enough by work with large files. On this with greater efficiency it is
possible to use a given system for organization of access to relatively small
files. In first it can be small databases. In the second subset of
a large database, possessing the heaviest demand (increase of specialization
). In the third use of distributed databases.

 Creation special OS.

  In divided access there is a problem of efficiency.
  If to present a computer as VFM, passible all resources to grant for the
  decision of one problem.

Advantages and spheres of application.

 1. To sale the information, which free of charge not access can be
    exhibited.
 2. On sale the information, using by increased demand in certain
    unit of a system is exhibited. The seller, thus, will
    undertake labour on search of the information.
 3. On sale resources of a machine are exhibited, which are granted in a kind
    applied VFM. Among which is computing with the help of which it is
    possible to organize distributed calculations and VFM the managers by
    databases.
    VFM thus independence of base hardware-software environment
    provides. The machine thus can work round days.
 4. It is possible to sell machine resources of which have got any member
    of a system in temporary use.
 5. can be organized interface of networks, or the system can serve as a
    network.
 6. Among the members of a system will be such, which are the members other
    FPAUK-server and (or) are the owners FPAUK-server.
    They can:
    a) To organize resale of the goods from one system in other.
    b) To organize trade by a internal currency. The financial games thus can
        model for conventional financial systems.
 7. Can occur network game of the rate in which are made in a
    internal currency.
 8. At the expense of the low cost price of a procedure of sale of the
    information it is possible to lower the cost of the information and
    win at the expense of a large circulation.
 9. I hope for occurrence of cascade development programm ( and not only )
    products. Which consist of sale of semifinished items, they are purchased
    for a certain degree of completion(reprocessing). As a subject
    for reprocessing there can be, some not satisfaction, ready
    products. Thus specialization of work will take place. At finishing of
    this specialization of work up to a certain level, it is
    possible to make its automation.

  I want to pay attention on that the members of a Global system FPAUK will be
  interested in its development and will become it propagandist.
  That inflow of fresh blood will supply(ensure).
  ( Under Global I understand set interacting one-server systems -
  item 6)


                                         Mihail O. Maksimov

 mak@mail.rtc.neva.ru