📄 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
00000001 .ram
.external _CurPaintMode //Painting mode
.external _Shift_Data_buf//: .DW 5 Dup(0)
.external _Cover_Data_buf
00000001 00 00 .var Data_Add
00000002 00 00 .var Num_buf
00000003 00 00 .var Cover_Mask
00000004 00 00 .var Bit_Num
.external _Shift_Buff
0000C4F1 .code
.public _F_Data_Cover
_F_Data_Cover:
0000C4F1 88 DA push r5 to [sp]
0000C4F2 08 0B 01 00 r5 = sp+1
0000C4F4 98 D8 push r2,r4 to [sp]
0000C4F5 03 92 r1 = [r5+3] //Get the Buffer Address
0000C4F6 04 94 r2 = [r5+4] //Get Shift Num
0000C4F7 05 96 r3 = [r5+5] //Get All the Data`s number want shift
0000C4F8 06 98 r4 = [r5+6] //Get bit Numbers
0000C4F9 40 F0 46 C5 call F_Data_Move
0000C4FB 1B D7 02 00 [Num_buf] = r3
0000C4FD 09 93 F6 00 r1 = _Shift_Data_buf
0000C4FF 43 02 r1 = r1+3
0000C500 19 D3 01 00 [Data_Add] = r1// to [sp]
0000C502 1C D9 04 00 [Bit_Num] = r4
0000C504 0A C5 FF FF test r2,0xffff
0000C506 01 4E jnz F_Data_Cover_L1
0000C507 0E EE jmp F_Data_Cover_NotS
F_Data_Cover_L1: //Shift the Number of the source begin....
0000C508 11 93 01 00 r1 = [Data_Add]
0000C50A 13 97 02 00 r3 = [Num_buf]
0000C50C 40 98 r4 = 0
0000C50D 5C 99 r4 = r4 lsl 4
F_Data_Cover_L2:
0000C50E C1 98 r4 = [r1]
0000C50F 84 99 r4 = r4 rol 1
0000C510 C9 D8 [r1--] = r4
0000C511 54 99 r4 = r4 lsl 3
0000C512 41 26 r3-=1
0000C513 46 4E jnz F_Data_Cover_L2
0000C514 41 24 r2-=1
0000C515 4E 4E jnz F_Data_Cover_L1 //...end
F_Data_Cover_NotS:
0000C516 13 97 02 00 r3 = [Num_buf] //Get the data number for all(word)
0000C518 0C 99 F2 00 r4 = _Shift_Buff //index to Data of LCD Read Back
0000C51A 43 08 r4 += 3
0000C51B 0A 95 F6 00 r2 = _Shift_Data_buf //index to Data of Source
0000C51D 43 04 r2 += 3
0000C51E 09 93 EC 00 r1 = _CurPaintMode
0000C520 40 42 cmp r1,PAINT_COVER
0000C521 0A 4E jnz ?F_Data_Cover_Not
0000C522 0D 9B FA 00 r5 = _Cover_Data_buf
0000C524 43 0A r5 += 3
?F_Data_Cover_L21:
0000C525 CC 92 r1 = [r4--]
0000C526 CD B2 r1 = r1 & [r5--]
0000C527 C2 A2 r1 = r1 | [r2]
0000C528 CA D2 [r2--] = r1
0000C529 41 26 r3 -= 1
0000C52A 46 4E jnz ?F_Data_Cover_L21
0000C52B 17 EE jmp F_Data_Cover_Exit
?F_Data_Cover_Not:
0000C52C 41 42 cmp r1,PAINT_SET
0000C52D 06 4E jnz ?F_Data_Cover_Not1
?F_Data_SET_L1:
0000C52E CC 92 r1 = [r4--]
0000C52F C2 A2 r1 = r1|[r2]
0000C530 CA D2 [r2--] = r1
0000C531 41 26 r3-=1
0000C532 45 4E jnz ?F_Data_SET_L1
0000C533 0F EE jmp F_Data_Cover_Exit
?F_Data_Cover_Not1:
0000C534 42 42 cmp r1,PAINT_CLR
0000C535 08 4E jnz ?F_Data_Cover_Not2
?F_Data_CLR_L1:
0000C536 CC 92 r1 = [r4--]
0000C537 09 83 FF FF r1 = r1^0xffff
0000C539 C2 B2 r1 = r1&[r2]
0000C53A CA D2 [r2--] = r1
0000C53B 41 26 r3-=1
0000C53C 47 4E jnz ?F_Data_CLR_L1
0000C53D 05 EE jmp F_Data_Cover_Exit
?F_Data_Cover_Not2:
?F_Data_REV_L1:
0000C53E CC 92 r1 = [r4--]
0000C53F C2 82 r1 = r1^[r2]
0000C540 CA D2 [r2--] = r1
0000C541 41 26 r3-=1
0000C542 45 4E jnz ?F_Data_REV_L1
F_Data_Cover_Exit:
0000C543 98 92 pop r2,r4 from [sp]
0000C544 88 98 pop r5 from [sp]
0000C545 90 9A retf
F_Data_Move:
0000C546 98 D8 push r2,r4 to [sp]
0000C547 0C B7 0F 00 r3 = r4&0x0f
0000C549 7C 99 r4 = r4 lsr 4
0000C54A 04 03 r1 = r1+r4
0000C54B 0B C7 FF 00 test r3,0xff
0000C54D 02 4E jnz F_Data_Move_NotAd
0000C54E 41 22 r1-=1
0000C54F 01 EE jmp F_Data_Move_22
F_Data_Move_NotAd:
0000C550 41 08 r4 = r4+1
F_Data_Move_22:
0000C551 0A 95 F6 00 r2 = _Shift_Data_buf
0000C553 43 04 r2 = r2+3
F_Data_Move_Loop:
0000C554 C9 96 r3 = [r1--]
0000C555 CA D6 [r2--] = r3 //bug1
0000C556 41 28 r4-=1
0000C557 44 4E jnz F_Data_Move_Loop
0000C558 98 92 pop r2,r4 from [sp]
0000C559 90 9A retf
//****************************************************************************************************
//
// 设计者: xinqiang
// 描 述:
// 日 期: 2005.6.20
// 版本号: 1.0
//****************************************************************************************************
.public _F_Cover_Initial
_F_Cover_Initial:
0000C55A 88 DA push r5 to [sp]
0000C55B 08 0B 01 00 r5 = sp+1
0000C55D A0 D8 push r1,r4 to [sp]
0000C55E 04 94 r2 = [r5+4] //Get the shift number
// r4 = [r5+5]
0000C55F 03 92 r1 = [r5+3] //Get the bit number
0000C560 01 4E jnz ?F_Cover_NZ
0000C561 26 EE jmp ?F_Cover_Exit
?F_Cover_NZ:
0000C562 0D 9B FA 00 r5 = _Cover_Data_buf
0000C564 43 0A r5+=3
0000C565 44 96 r3 = 4
0000C566 0C 99 FF FF r4 = 0xffff
0000C568 C5 D8 [r5] = r4
0000C569 40 98 r4 = 0
0000C56A 5C 99 r4 = r4 lsl 4
?F_Cover_Loop1:
0000C56B C5 98 r4 = [r5]
0000C56C 84 99 r4 = r4 rol 1
0000C56D CD D8 [r5--] = r4
0000C56E 94 99 r4 = r4 rol 3
0000C56F 41 26 r3-=1
0000C570 46 4E jnz ?F_Cover_Loop1
0000C571 44 0A r5+=4
0000C572 40 98 r4 = 0
0000C573 5C 99 r4 = r4 lsl 4
0000C574 44 96 r3 = 4
0000C575 41 22 r1-=1
0000C576 4C 4E jnz ?F_Cover_Loop1
0000C577 0A C5 FF FF test r2,0xffff
0000C579 01 4E jnz ?F_Cover_Loop2
0000C57A 0D EE jmp ?F_Cover_Exit
?F_Cover_Loop2:
0000C57B 0C 99 FF FF r4 = 0xffff;
0000C57D 5C 99 r4 = r4 lsl 4
0000C57E 44 96 r3 = 4
?F_Cover_Loop3:
0000C57F C5 98 r4 = [r5]
0000C580 84 99 r4 = r4 rol 1
0000C581 CD D8 [r5--] = r4
0000C582 54 99 r4 = r4 lsl 3
0000C583 41 26 r3-=1
0000C584 46 4E jnz ?F_Cover_Loop3
0000C585 44 0A r5+=4
0000C586 41 24 r2-=1
0000C587 4D 4E jnz ?F_Cover_Loop2
?F_Cover_Exit:
0000C588 A0 90 pop r1,r4 from [sp]
0000C589 88 98 pop r5 from [sp]
0000C58A 90 9A retf
//****************************************************************************************************
// 128X64I液晶底层驱动画圆误差计算 W_Red_Err(int *a,int *b,int *r)
// 设计者: powerint
// 描 述: 系统初始化
// 日 期: 2004.5.9
// 版本号: 1.2
//****************************************************************************************************
.PUBLIC _W_Red_Err
0000C58B 88 DA _W_Red_Err: push bp,bp to [sp]
0000C58C 08 0B 01 00 bp = sp+1
0000C58E 03 96 r3 = [bp+3]
0000C58F C3 96 r3 = [r3]
0000C590 41 06 r3 = r3+1
0000C591 03 99 r4 = r3
0000C592 0C F6 mr = r3*r4,us
0000C593 03 93 r1 = r3
0000C594 04 96 r3 = [bp+4]
0000C595 C3 96 r3 = [r3]
0000C596 03 99 r4 = r3
0000C597 0C F6 mr = r3*r4,us
0000C598 03 03 r1+= r3
0000C599 05 96 r3 = [bp+5]
0000C59A C3 96 r3 = [r3]
0000C59B 03 99 r4 = r3
0000C59C 0C F6 mr = r3*r4,us
0000C59D 03 23 r1-=r3
0000C59E 06 3E jl squ1
0000C59F 04 98 r4 = [bp+4]
0000C5A0 C4 96 r3 = [r4]
0000C5A1 03 23 r1-= r3
0000C5A2 02 3E jl squ1
0000C5A3 41 26 r3-=1
0000C5A4 C4 D6 [r4] = r3;
0000C5A5 03 98 squ1: r4 = [bp+3]
0000C5A6 C4 96 r3 = [r4]
0000C5A7 41 06 r3+=1
0000C5A8 C4 D6 [r4] = r3
0000C5A9 88 98 pop bp,bp from [sp]
0000C5AA 90 9A retf
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -