                     -601/601

                                 U-LAN


                    











   
   --------

        8- 
  .  ,   
    -601/601  
   ,     
 UniDOS.      , 
   8- ,    
   .      
    ,   
 .






        
 :

   -       '|'
       ;

   -   '[]'  
     ;

   -   '{}'  , 
          ;

   -   '()',   , -
         ;

   -       
            
      ;

   -        -
         UniDOS.



      UniDOS  , 
         
 .


        
  :

   - -601, -601 -   
      "";

   - UniDOS -     "
     ";

   - APPLE DOS -     Apple Computer
     Inc;

   - IBM PC/XT -     International
     Business Machines Corp;

   - MS-DOS -    Microsoft Corp.;

   -  8   16 -    -
     ;

   - U-LAN -     "-
     " - .





----------

1.   ........................................
 1.1.    .....................
 1.2.    ....................

2.   ............................................

3.    UniDOS ...........................
 3.1.   

4.   ......................................

5.   ....................................

6.   - .......................
 6.1.     ..........
 6.2.     ..........
  6.2.1.     ...............
  6.2.2.      ........

7.       ..............

E ...............................................


     U-LAN     -
,   .      
"-601", "-601"    
UniDOS, " 82", " 8M", " 8A", "Apple II", "Apple
IIe"        
 Apple DOS 3.3,      IBM PC/XT 
     MS-DOS.


                  
                 ---------------------------
            -   (-
                                 )  
                                
                - 220 000 /
           - 20 K/
               -  600 
      - 63
               - / (CSMA/CD)


   U-LAN     ( 
),       -
    (  ).

     , ..  
   (),  
 .      
 .

         
   .  
      
 .

                   :
                 ----------------------------
-       
        ;
-  ,     
    ;
-  ;
-    ,  
    ;
-     ;
-     ;
-   ,   , 
   ,   
  ;
-       -
  ;
-      ;
-      .


                 :
               ------------------------------
*        
      ;
*    ( 
  )       
    ;
*  /   100 %  -
      ;
*       -
        
         -
  ;
*       
   :
  -     ;
  -  ;
  -     -  
      .



1.  

1.1.  

          
.      ,  
    .

        
 ,    
.    ,   -
   ,   
  1  6.     1  63.
,      13, 33
 61,      
:

        1 2 3 4 5 6 7 8
        ---------------
        0 0 1 1 0 1 X X          (13)

        1 0 0 0 0 1 X X          (33)
        1 1 1 1 0 1 X X          (61)

:      0        'OFF' 
          1        'ON' 
          X           

    ,   ,   
.    ,   -
  ,     -
      :


    

           
   0,    0  
  .


1.2.   

         -
   ,  
 .

         -
  ,   -   -
  . ,  
  ,    .

         
    .   
      -
.



2.  

      ,     
,     UniDOS  .  
    (  , 
     
    /  ).  
 ,      .

       ,  
   UniDOS  .     
 ,      .   
      , 
      .

        :

      ,  
UniDOS    .    
 ,   .  
  UniDOS  .    
       
.


3.    UniDOS

         
:

   U-LAN 1.0 -   NN

    NN -    (.  1.1).

         -
     
,       
    ,    -


    #N

    N - 1, 2  3.      -
         
     -
.

     1  2   
       -
   .    3 
       
 ,    -
       
  .   
  ,   .



3.1.   

         
       
  C:  (   )  D:  (
  ,   ).

    ,     UniDOS 
,    ,  

   copy c:\common\datafile.* a:

         DATAFILE ( 
 ),    COMMON 
 ,     
 ,      , 
  .

       ""  (
),    ,  

   d:unied a:myfile.txt

       UniED 
 UniDOS,     ,   
     MYFILE.TXT   
  ,    .



4.  

        
 -    
     . 
      
 ,     .
        .
       , 
      3 
(      64 ).
      
,       .
    ,   
    .   
   ,   
  ( ),  
   100%.


          - 
     .
,       
,     ,    
    .  ,
   ,   -
    .

        , -
     .   
       
,  ,   
    .   
     
     -
      -
.  ,      ,
    - ,   -
       
       
  ,    
.

        
  (   ,
   ),   
,  .    
,   .  
     (--
) ,  .   
  .  ,  
,   ,  
      .  
     .

      ,      
     ,  
 ()  . 
     128  -
  128  .

       
  ,  
 (UTCB - U-Lan Transport Control Block).

        
    (UTCB)   
  ( 'START') 
  .    -
 ,    UTCB    6
 .

      ,   
 (  )    
 ()   .   
       
,        
     .
      , 
:


   0, 1                (boot) UniDOS  
   2..7              
   8, 9                UniDOS-
   10..31            

    ,       
    ,  
   ,    
      
.    -     
 ,   ( ),  
 ().



5.  

     ,    
 3 ms.     ,  
  .  ,     
  (    
),      
 CSMA/CD,       
   .  ,  
   ,    
 .

      , 
    :

 <# > <# > <# > <> <>

( - 2 ,    -  1 ).

       "
".     ,  
8 .    - 0,   ,
    0 -     
  . (  
  ,      -
 ).

        -,
   (    ),
   ( )  
.      
  , -   ,
     .


        ,  
 .



6.   -

6.1.    


            

          INSTALLED            0
          INIT                 1
          START                2
          STOP                 3
          WHOAMI               4
          ECHO                 5
          ECHOPORT             6


         
 A  ,   ,
     ,   

         INT $71


     
   --------------------------

   INSTALLED
   : 
   :       
   :  A  $FF,  .

   INIT
   : 
   :     ,  
                     .
   :      A.


   START
   :    (UTCB)   X.
   :    , ..   
                   
                :   ,
               .   .
   :      .

   STOP
   :  B   .
   :    , ..  
               .
   :      A.

   WHOAMI
   : 
   :      .
   :      A.

   ECHO
   :    X   
              .
   :      .
   :      A.

   ECHOPORT
   :    X   
              ,   -  .
   :      
               .
   :      A.


6.2.    

   UTCB       
 (   
).     (   START 
   )  
     , 
     .   
     
     .

     UTCB    
 :

                        section 0
        IOError         ds      1
        Host            ds      1       ;*
        Port            ds      1       ;*
        FirstCtrlWord   ds      2       ;*
        CurrentCtrlWord ds      2
        TimeLeft        ds      2
        ErrorHandler    ds      2       ;*
        NextUTPB        ds      2
                        ends

     UTCW:

                        section 0
        Command         ds      1       ;*
        BufferAddr      ds      2       ;*
        BufferLength    ds      2       ;*
        ReceivedLength  ds      2
        TimeOut         ds      2       ;*
        UserService     ds      2       ;*
                        ends

   (  ,   
).

      UTCB    -
  UTCB    (IOError, Host,...).


:
------
       ,   
     UTCB1+IOError,  UTCB1
-    .


6.2.1.    

    IOError     
 .  - ():

     0 -  ,   
   $41 -     (TimeOut)
   $42 -   ,   
   $43 -    (  ), 
          
   $44 -    - 
            
   $45 -    
   $46 -       
   $47 -     
            
   $80 - (     $80, ..  
          )    
         - ,    

   Host   ,    
 .  0   . 
       Host
  ,    .

   Port -  ,    .
    - ,  , 
       
(Host = 0),  ,     
   .     
,   (   
  ErrorHandler)   ,  -
    ,    
    
(Reset).     - . 
       
       ,  
 ( ).    
     ( )
  .

   FirstCtrlWord -      .

   CurrentCtrlWord      
      .

   TimeLeft     
      .
  - 0,   .  
     0   $41
(TimeOut).

   ErrorHandler -   , 
       
.       
        (C)   
   (CLC)    (SEC).
   UTCB   
       
(     CurrentCtrlWord 
   ).    
    RTS.   , 
   - 0,   
.

    :
    ----------
        
(   ErrorHandler   - 0 )
  ,    .
       ,
ErrorHandler    CurrentCtrlWord  
     DONE    
 - 1 (SEC).

   UTCB       
,     .


6.2.2.     

   COMMAND    :

NOP   = 0 -  
                1  2
SEND  = 1 -  
RCVE  = 2 -  
        3 - 
SKIP  = 4 -  
                5
JMP   = 5 -     
            ,    
                
RESET = 6 -   
DONE  = 7 -    

      NOP, SEND  RCVE   - 11
,  SKIP  JMP - 3 ,   RESET  DONE 
     ( 1 ).

   BufferAddr -  ,     
   ,   .

   BufferLength -  ,    , 
  ,     
 .

    ReceivedLength    
 (   ).     0
 BufferLength .

   TimeOut      
     .  0
  .

   UserService e   , 
       .  
    ,   
UniDOS        
   (     
      ).  
    ( RTS)  
(C)     :
   C=0 ,       
 , 
   C=1,     - NOP  SEND, , 
      ,    -
RCVE ,      
.
        , UserService
  0.

         
  :

        _ULan           =       $71

        ;  ( A)

        F_Installed     =       0
        F_Init          =       1
        F_Start         =       2
        F_Stop          =       3
        F_WhoAmI        =       4
        F_Echo          =       5
        F_EchoPort      =       6

        ;   

        C_Nop           =       0
        C_Send          =       1
        C_Rcve          =       2
        C_Skip          =       4
        C_Jmp           =       5
        C_Reset         =       6
        C_Done          =       7

        ;  

        E_NoError       =       0
        E_TimeOut       =       $41
        E_AlreadyUsed   =       $42
        E_PortNotUsed   =       $43
        E_PortClosed    =       $44
        E_PortBusy      =       $45
        E_DataTooLong   =       $46
        E_OutOfSequence =       $47
        E_Working       =       $80

        ;---------------------------------------
        ;   

                        section 0
        IOError         ds      1
        Host            ds      1
        Port            ds      1
        FirstCtrlWord   ds      2
        CurrentCtrlWord ds      2
        TimeLeft        ds      2
        ErrorHandler    ds      2
        NextUTPB        ds      2
                        ends

        ;   

                        section 0
        Command         ds      1
        BufferAddr      ds      2
        BufferLength    ds      2
        ReceivedLength  ds      2
        TimeOut         ds      2
        UserService     ds      2
                        ends




------------------------>      <------------------------