ui_director2.lst

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

LST
1,325
字号
   \   008D  FDE5              PUSH    IY
   \   008F  DDE5              PUSH    IX
   \   0091  F5                PUSH    AF
   \   0092  C5                PUSH    BC
   \   0093  DDE1              POP     IX
   \   0095  D5                PUSH    DE
   \   0096  FDE1              POP     IY
    103              byte status;
    104              status = input8(0x05);
   \   0098  DB05              IN      A,(5)
   \   009A  210000            LD      HL,0
   \   009D  39                ADD     HL,SP
   \   009E  77                LD      (HL),A
    105              output8(0x05, 0xf6);
   \   009F  3EF6              LD      A,246
   \   00A1  D305              OUT     (5),A
    106          
    107              target->filetype=source_record->filetype;           //文件类型 0-- 目录  1  文件
   \   00A3  0A                LD      A,(BC)
   \   00A4  EB                EX      DE,HL
   \   00A5  77                LD      (HL),A
    108              memcpy(target->dirno,source_record->dirno,8);    //目录序号
   \   00A6  010800            LD      BC,8
   \   00A9  FDE5              PUSH    IY
   \   00AB  D1                POP     DE
   \   00AC  13                INC     DE
   \   00AD  DDE5              PUSH    IX
   \   00AF  E1                POP     HL
   \   00B0  23                INC     HL
   \   00B1  EDB0              LDIR
    109              target->fileno=source_record->fileno;        //文件序号
   \   00B3  DD6E09            LD      L,(IX+9)
   \   00B6  FD7509            LD      (IY+9),L
   \   00B9  DD660A            LD      H,(IX+10)
   \   00BC  FD740A            LD      (IY+10),H
    110              target->fselExtNo=source_record->fselExtNo;    //当前后缀名
   \   00BF  DD460C            LD      B,(IX+12)
   \   00C2  FD700C            LD      (IY+12),B
    111              target->dirlayer=source_record->dirlayer;        //目录层次 0--根目录
   \   00C5  DD460B            LD      B,(IX+11)
   \   00C8  FD700B            LD      (IY+11),B
    112              memcpy(target->name,source_record->name,12);
   \   00CB  210D00            LD      HL,13
   \   00CE  FDE5              PUSH    IY
   \   00D0  D1                POP     DE
   \   00D1  19                ADD     HL,DE
   \   00D2  EB                EX      DE,HL
   \   00D3  210D00            LD      HL,13
   \   00D6  DDE5              PUSH    IX
   \   00D8  C1                POP     BC
   \   00D9  09                ADD     HL,BC
   \   00DA  010C00            LD      BC,12
   \   00DD  EDB0              LDIR
    113              memcpy(target->longname,source_record->longname,50);
   \   00DF  211900            LD      HL,25
   \   00E2  FDE5              PUSH    IY
   \   00E4  D1                POP     DE
   \   00E5  19                ADD     HL,DE
   \   00E6  EB                EX      DE,HL
   \   00E7  211900            LD      HL,25
   \   00EA  DDE5              PUSH    IX
   \   00EC  C1                POP     BC
   \   00ED  09                ADD     HL,BC
   \   00EE  013200            LD      BC,50
   \   00F1  EDB0              LDIR
    114          
    115              output8(0x05, status);
   \   00F3  69                LD      L,C
   \   00F4  60                LD      H,B
   \   00F5  39                ADD     HL,SP
   \   00F6  7E                LD      A,(HL)
   \   00F7  D305              OUT     (5),A
    116          }
   \   00F9  C36100            JP      LWRD ?0088
   \   00FC            ShowDirectory:
    117          
    118          
    119          /********************************************************************************
    120          * Description : show the directory.
    121          *
    122          * Arguments  :
    123          *            location: get thedisk type
    124          *            Invpath: the "\" or name
    125          *            Namebuf:the string you will display
    126          *            type : show file kind
    127          *            string_id: language type
    128          * Returns     :
    129          *            other:    Successful
    130          *            0:    Fail, detail information in fselError
    131          * Notes       :  only display the valid directory or file
    132          *
    133          ********************************************************************************/
    134          
    135           void ShowDirectory(WORD top,WORD bottom,WORD Old_active,WORD active,BYTE string_id,BYTE Disk)
    136          {
   \   00FC  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   00FF  F6FF              DEFW    -10
   \   0101  FDE5              PUSH    IY
    137              WORD i,tmp;
    138             // region_t region;
    139              DC  oldDC_sav;
    140              GetDCStatus(&oldDC_sav);
   \   0103  210400            LD      HL,4
   \   0106  39                ADD     HL,SP
   \   0107  EB                EX      DE,HL
   \   0108  CD0000            CALL    LWRD GetDCStatus
    141          
    142              ///-SetTextOutMode(1);
    143              ///-SetPenColor(Color_BLACK_def);
    144              if(Old_active!=active)
   \   010B  DD6E0C            LD      L,(IX+12)
   \   010E  DD660D            LD      H,(IX+13)
   \   0111  DD5E0A            LD      E,(IX+10)
   \   0114  DD560B            LD      D,(IX+11)
   \   0117  A7                AND     A
   \   0118  ED52              SBC     HL,DE
   \   011A  CAED01            JP      Z,?0006
   \   011D            ?0005:
    145              {
    146                  //清除旧的活动菜单项
    147                  tmp = Old_active%row_count_def;
   \   011D  010600            LD      BC,6
   \   0120  CD0000            CALL    LWRD ?US_MOD_L02
    148                  ResShowPic(FILEBCK1, 12, menu_pos_list[tmp]-1);
   \   0123  210000            LD      HL,menu_pos_list
   \   0126  19                ADD     HL,DE
   \   0127  7E                LD      A,(HL)
   \   0128  C6FF              ADD     A,255
   \   012A  4F                LD      C,A
   \   012B  C5                PUSH    BC
   \   012C  0E0C              LD      C,12
   \   012E  112D00            LD      DE,45
   \   0131  CD6003            CALL    LWRD ?0090
   \   0134  F1                POP     AF
    149          
    150                  //显示新的活动菜单
    151                  tmp = active%row_count_def;
   \   0135  010600            LD      BC,6
   \   0138  DD5E0C            LD      E,(IX+12)
   \   013B  DD560D            LD      D,(IX+13)
   \   013E  CD3A03            CALL    LWRD ?0089
    152                  TransOneRecord(&temp_record,&OnePageRecord[tmp]);    //将idm中记录数据读取到temp_record中
    153                  if(temp_record.filetype==TYPE_FILE)
   \   0141  2013              JR      NZ,?0008
   \   0143            ?0007:
    154                      ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
   \   0143  210000            LD      HL,menu_pos_list
   \   0146  FDE5              PUSH    IY
   \   0148  C1                POP     BC
   \   0149  09                ADD     HL,BC
   \   014A  7E                LD      A,(HL)
   \   014B  C602              ADD     A,2
   \   014D  4F                LD      C,A
   \   014E  C5                PUSH    BC
   \   014F  0E00              LD      C,0
   \   0151  11C600            LD      DE,198
   \   0154  1813              JR      ?0076
   \   0156            ?0008:
    155          //        if(temp_record.filetype==TYPE_FILE)
    156          //        ResShowPic(MFILE, 0, (LCD_HEIGHT-16*(tmp+1)));
    157                  else if(temp_record.filetype==TYPE_DIR)
   \   0156  3A0000            LD      A,(temp_record)
   \   0159  B7                OR      A
   \   015A  2011              JR      NZ,?0011
   \   015C            ?0010:
    158                  {
    159                      ResShowPic(MDIR,0,menu_pos_list[tmp]);
   \   015C  210000            LD      HL,menu_pos_list
   \   015F  FDE5              PUSH    IY
   \   0161  C1                POP     BC
   \   0162  09                ADD     HL,BC
   \   0163  4E                LD      C,(HL)
   \   0164  C5                PUSH    BC
   \   0165  4F                LD      C,A
   \   0166  11AF00            LD      DE,175
   \   0169            ?0076:
   \   0169  CD6003            CALL    LWRD ?0090
   \   016C  F1                POP     AF
   \   016D            ?0011:
   \   016D            ?0009:
    160                  }
    161          
    162                  ResShowPic(FILEBCK,  12, menu_pos_list[tmp]-1);
   \   016D  210000            LD      HL,menu_pos_list
   \   0170  FDE5              PUSH    IY
   \   0172  C1                POP     BC
   \   0173  09                ADD     HL,BC
   \   0174  7E                LD      A,(HL)
   \   0175  C6FF              ADD     A,255
   \   0177  5F                LD      E,A
   \   0178  D5                PUSH    DE
   \   0179  CD5B03            CALL    LWRD ?0091
   \   017C  F1                POP     AF
    163          
    164                  SetTextPos(12, menu_pos_list[tmp]);
   \   017D  210000            LD      HL,menu_pos_list
   \   0180  FDE5              PUSH    IY
   \   0182  C1                POP     BC
   \   0183  09                ADD     HL,BC
   \   0184  4E                LD      C,(HL)
   \   0185  1E0C              LD      E,12
   \   0187  CD0000            CALL    LWRD SetTextPos
    165                  SetPenColor(Color_WHITE_def);
   \   018A  CD7803            CALL    LWRD ?0093
    166                  SetBackgdColor(0x00003358);
   \   018D  CD0000            CALL    LWRD SetBackgdColor
    167                  PutS(temp_record.longname,-1);
   \   0190  0EFF              LD      C,255
   \   0192  111900            LD      DE,temp_record+25
   \   0195  CD0000            CALL    LWRD PutS
    168           
    169                  //重新显示旧的活动菜单
    170                  tmp = Old_active%row_count_def;
   \   0198  010600            LD      BC,6
   \   019B  DD5E0A            LD      E,(IX+10)
   \   019E  DD560B            LD      D,(IX+11)
   \   01A1  CD3A03            CALL    LWRD ?0089
    171                  TransOneRecord(&temp_record,&OnePageRecord[tmp]);    //将idm中记录数据读取到temp_record中
    172                  if(temp_record.filetype==TYPE_FILE)
   \   01A4  2013              JR      NZ,?0013
   \   01A6            ?0012:
    173                      ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
   \   01A6  210000            LD      HL,menu_pos_list
   \   01A9  FDE5              PUSH    IY
   \   01AB  C1                POP     BC
   \   01AC  09                ADD     HL,BC
   \   01AD  7E                LD      A,(HL)
   \   01AE  C602              ADD     A,2
   \   01B0  4F                LD      C,A
   \   01B1  C5                PUSH    BC
   \   01B2  0E00              LD      C,0
   \   01B4  11C600            LD      DE,198
   \   01B7  1813              JR      ?0077
   \   01B9            ?0013:
    174                  else if(temp_record.filetype==TYPE_DIR)
   \   01B9  3A0000            LD      A,(temp_record)
   \   01BC  B7                OR      A
   \   01BD  2011              JR      NZ,?0016
   \   01BF            ?0015:
    175                  {
    176                      ResShowPic(MDIR,0,menu_pos_list[tmp]);
   \   01BF  210000            LD      HL,menu_pos_list
   \   01C2  FDE5              PUSH    IY
   \   01C4  C1                POP     BC
   \   01C5  09                ADD     HL,BC
   \   01C6  4E                LD      C,(HL)
   \   01C7  C5                PUSH    BC
   \   01C8  4F                LD      C,A
   \   01C9  11AF00            LD      DE,175
   \   01CC            ?0077:
   \   01CC  CD6003            CALL    LWRD ?0090
   \   01CF  F1                POP     AF
   \   01D0            ?0016:
   \   01D0            ?0014:
    177                  }
    178                  SetPenColor(Color_BLACK_def);
   \   01D0  010000            LD      BC,0
   \   01D3  59                LD      E,C
   \   01D4  50                LD      D,B
   \   01D5  CD0000            CALL    LWRD SetPenColor
    179                  SetBackgdColor(Color_MENU_def);
   \   01D8  010000            LD      BC,0
   \   01DB  11FFFF            LD      DE,65535
   \   01DE  CD0000            CALL    LWRD SetBackgdColor
    180                  SetTextPos(12, menu_pos_list[tmp]);

⌨️ 快捷键说明

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