ui_scroll.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 613 行 · 第 1/2 页

LST
613
字号
    143                    tmpstrpt+=rTmp;
   \   00D7  ED4B0000          LD      BC,(rTmp)
   \   00DB  47                LD      B,A
   \   00DC  210600            LD      HL,6
   \   00DF  39                ADD     HL,SP
   \   00E0  7E                LD      A,(HL)
   \   00E1  81                ADD     A,C
   \   00E2  77                LD      (HL),A
   \   00E3  23                INC     HL
   \   00E4  7E                LD      A,(HL)
   \   00E5  88                ADC     A,B
   \   00E6  77                LD      (HL),A
    144                  str_pt = tmpstrpt;
   \   00E7  DD6EFC            LD      L,(IX-4)
   \   00EA  67                LD      H,A
   \   00EB  220000            LD      (str_pt),HL
    145                  scroll_cnt = 0;
   \   00EE  AF                XOR     A
   \   00EF  320000            LD      (scroll_cnt),A
    146                  rTmp = 0;
   \   00F2  320000            LD      (rTmp),A
    147              }
    148              else
   \   00F5  1877              JR      ?0019
   \   00F7            ?0018:
    149              {
    150                    rTmp = 0;
   \   00F7  AF                XOR     A
   \   00F8  320000            LD      (rTmp),A
    151                    
    152                    if(language == 14)
   \   00FB  DD7E04            LD      A,(IX+4)
   \   00FE  FE0E              CP      14
   \   0100  2068              JR      NZ,?0022
   \   0102            ?0020:
   \   0102            ?0023:
    153                    {
    154                          while(1)
    155                          {
    156                                  code = *tmpstrpt;
   \   0102  DD6EFC            LD      L,(IX-4)
   \   0105  DD66FD            LD      H,(IX-3)
   \   0108  4E                LD      C,(HL)
   \   0109  0600              LD      B,0
   \   010B  C5                PUSH    BC
   \   010C  FDE1              POP     IY
    157                                  if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
   \   010E  3ED1              LD      A,209
   \   0110  A9                XOR     C
   \   0111  2834              JR      Z,?0032
   \   0113  01D480            LD      BC,32980
   \   0116  FDE5              PUSH    IY
   \   0118  E1                POP     HL
   \   0119  78                LD      A,B
   \   011A  AC                XOR     H
   \   011B  67                LD      H,A
   \   011C  ED42              SBC     HL,BC
   \   011E  380D              JR      C,?0030
   \   0120  01DB80            LD      BC,32987
   \   0123  FDE5              PUSH    IY
   \   0125  E1                POP     HL
   \   0126  78                LD      A,B
   \   0127  AC                XOR     H
   \   0128  67                LD      H,A
   \   0129  ED42              SBC     HL,BC
   \   012B  381A              JR      C,?0032
   \   012D            ?0030:
   \   012D            ?0029:
   \   012D  01E780            LD      BC,32999
   \   0130  FDE5              PUSH    IY
   \   0132  E1                POP     HL
   \   0133  78                LD      A,B
   \   0134  AC                XOR     H
   \   0135  67                LD      H,A
   \   0136  ED42              SBC     HL,BC
   \   0138  3830              JR      C,?0022
   \   013A  01EF80            LD      BC,33007
   \   013D  FDE5              PUSH    IY
   \   013F  E1                POP     HL
   \   0140  78                LD      A,B
   \   0141  AC                XOR     H
   \   0142  67                LD      H,A
   \   0143  ED42              SBC     HL,BC
   \   0145  3023              JR      NC,?0022
   \   0147            ?0032:
   \   0147            ?0031:
   \   0147            ?0027:
   \   0147            ?0028:
   \   0147            ?0025:
    158                                  {
    159                                          CharOutRect(code, *(tmpstrpt+1), &kregion, scroll_cnt);
   \   0147  3A0000            LD      A,(scroll_cnt)
   \   014A  4F                LD      C,A
   \   014B  C5                PUSH    BC
   \   014C  210400            LD      HL,4
   \   014F  39                ADD     HL,SP
   \   0150  E5                PUSH    HL
   \   0151  DD6EFC            LD      L,(IX-4)
   \   0154  DD66FD            LD      H,(IX-3)
   \   0157  CDFE01            CALL    LWRD ?0061
   \   015A  E1                POP     HL
   \   015B  E1                POP     HL
    160                                          tmpstrpt++;
   \   015C  DD34FC            INC     (IX-4)
   \   015F  2003              JR      NZ,?0057
   \   0161  DD34FD            INC     (IX-3)
   \   0164            ?0057:
    161                                          rTmp++;
   \   0164  210000            LD      HL,rTmp
   \   0167  34                INC     (HL)
    162                                  }
    163                                  else    break;
   \   0168  1898              JR      ?0020
   \   016A            ?0026:
   \   016A            ?0033:
    164                          }
    165                    }
   \   016A            ?0022:
   \   016A            ?0021:
    166                          
    167                          scroll_cnt++;
   \   016A  210000            LD      HL,scroll_cnt
   \   016D  34                INC     (HL)
   \   016E            ?0019:
    168              }
    169              
    170              SetTextPos(kregion.width+kregion.x, scrollregiony_def);
   \   016E  0E2D              LD      C,45
   \   0170  DD7EF8            LD      A,(IX-8)
   \   0173  DD86FA            ADD     A,(IX-6)
   \   0176  5F                LD      E,A
   \   0177  CD0000            CALL    LWRD SetTextPos
    171              tmpstrpt1 = PutS(tmpstrpt, -1);
   \   017A  0EFF              LD      C,255
   \   017C  DD5EFC            LD      E,(IX-4)
   \   017F  DD56FD            LD      D,(IX-3)
   \   0182  CD0802            CALL    LWRD ?0062
    172              
    173              if (GetOutPutErr() == RESULT_PUTCHAR_X_ERR)
   \   0185  2812              JR      Z,?0037
   \   0187            ?0034:
    174              {//x超限
    175          
    176                                                  goto L_X_ERR_COMMON;
   \   0187            ?0035:
    177              }
    178              else
    179              {
    180                  GetTextPos(&kregion.x, &kregion.y);
   \   0187  210200            LD      HL,2
   \   018A  39                ADD     HL,SP
   \   018B  CD1602            CALL    LWRD ?0063
    181                  tmpstrpt1 = PutS(strhead_pt, -1);
   \   018E  0EFF              LD      C,255
   \   0190  ED5B0000          LD      DE,(strhead_pt)
   \   0194  CD0802            CALL    LWRD ?0062
    182                  if (GetOutPutErr() == RESULT_PUTCHAR_X_ERR)
   \   0197  2060              JR      NZ,?0038
   \   0199            ?0037:
   \   0199            ?0036:
    183                  {//x超限
    184          
    185          L_X_ERR_COMMON:
    186                                                          
    187                      GetTextPos(&kregion.x, &kregion.y);
   \   0199  210200            LD      HL,2
   \   019C  39                ADD     HL,SP
   \   019D  CD1602            CALL    LWRD ?0063
    188                      
    189                      kregion.width = scrollregionw_def+scrollregionx_def - kregion.x;
   \   01A0  3EB0              LD      A,176
   \   01A2  DD96F8            SUB     (IX-8)
   \   01A5  DD77FA            LD      (IX-6),A
    190                      kregion.height = scrollregionh_def;
   \   01A8  DD36FB10          LD      (IX-5),16
    191                      //汉字和ASCII的不同处理
    192                                          
    193                                          ///code = ReadCode(tmpstrpt1,language);
    194                                          //---------------------------------------
    195                                          if((language>4)||(language==1))
   \   01AC  3E04              LD      A,4
   \   01AE  DDBE04            CP      (IX+4)
   \   01B1  3827              JR      C,?0051
   \   01B3  DD4604            LD      B,(IX+4)
   \   01B6  05                DEC     B
   \   01B7  2821              JR      Z,?0051
   \   01B9            ?0041:
   \   01B9            ?0042:
   \   01B9            ?0039:
    196                                  {//ASCII
    197                                          code = *tmpstrpt1;
   \   01B9            ?0040:
    198                                  }
    199                                  else if(language==3)
   \   01B9  DD7E04            LD      A,(IX+4)
   \   01BC  FE03              CP      3
   \   01BE  DD6EFE            LD      L,(IX-2)
   \   01C1  DD66FF            LD      H,(IX-1)
   \   01C4  7E                LD      A,(HL)
   \   01C5  2006              JR      NZ,?0045
   \   01C7            ?0044:
    200                                  {//jap
    201                                      if (*tmpstrpt1 >= 0x81)
   \   01C7  FE81              CP      129
   \   01C9  3815              JR      C,?0059
   \   01CB            ?0046:
    202                                      {
    203                                                          code = *(int *)tmpstrpt1;
   \   01CB  1804              JR      ?0060
    204                                      }    
    205                                      else
   \   01CD            ?0047:
    206                                      {//ASCII
    207                                                          code = *tmpstrpt1;
   \   01CD            ?0048:
   \   01CD            ?0045:
    208                                      }
    209                                  }
    210                                  else if (*tmpstrpt1 >= FirstSectionCode)
   \   01CD  FEA1              CP      161
   \   01CF  3809              JR      C,?0051
   \   01D1            ?0050:
    211                                  {//汉字
    212                                          code = *(int *)tmpstrpt1;
   \   01D1            ?0060:
   \   01D1  46                LD      B,(HL)
   \   01D2  23                INC     HL
   \   01D3  66                LD      H,(HL)
   \   01D4  68                LD      L,B
   \   01D5  E5                PUSH    HL
   \   01D6  FDE1              POP     IY
    213                                  }
    214                                  else
   \   01D8  180C              JR      ?0052
   \   01DA            ?0051:
    215                                  {//ASCII
    216                                          code = *tmpstrpt1;
   \   01DA  DD6EFE            LD      L,(IX-2)
   \   01DD  DD66FF            LD      H,(IX-1)
   \   01E0            ?0059:
   \   01E0  4E                LD      C,(HL)
   \   01E1  0600              LD      B,0
   \   01E3  C5                PUSH    BC
   \   01E4  FDE1              POP     IY
   \   01E6            ?0052:
   \   01E6            ?0049:
   \   01E6            ?0043:
    217                                  }
    218                                          //---------------------------------------
    219                                          
    220                      //输出最后一个字
    221                      CharOutRect(code, *(tmpstrpt1+1), &kregion, 0);
   \   01E6  0E00              LD      C,0
   \   01E8  C5                PUSH    BC
   \   01E9  210400            LD      HL,4
   \   01EC  39                ADD     HL,SP
   \   01ED  E5                PUSH    HL
   \   01EE  DD6EFE            LD      L,(IX-2)
   \   01F1  DD66FF            LD      H,(IX-1)
   \   01F4  CDFE01            CALL    LWRD ?0061
   \   01F7  E1                POP     HL
   \   01F8  E1                POP     HL
   \   01F9            ?0038:
    222                      
    223                  }
    224              }
    225              
    226          }
   \   01F9  FDE1              POP     IY
   \   01FB  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   01FE            ?0061:
   \   01FE  23                INC     HL
   \   01FF  4E                LD      C,(HL)
   \   0200  0600              LD      B,0
   \   0202  FDE5              PUSH    IY
   \   0204  D1                POP     DE
   \   0205  C30000            JP      LWRD CharOutRect
   \   0208            ?0062:
   \   0208  CD0000            CALL    LWRD PutS
   \   020B  DD75FE            LD      (IX-2),L
   \   020E  DD74FF            LD      (IX-1),H
   \   0211  CD0000            CALL    LWRD GetOutPutErr
   \   0214  3D                DEC     A
   \   0215  C9                RET
   \   0216            ?0063:
   \   0216  010100            LD      BC,1
   \   0219  09                ADD     HL,BC
   \   021A  4D                LD      C,L
   \   021B  44                LD      B,H
   \   021C  2B                DEC     HL
   \   021D  EB                EX      DE,HL
   \   021E  C30000            JP      LWRD GetTextPos
   \   0000                    RSEG    IDATA0
   \   0000            rTmp:
   \   0001                    DEFS    1
   \   0000                    RSEG    CDATA0
   \   0000  00                DEFB    0
   \   0001                    END

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

⌨️ 快捷键说明

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