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

📄 ui_main.lst

📁 action mp3 devo,eki e,eikf, kdife l
💻 LST
📖 第 1 页 / 共 4 页
字号:
    127          * Notes       : 数字只能是 0000~9999
    128          *
    129          ********************************************************************************
    130          */    
    131          char *itoa4(WORD i, char *buf)
    132          {
   \   0088  FDE5              PUSH    IY
   \   008A  DDE5              PUSH    IX
   \   008C  C5                PUSH    BC
   \   008D  DDE1              POP     IX
   \   008F  D5                PUSH    DE
   \   0090  FDE1              POP     IY
    133              //ASSERT(buf != NULL);
    134              /*
    135              buf[0] = mychar[(i % 10000) / 1000];
    136              buf[1] = mychar[(i % 1000) / 100];
    137              buf[2] = mychar[(i % 100) / 10];    
    138              buf[3] = mychar[i % 10];
    139              buf[4] = 0;
    140              */
    141              buf[0] = (i % 10000) / 1000 + '0';
   \   0092  011027            LD      BC,10000
   \   0095  CD0000            CALL    LWRD ?US_MOD_L02
   \   0098  01E803            LD      BC,1000
    142              buf[1] = (i % 1000) / 100 + '0';
   \   009B  CD7900            CALL    LWRD ?0124
   \   009E  016400            LD      BC,100
   \   00A1  CD0000            CALL    LWRD ?US_DIV_L02
   \   00A4  7B                LD      A,E
   \   00A5  C630              ADD     A,48
   \   00A7  DD7701            LD      (IX+1),A
    143              buf[2] = (i % 100) / 10 + '0';    
   \   00AA  CD8200            CALL    LWRD ?0125
   \   00AD  0E0A              LD      C,10
   \   00AF  CD0000            CALL    LWRD ?US_DIV_L02
   \   00B2  7B                LD      A,E
   \   00B3  C630              ADD     A,48
   \   00B5  DD7702            LD      (IX+2),A
    144              buf[3] = (i % 10) + '0';
   \   00B8  CD8200            CALL    LWRD ?0125
   \   00BB  7B                LD      A,E
   \   00BC  C630              ADD     A,48
   \   00BE  DD7703            LD      (IX+3),A
    145              buf[4] = 0;
   \   00C1  DD7004            LD      (IX+4),B
    146          
    147              return buf;
   \   00C4  C36F00            JP      LWRD ?0121
    148          }
   \   00C7            main_ResShowPic:
    149              
    150          
    151          //只有这个界面使用,为了提高效率而放在这里
    152          int main_ResShowPic(WORD id, uchar x, uchar y)
    153          {
   \   00C7  C5                PUSH    BC
   \   00C8  D5                PUSH    DE
   \   00C9  F5                PUSH    AF
   \   00CA  F5                PUSH    AF
    154              WORD buf[2];    //buffer for sd read
    155          
    156              ASSERT(id <= UIID_MAX);
    157              
    158              //读entry
    159              SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
   \   00CB  6B                LD      L,E
   \   00CC  62                LD      H,D
   \   00CD  010000            LD      BC,0
   \   00D0  3E04              LD      A,4
   \   00D2  CD0000            CALL    LWRD ?L_LSH_L03
   \   00D5  C5                PUSH    BC
   \   00D6  E5                PUSH    HL
   \   00D7  0E00              LD      C,0
   \   00D9  ED5B0000          LD      DE,(res_fp)
   \   00DD  CD0000            CALL    LWRD SD_FSeek
   \   00E0  E1                POP     HL
   \   00E1  E1                POP     HL
    160              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
   \   00E2  211000            LD      HL,16
   \   00E5  E5                PUSH    HL
   \   00E6  010000            LD      BC,res_entry
   \   00E9  ED5B0000          LD      DE,(res_fp)
   \   00ED  CD0000            CALL    LWRD SD_FRead
   \   00F0  F1                POP     AF
    161              if(res_entry.type != RES_TYPE_PIC) return 0;
   \   00F1  3A0600            LD      A,(res_entry+6)
   \   00F4  3D                DEC     A
   \   00F5  2805              JR      Z,?0003
   \   00F7            ?0002:
   \   00F7  210000            LD      HL,0
    162              ASSERT(res_entry.length <= 512);
   \   00FA  1869              JR      ?0006
   \   00FC            ?0003:
    163          
    164              //读数据
    165              SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   00FC  2A0200            LD      HL,(res_entry+2)
   \   00FF  E5                PUSH    HL
   \   0100  2A0000            LD      HL,(res_entry)
   \   0103  E5                PUSH    HL
   \   0104  4F                LD      C,A
   \   0105  ED5B0000          LD      DE,(res_fp)
   \   0109  CD0000            CALL    LWRD SD_FSeek
   \   010C  E1                POP     HL
   \   010D  E1                POP     HL
    166              //SD_FRead(res_fp, &(res_region.width), 2);
    167              //SD_FRead(res_fp, &(res_region.height), 2);
    168              SD_FRead(res_fp, buf, sizeof(buf));
   \   010E  210400            LD      HL,4
   \   0111  E5                PUSH    HL
   \   0112  2B                DEC     HL
   \   0113  2B                DEC     HL
   \   0114  39                ADD     HL,SP
   \   0115  4D                LD      C,L
   \   0116  44                LD      B,H
   \   0117  ED5B0000          LD      DE,(res_fp)
   \   011B  CD0000            CALL    LWRD SD_FRead
   \   011E  F1                POP     AF
    169              //ASSERT(buf[0] <= 128);
    170              //ASSERT(buf[1] <= 32);    
    171              res_region.width = (char)buf[0];
   \   011F  210000            LD      HL,0
   \   0122  39                ADD     HL,SP
   \   0123  7E                LD      A,(HL)
   \   0124  320200            LD      (res_region+2),A
    172              res_region.height = (char)buf[1];
   \   0127  23                INC     HL
   \   0128  23                INC     HL
   \   0129  7E                LD      A,(HL)
   \   012A  320300            LD      (res_region+3),A
    173              
    174              //显示
    175              res_region.x = x;
   \   012D  210600            LD      HL,6
   \   0130  39                ADD     HL,SP
   \   0131  7E                LD      A,(HL)
   \   0132  320000            LD      (res_region),A
    176              res_region.y = y;
   \   0135  210C00            LD      HL,12
   \   0138  39                ADD     HL,SP
   \   0139  7E                LD      A,(HL)
   \   013A  320100            LD      (res_region+1),A
    177              PutSDImage(&res_region, res_fp->rwpointer);
   \   013D  211400            LD      HL,20
   \   0140  ED4B0000          LD      BC,(res_fp)
   \   0144  09                ADD     HL,BC
   \   0145  4E                LD      C,(HL)
   \   0146  23                INC     HL
   \   0147  46                LD      B,(HL)
   \   0148  23                INC     HL
   \   0149  5E                LD      E,(HL)
   \   014A  23                INC     HL
   \   014B  56                LD      D,(HL)
   \   014C  D5                PUSH    DE
   \   014D  C5                PUSH    BC
   \   014E  110000            LD      DE,res_region
   \   0151  CD0000            CALL    LWRD PutSDImage
   \   0154  E1                POP     HL
   \   0155  E1                POP     HL
    178              if(ui_auto_update) UpdateScreen(&res_region);
   \   0156  3A0000            LD      A,(ui_auto_update)
   \   0159  B7                OR      A
   \   015A  2806              JR      Z,?0005
   \   015C            ?0004:
   \   015C  110000            LD      DE,res_region
   \   015F  CD0000            CALL    LWRD UpdateScreen
   \   0162            ?0005:
    179              return 1;
   \   0162  210100            LD      HL,1
    180          }
   \   0165            ?0006:
   \   0165  F1                POP     AF
   \   0166  F1                POP     AF
   \   0167  F1                POP     AF
   \   0168  F1                POP     AF
   \   0169  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   016C            ui_show_a:
    181          
    182          void ui_show_a(WORD id)
    183          {
   \   016C  C5                PUSH    BC
   \   016D  D5                PUSH    DE
    184              main_ResShowPic(id, POSITION_A, 0);
   \   016E  0E00              LD      C,0
   \   0170  C5                PUSH    BC
   \   0171            ?0122:
   \   0171  3E00              LD      A,BYTE3 main_ResShowPic
   \   0173  21C700            LD      HL,LWRD main_ResShowPic
   \   0176  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0179  F1                POP     AF
    185          }
   \   017A  E1                POP     HL
   \   017B  C1                POP     BC
   \   017C  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   017F            ui_show_b:
    186          
    187          void ui_show_b(WORD id)
    188          {
   \   017F  C5                PUSH    BC
   \   0180  D5                PUSH    DE
    189              main_ResShowPic(id, POSITION_B, 0);
   \   0181  0E00              LD      C,0
   \   0183  C5                PUSH    BC
   \   0184  0E0F              LD      C,15
   \   0186  C37101            JP      LWRD ?0122
    190              //FIXME:显示小数字
    191              
    192              //if(ui_auto_update) UpdateScreen(&region_b);
    193          }
   \   0189            ui_show_c:
    194          //id =0, clear the icon
    195          void ui_show_c(WORD id)
    196          {
   \   0189  C5                PUSH    BC
   \   018A  DDE5              PUSH    IX
    197              if(id == 0)
   \   018C  7B                LD      A,E
   \   018D  B2                OR      D
   \   018E  2014              JR      NZ,?0008
   \   0190            ?0007:
    198              {
    199                  ClearScreen(&region_c);
   \   0190  110800            LD      DE,region_c
   \   0193  CD0000            CALL    LWRD ClearScreen
    200                  if(ui_auto_update) UpdateScreen(&region_c);
   \   0196  3A0000            LD      A,(ui_auto_update)
   \   0199  B7                OR      A
   \   019A  2816              JR      Z,?0011
   \   019C            ?0009:
   \   019C  110800            LD      DE,region_c
   \   019F  CD0000            CALL    LWRD UpdateScreen
   \   01A2            ?0010:
   \   01A2  180E              JR      ?0011
   \   01A4            ?0008:
    201              }
    202              else main_ResShowPic(id, POSITION_C, 0);    
   \   01A4  0E00              LD      C,0
   \   01A6  C5                PUSH    BC
   \   01A7  0E26              LD      C,38
   \   01A9  3E00              LD      A,BYTE3 main_ResShowPic
   \   01AB  21C700            LD      HL,LWRD main_ResShowPic
   \   01AE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01B1  F1                POP     AF
   \   01B2            ?0011:
    203          }
   \   01B2  DDE1              POP     IX
   \   01B4  C1                POP     BC
   \   01B5  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01B8            ui_show_d2:
    204          
    205          void ui_show_d2(const char *string, BYTE part)
    206          {
   \   01B8  C5                PUSH    BC
   \   01B9  D5                PUSH    DE
    207              if(part == 0) SetTextPos(POSITION_D - 6, 0);
   \   01BA  AF                XOR     A
   \   01BB  B1                OR      C
   \   01BC  2802              JR      Z,?0079
   \   01BE            ?0012:
   \   01BE            ?0013:
    208              else SetTextPos(POSITION_D - 6, 8);
   \   01BE  0E08              LD      C,8
   \   01C0            ?0079:
   \   01C0  1E2C              LD      E,44
   \   01C2  CDD601            CALL    LWRD ?0126
   \   01C5            ?0014:
    209          
    210              PutS(string, -1);
   \   01C5  39                ADD     HL,SP
   \   01C6  CDDF01            CALL    LWRD ?0127
    211              if(ui_auto_update) UpdateScreen(&region_d2);
   \   01C9  2806              JR      Z,?0016
   \   01CB            ?0015:

⌨️ 快捷键说明

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