ui_director_rec2.lst

来自「MP3 整个 SDK」· LST 代码 · 共 1,196 行 · 第 1/4 页

LST
1,196
字号
   \   00C1  3A0000            LD      A,(fselDirLayer)
   \   00C4  320B00            LD      (temp_record+11),A
    117          }
   \   00C7  D1                POP     DE
   \   00C8  C1                POP     BC
   \   00C9  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00CC            TransOneRecord:
    118          
    119          /********************************************************************************
    120          * Description :用于从idm读记录或写入记录到idm
    121          *
    122          ** Arguments  :
    123          *
    124          * Returns     :
    125          *
    126          * Notes       :
    127          *
    128          ********************************************************************************/
    129          void TransOneRecord(file_record *target,file_record *source_record)
    130          {
   \   00CC  FDE5              PUSH    IY
   \   00CE  DDE5              PUSH    IX
   \   00D0  F5                PUSH    AF
   \   00D1  C5                PUSH    BC
   \   00D2  DDE1              POP     IX
   \   00D4  D5                PUSH    DE
   \   00D5  FDE1              POP     IY
    131              byte status;
    132              status = input8(0x05);
   \   00D7  DB05              IN      A,(5)
   \   00D9  210000            LD      HL,0
   \   00DC  39                ADD     HL,SP
   \   00DD  77                LD      (HL),A
    133              output8(0x05, 0xf6);
   \   00DE  3EF6              LD      A,246
   \   00E0  D305              OUT     (5),A
    134          
    135              target->filetype=source_record->filetype;           //文件类型 0-- 目录  1  文件
   \   00E2  0A                LD      A,(BC)
   \   00E3  EB                EX      DE,HL
   \   00E4  77                LD      (HL),A
    136              memcpy(target->dirno,source_record->dirno,8);    //目录序号
   \   00E5  010800            LD      BC,8
   \   00E8  FDE5              PUSH    IY
   \   00EA  D1                POP     DE
   \   00EB  13                INC     DE
   \   00EC  DDE5              PUSH    IX
   \   00EE  E1                POP     HL
   \   00EF  23                INC     HL
   \   00F0  EDB0              LDIR
    137              target->fileno=source_record->fileno;        //文件序号
   \   00F2  DD6E09            LD      L,(IX+9)
   \   00F5  FD7509            LD      (IY+9),L
   \   00F8  DD660A            LD      H,(IX+10)
   \   00FB  FD740A            LD      (IY+10),H
    138              target->fselExtNo=source_record->fselExtNo;    //当前后缀名
   \   00FE  DD460C            LD      B,(IX+12)
   \   0101  FD700C            LD      (IY+12),B
    139              target->dirlayer=source_record->dirlayer;        //目录层次 0--根目录
   \   0104  DD460B            LD      B,(IX+11)
   \   0107  FD700B            LD      (IY+11),B
    140              memcpy(target->name,source_record->name,12);
   \   010A  210D00            LD      HL,13
   \   010D  FDE5              PUSH    IY
   \   010F  D1                POP     DE
   \   0110  19                ADD     HL,DE
   \   0111  EB                EX      DE,HL
   \   0112  210D00            LD      HL,13
   \   0115  DDE5              PUSH    IX
   \   0117  C1                POP     BC
   \   0118  09                ADD     HL,BC
   \   0119  010C00            LD      BC,12
   \   011C  EDB0              LDIR
    141              memcpy(target->longname,source_record->longname,50);
   \   011E  211900            LD      HL,25
   \   0121  FDE5              PUSH    IY
   \   0123  D1                POP     DE
   \   0124  19                ADD     HL,DE
   \   0125  EB                EX      DE,HL
   \   0126  211900            LD      HL,25
   \   0129  DDE5              PUSH    IX
   \   012B  C1                POP     BC
   \   012C  09                ADD     HL,BC
   \   012D  013200            LD      BC,50
   \   0130  EDB0              LDIR
    142          
    143              output8(0x05, status);
   \   0132  69                LD      L,C
   \   0133  60                LD      H,B
   \   0134  39                ADD     HL,SP
   \   0135  7E                LD      A,(HL)
   \   0136  D305              OUT     (5),A
    144          }
   \   0138  C3A000            JP      LWRD ?0066
   \   013B            ShowDirectory:
    145          
    146          
    147          /********************************************************************************
    148          * Description : show the directory.
    149          *
    150          * Arguments  :
    151          *            location: get thedisk type
    152          *            Invpath: the "\" or name
    153          *            Namebuf:the string you will display
    154          *            type : show file kind
    155          *            string_id: language type
    156          * Returns     :
    157          *            other:    Successful
    158          *            0:    Fail, detail information in fselError
    159          * Notes       :  only display the valid directory or file
    160          *
    161          ********************************************************************************/
    162          void   ShowDirectory(BYTE top,BYTE bottom,BYTE Old_active,BYTE active,BYTE string_id,BYTE Disk)
    163          {
   \   013B  DDE5              PUSH    IX
   \   013D  DD210000          LD      IX,0
   \   0141  DD39              ADD     IX,SP
   \   0143  C5                PUSH    BC
   \   0144  D5                PUSH    DE
   \   0145  F5                PUSH    AF
    164              BYTE i,tmp;
    165           SetTextOutMode(1);
   \   0146  1E01              LD      E,1
   \   0148  CD0000            CALL    LWRD SetTextOutMode
    166           SetPenColor(Color_WHITE_def);
   \   014B  CD6703            CALL    LWRD ?0067
    167              if(Old_active!=active)
   \   014E  DD7E06            LD      A,(IX+6)
   \   0151  DDBE08            CP      (IX+8)
   \   0154  CA4402            JP      Z,?0011
   \   0157            ?0010:
    168              {
    169          
    170          //清除旧的活动菜单项
    171          
    172                        tmp = Old_active%row_count_def;
   \   0157  0606              LD      B,6
   \   0159  CD0000            CALL    LWRD ?UC_MOD_L01
   \   015C  DD77FA            LD      (IX-6),A
    173          
    174                        ResShowPic(MENUBCK6-tmp, menu_ptr_x_def, menu_pos[tmp]-4);            //分段刷新背景
   \   015F  4F                LD      C,A
   \   0160  0600              LD      B,0
   \   0162  210000            LD      HL,menu_pos
   \   0165  09                ADD     HL,BC
   \   0166  7E                LD      A,(HL)
   \   0167  C6FC              ADD     A,252
   \   0169  4F                LD      C,A
   \   016A  C5                PUSH    BC
   \   016B  0E0A              LD      C,10
   \   016D  DD5EFA            LD      E,(IX-6)
   \   0170  50                LD      D,B
   \   0171  216A00            LD      HL,106
   \   0174  A7                AND     A
   \   0175  ED52              SBC     HL,DE
   \   0177  EB                EX      DE,HL
   \   0178  CD9A03            CALL    LWRD ?0069
   \   017B  F1                POP     AF
    175                        ResShowPic(DHT,194,8);
   \   017C  0E08              LD      C,8
   \   017E  C5                PUSH    BC
   \   017F  CD9503            CALL    LWRD ?0070
   \   0182  F1                POP     AF
    176          //显示新的活动菜单
    177          
    178                          tmp = active%row_count_def;
   \   0183  0606              LD      B,6
   \   0185  DD7E08            LD      A,(IX+8)
   \   0188  CD7003            CALL    LWRD ?0068
    179                          TransOneRecord(&temp_record,&OnePageRecord[tmp]);    //将idm中记录数据读取到temp_record中
    180                           if(temp_record.filetype==TYPE_FILE)
   \   018B  2014              JR      NZ,?0013
   \   018D            ?0012:
    181                             ResShowPic(MFILE,13,menu_pos[tmp]-1);
   \   018D  DD4EFA            LD      C,(IX-6)
   \   0190  47                LD      B,A
   \   0191  210000            LD      HL,menu_pos
   \   0194  09                ADD     HL,BC
   \   0195  7E                LD      A,(HL)
   \   0196  C6FF              ADD     A,255
   \   0198  4F                LD      C,A
   \   0199  C5                PUSH    BC
   \   019A  0E0D              LD      C,13
   \   019C  117900            LD      DE,121
   \   019F  1818              JR      ?0058
   \   01A1            ?0013:
    182                         else if(temp_record.filetype==TYPE_DIR)
   \   01A1  3A0000            LD      A,(temp_record)
   \   01A4  B7                OR      A
   \   01A5  2016              JR      NZ,?0016
   \   01A7            ?0015:
    183                           {
    184          
    185                                ResShowPic(MDIR,10,menu_pos[tmp]-4);
   \   01A7  DD4EFA            LD      C,(IX-6)
   \   01AA  47                LD      B,A
   \   01AB  210000            LD      HL,menu_pos
   \   01AE  09                ADD     HL,BC
   \   01AF  7E                LD      A,(HL)
   \   01B0  C6FC              ADD     A,252
   \   01B2  4F                LD      C,A
   \   01B3  C5                PUSH    BC
   \   01B4  0E0A              LD      C,10
   \   01B6  115B00            LD      DE,91
   \   01B9            ?0058:
   \   01B9  CD9A03            CALL    LWRD ?0069
   \   01BC  F1                POP     AF
   \   01BD            ?0016:
   \   01BD            ?0014:
    186          
    187                            }
    188          
    189                             ResShowPic(FILEBCK,  explorer_str_x_def-1, menu_pos[tmp]-4);
   \   01BD  DD4EFA            LD      C,(IX-6)
   \   01C0  0600              LD      B,0
   \   01C2  210000            LD      HL,menu_pos
   \   01C5  09                ADD     HL,BC
   \   01C6  7E                LD      A,(HL)
   \   01C7  C6FC              ADD     A,252
   \   01C9  4F                LD      C,A
   \   01CA  C5                PUSH    BC
   \   01CB  0E1F              LD      C,31
   \   01CD  113200            LD      DE,50
   \   01D0  CD9A03            CALL    LWRD ?0069
   \   01D3  F1                POP     AF
    190                             ResShowPic(DHTHK,194, menu_pos[tmp]+5);
   \   01D4  DD4EFA            LD      C,(IX-6)
   \   01D7  0600              LD      B,0
   \   01D9  210000            LD      HL,menu_pos
   \   01DC  09                ADD     HL,BC
   \   01DD  7E                LD      A,(HL)
   \   01DE  C605              ADD     A,5
   \   01E0  4F                LD      C,A
   \   01E1  C5                PUSH    BC
   \   01E2  0EC2              LD      C,194
   \   01E4  112E00            LD      DE,46
   \   01E7  CD9A03            CALL    LWRD ?0069
   \   01EA  F1                POP     AF
    191          
    192                             SetTextPos(explorer_str_x_def, menu_pos[tmp]-2);
   \   01EB  CDA203            CALL    LWRD ?0071
    193                             SetPenColor(Color_WHITE_def);
   \   01EE  CD6703            CALL    LWRD ?0067
    194                             PutS(temp_record.longname,-1);
   \   01F1  0EFF              LD      C,255
   \   01F3  111900            LD      DE,temp_record+25
   \   01F6  CD0000            CALL    LWRD PutS
    195          
    196          //重新显示旧的活动菜单
    197                          tmp = Old_active%row_count_def;
   \   01F9  0606              LD      B,6
   \   01FB  DD7E06            LD      A,(IX+6)
   \   01FE  CD7003            CALL    LWRD ?0068
    198                          TransOneRecord(&temp_record,&OnePageRecord[tmp]);    //将idm中记录数据读取到temp_record中
    199                          if(temp_record.filetype==TYPE_FILE)
   \   0201  2014              JR      NZ,?0018
   \   0203            ?0017:
    200                             ResShowPic(MFILE,13,menu_pos[tmp]-1);
   \   0203  DD4EFA            LD      C,(IX-6)
   \   0206  47                LD      B,A
   \   0207  210000            LD      HL,menu_pos
   \   020A  09                ADD     HL,BC
   \   020B  7E                LD      A,(HL)
   \   020C  C6FF              ADD     A,255
   \   020E  4F                LD      C,A
   \   020F  C5                PUSH    BC
   \   0210  0E0D              LD      C,13
   \   0212  117900            LD      DE,121
   \   0215  1818              JR      ?0059
   \   0217            ?0018:
    201                          else if(temp_record.filetype==TYPE_DIR)
   \   0217  3A0000            LD      A,(temp_record)
   \   021A  B7                OR      A
   \   021B  2016              JR      NZ,?0021
   \   021D            ?0020:
    202                          {
    203                              {
    204                                  ResShowPic(MDIR,10,menu_pos[tmp]-4);
   \   021D  DD4EFA            LD      C,(IX-6)
   \   0220  47                LD      B,A
   \   0221  210000            LD      HL,menu_pos
   \   0224  09                ADD     HL,BC
   \   0225  7E                LD      A,(HL)
   \   0226  C6FC              ADD     A,252
   \   0228  4F                LD      C,A
   \   0229  C5                PUSH    BC
   \   022A  0E0A              LD      C,10
   \   022C  115B00            LD      DE,91
   \   022F            ?0059:
   \   022F  CD9A03            CALL    LWRD ?0069
   \   0232  F1                POP     AF
   \   0233            ?0021:
   \   0233            ?0019:
    205                              }
    206          
    207                          }
    208                           SetPenColor(Color_WHITE_def);
   \   0233  CD6703            CALL    LWRD ?0067
    209                           SetTextPos(explorer_str_x_def, menu_pos[tmp]-2);

⌨️ 快捷键说明

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