📄 sdrv_putsdimage.lst
字号:
\ 008D 210002 LD HL,512
\ 0090 A7 AND A
\ 0091 ED52 SBC HL,DE
\ 0093 E5 PUSH HL
\ 0094 FDE1 POP IY
60
61 sdrw.faddr=imgddr;
\ 0096 210C00 LD HL,12
\ 0099 39 ADD HL,SP
\ 009A 5E LD E,(HL)
\ 009B 23 INC HL
\ 009C 56 LD D,(HL)
\ 009D 23 INC HL
\ 009E 4E LD C,(HL)
\ 009F 23 INC HL
\ 00A0 46 LD B,(HL)
\ 00A1 EB EX DE,HL
\ 00A2 220000 LD (sdrw),HL
\ 00A5 ED430200 LD (sdrw+2),BC
62 sdrw.srampage=input8(0x05)&0x0f;//(byte)BufPage; //FRAME BUFFER PAGE
\ 00A9 DB05 IN A,(5)
\ 00AB E60F AND 15
\ 00AD 320700 LD (sdrw+7),A
63 sdrw.sramaddr = (WORD)DisplayBuffer;
\ 00B0 210000 LD HL,DisplayBuffer
\ 00B3 220500 LD (sdrw+5),HL
64 if (cnt > (unsigned long)cnt1)
\ 00B6 210000 LD HL,0
\ 00B9 39 ADD HL,SP
\ 00BA 4E LD C,(HL)
\ 00BB 23 INC HL
\ 00BC 46 LD B,(HL)
\ 00BD 23 INC HL
\ 00BE 5E LD E,(HL)
\ 00BF 23 INC HL
\ 00C0 56 LD D,(HL)
\ 00C1 D5 PUSH DE
\ 00C2 C5 PUSH BC
\ 00C3 FDE5 PUSH IY
\ 00C5 E1 POP HL
\ 00C6 110000 LD DE,0
\ 00C9 A7 AND A
\ 00CA C1 POP BC
\ 00CB ED42 SBC HL,BC
\ 00CD EB EX DE,HL
\ 00CE C1 POP BC
\ 00CF ED42 SBC HL,BC
\ 00D1 302B JR NC,?0009
\ 00D3 ?0008:
65 {
66 SD_Read((int)&sdrw, cnt1);//把图片数据读出 放到 DisplayBuffer 中
\ 00D3 FDE5 PUSH IY
\ 00D5 C1 POP BC
\ 00D6 110000 LD DE,sdrw
\ 00D9 CD0000 CALL SD_Read
67 Hdrv_BuffDataTrans(DisplayBuffer, cnt1);//把显存中的数据搬到LCM中
\ 00DC FDE5 PUSH IY
\ 00DE C1 POP BC
\ 00DF 110000 LD DE,DisplayBuffer
\ 00E2 CD0000 CALL Hdrv_BuffDataTrans
68 cnt -= cnt1;
\ 00E5 210000 LD HL,0
\ 00E8 39 ADD HL,SP
\ 00E9 FDE5 PUSH IY
\ 00EB D1 POP DE
\ 00EC 010000 LD BC,0
\ 00EF CD0000 CALL ?L_SUBASG_L03
69 sdrw.faddr += cnt1;
\ 00F2 210000 LD HL,sdrw
\ 00F5 FDE5 PUSH IY
\ 00F7 D1 POP DE
\ 00F8 010000 LD BC,0
\ 00FB CD0000 CALL ?L_ADDASG_L03
\ 00FE ?0009:
70 }
71 if (cnt == 0)
\ 00FE 210000 LD HL,0
\ 0101 39 ADD HL,SP
\ 0102 7E LD A,(HL)
\ 0103 23 INC HL
\ 0104 B6 OR (HL)
\ 0105 23 INC HL
\ 0106 B6 OR (HL)
\ 0107 23 INC HL
\ 0108 B6 OR (HL)
\ 0109 287A JR Z,?0015
\ 010B ?0010:
72 {
73 return;
74 }
\ 010B ?0011:
\ 010B ?0013:
75
76 while (cnt > (unsigned long)DisplayBufLen)// 一个显示暂存区的大小
\ 010B 210000 LD HL,0
\ 010E 39 ADD HL,SP
\ 010F 4E LD C,(HL)
\ 0110 23 INC HL
\ 0111 46 LD B,(HL)
\ 0112 23 INC HL
\ 0113 5E LD E,(HL)
\ 0114 23 INC HL
\ 0115 56 LD D,(HL)
\ 0116 D5 PUSH DE
\ 0117 C5 PUSH BC
\ 0118 A7 AND A
\ 0119 210002 LD HL,512
\ 011C C1 POP BC
\ 011D ED42 SBC HL,BC
\ 011F 210000 LD HL,0
\ 0122 C1 POP BC
\ 0123 ED42 SBC HL,BC
\ 0125 3033 JR NC,?0012
\ 0127 ?0014:
77 {
78 SD_Read((int)&sdrw, DisplayBufLen);//把图片数据读出
\ 0127 010002 LD BC,512
\ 012A 110000 LD DE,sdrw
\ 012D CD0000 CALL SD_Read
79 Hdrv_BuffDataTrans(DisplayBuffer, DisplayBufLen);//把显存中的数据搬到LCM中
\ 0130 010002 LD BC,512
\ 0133 110000 LD DE,DisplayBuffer
\ 0136 CD0000 CALL Hdrv_BuffDataTrans
80 cnt = cnt - (unsigned long)DisplayBufLen;
\ 0139 210000 LD HL,0
\ 013C 39 ADD HL,SP
\ 013D 01FFFF LD BC,65535
\ 0140 1100FE LD DE,65024
\ 0143 CD0000 CALL ?L_ADDASG_L03
81 sdrw.faddr += DisplayBufLen;
\ 0146 210000 LD HL,sdrw
\ 0149 010000 LD BC,0
\ 014C 110002 LD DE,512
\ 014F CD0000 CALL ?L_ADDASG_L03
82 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0152 DB4E IN A,(78)
\ 0154 CBDF SET 3,A
\ 0156 D34E OUT (78),A
\ 0158 18B1 JR ?0011
\ 015A ?0012:
83 }
84 sdrw.sramaddr = (WORD)DisplayBuffer;
\ 015A 210000 LD HL,DisplayBuffer
\ 015D 220500 LD (sdrw+5),HL
85 SD_Read((int)&sdrw, cnt);//把图片数据读出
\ 0160 210000 LD HL,0
\ 0163 39 ADD HL,SP
\ 0164 5E LD E,(HL)
\ 0165 23 INC HL
\ 0166 56 LD D,(HL)
\ 0167 EB EX DE,HL
\ 0168 4D LD C,L
\ 0169 44 LD B,H
\ 016A 110000 LD DE,sdrw
\ 016D CD0000 CALL SD_Read
86 Hdrv_BuffDataTrans(DisplayBuffer, cnt);//把显存中的数据搬到LCM中
\ 0170 210000 LD HL,0
\ 0173 39 ADD HL,SP
\ 0174 4E LD C,(HL)
\ 0175 23 INC HL
\ 0176 46 LD B,(HL)
\ 0177 23 INC HL
\ 0178 5E LD E,(HL)
\ 0179 23 INC HL
\ 017A 56 LD D,(HL)
\ 017B D5 PUSH DE
\ 017C C5 PUSH BC
\ 017D 110000 LD DE,DisplayBuffer
\ 0180 CD0000 CALL Hdrv_BuffDataTrans
\ 0183 F1 POP AF
\ 0184 F1 POP AF
87
88 }
\ 0185 ?0015:
\ 0185 E1 POP HL
\ 0186 E1 POP HL
\ 0187 DDE1 POP IX
\ 0189 FDE1 POP IY
\ 018B C1 POP BC
\ 018C C9 RET
89
\ 0000 RSEG BAD_PSDI
\ 0000 sdrw:
\ 0008 DEFS 8
\ 0008 END
Errors: none
Warnings: none
Code size: 397
Constant size: 0
Static variable size: Data(8) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -