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(&region);
   \   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(&region);        
   \   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(&region);
   \   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(&region);        
   \   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 + -
显示快捷键?