⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdrv_putchar_thai.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   002F  5F                LD      E,A
   \   0030  CD0000            CALL    CheckDisplaySpace
   \   0033  210000            LD      HL,0
   \   0036  39                ADD     HL,SP
   \   0037  77                LD      (HL),A
     85              if (!putchar_result)
   \   0038  AF                XOR     A
   \   0039  B6                OR      (HL)
   \   003A  200D              JR      NZ,?0001
   \   003C            ?0000:
     86              {
     87                     Hdrv_SetDrawMode(DrawModeH_def);    //把显示模式设置成横向显示模式
   \   003C  5F                LD      E,A
   \   003D  57                LD      D,A
   \   003E  CD0000            CALL    Hdrv_SetDrawMode
     88                     return putchar_result;//如显示范围不对,则不做显示动作而直接退出
   \   0041  210000            LD      HL,0
   \   0044  39                ADD     HL,SP
   \   0045  7E                LD      A,(HL)
     89              }
   \   0046  C3DA00            JP      ?0008
   \   0049            ?0001:
     90              switch(charmode)
   \   0049  23                INC     HL
   \   004A  7E                LD      A,(HL)
   \   004B  FE00              CP      0
   \   004D  2029              JR      NZ,?0004
   \   004F            ?0003:
     91              {
     92              case CharMode0608://06*08点阵模式(ascii小字体)
     93                  //设置字模输出的大小 
     94                  region.width = ASCII_SMALL_WIDTH_DEF;
   \   004F  3E06              LD      A,6
   \   0051  320200            LD      (region+2),A
     95                  region.height = ASCII_SMALL_HEIGHT_DEF;
   \   0054  3E08              LD      A,8
   \   0056  320300            LD      (region+3),A
     96                  
     97                  Hdrv_SetWindow(&region);
   \   0059  110000            LD      DE,region
   \   005C  CD0000            CALL    Hdrv_SetWindow
     98                  
     99                  //把黑白字模转为彩色字模放在Buff中
    100                  BlackCharToColor(ASCII_SMALL_WIDTH_DEF, CharPointBuffer);
   \   005F  010000            LD      BC,CharPointBuffer
   \   0062  110600            LD      DE,6
   \   0065  CD0000            CALL    BlackCharToColor
    101                  //把暂时显存区的数据送到LCM
    102                  Hdrv_BuffDataTrans(DisplayBuffer, ASCII_SMALL_HEIGHT_DEF*ASCII_SMALL_WIDTH_DEF*2);
   \   0068  016000            LD      BC,96
   \   006B  110000            LD      DE,DisplayBuffer
   \   006E  CD0000            CALL    Hdrv_BuffDataTrans
    103                  region.x += ASCII_SMALL_WIDTH_DEF;//坐标移到下一个字的左上角
   \   0071  3A0000            LD      A,(region)
   \   0074  C606              ADD     A,6
   \   0076  1857              JR      ?0010
    104                  break;
   \   0078            ?0004:
   \   0078  FE01              CP      1
   \   007A  2056              JR      NZ,?0006
    105                  
    106              case CharMode0816://08*16点阵模式(ascii大字体)
    107                  //设置字模输出的大小//上半个字
    108                  region.width = ASCII_LARGE_WIDTH_DEF;
   \   007C  3E08              LD      A,8
   \   007E  320200            LD      (region+2),A
    109                  region.height = ASCII_LARGE_HEIGHT_DEF/2;
   \   0081  320300            LD      (region+3),A
    110                  region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
   \   0084  3A0100            LD      A,(region+1)
   \   0087  C608              ADD     A,8
   \   0089  320100            LD      (region+1),A
    111                  
    112                  Hdrv_SetWindow(&region);
   \   008C  110000            LD      DE,region
   \   008F  CD0000            CALL    Hdrv_SetWindow
    113                  
    114                  //把黑白字模转为彩色字模放在Buff中(上区)
    115                  //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
    116                  BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);               //change by ybfu
   \   0092  010800            LD      BC,CharPointBuffer+8
   \   0095  110800            LD      DE,8
   \   0098  CD0000            CALL    BlackCharToColor
    117                  //把暂时显存区的数据送到LCM
    118                  Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
   \   009B  018000            LD      BC,128
   \   009E  110000            LD      DE,DisplayBuffer
   \   00A1  CD0000            CALL    Hdrv_BuffDataTrans
    119          
    120                  region.y -= ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
   \   00A4  3A0100            LD      A,(region+1)
   \   00A7  C6F8              ADD     A,248
   \   00A9  320100            LD      (region+1),A
    121                  
    122                  Hdrv_SetWindow(&region);
   \   00AC  110000            LD      DE,region
   \   00AF  CD0000            CALL    Hdrv_SetWindow
    123                  
    124                  //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
    125                  BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
   \   00B2  010000            LD      BC,CharPointBuffer
   \   00B5  110800            LD      DE,8
   \   00B8  CD0000            CALL    BlackCharToColor
    126                  //把暂时显存区的数据送到LCM
    127                  Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
   \   00BB  018000            LD      BC,128
   \   00BE  110000            LD      DE,DisplayBuffer
   \   00C1  CD0000            CALL    Hdrv_BuffDataTrans
    128                  //坐标移到下一个字的左上角
    129                  if(next_thai_flag)
   \   00C4  3A0000            LD      A,(next_thai_flag)
   \   00C7  B7                OR      A
   \   00C8  2808              JR      Z,?0006
   \   00CA            ?0005:
    130                  {
    131                          region.x += ASCII_LARGE_WIDTH_DEF;
   \   00CA  3A0000            LD      A,(region)
   \   00CD  C608              ADD     A,8
   \   00CF            ?0010:
   \   00CF  320000            LD      (region),A
   \   00D2            ?0006:
    132                          //region.y -= ASCII_LARGE_HEIGHT_DEF/2;
    133                  }
    134                  break;
   \   00D2            ?0007:
    135                  
    136              default:
    137                  break;
   \   00D2            ?0002:
    138              }
    139              Hdrv_SetDrawMode(DrawModeH_def);    //把显示模式设置成横向显示模
   \   00D2  110000            LD      DE,0
   \   00D5  CD0000            CALL    Hdrv_SetDrawMode
    140              return TRUE;
   \   00D8  3E01              LD      A,1
    141          }
   \   00DA            ?0008:
   \   00DA  E1                POP     HL
   \   00DB  DDE1              POP     IX
   \   00DD  C1                POP     BC
   \   00DE  C9                RET
   \   0000                    RSEG    IDATA0
   \   0000            thai_flag:
   \   0001                    DEFS    1
   \   0000                    RSEG    CDATA0
   \   0000  00                DEFB    0
   \   0001                    END

Errors: none
Warnings: none
Code size: 223
Constant size: 1
Static variable size: Data(1) Iram(0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -