sdrv_putchar_latin1.lst
来自「MP3 整个 SDK」· LST 代码 · 共 304 行 · 第 1/2 页
LST
304 行
\ 004D CD0000 CALL BlackCharToColor
67 //把暂时显存区的数据送到LCM
68 Hdrv_BuffDataTrans(DisplayBuffer, ASCII_SMALL_HEIGHT_DEF*ASCII_SMALL_WIDTH_DEF*2);
\ 0050 016000 LD BC,96
\ 0053 CD0401 CALL ?0013
69 region.x += ASCII_SMALL_WIDTH_DEF;//坐标移到下一个字的左上角
\ 0056 3A0000 LD A,(region)
\ 0059 C606 ADD A,6
\ 005B 320000 LD (region),A
70 break;
\ 005E C3E400 JP ?0002
\ 0061 ?0004:
\ 0061 FE01 CP 1
\ 0063 202E JR NZ,?0005
71
72 case CharMode0816://08*16点阵模式(ascii大字体)
73 //设置字模输出的大小//上半个字
74 region.width = ASCII_LARGE_WIDTH_DEF;
\ 0065 3E08 LD A,8
\ 0067 320200 LD (region+2),A
75 region.height = ASCII_LARGE_HEIGHT_DEF/2;
76 Hdrv_SetWindow(®ion);
\ 006A CDF200 CALL ?0011
77 //把黑白字模转为彩色字模放在Buff中(上区)
78 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
79 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF); //change by ybfu
\ 006D 010800 LD BC,CharPointBuffer+8
80 //把暂时显存区的数据送到LCM
81 Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
\ 0070 CDFB00 CALL ?0014
82
83 region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
\ 0073 3A0100 LD A,(region+1)
\ 0076 C608 ADD A,8
\ 0078 320100 LD (region+1),A
84 Hdrv_SetWindow(®ion);
\ 007B CDF500 CALL ?0012
85 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
86 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
\ 007E 010000 LD BC,CharPointBuffer
87 //把暂时显存区的数据送到LCM
88 Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
\ 0081 CDFB00 CALL ?0014
89 //坐标移到下一个字的左上角
90 region.x += ASCII_LARGE_WIDTH_DEF;
\ 0084 3A0000 LD A,(region)
\ 0087 C608 ADD A,8
\ 0089 320000 LD (region),A
91 region.y -= ASCII_LARGE_HEIGHT_DEF/2;
\ 008C 3A0100 LD A,(region+1)
\ 008F C6F8 ADD A,248
\ 0091 184E JR ?0009
92 break;
\ 0093 ?0005:
\ 0093 FE02 CP 2
\ 0095 204D JR NZ,?0002
93
94 case CharMode1616://16*16点阵模式(汉字)
95 //设置字模输出的大小(上半个汉字)
96 region.width = CHINESE_WIDTH_DEF;
\ 0097 3E0C LD A,12
\ 0099 320200 LD (region+2),A
97 region.height = CHINESE_HEIGHT_DEF-8;
\ 009C 3E04 LD A,4
98 Hdrv_SetWindow(®ion);
\ 009E CDF200 CALL ?0011
99
100 //把黑白字模转为彩色字模放在Buff中
101 //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer);
102 putCharChFlag=4;
\ 00A1 3E04 LD A,4
\ 00A3 320000 LD (putCharChFlag),A
103 BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer + CHINESE_WIDTH_DEF+4); //change by ybfu
\ 00A6 011000 LD BC,CharPointBuffer+16
\ 00A9 110C00 LD DE,12
\ 00AC CD0000 CALL BlackCharToColor
104 putCharChFlag=8;
\ 00AF 3E08 LD A,8
\ 00B1 320000 LD (putCharChFlag),A
105 //把暂时显存区的数据送到LCM
106 Hdrv_BuffDataTrans(DisplayBuffer, (CHINESE_HEIGHT_DEF-8)*CHINESE_WIDTH_DEF*2);
\ 00B4 016000 LD BC,96
\ 00B7 CD0401 CALL ?0013
107 region.y += CHINESE_HEIGHT_DEF-8;//Y坐标加8准备输出下区(下半个汉字)
\ 00BA 3A0100 LD A,(region+1)
\ 00BD C604 ADD A,4
\ 00BF 320100 LD (region+1),A
108 region.height = CHINESE_HEIGHT_DEF-4;
109 Hdrv_SetWindow(®ion);
\ 00C2 CDF000 CALL ?0010
110 //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer + CHINESE_WIDTH_DEF);
111 BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer);
\ 00C5 010000 LD BC,CharPointBuffer
\ 00C8 110C00 LD DE,12
\ 00CB CD0000 CALL BlackCharToColor
112
113 //把暂时显存区的数据送到LCM
114 Hdrv_BuffDataTrans(DisplayBuffer, (CHINESE_HEIGHT_DEF-4)*CHINESE_WIDTH_DEF*2);
\ 00CE 01C000 LD BC,192
\ 00D1 CD0401 CALL ?0013
115
116 //坐标移到下一个字的左上角
117 region.x += CHINESE_WIDTH_DEF;
\ 00D4 3A0000 LD A,(region)
\ 00D7 C60C ADD A,12
\ 00D9 320000 LD (region),A
118 region.y -= CHINESE_HEIGHT_DEF/2;
\ 00DC 3A0100 LD A,(region+1)
\ 00DF C6FA ADD A,250
\ 00E1 ?0009:
\ 00E1 320100 LD (region+1),A
119 break;
\ 00E4 ?0006:
120
121 default:
122 break;
\ 00E4 ?0002:
123 }
124 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模式
\ 00E4 110000 LD DE,0
\ 00E7 CD0000 CALL Hdrv_SetDrawMode
125 return TRUE;
\ 00EA 3E01 LD A,1
126 }
\ 00EC ?0007:
\ 00EC E1 POP HL
\ 00ED E1 POP HL
\ 00EE C1 POP BC
\ 00EF C9 RET
\ 00F0 ?0010:
\ 00F0 3E08 LD A,8
\ 00F2 ?0011:
\ 00F2 320300 LD (region+3),A
\ 00F5 ?0012:
\ 00F5 110000 LD DE,region
\ 00F8 C30000 JP Hdrv_SetWindow
\ 00FB ?0014:
\ 00FB 110800 LD DE,8
\ 00FE CD0000 CALL BlackCharToColor
\ 0101 018000 LD BC,128
\ 0104 ?0013:
\ 0104 110000 LD DE,DisplayBuffer
\ 0107 C30000 JP Hdrv_BuffDataTrans
\ 010A END
Errors: none
Warnings: none
Code size: 266
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?