********************************************************************
*                                                                  *
*                                                                  *
*                                                                  *
*            Mini-C           Language reference                   *
*                                                                  *
*                                                                  *
*                                                                  *
********************************************************************


index

1:Mini-cѧreference
1.1:ѧдʽ
1.2:˵
1.2.1:νı
1.2.2:νĺ
1.2.3:νĳ
1.2.4:ν
1.3:ʽĿķ
1.3.1:óʽ                    if-elseġ
1.3.2:ִͬĳʽ1                whileġ
1.3.3:ִͬĳʽ2                do-whileġ
1.3.4:ִͬĳʽ3               forġ
1.3.5:ӷ1               break
1.3.6:ӷ2               continue
1.3.7:뺯          return
1.3.8:ʽ˵
1.4:ʽ;ʱʱ

2:Mini-C       programmers   reference
2.1:ʽĹҪ
2.1.1:compiler  ʶ
2.1.2:
2.1.3:Mini-C  supportkey word
2.1.3.1:int
2.1.3.2:return
2.1.3.3:supportkey word
2.1.4:Mini-Csupportkey word
2.1.4.1:̬ƶɾ
2.1.4.2:scopeȵƶɾ
2.1.4.3:structureƶɾ
2.1.4.4:ϵļԻɾ
2.1.5:
2.1.6:
2.1.6.1:Mini-Csupport
2.1.6.2:support
2.1.7:
2.8:
2.9:˵
2.9.1:key word
2.9.2:
2.9.3:compiler
2.9.4:
2.9.5:

3:Mini-Creference

4:Mini-C׼reference

5:HR2  ׼سʽreference





********************************************************************
*                                                                  *
*             1:Mini-Cѧreference                              *
*                                                                  *
********************************************************************

1.1:ѧдʽ

referenceΪܹνġMini-Cʽԡ Mini-CΪC
HR2ԭʼ CԡCԾеĹܣɾһ֡Mini-
CֻڡHR2пƻˡ⡸Mini-Cֻ֮Ҫ΢ٽޣ
ܳΪдCԵĳʽʦʹMini-C˽ʽȤ֮ʵΪһ
¡




ʽʽ
ʽΪõ붯ϡ
ʽΪ¼ʽԡͬӢ˵Ӣ˵ձ
˵㣬ÿҶԼԣʽԼΪڡͼʹõԡ
гѧӢʱȫҵӦ˽һЩʽԣ
ҪСһС뷨ӢĹ(ķ䷨ṹ)ܶ࣬
ѧCԡӢٺܶࡣ CԵĹۺϵĻԼռA4ֽ
һš




ʽǽԵµ¼дʽΪԵν
дʽҵΪprogramingдʽ˳Ϊʽʦдʽ
ʱʹԡԳΪʽԡʽиࡣCOBOL
FORTRANCԡȡʽ˽ķʽдɡǵ
ʶľͱ뷭ɵԿɱʶĶзҵĳ֮Ϊcompiler



1.2:˵



¹ʽ˵Ҫ豸֪ʶΪĿģ˵ʽıд
ҪԱµ˵ʣڴȽ֮Ϊ
𡹽һһӦÿԽʵ㡣


1.2.1:νı

뽫Ϊĳһֵ˵Ļͬˮˮͷһ
ˮˮջءǣв豭Ļ?ò豭ȡˮ
ʱˮΪֵ豭Ϊ༴ɱֵĳΪ⣬
(豭)ʹ֮ǰ׼ã׼(豭)֮Ϊ

漰
ʱڱ֮ǰint֮հףƣϣ
ɱʶ10֣ʹСдĴҲԱʶ

main(){
    int cup ;    cup

    cup = 7 ;    7cup
}


1.2.2:νĺ

νĺĳЩһĴ䴦صĳʽпɽҪҪ
ĳЩһĴЩҪҪس֮ΪMini-Cкɴ
3֮֮Ϊֵһ㡸ֵᴫءһĴ
ɹʧܡԶΪ˵ûнǮͶ룬Զ˽ǮͶ
󣬺ͶͬťƣȻťϰһ£ԶὫ
¡һĶƩɺԶΪǮΪг
°ťΪųΪֵĳЩһĴΪݰ
ťͬ仯ųöƿɱʶ10֣ʹСдĴҲԱʶ


ɳʽҪһΪ
Mini-C׼ûĺ˺Ϊ׼ڱ׼ϸ˵
б׼REFERENCE

ķ

ûвʱ
func(){                func()Ŀʼ
    int cup ;

    cup = 7 ;
}                      func()Ľ

вʱ
func( int value ){     func()ĿʼVALUE
    int cup ;

    cup = value+7 ;
}                      func()Ľ

ʽ
 0| main(){
 1|     int a ;
 2|     a = func( 10 ) ;
 3|     print( a ) ;
 4| }
 5|
 6| func( int value ){
 7|     int cup ;
 8|     cup = value+7 ;
 9|     return( cup ) ;
10| }
ִд˷ʽ·172еĲ10ı󣬻ֳֵ
7ֵ֮6еĺfunc()ڵ2Уʹõ2еĺfunc()֮Ϊк



1.2.3:νĳ

νĳΪɽһֵ룬ͱͬһ漴ܱ
Mini-Cб׼Ĵֵȫع鳣泣ںнС
ķ


#define VAL 7            VAL 

func( int value ){
    int    cup ;

    cup = value+VAL ;   ӳ VAL ֮ value
}
˵֮طΪcup = value+7 ;򽫡7ΪԱ
cup = value+VAL ;



1.2.4:ν

ֵļ㡢ֵıȽϡ˵Mini-CʹõĻӡ
ӣϸաMini-C REFERENCE

                      ؼ
+             10+7  = 17
-             10-7  = 3
*             10*7  = 70
/             Ĵ  10/7 =1  21/7 =3
%               10%7 =   14%7 =0
=             һ
<   ʽ    a < 0   ߱ұС
<=  ʽ߲  a <= 0  ߱ұС
>   ʽұ    a > 0   ұ߱С
>=  ʽұ߲  a >= 0  ұ߱С
==  ʽ          a == 1  ߺұ
!=  ʽ        a != 0  ߺұ߲
&&  ϵۻ    a>b && c<d abcd߽Գ
||  ϵۺ    a>b || c<d abcdһ
++            1㣬aΪ0ʱa++Ĵ𰸱1
--            1㣬aΪ1ʱa--Ĵ𰸱0



1.3:ʽķ



ҪΪ˱ȽĽΪ˵ʹΪʽִн


1.3.1:ʽִֵ      if-else

ķΪʽƵݷֳ2жǷif()дʱ
ִ()֮{}ĳʽ
1
 0| main(){
 1|     int a ;
 2|     int b ;
 3|
 4|     a = buggage() ;
 5|     if( a == FAIL ){
 6|         do{
 7|             b = seek( ERG ) ;
 8|         }while( b == CONT ) ;
 9|         get() ;
10|     }
11|     else{
12|         do{
13|             b = seek( WALL ) ;
14|         }while( b == CONT ) ;
15|         put() ;
16|     }
17| }
˳ʽ4еĺbuggage()ĴֵνaСˣ5
aΪFAILĻִԵ710еĺget()
if elseġΪʹelse{}ĲݲдҲʽ

2
 0| main(){
 1|     int a ;
 2|
 3|     a = move() ;
 4|     if( a == FAIL ){
 5|         round( RIGHT ) ;
 6|     }
 7| }
˳ʽ4еĺmove()ĴֵFAILĻִround()ǳ
FAILʱκζ

1.3.2:ִͬĳʽ1       whileġ

ķΪwhile()дִ{ʼ}Ϊֹмĳʽ
3
 0| main(){
 1|     int a ;
 2|
 3|     a = SUCCESS ;
 4|     while( a == SUCCESS ){
 5|         a = move() ;
 6|     }
 7|     snooze() ;
 8| }
˳ʽaΪSUCCESSʱִкmove()ظmove()Ĵֵ
Ϊ1ʱwhileн()е۽aֵڵ3жΪ
SUCCESS֮ڻwhile֮()д1ϵطִУ෴أд0
һҲִУûκ塣
4         ϵִз
 0| main(){
 1|     int a ;
 2|
 3|     a = 1 ;
 4|     while( 1 ){
 5|         a = move() ;
 6|     }
 7| }
5         һҲִ
 0| main(){
 1|     int a ;
 2|
 3|     a = 1 ;
 4|     while( 0 ){
 5|         a = move() ;
 6|     }
 7| }


1.3.3:ִͬĳʽ2                   do-whileġ

ķΪwhileֵͬܰĶwhileжϣdo-while
ж༴ִһdo֮д{ ʼwhile֮ǰ }ʽΪֹ
Ž3do-whileд
6
 0| main(){
 1|     int a ;
 2|
 3|     do{
 4|         a = move() ;
 5|     }while( a == SUCCESS ) ;
 6|     snooze() ;
 7| }
˳ʽͷ3ͬaִгSUCCESS ֮MOVE()WHILE
һ }WHILE֮()д1ϵķִУ෴أд0ִֻһ
η


1.3.4:ִͬĳʽ3   FORġ

˵WHILEĺ DO-WHILE()ָʱķִ
ĴָFOR֮д3ʽӡ1Ϊֵʽӣ2Ϊ
жϣ3ΪʽӡFORΪ2жϳʱִ{  }еĳʽ
7
 0| main(){
 1|     int a ;
 2|
 3|     for( a=1 ; a<10 ; a++ ){
 4|         move() ;
 5|     }
 6|
 7| }
˳ʽΪȽa1ĳֵٽе2жϡʱִ
FOR֮{  }еĳʽڵ2Ժķвٸֵ2ԺȽе3
ʽӣٽе2жϡ
ִзĳʽִʽ˳ʽa1ʼִб10С{  }
ĳʽ˺MOVE()ϼΪִ9Ρ


1.3.5:Է1BREAK

Ϊָ֮ʹҲɴ롣
뷴ֻ1
8
 0| main(){
 1|     int a ;
 2|     int b ;
 3|     for( a=0 ; a<20 ; a++ ){
 4|         do{
 5|             b = move() ;
 6|             if( b == FAIL ){
 7|                 round( RIGHT ) ;
 8|                 break ;
 9|             }
10|         }while( 1 ) ;
11|     }
12|
13| }
˳ʽΪMOVE()ĴֵΪFAILʱִROUND()DO-WHILE
ķFORĵķ뵱Aֵ20ʱ롣


1.3.6:Է2      CONTINUE

ΪжϷ{  }еĳʽֱ }֮
9
 0| main(){
 1|     int a ;
 2|     int b ;
 3|     do{
 4|         a = move() ;
 5|         if( a == FAIL ){
 6|             round( RIGHT ) ;
 7|         }
 8|         b = check( FRONT ) ;
 9|         if( b != ERG ){
10|             continue ;
11|         }
12|         break ;
13|     }while( 1 ) ;
14|     snooze() ;
15| }
˳ʽΪFIND() ĴֵΪFAILʱ10еCONTINUEЧ
ִе12еBREAK }WHILE??)жϡֹͣ
CHECK()ֵΪERGֵ


1.3.7:뺯         RETURN

ںڣκεطԶ֮ǰǿƽ
RETURNֵֻΪ1ʱſɽ
10
 0| main(){
 1|     int a ;
 2|
 3|     do{
 4|         a = seek( ERG ) ;
 5|     }while( a == CONT ) ;
 6|     return( a ) ;
 7| }
˳ʽΪSEEK()ĴֵڳCONTʱִDO-WHILEķ
-1ĴֵRETURNSEEK()Ĵֵ


1.3.8:ʽ˵

˵дķΧʽHR2 EDITORбд˵ѧ
дʽддΡ

1
˳ERGʱҵǽڵƶóERGδERG
ʱȡERG

2
ûǰϰȣǰʧʱûתҷ

3
νûǰ1ΡĶϰû˱òǰΪֹ
òƶʱ˼˯

4
νûǰ1ΡĶôԻᷴ

5
ڸõزִз

6
ͷ3ͬ

7
νûǰ1ΡĶ9Ρ

8
20Ρûϰǰ֮ǰʹǰǰʱת
ҷĶ

9
a:ûǰ1Σǰʧܼҷת˲ܷǰϲɫERGʱ
  a:Ķ
  ּܷ뷴˯

10
ڵִERGص֮ǰкseek()δܷergûִܵĵ·
ڸõزreturnصaֵ(seek()Ĵֵ)



1.4:ʽ;ʱʱ

ʽ1֮ģʱʱ;עǰķʽĻѾ{}
ĺ治ϣĺ֮ϣʹifwhile{}ӣ
do-while֮whileݼϣ˵⡣Ϊdo-whilewhileȫ}
ر òϣdo-whileģ̫⣬ֻҪ֪д˶




********************************************************************
*                                                                  *
*           2:Mini-C  PROGRAMMERS REFERENCE                        *
*                                                                  *
********************************************************************

REFERENCECԺMĲͬΪģ˵Mini-CĹܡԳѧCԵ˶ԣ
һЩѵο˵

2.1:ʽĹҪ

2.1.1:ʶ
compilereditorʶ֣ASCIIΪ׼ݣҲвûжӦĶ
ֱʾescape\ ûжӦֻʹµ
    0x00 NULL               0x2d '-'
    0x09 TAB                0x2f '/'
    0x0a LineFeed           0x30-0x39 '0'-'9'
    0x0d CarrigeReturn      0x3a ':'
    0x1a EOF                0x3b ';'
    0x20 ' '                0x3c '<'
    0x21 '!'                0x3d '='
    0x23 '#'                0x3e '>'
    0x25 '%'                0x41-0x5a 'A'-'Z'
    0x26 '&'                0x5f '_'
    0x28 '('                0x61-0x7a 'a'-'z'
    0x29 ')'                0x7b '{'
    0x2a '*'                0x7c '|'
    0x2b '+'                0x7d '}'
    0x2c ','

Ϊ֣Ҳ⣬дʲôԿʶ


2.1.2:ע
Cõ /*  */ ע⣬Mini-CûжӦ
ע'//'ʾ'//'Ҳ༴Ϊע(C++)
עΪ48֣עбΪһհ֣ΪУԽԺӡ



2.1.3:Mini-Csupportkey word
Mini-Csupportһֵͣˣkey wordĿͱ׼Cϱ
١

Mini-Csupportkey word :
break  continue  do  else  for  int  return  while
ǣintΪıʹãָ̬˼C֮ͬΪ
˵


2.1.3.1:int
Mini-CУ̬Ϸֻ16bitˣܱΪ-32768~32767
Mini-CУһINTֻܶһ
        X     int aaa,bbb ;  //Cᱻʶ𣬵
                             //Mini-CǴġ

              int aaa ;
              int bbb ;

⣬Ҳڶʱֵֵ趨ΪģñִС

        X     int aaa = 0 ;  //Cᱻʶ𣬵
                             //Mini-CǴġ

              int aaa ;
              aaa = 0 ;



2.1.3.2:return
ָĴֵMini-CУԻint̬ɵֵʹ
Ϊ-32768~32767

        X     return(40000) ;    32767Բȷ
              return(100) ;

returnָ֮Ҳʹüʽ
         reutrn    (aaa+bbb*2) ;
ûдreturnʱֵΪֵ

2.1.3.3:supportkey word
µkey word֮ʹ÷ȫCһ

break,continue,do,for,while




2.1.4:Mini-Cвsupportkey word
еkey wordMini-Cвsupport

auto char case const default double enum
extern float goto long register
short signed sizeof static struct switch
typedef union unsigned void volatile 

Ϊϸ˵

2.1.4.1:͵ƶɾ
Ϸֻ16bitˣµkey word

double,long,float,short,unsigned,signed,void

ʹkey word

2.1.4.2:scopeƶɾ
ֻڵдscopestaticͻھscopelocal޶
registerĸ

auto,static,const,extern,register

2.1.4.3:  struct  ƶɾ
  struct  ĸsupportµûС


typedef,union,sizeof,struct

2.1.4.4:ϵļԻɾ
ϵļԻµkey wordɾ

case,default,enum,goto,switch,volatile 




2.1.5:
Mini-CеıⲿڲΪ10֡׵һ
Ϊ֡



2.1.6:
2.1.6.1:Mini-Csupport
ԭCԵķʽһ˳λ(++--)Mini-Cж˳λ
ϸĹ涨¼ǵıУϷ˳λ(ж)

    ()            ʽ
    ++            increment()
    --            decrement()
    +             
    -             
    *             
    /             
    %             
    +             
    -             
    <             ʽ
    <=            ʽ߲ʽ
    >             ʽұ
    >=            ʽұ߲ʽ
    ==            ʽ
    !=            ʽ
    &&            ϵۻ
    ||            ϵۺ
    =             


2.1.6.2:support
δsupport:
    []             û
    . -> sizeof    ûstruct
    & *            ûpoint
    ~ !            ûbit
    (ͱת)     ֻһ
    << >> & ^      ûbit
    ?:             comhilerԻ
    += -= <<= >>=  comhilerԻ
    &= |= ^=       comhilerԻ
    )              ûн˳





2.1.7:
Mini-Csupportĳֻ10λλ̬Ҳֻsigned shortѡ
ֵ֮ܶ-3276832767С㳣оٳֳ
support


2.8:
Mini-CвκļǺţsupportбڣû
(ִ)һһֻΪ#definesupport



2.9:˵
2.9.1:key word
νkey wordʹCcompilerĵ֡

2.9.2:
ʹúkey wordͬƵıƻ(Щ֮Ϊ)


2.9.3:compiler
ԲִCԵȳʽԡܴB8 00 10 C3 ...........
ѣΪ롣compilerΪCԵȳʽתɻĳʽMini-CҲ
ͬĴ


2.9.4:
Cонʽʾ͵ĸԱΪshortͿɴ
-32768~32767ֵcharͿɴ-128~127Mini-CеıΪshortͣ
û͵ĸ


2.9.5:
ʽУΪˡʶ𡹸ֱͺ˱ֲ߱ͬơЩ
֮Ϊ⣬key word˳Ϊkey wordƲܵ
mainaaΪ
    main(){                 //Ϊmain
        int aa ;            //aa
        aa = 0 ;

    }





********************************************************************
*                                                                  *
*               3:Mini-CREFERENCE                              *
*                                                                  *
********************************************************************

REFERENCE˵ѾĳѧREFERENCEķʽҲʹ
˼ѾĲ⣬BG REFERENCEеı׼سʽҲʹ
ܶࡣΪʽʱסһ̶ȵĿȫΪд

                 ˼                   Ҫ
--------------------------------------------------------------------

UP             1     
LEVEL          0     ˮƽ
DOWN          -1     
LEFT           2                       
FRONT          0                     
RIGHT         -2                       
BACK          -4                     
--------------------------------------------------------------------
λ
NORTH          0     
EAST           1     
SOUTH          2     
WEST           3     
--------------------------------------------------------------------

SUCCESS        1     ɹ                
FAIL           0     ʧ                
CONT          -1                     
--------------------------------------------------------------------

SPACE          0     ͨĿռ
ERG           10     ERG
ERG_SPACE     11     ERGĿռ
ETC          255     ǽڡذ
--------------------------------------------------------------------
¥ݵ
STEP           6     ¥
Y_STEP         7     ɫ¥
B_STEP         8     ɫ¥
--------------------------------------------------------------------

ORDER         20     
STAIR         21     ¥ݽ    
FLOOR         22     ذ彨    
PILAR         23     ӽ    
WALL          24     ǽڽ    
WINDOW        25         
GATE          26     Ž      
--------------------------------------------------------------------
ʶ
SIGN          30     ʶ
TURN          31     TURNָʾıʶ
STOP          32     ֹͣıʶ
R_PYLON       33     ıʶ            
G_PYLON       34     ̵ıʶ            
R_FLAG        35     ɫ            
G_FLAG        36     ɫ            
Y_FLAG        37     ɫ            
--------------------------------------------------------------------
˺
ROBOT         40     
ROBOT1        41     1
ROBOT2        42     2
ROBOT3        43     3
ROBOT4        44     4
ROBOT5        45     5
ROBOT6        46     6
ROBOT7        47     7
ROBOT8        48     8
ROBOT9        49     9
ROBOT10       50     10
ROBOT11       51     11
ROBOT12       52     12
ROBOT13       53     13
ROBOT14       54     14
ROBOT15       55     15
ROBOT16       56     16
--------------------------------------------------------------------
ɫ
WHITE          1     ɫ                
L_GRAY         2     ǳɫ              
D_GRAY         3     ɫ              
YELLOW         4     ɫ                
BLUE           5     ɫ                
--------------------------------------------------------------------







********************************************************************
*                                                                  *
*             4:Mini-C׼REFERENCE                            *
*                                                                  *
********************************************************************

Mini-Cı׼ʹôЩɱɳʽн
ʵʵʹBG directoryѪ͵ĳʽ

׼һ
4.1:move(),         4.2:round( dir ),
4.3:get(),          4.4:put(),
4.5:receive(),      4.6:present(),
4.7:buggage(),      4.8:check( dir ),
4.9:code( dir ),    4.10:erg( dir ),
4.11:order( dir ),  4.12:sign( dir ),
4.13:robot( dir ),  4.14:peak(),
4.15:seek( item ),  4.16:go( pos_level,pos_high ),
4.17:find( item ),  4.18:find2( item ),
4.19:place(),       4.20:high(),
4.21:distance(),    4.22:direction(),
4.23:favorite(),    4.24:change( col ),
4.25:who(),         4.26:memory( position,value ),
4.27:recall( pos ), 4.28:refresh(),
4.29:clock(),       4.30:snooze(),
4.31:print( data ),


4.1:move()
      
    ûһƶĺ
    ǰϰûеذʱƶ
    ˳ɹƶʱSUCCESSʧܼFAIL

    ֵ
        ɹ    SUCCESS
        ʧ    FAIL

    غƺ    4.2:round(),4.15:seek(),4.16:go()


4.2:round( dir )
        dir    (FRONT,LEFT,RIGHT,BACK)

    Բdirûתָĺ
    ˵Ļת޷仯תɹĻSUCCESSûʧܡ

    ֵ
        ɹ    SUCCESS

    غƺ    4.1:move(),4.15:seek(),4.16:go()


4.3:get()
      

    ȡûϲɫ֮ERGĺ
    ֻȡԼERGȡERG󴫻SUCCESSûȡ򴫻
    FAIL

    ֵ
        ɹ    SUCCESS
        ʧ    FAIL

    غƺ    4.4:put()


4.4:put()
      

    ˷ERGĺ
    ˽ԼERG¡ϰʱܷáܷERG
    SUCCESSʧ򴫻FAIL

    ֵ
        ɹ    SUCCESS
        ʧ    FAIL

    غƺ    4.3:get()


4.5:receive()
      

    λǰĻ˴ȡERGĺ
    λǰĻpresent()ergȡerg⣬
    ǰĻ˺ʱܺúִеĻҲȡergɹĻSUCCESS
    ʧܵĻFAIL

    ֵ
        ȡerg     SUCCESS
        ʧ        FAIL

    غƺ    4.6:present()

    ʽ  ȡerg֮ǰȴ
    main()
    {
        do{
            receive() ;
            if( buggage() != FAIL )    break ;
        }while( 1 ) ;
    }


4.6:present()
        

    ˽erg˵ĺ
    λǰĻ˲receive()ȡergܽ⣬ǰĻ
    ʱûкúִеĻܽergɹĻSUCCESSʧ
    ĻFAIL

    ֵ
        ɹ    SUCCESS
        ʧ    FAIL

    غƺ    4.5:receive()

    ʽ  erg֮ǰȴ
    main()
    {
        do{
            present() ;
            if( buggage() == FAIL )    break ;
        }while( 1 ) ;
    }


4.7:buggage()
        

    Ƿӵergĺ
    еĻergɫûеĻFAIL

    ֵ
        ɹ    erg color(WHITE,L_GRAY,D_GRAY,YELLOW,BLUE)
        ʧ    FAIL


4.8:check( dir )
        dir    (FRONT,LEFT,RIGHT,BACK)

    Բdirָķʲôĺ
    ֵָķָʱָȴء
    ˺ûʧ֮¡

    ֵ
        ռ        SPACE
        erg         ERG
        ָ        ORDER
        ʶ        SIGN
              ROBOT
        ǽڡذETC

    غƺ    4.9:code(),4.10:erg(),4.11:order(),
                          4.12:sign(),4.13:robot()


4.9:code( dir )
        dir    (FRONT,LEFT,RIGHT,BACK)

    Բdirָķʲôĺ
    code()ƣǴ˺Իøϸ鱨ֵָķָ
    ʱָȴءָĶûʱFAIL

    ֵ
        erg         (WHITE,L_GRAY,D_GRAY,YELLOW,BLUE)
        ָ        (FLOOR,PILAR,STAIR,WALL,WINDOW,GATE)
        ʶ        (TURN,STOP,R_PYLON,G_PYLON,R_FLAG,G_FLAG,Y_FLAG)
              (ROBOT1ROBOT16)
        û    FAIL

    غƺ    4.8:check(),4.10:erg(),4.11:order(),
                          4.12:sign(),4.13:robot()


4.10:erg( dir )
        dir    (FRONT,LEFT,RIGHT,BACK)

    ԲdirָеergΪɫĺ
    code()ƣǴ˺ָķerg֮ʱFAIL

    ֵ
        ɹ    erg color(WHITE,L_GRAY,D_GRAY,YELLOW,BLUE)
        ʧ    FAIL

    غƺ    4.8:check(),4.9:code(),4.11:order(),
                          4.12:sign(),4.13:robot()


4.11:order( dir )
        dir    (FRONT,LEFT,RIGHT,BACK)

    Բdirָָ֮ĺ
    code()ƣǴ˺ָķָ֮ʱFAIL

    ֵ
        ɹ    order code(FLOOR,PILAR,STAIR,WALL,WINDOW,GATE)
        ʧ    FAIL

    غƺ    4.8:check(),4.9:code(),4.10:erg(),
                          4.12:sign(),4.13:robot()


4.12:sign( dir )
        dir    (FRONT,LEFT,RIGHT,BACK)

    Բdirָ֮signĺ
    code()ƣǴ˺ָķsign֮ʱFAIL

    ֵ
        ɹ    SIGN CODE (TURN,STOP,
                             R_PYLON,G_PYLON,R_FLAG,G_FLAG,Y_FLAG)
        ʧ    FAIL

    غƺ    4.8:check(),4.9:code(),4.10:erg(),
                          4.11:order(),4.13:robot()


4.13:robot( dir )
        dir    (FRONT,LEFT,RIGHT,BACK)

    Բdirָ֮˺ĺ
    code()ƣǴ˺ָķڻ֮ʱFAIL

    ֵ
        ɹ    ˺(ROBOT1ROBOT16)
        ʧ    FAIL

    غƺ    4.8:check(),4.9:code(),4.10:erg(),
                          4.11:order(),4.12:sign()


4.14:peak()
        

    ֪Ŀǰѽ֮ø߶ȵĺ
    ˺ûʧ֮¡

    ֵ
        ɹ    ߶(0-599)


4.15:seek( item )
        item  (ERG,ERG_SPACE,
                   ORDER,FLOOR,PILAR,STAIR,WALL,WINDOW,GATE,
                   SPACE,Y_STEP,B_STEP,
                   SIGN,TURN,STOP,R_PYLON,G_PYLON,R_FLAG,G_FLAG,Y_FLAG
                   ROBOT,ROBOT1ROBOT16)

    Բitemû˳ָĿĵصĺ
    ָitemûƶ򡢺Զ߶ܴʱܽκж
    FAILȫΧĸ߶ȲԼΪ+-10ҡĿĵشSUCCESSƶ
    CONTƶʱFAIL

    ֵ
        ɹ    SUCCESS,CONT
        ʧ    FAIL

    غƺ    4.1:move(),4.16:go()

    ʽ  ƶRED FLAGʧʱ
    main()
    {
    int arrival ;
        do{
            arrival = seek( R_FLAG ) ;
        }while( arrival == CONT ) ;
    }


4.16:go( pos_level,pos_high )
        pos_level   (05911)
            pos_high    (0599)

    Բƶָطĺ
    pos_levelplace()ãpos_highhigh()á
    ָitemûƶ򡢺Զ߶ܴʱܽκж
    FAILȫΧĸ߶ȲԼΪ+-10ҡĿĵشSUCCESSƶ
    CONTƶʱFAIL

    ֵ
        ɹ    SUCCESS,CONT
        ʧ    FAIL

    غƺ    4.1:move(),4.15:seek(),
                          4.19:place(),4.20:high()


4.17:find( item )
        item  (ERG,ERG_SPACE,
                   FLOOR,PILAR,STAIR,WALL,WINDOW,GATE,Y_STEP,B_STEP,
                   TURN,STOP,R_PYLON,G_PYLON,R_FLAG,G_FLAG,Y_FLAG,
                   ROBOT1ROBOT16)

    Բָitemλõ¼ڼĺ
    ¼˳Ϊ˵item
    Ժ¼ִнΪЧı׼غplace()
    high()distance()direction()4֡ĸ߶ȲΪ+-10
    item
    +-10߸Զĵطܷ֣ԲɹķָitemSUCCES
    ʧ򴫻FAILʧʱִplace()4ֺ[0]

    ֵ
        ɹ    SUCCESS
        ʧ    FAIL

    غƺ    4.18:find2(),4.19:place(),4.20:high(),
                          4.21:distance(),4.22:direction()

    ʽ  red flagѰҡλꡢ߶
    main()
    {
    int find_item ;
    int pos_level ;
    int pos_high ;

        find_item = find( R_FLAG ) ;

        if( find_item == SUCCESS ){
            pos_level = place() ;
            pos_high = high() ;
        }
    }


4.18:find2( item )
        item  (ERG,ERG_SPACE,
                   FLOOR,PILAR,STAIR,WALL,WINDOW,GATE,Y_STEP,B_STEP,
                   TURN,STOP,R_PYLON,G_PYLON,R_FLAG,G_FLAG,Y_FLAG,
                   ROBOT1ROBOT16)

    Բָitemλõ¼ڼĺ
    ¼˳Ϊ˵itemͺfind()֮ͬΪ˵
    ǰ(1mass)Դ˺¼ִнΪ
    Чı׼غplace()high()distance()direction()
    4֡ĸ߶ȲΪ+-10ߣitem
    +-10߸Զĵطܷ֣ԲɹķָitemSUCCES
    ʧ򴫻FAILʧʱִplace()4ֺ[0]

    ֵ
        ɹ    SUCCESS
        ʧ    FAIL

    غƺ    4.17:find(),4.19:place(),4.20:high(),
                          4.21:distance(),4.22:direction()


4.19:place()
        

    find()趨֮λĺ  (y*256+x)õֵ
    ֵΪλáֵֽ [X]  [Y]X=λ%256Y=λ/256

    ֵ
        ɹ    λ(05911)
        ʧ    FAIL

    غƺ    4.16:go(),4.17:find(),4.18:find2(),
                          4.20:high()


4.20:high()
        

    find()趨֮߶ȵĺ

    ֵ
        ɹ    ߶(0599)
        ʧ    FAIL

    غƺ    4.16:go(),4.17:find(),4.18:find2(),
                          4.19:place(),4.21:distance(),4.22:direction()


4.21:distance()
        

    find()趨ֱ֮߾ĺ
    ֵԹΪλΪ+-1ߡ0

    ֵ
        ɹ    ֱ߾
        ʧ    FAIL

    غƺ    4.17:find(),4.18:find2(),4.19:place(),
                          4.20:high(),4.22:direction()


4.22:direction()
        

    find()趨֮ĺ
    ûзʱֵNORTH

    ֵ
        ɹ    (NORTH,SOUTH,EAST,WEST)
        ʧ    NORTH

    غƺ    4.17:find(),4.18:find2(),4.19:place(),
                          4.20:high(),4.21:distance()


4.23:favorite()
        

    ûϲ֮ɫĺ
    ˺ûʧ֮¡

    ֵ
        ɹ    erg ɫ(WHITE,L_GRAY,D_GRAY,YELLOW,BLUE)

    غƺ    4.24:change()


4.24:change( col )
        col    (WHITE,L_GRAY,D_GRAY,YELLOW,BLUE)

    Բcolָerg ɫɻϲ֮ɫĺɫɹ
    SUCCESSʧ򴫻FAIL

    ֵ
        ɹ    SUCCESS
        ʧ    FAIL

    غƺ    4.23:favorite()


4.25:who()
        

    Լӵл˺ĺ
    ˺ûʧ֮¡

    ֵ
        ɹ    ˺(ROBOT1ROBOT16)


4.26:memory( position,value )
        position    (063)
            value       (ֵ)

    ղԲpositionvalueֵ(-32768~32767)ָ֮ղص(0~63)ĺ
    ֵʹmain()Ҳ档

                            -CAUTION-
    ڴmemory()¼ֵ¼˱еļװϡ¼
    ĻµĳʽʹȥҲ档ִСrefereshִָб׼
    غreferesh()ڻΪ0

    ֵ    

    غƺ    4.27:recall(),4.28:refresh()


4.27:recall( pos )
        pos    (063)

    ղڲָղص(0~63)ֵгĺг֮ղղص
    ֵԴڡʹúʱmemory()ֵղء

    ֵ
        ղָղصֵ

    غƺ    4.26:memory(),4.28:refresh()


4.28:refresh()
        

    ˺memory()¼ֵȫڻĺڻֵΪ[0]
    ˺ûʧ֮¡

    ֵ    

    غƺ    4.26:memory(),4.27:recall()


4.29:clock()
        

    ˺Ϊ˵Ϸڵʱ(ʾڻ·Ĳ)ġصֵ
    ΪDAY*24+HOURֵ0-8783֮䡣һ伴ص0ܵ

    ֵ    



4.30:snooze()
        

    ˺Ϊûǿ˯ߵĺһʱ伴Ļ˽Ӵ
    Ҳ

    ֵ    


4.31:print( data )
        data    (-32768~ 32767)

    Բdataֵָʾڻ·ĺ
    һֻʾһ

    ֵ    






********************************************************************
*                                                                  *
*            5:HR2׼PROGRAM REFERENCE                        *
*                                                                  *
********************************************************************

˵׼سʽĶ_ ĸʾѪ͡BɫPYLON
AͿҳԶĶ


STAIR_A.C   FLOOR_A.C   PILAR_A.C   WALL_A.C   GATE_A.C   WINDOW_A.C
STAIR_B.C   FLOOR_B.C   PILAR_B.C   WALL_B.C   GATE_B.C   WINDOW_B.C

    ָõĳʽ
    ӵERGʱѰãûҵʱڸõһתһΣERG
    ڸõءERGʱȥһϲ֮ɫERGûҵERGʱ
    ڸõһתһΡ¥ݡذʱֻûɫɫERGɡ

    B͵ĳʽɫPYLONERGм䣬ԱA͵ĳʽܴ
    Ĺ

    ʽ                                    ʹERG
    STAIR_A.C   STAIR_B.C   ¥            ɫɫ
    FLOOR_A.C   FLOOR_B.C   ذ            ɫɫ
    PILAR_A.C   PILAR_B.C               ȫɫ
    WALL_A.C    WALL_B.C    ǽ            ȫɫ
    GATE_A.C    GATE_B.C              ȫɫ
    WINDOW_A.C  WINDOW_B.C  촰            ȫɫ


PORTER_A.C
PORTER_B.C

    ERGĳʽ
    ȡλں츽ERGERG촦ERGܷʱͣ
    ֮ǰ

    ȡõERGΪȡԼϲ֮ɫERG

    B͵ĳʽɫPYLONںм䣬ԱA͵ĳʽܴ
    Ĺ

    ʽ                                    ʹERG
    PORTER_A.C  PORTER_B.C  ERG             ȫɫ


ERGJOB_A.C
ERGJOB_B.C

    ϻϲɫ¸ֹ͡
    ȡϲ֮ɫERGѰҺ͸ERGֵ¹ɫĲ
    ͬͬ:
    ɫ        ɽذ
    ɫ        ɽ¥
    ɫ        ɽǽ
    ǳɫ      ɽ촰
    ɫ      ɽ

    B͵ĳʽɫPYLONERG֮м䣬ԱA͵ĳʽܴ
    Ĺ

    ʽ                                    ʹERG
    ERGJOB_A.C ERGJOB_B.C   ȫ        ȫɫ


SUPER_AB.C

    ⽨õͳʽ
    ϲɫɻı䣬ֶɫı伴ЧUSER
    ERGֻܷ2Ի˽ؽá
    Ѱ˳:
    ¥ݡӡǽڡšذ˳Ѱҡ

    ˳ʽɫPYLONERG֮м䣬Կɴ³Ĺ


    ʽ                                    ʹERG
    SUPER_AB.C              ȫ        ȫɫ




