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

📄 sdrv_puts_thai.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   003F            ?0008:
     87                  {
     88                          str++;
     89                          //region.x = 0;
     90                          region.x = rowNum_sav;          
   \   003F  210100            LD      HL,1
   \   0042  39                ADD     HL,SP
   \   0043  7E                LD      A,(HL)
   \   0044  320000            LD      (region),A
     91                                                                  region.y += StrHeight;
   \   0047  3A0100            LD      A,(StrHeight)
   \   004A  47                LD      B,A
   \   004B  3A0100            LD      A,(region+1)
   \   004E  80                ADD     A,B
   \   004F  320100            LD      (region+1),A
     92                                                                  lineNum_sav = region.y;//保存当前行顶的y轴坐标
   \   0052  2B                DEC     HL
   \   0053  77                LD      (HL),A
     93                                                  if (AsciiSelect == FONT_TYPE_SMALL)
   \   0054            ?0010:
     94                                                  {
     95                                                          StrHeight = CHINESE_HEIGHT_DEF;//一行字符的高度
     96                                                  }
     97                                                  else
   \   0054            ?0011:
     98                                                  {
     99                                                          StrHeight = CHINESE_HEIGHT_DEF;//一行字符的高度
   \   0054  3E10              LD      A,16
   \   0056  320100            LD      (StrHeight),A
   \   0059  DD23              INC     IX
   \   005B            ?0012:
   \   005B            ?0009:
    100                                                  }
    101                      
    102                  }
    103                  
    104                  code = *str;
   \   005B  DD4E00            LD      C,(IX+0)
   \   005E  0600              LD      B,0
    105                  str++;
    106                  
    107                  if(*str == 0xd1 || (*str >=0xd4 && *str<0xdb) ||(*str >=0xe7 && *str<0xef))
   \   0060  DD7E01            LD      A,(IX+1)
   \   0063  FED1              CP      209
   \   0065  DD23              INC     IX
   \   0067  281C              JR      Z,?0020
   \   0069  DD7E00            LD      A,(IX+0)
   \   006C  FED4              CP      212
   \   006E  3807              JR      C,?0018
   \   0070  DD7E00            LD      A,(IX+0)
   \   0073  FEDB              CP      219
   \   0075  380E              JR      C,?0020
   \   0077            ?0018:
   \   0077            ?0017:
   \   0077  DD7E00            LD      A,(IX+0)
   \   007A  FEE7              CP      231
   \   007C  380A              JR      C,?0014
   \   007E  DD7E00            LD      A,(IX+0)
   \   0081  FEEF              CP      239
   \   0083  3003              JR      NC,?0014
   \   0085            ?0020:
   \   0085            ?0019:
   \   0085            ?0015:
   \   0085            ?0016:
   \   0085            ?0013:
    108                       next_thai_flag = 0;
   \   0085  AF                XOR     A
   \   0086  1802              JR      ?0032
    109                  else
   \   0088            ?0014:
    110                       next_thai_flag = 1;
   \   0088  3E01              LD      A,1
   \   008A            ?0032:
   \   008A  320000            LD      (next_thai_flag),A
   \   008D            ?0021:
    111                //  next_thai_flag = chech_symple(*str);
    112          
    113                  
    114                  result = Sdrv_PutChar(code);
   \   008D  59                LD      E,C
   \   008E  50                LD      D,B
   \   008F  CD0000            CALL    Sdrv_PutChar
   \   0092  210400            LD      HL,4
   \   0095  39                ADD     HL,SP
   \   0096  77                LD      (HL),A
    115                  if (!result) //输出字符
   \   0097  AF                XOR     A
   \   0098  B6                OR      (HL)
   \   0099  2005              JR      NZ,?0023
   \   009B            ?0022:
    116                  {
    117                      //当输出区域超出范围时退出
    118                      return lastcharpt;//返回上一个字符的指针,因为当前指针已加一了
   \   009B  FDE5              PUSH    IY
   \   009D  E1                POP     HL
    119                  }
   \   009E  181B              JR      ?0026
   \   00A0            ?0023:
    120                  if(next_thai_flag)
   \   00A0  3A0000            LD      A,(next_thai_flag)
   \   00A3  B7                OR      A
   \   00A4  2803              JR      Z,?0025
   \   00A6            ?0024:
    121                  {
    122                          (unsigned char)strlen--;//不理负号直接减(因为0xff时表示显示全部)
   \   00A6  23                INC     HL
   \   00A7  23                INC     HL
   \   00A8  35                DEC     (HL)
   \   00A9            ?0025:
    123                  }
    124                  region.y = lineNum_sav;//恢复当前行顶y的轴坐标
   \   00A9  68                LD      L,B
   \   00AA  60                LD      H,B
   \   00AB  39                ADD     HL,SP
   \   00AC  7E                LD      A,(HL)
   \   00AD  320100            LD      (region+1),A
   \   00B0  C31D00            JP      ?0002
   \   00B3            ?0003:
    125                  //暂时不让某些地方显示过长
    126                  ///if ( ((unsigned char)strlen > 200) && (region.x > 188) )
    127                  //if ( ((unsigned char)strlen > 128) && (region.x > 120) )
    128                  //{
    129                  //    break;
    130                  //}
    131              }
    132              next_thai_flag = 1;
   \   00B3  3E01              LD      A,1
   \   00B5  320000            LD      (next_thai_flag),A
    133              return str;
   \   00B8  DDE5              PUSH    IX
   \   00BA  E1                POP     HL
    134          }
   \   00BB            ?0026:
   \   00BB  F1                POP     AF
   \   00BC  F1                POP     AF
   \   00BD  F1                POP     AF
   \   00BE  F1                POP     AF
   \   00BF  DDE1              POP     IX
   \   00C1  FDE1              POP     IY
   \   00C3  C9                RET
    135          /*
    136          non_banked char chech_symple(unsigned char code)
    137          {
    138          
    139          }
    140          */
   \   0000                    RSEG    IDATA0
   \   0000            next_thai_flag:
   \   0001                    DEFS    1
   \   0001            StrHeight:
   \   0002                    DEFS    1
   \   0000                    RSEG    CDATA0
   \   0000  01                DEFB    1
   \   0001  08                DEFB    8
   \   0002                    END

Errors: none
Warnings: none
Code size: 196
Constant size: 2
Static variable size: Data(2) Iram(0)

⌨️ 快捷键说明

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