📄 dataosforlcd.lst
字号:
Sunplus u'nSP Assembler - Ver. 1.14.3.1
Listing File Has Been Relocated
//专为任意点显示而存在的代码
/////----- 图形显示模式 -----/////
.define PAINT_COVER 0
.define PAINT_SET 1
.define PAINT_CLR 2
.define PAINT_REV 3
.define PAINT_RECO 4
000001A4 .ram
.external _CurPaintMode //Painting mode
.external _Shift_Data_buf//: .DW 5 Dup(0)
.external _Cover_Data_buf
000001A4 00 00 .var Data_Add
000001A5 00 00 .var Num_buf
000001A6 00 00 .var Cover_Mask
000001A7 00 00 .var Bit_Num
.external _Shift_Buff
0000A983 .code
.public _F_Data_Cover
_F_Data_Cover:
0000A983 88 DA push r5 to [sp]
0000A984 08 0B 01 00 r5 = sp+1
0000A986 98 D8 push r2,r4 to [sp]
0000A987 03 92 r1 = [r5+3] //Get the Buffer Address
0000A988 04 94 r2 = [r5+4] //Get Shift Num
0000A989 05 96 r3 = [r5+5] //Get All the Data`s number want shift
0000A98A 06 98 r4 = [r5+6] //Get bit Numbers
0000A98B 40 F0 D9 A9 call F_Data_Move
0000A98D 1B D7 A5 01 [Num_buf] = r3
0000A98F 09 93 45 02 r1 = _Shift_Data_buf
0000A991 43 02 r1 = r1+3
0000A992 19 D3 A4 01 [Data_Add] = r1// to [sp]
0000A994 1C D9 A7 01 [Bit_Num] = r4
0000A996 0A C5 FF FF test r2,0xffff
0000A998 01 4E jnz F_Data_Cover_L1
0000A999 0E EE jmp F_Data_Cover_NotS
F_Data_Cover_L1: //Shift the Number of the source begin....
0000A99A 11 93 A4 01 r1 = [Data_Add]
0000A99C 13 97 A5 01 r3 = [Num_buf]
0000A99E 40 98 r4 = 0
0000A99F 5C 99 r4 = r4 lsl 4
F_Data_Cover_L2:
0000A9A0 C1 98 r4 = [r1]
0000A9A1 84 99 r4 = r4 rol 1
0000A9A2 C9 D8 [r1--] = r4
0000A9A3 54 99 r4 = r4 lsl 3
0000A9A4 41 26 r3-=1
0000A9A5 46 4E jnz F_Data_Cover_L2
0000A9A6 41 24 r2-=1
0000A9A7 4E 4E jnz F_Data_Cover_L1 //...end
F_Data_Cover_NotS:
0000A9A8 13 97 A5 01 r3 = [Num_buf] //Get the data number for all(word)
0000A9AA 0C 99 41 02 r4 = _Shift_Buff //index to Data of LCD Read Back
0000A9AC 43 08 r4 += 3
0000A9AD 0A 95 45 02 r2 = _Shift_Data_buf //index to Data of Source
0000A9AF 43 04 r2 += 3
0000A9B0 11 93 3B 02 r1 = [_CurPaintMode]
0000A9B2 02 5E jz ?F_Data_Cover_Cover
0000A9B3 44 42 cmp r1,PAINT_RECO//VER
0000A9B4 0A 4E jnz ?F_Data_Cover_Not
?F_Data_Cover_Cover:
0000A9B5 0D 9B 49 02 r5 = _Cover_Data_buf
0000A9B7 43 0A r5 += 3
?F_Data_Cover_L21:
0000A9B8 CC 92 r1 = [r4--]
0000A9B9 CD B2 r1 = r1 & [r5--]
0000A9BA C2 A2 r1 = r1 | [r2]
0000A9BB CA D2 [r2--] = r1
0000A9BC 41 26 r3 -= 1
0000A9BD 46 4E jnz ?F_Data_Cover_L21
0000A9BE 17 EE jmp F_Data_Cover_Exit
?F_Data_Cover_Not:
0000A9BF 41 42 cmp r1,PAINT_SET
0000A9C0 06 4E jnz ?F_Data_Cover_Not1
?F_Data_SET_L1:
0000A9C1 CC 92 r1 = [r4--]
0000A9C2 C2 A2 r1 = r1|[r2]
0000A9C3 CA D2 [r2--] = r1
0000A9C4 41 26 r3-=1
0000A9C5 45 4E jnz ?F_Data_SET_L1
0000A9C6 0F EE jmp F_Data_Cover_Exit
?F_Data_Cover_Not1:
0000A9C7 42 42 cmp r1,PAINT_CLR
0000A9C8 08 4E jnz ?F_Data_Cover_Not2
?F_Data_CLR_L1:
0000A9C9 C2 92 r1 = [r2]
0000A9CA 09 83 FF FF r1 = r1^0xffff
0000A9CC CC B2 r1 = r1&[r4--]
0000A9CD CA D2 [r2--] = r1
0000A9CE 41 26 r3-=1
0000A9CF 47 4E jnz ?F_Data_CLR_L1
0000A9D0 05 EE jmp F_Data_Cover_Exit
?F_Data_Cover_Not2:
?F_Data_REV_L1:
0000A9D1 CC 92 r1 = [r4--]
0000A9D2 C2 82 r1 = r1^[r2]
0000A9D3 CA D2 [r2--] = r1
0000A9D4 41 26 r3-=1
0000A9D5 45 4E jnz ?F_Data_REV_L1
F_Data_Cover_Exit:
0000A9D6 98 92 pop r2,r4 from [sp]
0000A9D7 88 98 pop r5 from [sp]
0000A9D8 90 9A retf
F_Data_Move:
0000A9D9 A0 DA push r2,r5 to [sp]
0000A9DA 0C B7 0F 00 r3 = r4&0x0f
0000A9DC 7C 99 r4 = r4 lsr 4
0000A9DD 04 03 r1 = r1+r4
0000A9DE 0B C7 FF 00 test r3,0xff
0000A9E0 02 4E jnz F_Data_Move_NotAd
0000A9E1 41 22 r1-=1
0000A9E2 01 EE jmp F_Data_Move_22
F_Data_Move_NotAd:
0000A9E3 41 08 r4 = r4+1
F_Data_Move_22:
0000A9E4 0A 95 45 02 r2 = _Shift_Data_buf
0000A9E6 43 04 r2 = r2+3
0000A9E7 15 9B 3B 02 r5 = [_CurPaintMode]
0000A9E9 44 4A cmp r5,PAINT_RECO
0000A9EA 07 4E jnz F_Data_Move_Loop
F_Data_Move_Loop1:
0000A9EB C9 96 r3 = [r1--]
0000A9EC 0B 87 FF FF r3 = r3^0xffff
0000A9EE CA D6 [r2--] = r3 //bug1
0000A9EF 41 28 r4-=1
0000A9F0 46 4E jnz F_Data_Move_Loop1
0000A9F1 04 EE jmp F_Data_Move_Exit
F_Data_Move_Loop:
0000A9F2 C9 96 r3 = [r1--]
0000A9F3 CA D6 [r2--] = r3 //bug1
0000A9F4 41 28 r4-=1
0000A9F5 44 4E jnz F_Data_Move_Loop
F_Data_Move_Exit:
0000A9F6 A0 92 pop r2,r5 from [sp]
0000A9F7 90 9A retf
//************************************************************************
//
// 设计者: xinqiang
// 描 述:
// 日 期: 2005.6.20
// 版本号: 1.0
//*************************************************************************
.public _F_Cover_Initial
_F_Cover_Initial:
0000A9F8 88 DA push r5 to [sp]
0000A9F9 08 0B 01 00 r5 = sp+1
0000A9FB A0 D8 push r1,r4 to [sp]
0000A9FC 04 94 r2 = [r5+4] //Get the shift number
// r4 = [r5+5]
0000A9FD 03 92 r1 = [r5+3] //Get the bit number
0000A9FE 01 4E jnz ?F_Cover_NZ
0000A9FF 26 EE jmp ?F_Cover_Exit
?F_Cover_NZ:
0000AA00 0D 9B 49 02 r5 = _Cover_Data_buf
0000AA02 43 0A r5+=3
0000AA03 44 96 r3 = 4
0000AA04 0C 99 FF FF r4 = 0xffff
0000AA06 C5 D8 [r5] = r4
0000AA07 40 98 r4 = 0
0000AA08 5C 99 r4 = r4 lsl 4
?F_Cover_Loop1:
0000AA09 C5 98 r4 = [r5]
0000AA0A 84 99 r4 = r4 rol 1
0000AA0B CD D8 [r5--] = r4
0000AA0C 94 99 r4 = r4 rol 3
0000AA0D 41 26 r3-=1
0000AA0E 46 4E jnz ?F_Cover_Loop1
0000AA0F 44 0A r5+=4
0000AA10 40 98 r4 = 0
0000AA11 5C 99 r4 = r4 lsl 4
0000AA12 44 96 r3 = 4
0000AA13 41 22 r1-=1
0000AA14 4C 4E jnz ?F_Cover_Loop1
0000AA15 0A C5 FF FF test r2,0xffff
0000AA17 01 4E jnz ?F_Cover_Loop2
0000AA18 0D EE jmp ?F_Cover_Exit
?F_Cover_Loop2:
0000AA19 0C 99 FF FF r4 = 0xffff;
0000AA1B 5C 99 r4 = r4 lsl 4
0000AA1C 44 96 r3 = 4
?F_Cover_Loop3:
0000AA1D C5 98 r4 = [r5]
0000AA1E 84 99 r4 = r4 rol 1
0000AA1F CD D8 [r5--] = r4
0000AA20 54 99 r4 = r4 lsl 3
0000AA21 41 26 r3-=1
0000AA22 46 4E jnz ?F_Cover_Loop3
0000AA23 44 0A r5+=4
0000AA24 41 24 r2-=1
0000AA25 4D 4E jnz ?F_Cover_Loop2
?F_Cover_Exit:
0000AA26 A0 90 pop r1,r4 from [sp]
0000AA27 88 98 pop r5 from [sp]
0000AA28 90 9A retf
//****************************************************************************************************
// 128X64I液晶底层驱动画圆误差计算 W_Red_Err(int *a,int *b,int *r)
// 设计者: powerint
// 描 述: 系统初始化
// 日 期: 2004.5.9
// 版本号: 1.2
//****************************************************************************************************
.PUBLIC _W_Red_Err
0000AA29 88 DA _W_Red_Err: push bp,bp to [sp]
0000AA2A 08 0B 01 00 bp = sp+1
0000AA2C 03 96 r3 = [bp+3]
0000AA2D C3 96 r3 = [r3]
0000AA2E 41 06 r3 = r3+1
0000AA2F 03 99 r4 = r3
0000AA30 0C F6 mr = r3*r4,us
0000AA31 03 93 r1 = r3
0000AA32 04 96 r3 = [bp+4]
0000AA33 C3 96 r3 = [r3]
0000AA34 03 99 r4 = r3
0000AA35 0C F6 mr = r3*r4,us
0000AA36 03 03 r1+= r3
0000AA37 05 96 r3 = [bp+5]
0000AA38 C3 96 r3 = [r3]
0000AA39 03 99 r4 = r3
0000AA3A 0C F6 mr = r3*r4,us
0000AA3B 03 23 r1-=r3
0000AA3C 06 3E jl squ1
0000AA3D 04 98 r4 = [bp+4]
0000AA3E C4 96 r3 = [r4]
0000AA3F 03 23 r1-= r3
0000AA40 02 3E jl squ1
0000AA41 41 26 r3-=1
0000AA42 C4 D6 [r4] = r3;
0000AA43 03 98 squ1: r4 = [bp+3]
0000AA44 C4 96 r3 = [r4]
0000AA45 41 06 r3+=1
0000AA46 C4 D6 [r4] = r3
0000AA47 88 98 pop bp,bp from [sp]
0000AA48 90 9A retf
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -