接口: IN: DB_NO  INT  DB number
           LEN    INT  Length of source area 
       OUT:RETVAL INT  RETVAL 
       TEMP:w_db_no  Word  DB number
            w_bcc_value  Word   actual BCC value
            w_temp_val   Word   temporary value
            d_loop_akt   DWord  actual value of the loop counter
            d_loop       DWord  loop counter
  L     #LEN                        // load length                  
      L     2                           // decrement length by 2
      -I                                // last 2 bytes are reserved for BCC
      SLD   3                           // calculate bit offset
      T     #d_loop                     // save the last bit address
      L     #DB_NO                      // load DB number
      T     #w_db_no
      OPN   DB [#w_db_no]               // and open DBs
      L     0
      T     #d_loop_akt                 // initialize loop counter
      T     #w_bcc_value                // initialize the BCC
// loop for calculating the BCC for (LEN - 2) bytes
// abort if d_loop_akt = d_loop
LOOP: L     DBB [#d_loop_akt]           // load byte from DB
      L     #w_bcc_value                // load actual BCC
      XOW                               // EXOR
      T     #w_bcc_value                // and save
      L     8                           // increment the bit address by 8
      L     #d_loop_akt                 // to address the next byte
      +D    
      T     #d_loop_akt
      L     #d_loop
      <I    
      JC    LOOP
// load the actual BCC
// and compare with the last two bytes of the source DB
// example: #LEN      22
//           0..19     data bytes
//           20,21     BCC-HI, BCC-LO 
      L     #w_bcc_value                // load BCC
      AW    W#16#F0                     //separate the most significant nibble
      SLW   4                           // shift the least significant nibble to the highbyte
      OW    W#16#3000                   // OR 30h to Highbyte to receive ASCII character
      T     #w_temp_val                 // and save temporary
      L     #w_bcc_value                // load BCC
      AW    W#16#F                      //separate the least significant nibble
      OW    W#16#30                     // OR 30h to Lowbyte to receive ASCII character
      L     #w_temp_val
      OW    
      L     DBW [#d_loop_akt]           // Load BCC from DB
      ==I                               // and compare
      L     0                           // value of RETVAL, if comparison ok
      JC    ENDE
      L     -1                          // value of RETVAL, if comparison not ok
ENDE: T     #RETVAL
      BE