📄 eepromctrlex0205.asm
字号:
mov [hl+4],a ; ucCount ;[INF] 2, 8
?L0018:
mov a,#00H ; 0 ;[INF] 2, 4
cmp a,[hl+4] ; ucCount ;[INF] 2, 8
bnc $?L0019 ;[INF] 2, 6
??bb09_ucEEPROMInitEx:
; line 79 : /* Erases data in the block next used as EEPROM */
; line 80 : if ( ucSelfFlashBlockErase( ucEEPROM_BANK[ i ], ucEEPROM_BLO
; CK[ i ] ) == TRUE ){ /* 惓忢廔椆 */
$DGL 0,57
mov a,[hl+1] ; i ;[INF] 2, 8
mov c,a ;[INF] 1, 2
push hl ;[INF] 1, 4
movw hl,#_ucEEPROM_BLOCK ;[INF] 3, 6
mov a,[hl+c] ;[INF] 1, 6
pop hl ;[INF] 1, 4
mov x,#00H ; 0 ;[INF] 2, 4
xch a,x ;[INF] 1, 2
push ax ;[INF] 1, 4
mov a,[hl+1] ; i ;[INF] 2, 8
mov c,a ;[INF] 1, 2
push hl ;[INF] 1, 4
movw hl,#_ucEEPROM_BANK ;[INF] 3, 6
mov a,[hl+c] ;[INF] 1, 6
pop hl ;[INF] 1, 4
mov x,#00H ; 0 ;[INF] 2, 4
xch a,x ;[INF] 1, 2
call !_ucSelfFlashBlockErase ;[INF] 3, 7
pop ax ;[INF] 1, 4
inc c ;[INF] 1, 2
dec c ;[INF] 1, 2
bz $?L0019 ;[INF] 2, 6
??bb0A_ucEEPROMInitEx:
; line 81 : break; /* loop end */
$DGL 0,58
??eb0A_ucEEPROMInitEx:
??eb09_ucEEPROMInitEx:
; line 82 : }
; line 83 : }
$DGL 0,60
mov a,[hl+4] ; ucCount ;[INF] 2, 8
dec a ;[INF] 1, 2
mov [hl+4],a ; ucCount ;[INF] 2, 8
br $?L0018 ;[INF] 2, 6
?L0019:
; line 84 : /* An elimination result judgment */
; line 85 : if ( ucCount <= 0 ){ /* Count<=0 (re-try over) */
$DGL 0,62
mov a,#00H ; 0 ;[INF] 2, 4
cmp a,[hl+4] ; ucCount ;[INF] 2, 8
bc $?L0023 ;[INF] 2, 6
??bb0B_ucEEPROMInitEx:
; line 86 : /* make a block the ban on use */
; line 87 : if ( ucEEPROMUnableEx( i ) == FALSE ){ /* Abnormal termin
; ation */
$DGL 0,64
mov a,[hl+1] ; i ;[INF] 2, 8
mov x,#00H ; 0 ;[INF] 2, 4
xch a,x ;[INF] 1, 2
call !_ucEEPROMUnableEx ;[INF] 3, 7
inc c ;[INF] 1, 2
bnz $?L0025 ;[INF] 2, 6
??bb0C_ucEEPROMInitEx:
; line 88 : SelfFlashModeOff(); /* changes to a normal mode */
$DGL 0,65
call !_SelfFlashModeOff ;[INF] 3, 7
; line 89 : return ( ERRDEV ); /* device error */
$DGL 0,66
movw bc,#0FDH ; 253 ;[INF] 3, 6
br !?L0002 ;[INF] 3, 6
??eb0C_ucEEPROMInitEx:
?L0025:
; line 90 : }
; line 91 : ucFlags |= FL_BLKERR; /* Block error flag On */
$DGL 0,68
mov a,[hl+3] ; ucFlags ;[INF] 2, 8
or a,#080H ; 128 ;[INF] 2, 4
mov [hl+3],a ; ucFlags ;[INF] 2, 8
??eb0B_ucEEPROMInitEx:
?L0023:
; line 92 : }
; line 93 : SelfFlashModeOff(); /* changes to a normal mode */
$DGL 0,70
call !_SelfFlashModeOff ;[INF] 3, 7
??eb07_ucEEPROMInitEx:
?L0014:
??eb01_ucEEPROMInitEx:
; line 94 : }
; line 95 : }
$DGL 0,72
mov a,[hl+1] ; i ;[INF] 2, 8
inc a ;[INF] 1, 2
mov [hl+1],a ; i ;[INF] 2, 8
br !?L0005 ;[INF] 3, 6
?L0006:
; line 96 :
; line 97 : /* Setting handling of effective blocking */
; line 98 : ucResult = TRUE; /* Return value setting */
$DGL 0,75
mov a,#00H ; 0 ;[INF] 2, 4
mov [hl+2],a ; ucResult ;[INF] 2, 8
; line 99 : if ( ucFindBlock == 0xFF ){ /* Effective block non-dis
; covery */
$DGL 0,76
mov a,[hl+5] ; ucFindBlock ;[INF] 2, 8
inc a ;[INF] 1, 2
bz $$+5 ;[INF] 2, 6
br !?L0040 ;[INF] 3, 6
??bb0D_ucEEPROMInitEx:
; line 100 : for ( i = 0 ; i < EEPROM_BLOCK_NO ; i++ ){ /* loop for use
; block several minutes */
$DGL 0,77
mov a,#00H ; 0 ;[INF] 2, 4
mov [hl+1],a ; i ;[INF] 2, 8
?L0029:
mov a,[hl+1] ; i ;[INF] 2, 8
cmp a,#02H ; 2 ;[INF] 2, 4
bc $$+5 ;[INF] 2, 6
br !?L0030 ;[INF] 3, 6
??bb0E_ucEEPROMInitEx:
; line 101 : /* Bank setting */
; line 102 : SET_BANK( ucEEPROM_BANK[ i ] );
$DGL 0,79
mov c,a ;[INF] 1, 2
push hl ;[INF] 1, 4
movw hl,#_ucEEPROM_BANK ;[INF] 3, 6
mov a,[hl+c] ;[INF] 1, 6
pop hl ;[INF] 1, 4
mov BANK,a ;[INF] 2, 5
; line 103 : /* The bank top address (a flag storage address) acquisition
; */
; line 104 : usFlagAdr = BLOCK_TO_ADDRESS( ucEEPROM_BLOCK[ i ] );
$DGL 0,81
mov a,[hl+1] ; i ;[INF] 2, 8
mov c,a ;[INF] 1, 2
push hl ;[INF] 1, 4
movw hl,#_ucEEPROM_BLOCK ;[INF] 3, 6
mov a,[hl+c] ;[INF] 1, 6
pop hl ;[INF] 1, 4
mov x,#00H ; 0 ;[INF] 2, 4
xch a,x ;[INF] 1, 2
call !_usBlockToAddress ;[INF] 3, 7
movw ax,bc ;[INF] 1, 4
mov [hl+7],a ; usFlagAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov [hl+6],a ; usFlagAdr ;[INF] 2, 8
; line 105 : /* A flag state judgment */
; line 106 : if( BLOCK_IS_BLANK( (UCHAR*)usFlagAdr ) == TRUE ){ /* A bloc
; k is a state finished with elimination? */
$DGL 0,83
xch a,x ;[INF] 1, 2
call !_ucBlankBlock ;[INF] 3, 7
inc c ;[INF] 1, 2
dec c ;[INF] 1, 2
bnz $?L0032 ;[INF] 2, 6
??bb0F_ucEEPROMInitEx:
; line 107 : ucDataBuf[ 0 ] = 0x55;
$DGL 0,84
mov a,#055H ; 85 ;[INF] 2, 4
mov !_ucDataBuf,a ;[INF] 3, 8
; line 108 : ucDataBuf[ 1 ] = 0x55;
$DGL 0,85
mov !_ucDataBuf+1,a ;[INF] 3, 8
; line 109 : ucDataBuf[ 2 ] = 0x55;
$DGL 0,86
mov !_ucDataBuf+2,a ;[INF] 3, 8
; line 110 : ucDataBuf[ 3 ] = 0x55; /* Provids block validity sett
; ing data */
$DGL 0,87
mov !_ucDataBuf+3,a ;[INF] 3, 8
; line 111 : SelfFlashModeOn(); /* changes to a self-programming
; mode */
$DGL 0,88
call !_SelfFlashModeOn ;[INF] 3, 7
; line 112 : if ( ucSelfFlashInitialize() == FALSE ){ /* self-programmi
; ng Initialization */
$DGL 0,89
call !_ucSelfFlashInitialize ;[INF] 3, 7
inc c ;[INF] 1, 2
bnz $?L0034 ;[INF] 2, 6
??bb10_ucEEPROMInitEx:
; line 113 : SelfFlashModeOff(); /* changes to a normal mode */
$DGL 0,90
call !_SelfFlashModeOff ;[INF] 3, 7
; line 114 : return ( ERRINIT ); /* initialization error */
$DGL 0,91
movw bc,#0FEH ; 254 ;[INF] 3, 6
br $?L0002 ;[INF] 2, 6
??eb10_ucEEPROMInitEx:
?L0034:
; line 115 : }
; line 116 : if ( ucSelfFlashEEPROMWrite( ucEEPROM_BANK[ i ], usFlagAdr,
; 4-1 ) == TRUE ){ /* Sets block 0 as valid block */
$DGL 0,93
movw ax,#03H ; 3 ;[INF] 3, 6
push ax ;[INF] 1, 4
mov a,[hl+6] ; usFlagAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov a,[hl+7] ; usFlagAdr ;[INF] 2, 8
push ax ;[INF] 1, 4
mov a,[hl+1] ; i ;[INF] 2, 8
mov c,a ;[INF] 1, 2
push hl ;[INF] 1, 4
movw hl,#_ucEEPROM_BANK ;[INF] 3, 6
mov a,[hl+c] ;[INF] 1, 6
pop hl ;[INF] 1, 4
mov x,#00H ; 0 ;[INF] 2, 4
xch a,x ;[INF] 1, 2
call !_ucSelfFlashEEPROMWrite ;[INF] 3, 7
pop ax ;[INF] 1, 4
pop ax ;[INF] 1, 4
inc c ;[INF] 1, 2
dec c ;[INF] 1, 2
bnz $?L0036 ;[INF] 2, 6
??bb11_ucEEPROMInitEx:
; line 117 : SelfFlashModeOff(); /* changes to a normal mode */
$DGL 0,94
call !_SelfFlashModeOff ;[INF] 3, 7
; line 118 : break;
$DGL 0,95
br $?L0030 ;[INF] 2, 6
??eb11_ucEEPROMInitEx:
?L0036:
; line 119 : }
; line 120 : else {
$DGL 0,97
??bb12_ucEEPROMInitEx:
; line 121 : /* make a block the ban on use */
; line 122 : if ( ucEEPROMUnableEx( i ) == FALSE ){ /* abnormal end */
$DGL 0,99
mov a,[hl+1] ; i ;[INF] 2, 8
mov x,#00H ; 0 ;[INF] 2, 4
xch a,x ;[INF] 1, 2
call !_ucEEPROMUnableEx ;[INF] 3, 7
inc c ;[INF] 1, 2
bnz $?L0038 ;[INF] 2, 6
??bb13_ucEEPROMInitEx:
; line 123 : SelfFlashModeOff(); /* changes to a normal mode */
$DGL 0,100
call !_SelfFlashModeOff ;[INF] 3, 7
; line 124 : ucResult = ERRDEV; /* device error */
$DGL 0,101
mov a,#0FDH ; 253 ;[INF] 2, 4
mov [hl+2],a ; ucResult ;[INF] 2, 8
; line 125 : break;
$DGL 0,102
br $?L0030 ;[INF] 2, 6
??eb13_ucEEPROMInitEx:
?L0038:
; line 126 : }
; line 127 : ucFlags |= FL_BLKERR; /* Block error flag On */
$DGL 0,104
mov a,[hl+3] ; ucFlags ;[INF] 2, 8
or a,#080H ; 128 ;[INF] 2, 4
mov [hl+3],a ; ucFlags ;[INF] 2, 8
??eb12_ucEEPROMInitEx:
; line 128 : }
; line 129 : SelfFlashModeOff(); /* changes to a normal mode */
$DGL 0,106
call !_SelfFlashModeOff ;[INF] 3, 7
??eb0F_ucEEPROMInitEx:
?L0032:
??eb0E_ucEEPROMInitEx:
; line 130 : }
; line 131 : }
$DGL 0,108
mov a,[hl+1] ; i ;[INF] 2, 8
inc a ;[INF] 1, 2
mov [hl+1],a ; i ;[INF] 2, 8
br !?L0029 ;[INF] 3, 6
?L0030:
; line 132 : if ( i >= EEPROM_BLOCK_NO ){ /* not able to set a block
; effectively */
$DGL 0,109
mov a,[hl+1] ; i ;[INF] 2, 8
cmp a,#02H ; 2 ;[INF] 2, 4
bc $?L0040 ;[INF] 2, 6
??bb14_ucEEPROMInitEx:
; line 133 : ucResult = ERRALL; /* Prohibition of all block use *
; /
$DGL 0,110
mov a,#0FBH ; 251 ;[INF] 2, 4
mov [hl+2],a ; ucResult ;[INF] 2, 8
??eb14_ucEEPROMInitEx:
?L0040:
??eb0D_ucEEPROMInitEx:
; line 134 : }
; line 135 : }
; line 136 : if ( ucResult == TRUE ){ /* Normal end */
$DGL 0,113
mov a,[hl+2] ; ucResult ;[INF] 2, 8
cmp a,#00H ; 0 ;[INF] 2, 4
bnz $?L0044 ;[INF] 2, 6
??bb15_ucEEPROMInitEx:
; line 137 : if ( ucFlags & FL_BLKERR ){ /* Those with a block erro
; r */
$DGL 0,114
mov a,[hl+3] ; ucFlags ;[INF] 2, 8
bf a.7,$?L0044 ;[INF] 3, 8
??bb16_ucEEPROMInitEx:
; line 138 : ucResult = NMLBLK; /* Normal end(Block error generat
; ing) */
$DGL 0,115
mov a,#01H ; 1 ;[INF] 2, 4
mov [hl+2],a ; ucResult ;[INF] 2, 8
??eb16_ucEEPROMInitEx:
?L0044:
??eb15_ucEEPROMInitEx:
; line 139 : }
; line 140 : }
; line 141 : return ( ucResult );
$DGL 0,118
mov a,[hl+2] ; ucResult ;[INF] 2, 8
mov b,#00H ; 0 ;[INF] 2, 4
xch a,c ;[INF] 1, 2
?L0002:
; line 142 : }
$DGL 0,119
??ef_ucEEPROMInitEx:
pop ax ;[INF] 1, 4
pop ax ;[INF] 1, 4
pop ax ;[INF] 1, 4
pop ax ;[INF] 1, 4
pop hl ;[INF] 1, 4
ret ;[INF] 1, 6
??ee_ucEEPROMInitEx:
; line 143 :
; line 144 : /*--------------------------------------------------------------
; -----
; line 145 : Function name : ucEEPROMReadEx(user access function)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -