📄 eeprom.asm
字号:
xch a,x ;[INF] 1, 2
mov [hl+16],a ; pDataAddress ;[INF] 2, 8
mov a,[de] ;[INF] 1, 4
mov c,a ;[INF] 1, 2
mov a,[hl+4] ; j ;[INF] 2, 8
mov b,a ;[INF] 1, 2
push hl ;[INF] 1, 4
mov a,c ;[INF] 1, 2
movw hl,#_ucDataBuf ;[INF] 3, 6
mov [hl+b],a ;[INF] 1, 6
pop hl ;[INF] 1, 4
??eb01_ucEEPROMWriteEx:
; line 484
$DGL 0,25
mov a,[hl+4] ; j ;[INF] 2, 8
inc a ;[INF] 1, 2
mov [hl+4],a ; j ;[INF] 2, 8
br $?L0091 ;[INF] 2, 6
?L0092:
; line 488
$DGL 0,29
movw ax,#04H ; 4 ;[INF] 3, 6
push ax ;[INF] 1, 4
mov a,[hl+12] ; usWriteAdr ;[INF] 2, 8
add a,[hl] ; usTopAdr ;[INF] 1, 4
xch a,x ;[INF] 1, 2
mov a,[hl+13] ; usWriteAdr ;[INF] 2, 8
addc a,[hl+1] ; usTopAdr ;[INF] 2, 8
push ax ;[INF] 1, 4
mov a,[hl+6] ; ucBlock ;[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 !_ucEEPROMWriteDrv ;[INF] 3, 7
pop ax ;[INF] 1, 4
pop ax ;[INF] 1, 4
mov a,c ;[INF] 1, 2
mov [hl+3],a ; ucResult ;[INF] 2, 8
; line 490
$DGL 0,31
mov a,[hl+12] ; usWriteAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov a,[hl+13] ; usWriteAdr ;[INF] 2, 8
addw ax,#04H ; 4 ;[INF] 3, 6
mov [hl+13],a ; usWriteAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov [hl+12],a ; usWriteAdr ;[INF] 2, 8
; line 493
$DGL 0,34
mov a,[hl+3] ; ucResult ;[INF] 2, 8
cmp a,#00H ; 0 ;[INF] 2, 4
bz $?L0094 ;[INF] 2, 6
mov b,#00H ; 0 ;[INF] 2, 4
xch a,c ;[INF] 1, 2
br $?L0085 ;[INF] 2, 6
?L0094:
??eb00_ucEEPROMWriteEx:
; line 494
$DGL 0,35
mov a,[hl+5] ; i ;[INF] 2, 8
inc a ;[INF] 1, 2
mov [hl+5],a ; i ;[INF] 2, 8
br $?L0088 ;[INF] 2, 6
?L0089:
; line 496
$DGL 0,37
movw bc,#00H ; 0 ;[INF] 3, 6
?L0085:
; line 497
$DGL 0,38
??ef_ucEEPROMWriteEx:
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_ucEEPROMWriteEx:
; line 513
_ucEEPROMWriteDrv:
$DGL 1,260
push hl ;[INF] 1, 4
push ax ;[INF] 1, 4
push ax ;[INF] 1, 4
movw ax,sp ;[INF] 2, 8
movw hl,ax ;[INF] 1, 4
??bf_ucEEPROMWriteDrv:
; line 518
$DGL 0,6
call !_SelfFlashModeOn ;[INF] 3, 7
; line 520
$DGL 0,8
call !_ucSelfFlashInitialize ;[INF] 3, 7
inc c ;[INF] 1, 2
bnz $?L0098 ;[INF] 2, 6
; line 521
$DGL 0,9
??bb00_ucEEPROMWriteDrv:
; line 522
$DGL 0,10
call !_SelfFlashModeOff ;[INF] 3, 7
; line 523
$DGL 0,11
movw bc,#0FEH ; 254 ;[INF] 3, 6
br $?L0097 ;[INF] 2, 6
??eb00_ucEEPROMWriteDrv:
?L0098:
; line 526
$DGL 0,14
mov a,#03H ; 3 ;[INF] 2, 4
mov [hl+1],a ; ucCount ;[INF] 2, 8
; line 528
$DGL 0,16
?L0100:
; line 529
$DGL 0,17
??bb01_ucEEPROMWriteDrv:
; line 532
$DGL 0,20
mov a,[hl+10] ; ucWriteLen ;[INF] 2, 8
dec a ;[INF] 1, 2
mov x,#00H ; 0 ;[INF] 2, 4
xch a,x ;[INF] 1, 2
push ax ;[INF] 1, 4
mov a,[hl+8] ; usWriteAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov a,[hl+9] ; usWriteAdr ;[INF] 2, 8
push ax ;[INF] 1, 4
mov a,[hl+2] ; ucBlock ;[INF] 2, 8
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
mov a,c ;[INF] 1, 2
mov [hl],a ; ucResult ;[INF] 1, 4
; line 534
$DGL 0,22
cmp a,#00H ; 0 ;[INF] 2, 4
bz $?L0101 ;[INF] 2, 6
; line 535
$DGL 0,23
??bb02_ucEEPROMWriteDrv:
; line 536
$DGL 0,24
??eb02_ucEEPROMWriteDrv:
; line 538
$DGL 0,26
mov a,[hl] ; ucResult ;[INF] 1, 4
cmp a,#01EH ; 30 ;[INF] 2, 4
bz $?L0100 ;[INF] 2, 6
; line 539
$DGL 0,27
??bb03_ucEEPROMWriteDrv:
; line 540
$DGL 0,28
mov a,[hl+1] ; ucCount ;[INF] 2, 8
dec a ;[INF] 1, 2
mov [hl+1],a ; ucCount ;[INF] 2, 8
; line 541
$DGL 0,29
mov a,#00H ; 0 ;[INF] 2, 4
cmp a,[hl+1] ; ucCount ;[INF] 2, 8
bc $?L0100 ;[INF] 2, 6
; line 542
$DGL 0,30
??bb04_ucEEPROMWriteDrv:
; line 543
$DGL 0,31
mov a,#0F6H ; 246 ;[INF] 2, 4
mov [hl],a ; ucResult ;[INF] 1, 4
; line 544
$DGL 0,32
??eb04_ucEEPROMWriteDrv:
??eb03_ucEEPROMWriteDrv:
??eb01_ucEEPROMWriteDrv:
?L0101:
; line 549
$DGL 0,37
call !_SelfFlashModeOff ;[INF] 3, 7
; line 551
$DGL 0,39
mov a,[hl] ; ucResult ;[INF] 1, 4
mov b,#00H ; 0 ;[INF] 2, 4
xch a,c ;[INF] 1, 2
?L0097:
; line 552
$DGL 0,40
??ef_ucEEPROMWriteDrv:
pop ax ;[INF] 1, 4
pop ax ;[INF] 1, 4
pop hl ;[INF] 1, 4
ret ;[INF] 1, 6
??ee_ucEEPROMWriteDrv:
; line 567
_usEEPROMBlankAdrSearchEx:
$DGL 1,291
push hl ;[INF] 1, 4
push ax ;[INF] 1, 4
push ax ;[INF] 1, 4
push ax ;[INF] 1, 4
push ax ;[INF] 1, 4
movw ax,sp ;[INF] 2, 8
movw hl,ax ;[INF] 1, 4
??bf_usEEPROMBlankAdrSearchEx:
; line 572
$DGL 0,6
mov a,[hl+6] ; ucBlock ;[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+2],a ; usTopAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov [hl+1],a ; usTopAdr ;[INF] 2, 8
; line 575
$DGL 0,9
mov [hl+3],a ; usCurrAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov [hl+4],a ; usCurrAdr ;[INF] 2, 8
; line 576
$DGL 0,10
?L0110:
mov a,[hl+3] ; usCurrAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov a,[hl+4] ; usCurrAdr ;[INF] 2, 8
add a,#04H ; 4 ;[INF] 2, 4
cmp a,[hl+4] ; usCurrAdr ;[INF] 2, 8
bnz $?L0112 ;[INF] 2, 6
xch a,x ;[INF] 1, 2
cmp a,[hl+3] ; usCurrAdr ;[INF] 2, 8
?L0112:
bc $?L0111 ;[INF] 2, 6
bz $?L0111 ;[INF] 2, 6
; line 577
$DGL 0,11
??bb00_usEEPROMBlankAdrSearchEx:
; line 578
$DGL 0,12
mov a,[hl+3] ; usCurrAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov a,[hl+4] ; usCurrAdr ;[INF] 2, 8
call !_ucBlankBlock ;[INF] 3, 7
inc c ;[INF] 1, 2
dec c ;[INF] 1, 2
bnz $?L0113 ;[INF] 2, 6
; line 579
$DGL 0,13
??bb01_usEEPROMBlankAdrSearchEx:
; line 580
$DGL 0,14
mov a,[hl+3] ; usCurrAdr ;[INF] 2, 8
sub a,[hl+1] ; usTopAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov a,[hl+4] ; usCurrAdr ;[INF] 2, 8
subc a,[hl+2] ; usTopAdr ;[INF] 2, 8
movw bc,ax ;[INF] 1, 4
br $?L0109 ;[INF] 2, 6
??eb01_usEEPROMBlankAdrSearchEx:
?L0113:
; line 583
$DGL 0,17
mov a,[hl+3] ; usCurrAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov a,[hl+4] ; usCurrAdr ;[INF] 2, 8
addw ax,#04H ; 4 ;[INF] 3, 6
mov [hl+4],a ; usCurrAdr ;[INF] 2, 8
xch a,x ;[INF] 1, 2
mov [hl+3],a ; usCurrAdr ;[INF] 2, 8
??eb00_usEEPROMBlankAdrSearchEx:
br $?L0110 ;[INF] 2, 6
?L0111:
; line 586
$DGL 0,20
movw bc,#00H ; 0 ;[INF] 3, 6
?L0109:
; line 587
$DGL 0,21
??ef_usEEPROMBlankAdrSearchEx:
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_usEEPROMBlankAdrSearchEx:
@@CALF CSEG FIXED
END
; *** Code Information ***
;
; $FILE E:\WorkDir\SMSTransfer\SiemensTC35i\Eeprom.c
;
; $FUNC EnableFLMD(27)
; void=(void)
; CODE SIZE= 5 bytes, CLOCK_SIZE= 14 clocks, STACK_SIZE= 0 bytes
;
; $FUNC DisableFLMD(46)
; void=(void)
; CODE SIZE= 5 bytes, CLOCK_SIZE= 14 clocks, STACK_SIZE= 0 bytes
;
; $FUNC ucUseProhibitionBlock(59)
; bc=(pointer p:ax)
; CODE SIZE= 45 bytes, CLOCK_SIZE= 138 clocks, STACK_SIZE= 2 bytes
;
; $FUNC ucEffectiveBlock(74)
; bc=(pointer p:ax)
; CODE SIZE= 45 bytes, CLOCK_SIZE= 138 clocks, STACK_SIZE= 2 bytes
;
; $FUNC IsBlockValid(89)
; bc=(unsigned char ucBlock:x)
; CODE SIZE= 43 bytes, CLOCK_SIZE= 140 clocks, STACK_SIZE= 10 bytes
;
; $CALL usBlockToAddress(93)
; bc=(unsigned short:ax)
;
; $CALL ucEffectiveBlock(95)
; bc=(pointer:ax)
;
; $FUNC ucBlankBlock(109)
; bc=(pointer p:ax)
; CODE SIZE= 41 bytes, CLOCK_SIZE= 130 clocks, STACK_SIZE= 2 bytes
;
; $FUNC SelfFlashModeOn(127)
; void=(void)
; CODE SIZE= 11 bytes, CLOCK_SIZE= 32 clocks, STACK_SIZE= 2 bytes
;
; $CALL EnableFLMD(128)
; void=(void)
;
; $CALL FlashStart(131)
; void=(void)
;
; $FUNC SelfFlashModeOff(143)
; void=(void)
; CODE SIZE= 11 bytes, CLOCK_SIZE= 32 clocks, STACK_SIZE= 2 bytes
;
; $CALL FlashEnd(145)
; void=(void)
;
; $CALL DisableFLMD(148)
; void=(void)
;
; $FUNC ucSelfFlashInitialize(164)
; bc=(void)
; CODE SIZE= 22 bytes, CLOCK_SIZE= 54 clocks, STACK_SIZE= 2 bytes
;
; $CALL FlashEnv(165)
; void=(unsigned short:ax)
;
; $CALL CheckFLMD(166)
; bc=(void)
;
; $FUNC ucSelfFlashBlockErase(181)
; bc=(unsigned char ucBank:x, unsigned char ucBlock:[sp+2])
; CODE SIZE= 101 bytes, CLOCK_SIZE= 297 clocks, STACK_SIZE= 10 bytes
;
; $CALL FlashBlockBlankCheck(188)
; bc=(int:ax, int:[sp+2])
;
; $CALL FlashBlockErase(195)
; bc=(int:ax, int:[sp+2])
;
; $CALL FlashEnv(206)
; void=(unsigned short:ax)
;
; $FUNC ucSelfFlashEEPROMWrite(227)
; bc=(unsigned char ucBank:x, unsigned short usAddr:[sp+2],
; unsigned char ucNum:[sp+4])
; CODE SIZE= 73 bytes, CLOCK_SIZE= 221 clocks, STACK_SIZE= 12 bytes
;
; $CALL EEPROMWrite(236)
; bc=(pointer:ax, int:[sp+2], unsigned short:[sp+4])
;
; $FUNC ucSelfFlashWordWrite(259)
; bc=(unsigned char ucBank:x, unsigned short usSetAdr:[sp+2],
; unsigned char ucNum:[sp+4])
; CODE SIZE= 76 bytes, CLOCK_SIZE= 252 clocks, STACK_SIZE= 12 bytes
;
; $CALL FlashWordWrite(268)
; bc=(pointer:ax, int:[sp+2], unsigned short:[sp+4])
;
; $FUNC usBlockToAddress(288)
; bc=(unsigned short usBlock:ax)
; CODE SIZE= 14 bytes, CLOCK_SIZE= 36 clocks, STACK_SIZE= 0 bytes
;
; $FUNC ucEEPROMInitEx(306)
; bc=(unsigned char ucBlock:x)
; CODE SIZE= 230 bytes, CLOCK_SIZE= 653 clocks, STACK_SIZE= 14 bytes
;
; $CALL usBlockToAddress(319)
; bc=(unsigned short:ax)
;
; $CALL SelfFlashModeOn(322)
; void=(void)
;
; $CALL ucSelfFlashInitialize(325)
; bc=(void)
;
; $CALL SelfFlashModeOff(327)
; void=(void)
;
; $CALL ucSelfFlashBlockErase(336)
; bc=(int:ax, int:[sp+2])
;
; $CALL SelfFlashModeOff(342)
; void=(void)
;
; $CALL usBlockToAddress(355)
; bc=(unsigned short:ax)
;
; $CALL SelfFlashModeOn(364)
; void=(void)
;
; $CALL ucSelfFlashInitialize(366)
; bc=(void)
;
; $CALL SelfFlashModeOff(368)
; void=(void)
;
; $CALL ucSelfFlashEEPROMWrite(372)
; bc=(int:ax, unsigned short:[sp+2], int:[sp+4])
;
; $CALL SelfFlashModeOff(375)
; void=(void)
;
; $CALL SelfFlashModeOff(379)
; void=(void)
;
; $FUNC ucEEPROMReadEx(398)
; bc=(unsigned char ucBlock:x, unsigned short usReadAdr:[sp+2],
; unsigned short usReadLen:[sp+4], pointer pDataAddress:[sp+6])
; CODE SIZE= 122 bytes, CLOCK_SIZE= 409 clocks, STACK_SIZE= 12 bytes
;
; $CALL usBlockToAddress(406)
; bc=(unsigned short:ax)
;
; $FUNC ucReadOneByte(432)
; bc=(unsigned char ucBlock:x, unsigned short usReadAdr:[sp+2])
; CODE SIZE= 50 bytes, CLOCK_SIZE= 171 clocks, STACK_SIZE= 10 bytes
;
; $CALL usBlockToAddress(437)
; bc=(unsigned short:ax)
;
; $FUNC ucEEPROMWriteEx(460)
; bc=(unsigned char ucBlock:x, unsigned short usWriteAdr:[sp+2],
; unsigned short usWriteLen:[sp+4], pointer pDataAddress:[sp+6])
; CODE SIZE= 184 bytes, CLOCK_SIZE= 611 clocks, STACK_SIZE= 16 bytes
;
; $CALL usBlockToAddress(468)
; bc=(unsigned short:ax)
;
; $CALL ucEEPROMWriteDrv(488)
; bc=(int:ax, unsigned short:[sp+2], int:[sp+4])
;
; $FUNC ucEEPROMWriteDrv(513)
; bc=(unsigned char ucBlock:x, unsigned short usWriteAdr:[sp+2],
; unsigned char ucWriteLen:[sp+4])
; CODE SIZE= 86 bytes, CLOCK_SIZE= 257 clocks, STACK_SIZE= 12 bytes
;
; $CALL SelfFlashModeOn(518)
; void=(void)
;
; $CALL ucSelfFlashInitialize(520)
; bc=(void)
;
; $CALL SelfFlashModeOff(522)
; void=(void)
;
; $CALL ucSelfFlashEEPROMWrite(532)
; bc=(int:ax, unsigned short:[sp+2], int:[sp+4])
;
; $CALL SelfFlashModeOff(549)
; void=(void)
;
; $FUNC usEEPROMBlankAdrSearchEx(567)
; bc=(unsigned char ucBlock:x)
; CODE SIZE= 100 bytes, CLOCK_SIZE= 332 clocks, STACK_SIZE= 12 bytes
;
; $CALL usBlockToAddress(572)
; bc=(unsigned short:ax)
;
; $CALL ucBlankBlock(578)
; bc=(pointer:ax)
; Target chip : uPD78F0513_44
; Device file : V2.10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -