一区二区三区成人-一区二区三区www-一区二区三区 日韩-一区二区日韩欧美-一区二区日韩精品中文字幕-一区二区日韩

duhuaiguo
級別: *
精華主題: * 篇
發帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看duhuaiguo的 主題 / 回貼
樓主  發表于: 2009-09-01 18:48
This is the main handler of the MMI profile container

Parameters : fb_in_offset   First byte in the input container
             fb_out_offset  First byte in the output container
             db_address     Number of the database to use
             con_len        Length of container in bytes (min.32)  

Example : The terminal is configured to be on input and output byte 64,
          32 bytes allocated  and database to communcate with is 51:
          fb_in_offset  = 64
          fb_out_offset = 64
          db_address    = 51
          con_len       = 32

The function block handles one complete container in one scan. If read index,
FC111 is called.
If write index, FC112 is called.
Note that the control byte is not set until next scan, to avoid timing problems



      L     #fb_in_offset               // Incontainer start address
      T     MW   496                    // Remember incontainer start
      T     MW   500

      L     #fb_in_offset               // Incontainer start address
      SLD   3                           //
      LAR1  
      L     IB [AR1,P#0.0]              // Get the proper control byte from inp.container
      T     MB   486                    // Store it

      L     #fb_out_offset              // Outcontainer start address
      T     MW   498                    // Store it
      T     MW   502

      L     #m_110                      // Previous input control byte
      T     MB   479                    // Store it

      L     0
      T     MB   474                    // Clear error code

      A     M    479.0
      R     M    479.0                  // Clear error flag

      A     M    486.6                  // Terminal present ?
      JC    WEI1                        //
      L     1                           // Error 1 : Comm error
      JU    FEH                         //

WEI1: A     M    486.5                  // Does the terminal toggle the toggle bit ?
      AN    M    486.5
      L     S5T#2S                      // Timeout timer
      SD    "Terminal timeout"
      AN    "Terminal timeout"
      JC    WEI2
      L     2                           // Error 2 : Terminal not in RUN
      JU    FEH

WEI2: A     M    486.7                  // Test if new container
      A     M    479.7                  // Compare old container byte with the new one
      O    
      AN    M    486.7
      AN    M    479.7
      JC    ENDE                        // No new container

      A     M    486.7                  // Pulse
      =     M    479.7

      L     MW   498                    // Outcontainer pointer
      L     4
      +I    
      T     MW   498                    // First data position : 4

      L     MW   496                    // Incontainer pointer
      L     4
      +I    
      T     MW   496                    // First index position : 4
//    
LOOP: NOP   0
      L     MW   496                    // Incontainer pointer
      ITD  
      SLD   3
      T     MD   504                    // Make it double word
      L     IB [MD 504]                 // Get first index byte
      T     MB   486                    // Store it
      L     MB   486
      L     0
      ==I  
      JC    DONE                        // Jump out if index is 0

      A     M    486.7                  // Is it a read index ?
      JC    ANK1
      CALL  "READ INDEX OP PANEL"       // Then call read index function
       DataBase:=#db_address
ANK1: NOP   0
      L     MB   478                    // Check return value from FC111
      L     0
      ==I  
      JC    WEI3                        // Was there an error return ?
      AN    M    479.0
      S     M    479.0                  // Then, set error bit
      L     MB   478
      JU    FEH                         // Jump to error
WEI3: AN    M    486.7                  // Is it a write index ?
      JC    WEI4
      CALL  "WRITE INDEX OP PANEL"      // Then call write index function
       DataBase:=#db_address
      L     MB   478                    // Check return value from FC112
      L     0
      ==I  
      JC    WEI4                        // Was there an error return ?
      AN    M    479.0
      S     M    479.0                  // Then set error bit
      L     MB   478                    //
      JU    FEH                         // Jump to error
WEI4: L     MW   496                    // Check if incontainer is done
      L     MW   500
      -I    
      L     #con_len
      <I    
      A(    
      L     MW   498                    // .. or that outcontainer is done
      L     MW   502
      -I    
      L     #con_len
      <I    
      )    
      JC    LOOP                        // Continue id conatiner not completed
DONE: L     #fb_in_offset               // Container done !
      SLD   3
      LAR1  
      L     IB [AR1,P#0.0]              // Get input control byte

      T     MB   486                    // Store it
      JU    ENDE
//-------  ERROR HANDLING  ---------
FEH:  T     MB   474                    // Store error code
FEH1: L     MW   498
      ITD  
      SLD   3
      T     MD   504

      L     0                           // Write controlbyte to output container
      T     QB [MD 504]

      L     1
      L     MW   498

      +I    
      T     MW   498

      L     MW   502
      -I                                // INTERNES MERKERBYTE SICHERN

      L     32
      <I    

      JC    FEH1
ENDE: NOP   0
      NOP   0
      AN    M    486.6
      S     M    486.6                  // Set the COM-bit
      AN    M    486.5
      =     M    486.5                  // Toggle the Toggel-bit
      A     M    479.0
      =     M    486.4
//----------------------
      L     MB   486                    // Delay answer one scan to avoid timing problems
      T     #out_this_cycle
      L     #fb_out_offset
      SLD   3
      LAR1  
      L     #out_last_cycle
      T     QB [AR1,P#0.0]
      L     #out_this_cycle
      T     #out_last_cycle
      L     MB   479
      T     #m_110
      NOP   0

主站蜘蛛池模板: 国产欧美一区二区精品性色99 | 日韩成人在线影院 | 成人夜视频寂寞在线观看 | 日本视频在线免费播放 | 久久久久久久久女黄9999 | 国产大片免费在线观看 | 爽好舒服使劲添高h视频 | 扒开斗罗美女了的胸罩和内裤漫画 | chinese帅男gayvideo| 国产精品2 | 精品久久一 | 日日草视频 | 互换娇妻爽文100系列小说 | 免费人成在线观看69式小视频 | 多人群p全肉小说 | 国产91对白在线观看 | 91香蕉国产在线观看人员 | 香蕉视频在线观看网站 | 国产特级 | 脱女学小内内摸出水网站免费 | 精品无人区一区二区三区 | 大伊香蕉精品二区视频在线 | 国产成人精品高清不卡在线 | 人人人人人看碰人人免费 | 亚洲精品午夜在线观看 | 国产精品刺激好大好爽视频 | 日韩精品一区二区三区毛片 | 热99re国产久热在线 | 91在线视频导航 | 国产精品免费观在线 | 免费看男女做好爽好硬视频 | 精品小视频在线观看 | 亚洲bt区 | 99久久香蕉国产综合影院 | 性派对videofreeparty | 亚洲精品一 | 欧美办公室激情videos高清 | 我的好妈妈7中字在线观看韩国 | 欧美成人免费观看bbb | 毛片应用 | 女人是男人的未来1分49分 |