📄 flash.lis
字号:
0093 ; asm("ldhx #_DoWriteFlash");
0093 4500C6 ldhx #_DoWriteFlash
0096 .dbline 67
0096 ; asm("sthx _g_bBegin");
0096 3507 sthx _g_bBegin
0098 .dbline 68
0098 ; asm("ldhx #_WriteFlash_End");
0098 45013B ldhx #_WriteFlash_End
009B .dbline 69
009B ; asm("sthx _g_bEnd");
009B 3505 sthx _g_bEnd
009D .dbline 71
009D ;
009D ; memcpy((void *)PrgIOfRam, (void *)g_bBegin, g_bEnd - g_bBegin);
009D B606 lda *_g_bEnd+1
009F B008 sub *_g_bBegin+1
00A1 B700 sta *__r1
00A3 B605 lda *_g_bEnd
00A5 B207 sbc *_g_bBegin
00A7 B700 sta *__r0
00A9 B600 lda *__r1
00AB 87 psha
00AC B600 lda *__r0
00AE 87 psha
00AF B608 lda *_g_bBegin+1
00B1 87 psha
00B2 B607 lda *_g_bBegin
00B4 87 psha
00B5 A609 lda #<_PrgIOfRam
00B7 87 psha
00B8 A609 lda #>_PrgIOfRam
00BA 87 psha
00BB CD0000 jsr _memcpy
00BE A706 ais #6
00C0 95 tsx
00C1 .dbline 75
00C1 ;
00C1 ;
00C1 ;
00C1 ; asm("ldhx #_PrgIOfRam");
00C1 450009 ldhx #_PrgIOfRam
00C4 .dbline 76
00C4 ; asm("jsr ,x");
00C4 FD jsr ,x
00C5 .dbline -2
00C5 L10:
00C5 .dbline 0 ; func end
00C5 81 rts
00C6 .dbsym l n 6 I
00C6 .dbsym l data 4 pc
00C6 .dbsym l address 2 pc
00C6 .dbend
00C6 .dbfunc s DoWriteFlash _DoWriteFlash fV
00C6 ; j -> 0,X
00C6 ; i -> 1,X
00C6 _DoWriteFlash:
00C6 .dbline -1
00C6 A7FE ais #-2
00C8 95 tsx
00C9 .dbline 82
00C9 ;
00C9 ;
00C9 ;
00C9 ; }
00C9 ; static void DoWriteFlash(void)
00C9 ; {
00C9 .dbline 84
00C9 ; UINT8 i, j;
00C9 ; FLCR = 0b00000001;
00C9 A601 lda #1
00CB C7FE08 sta 0xfe08
00CE .dbline 85
00CE ; j = FLBPR;
00CE C6FF7E lda 0xff7e
00D1 F7 sta ,X
00D2 .dbline 86
00D2 ; *((volatile UINT8*)g_pAddress) = 68;
00D2 A644 lda #68
00D4 5503 ldhx *_g_pAddress
00D6 F7 sta ,x
00D7 95 tsx
00D8 .dbline 87
00D8 ; asm("bsr _Delay2");
00D8 AD52 bsr _Delay2
00DA .dbline 88
00DA ; FLCR = 0b00001001;
00DA A609 lda #9
00DC C7FE08 sta 0xfe08
00DF .dbline 89
00DF ; asm("bsr _Delay2");
00DF AD4B bsr _Delay2
00E1 .dbline 90
00E1 ; for(j = 0 ;j < g_nNum; ++j)
00E1 7F clr ,X
00E2 2033 bra L15
00E4 L12:
00E4 .dbline 91
00E4 ; {
00E4 .dbline 92
00E4 ; *((volatile UINT8*)g_pAddress + j) = g_pData[j];
00E4 3F00 clr *__r0
00E6 F6 lda ,X
00E7 BB02 add *_g_pData+1
00E9 B700 sta *__r1
00EB B600 lda *__r0
00ED B901 adc *_g_pData
00EF B700 sta *__r0
00F1 5500 ldhx *__r0
00F3 F6 lda ,x
00F4 95 tsx
00F5 B700 sta *__r1
00F7 3F00 clr *__r2
00F9 F6 lda ,X
00FA BB04 add *_g_pAddress+1
00FC B700 sta *__r3
00FE B600 lda *__r2
0100 B903 adc *_g_pAddress
0102 B700 sta *__r2
0104 B600 lda *__r1
0106 5500 ldhx *__r2
0108 F7 sta ,x
0109 95 tsx
010A .dbline 93
010A 6F01 clr 1,X
010C 2002 bra L19
010E L16:
010E .dbline 93
010E L17:
010E .dbline 93
010E 6C01 inc 1,X
0110 L19:
0110 .dbline 93
0110 E601 lda 1,X
0112 A11E cmp #30
0114 25F8 blo L16
0116 .dbline 94
0116 L13:
0116 .dbline 90
0116 7C inc ,X
0117 L15:
0117 .dbline 90
0117 F6 lda ,X
0118 B100 cmp *_g_nNum
011A 25C8 blo L12
011C .dbline 95
011C ; for(i = 0; i < 30; ++i);
011C ; }
011C ; FLCR = 0b00001000;
011C A608 lda #8
011E C7FE08 sta 0xfe08
0121 .dbline 96
0121 ; asm("bsr _Delay2");
0121 AD09 bsr _Delay2
0123 .dbline 97
0123 ; FLCR = 0b00000000;
0123 4F clra
0124 C7FE08 sta 0xfe08
0127 .dbline 98
0127 ; asm("bsr _Delay2");
0127 AD03 bsr _Delay2
0129 .dbline -2
0129 L11:
0129 A702 ais #2
012B .dbline 0 ; func end
012B 81 rts
012C .dbsym l j 0 c
012C .dbsym l i 1 c
012C .dbend
012C .dbfunc s Delay2 _Delay2 fV
012C ; i -> 0,X
012C _Delay2:
012C .dbline -1
012C A7FF ais #-1
012E 95 tsx
012F .dbline 102
012F ;
012F ; }
012F ; static void Delay2(void)
012F ; {
012F .dbline 104
012F 7F clr ,X
0130 2001 bra L24
0132 L21:
0132 .dbline 104
0132 L22:
0132 .dbline 104
0132 7C inc ,X
0133 L24:
0133 .dbline 104
0133 ; UINT8 i;
0133 ; for(i = 0; i < 10; ++i);
0133 F6 lda ,X
0134 A10A cmp #10
0136 25FA blo L21
0138 .dbline -2
0138 L20:
0138 A701 ais #1
013A .dbline 0 ; func end
013A 81 rts
013B .dbsym l i 0 c
013B .dbend
013B .dbfunc s WriteFlash_End _WriteFlash_End fV
013B _WriteFlash_End:
013B .dbline -1
013B .dbline 107
013B ; }
013B ; static void WriteFlash_End(void)
013B ; {
013B .dbline -2
013B L25:
013B .dbline 0 ; func end
013B 81 rts
013C .dbend
.area bss
0000 .dbfile flash.c
0000 _g_nNum:
0000 .blkb 1
0001 .dbsym s g_nNum _g_nNum c
0001 _g_pData:
0001 .blkb 2
0003 .dbsym s g_pData _g_pData pc
0003 _g_pAddress:
0003 .blkb 2
0005 .dbsym s g_pAddress _g_pAddress pc
0005 _g_bEnd:
0005 .blkb 2
0007 .dbsym s g_bEnd _g_bEnd i
0007 _g_bBegin:
0007 .blkb 2
0009 .dbsym s g_bBegin _g_bBegin i
0009 _PrgIOfRam::
0009 .blkb 1
000A .dbsym e PrgIOfRam _PrgIOfRam A[1:1]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -