ui_userlist.lst

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

LST
1,141
字号
     91                     output8(0x27,IO27); 
     92                     return TRUE;
     93                  }
   \   00F2            ?0018:
   \   00F2            ?0015:
     94              }
     95              if(FS_FSeek(1+offset/4,FS_SEEK_FFROMSTART,fpview))
   \   00F2  2AC002            LD      HL,(fpview)
   \   00F5  E5                PUSH    HL
   \   00F6  0E00              LD      C,0
   \   00F8  C5                PUSH    BC
   \   00F9  CB3A              SRL     D
   \   00FB  CB1B              RR      E
   \   00FD  CB3A              SRL     D
   \   00FF  CB1B              RR      E
   \   0101  13                INC     DE
   \   0102  41                LD      B,C
   \   0103  CD0000            CALL    LWRD FS_FSeek
   \   0106  E1                POP     HL
   \   0107  E1                POP     HL
   \   0108  B7                OR      A
   \   0109  2818              JR      Z,?0020
   \   010B            ?0019:
     96                  {
     97                     FS_FRead(vbuff,1,fpview);
   \   010B  2AC002            LD      HL,(fpview)
   \   010E  E5                PUSH    HL
   \   010F  0E01              LD      C,1
   \   0111  110000            LD      DE,vbuff
   \   0114  CD0000            CALL    LWRD FS_FRead
   \   0117  E1                POP     HL
     98                     output8(0x27,IO27); 
   \   0118            ?0100:
   \   0118  210000            LD      HL,0
   \   011B  39                ADD     HL,SP
   \   011C  7E                LD      A,(HL)
   \   011D  D327              OUT     (39),A
     99                     return TRUE;
   \   011F  2E01              LD      L,1
    100                  }
   \   0121  1808              JR      ?0021
   \   0123            ?0020:
    101                  else
    102                  {
    103                     output8(0x27,IO27); 
   \   0123  6F                LD      L,A
   \   0124  67                LD      H,A
   \   0125  39                ADD     HL,SP
   \   0126  7E                LD      A,(HL)
   \   0127  D327              OUT     (39),A
    104                     return FALSE;
   \   0129  2E00              LD      L,0
    105                  }
   \   012B            ?0021:
   \   012B  F1                POP     AF
   \   012C  DDE1              POP     IX
   \   012E  C1                POP     BC
   \   012F  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
    106          }
   \   0132            Process_onePage:
    107          
    108          void Process_onePage(WORD *offset,char direct,char last_one)
    109          {
   \   0132  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0135  FEFF              DEFW    -2
   \   0137  FDE5              PUSH    IY
    110                WORD temp;
    111                char i;
    112                ui_Read_Data(*offset);
   \   0139  CD0002            CALL    LWRD ?0109
    113                if(direct==0)
   \   013C  0C                INC     C
   \   013D  0D                DEC     C
   \   013E  2005              JR      NZ,?0023
   \   0140            ?0022:
    114                   i=0;
   \   0140  DD71FE            LD      (IX-2),C
    115                else 
   \   0143  1811              JR      ?0027
   \   0145            ?0023:
    116                {   
    117                   if(last_one==0)
   \   0145  AF                XOR     A
   \   0146  DDB60A            OR      (IX+10)
   \   0149  2006              JR      NZ,?0026
   \   014B            ?0025:
    118                    i=MENU_GROUP-1;
   \   014B  DD36FE05          LD      (IX-2),5
    119                   else
   \   014F  1805              JR      ?0027
   \   0151            ?0026:
    120                    i=last_one-1;  
   \   0151  C6FF              ADD     A,255
   \   0153  DD77FE            LD      (IX-2),A
   \   0156            ?0027:
   \   0156            ?0024:
   \   0156            ?0029:
    121                }
    122                while(1)
    123                {
    124                  temp = (*offset%4)*USER_PLAYLIST_SIZE;
   \   0156  DD6E02            LD      L,(IX+2)
   \   0159  DD6603            LD      H,(IX+3)
   \   015C  7E                LD      A,(HL)
   \   015D  E603              AND     3
   \   015F  6F                LD      L,A
   \   0160  2600              LD      H,0
   \   0162  EB                EX      DE,HL
   \   0163  0607              LD      B,7
   \   0165  CD0000            CALL    LWRD ?S_LSH_L02
   \   0168  D5                PUSH    DE
   \   0169  FDE1              POP     IY
    125                  memcpy(disbuff+i*30,vbuff+temp+43,25);
   \   016B  011900            LD      BC,25
   \   016E  DD5EFE            LD      E,(IX-2)
   \   0171  50                LD      D,B
   \   0172  0E1E              LD      C,30
   \   0174  CD0000            CALL    LWRD ?S_MUL_L02
   \   0177  210002            LD      HL,disbuff
   \   017A  19                ADD     HL,DE
   \   017B  EB                EX      DE,HL
   \   017C  212B00            LD      HL,vbuff+43
   \   017F  FDE5              PUSH    IY
   \   0181  C1                POP     BC
   \   0182  09                ADD     HL,BC
   \   0183  011900            LD      BC,25
   \   0186  EDB0              LDIR
    126                  memcpy(disbuff+i*30+26,vbuff+temp+39,4);
   \   0188  211A02            LD      HL,disbuff+26
   \   018B  DD5EFE            LD      E,(IX-2)
   \   018E  50                LD      D,B
   \   018F  0E1E              LD      C,30
   \   0191  CD0000            CALL    LWRD ?S_MUL_L02
   \   0194  19                ADD     HL,DE
   \   0195  EB                EX      DE,HL
   \   0196  212700            LD      HL,vbuff+39
   \   0199  FDE5              PUSH    IY
   \   019B  C1                POP     BC
   \   019C  09                ADD     HL,BC
   \   019D  010400            LD      BC,4
   \   01A0  EDB0              LDIR
    127                  if(direct==0)
   \   01A2  AF                XOR     A
   \   01A3  DDB604            OR      (IX+4)
   \   01A6  DD6E02            LD      L,(IX+2)
   \   01A9  DD6603            LD      H,(IX+3)
   \   01AC  46                LD      B,(HL)
   \   01AD  23                INC     HL
   \   01AE  66                LD      H,(HL)
   \   01AF  68                LD      L,B
   \   01B0  201F              JR      NZ,?0032
   \   01B2            ?0031:
    128                  {
    129                         if(*offset!=vLastOffset)
   \   01B2  ED4BC402          LD      BC,(vLastOffset)
   \   01B6  ED42              SBC     HL,BC
   \   01B8  2841              JR      Z,?0028
   \   01BA            ?0033:
    130                            memcpy(offset,vbuff+temp+41,2);
   \   01BA  DD5E02            LD      E,(IX+2)
   \   01BD  DD5603            LD      D,(IX+3)
   \   01C0  212900            LD      HL,vbuff+41
   \   01C3  FDE5              PUSH    IY
   \   01C5  C1                POP     BC
   \   01C6  09                ADD     HL,BC
   \   01C7  010200            LD      BC,2
   \   01CA  EDB0              LDIR
    131                          else
   \   01CC            ?0034:
    132                             break;
   \   01CC            ?0035:
    133                         i++;
   \   01CC  DD34FE            INC     (IX-2)
    134                   
    135                  }
    136                  else
   \   01CF  181D              JR      ?0036
   \   01D1            ?0032:
    137                  {
    138                      if(*offset!=vFirstOffset) 
   \   01D1  ED4BC202          LD      BC,(vFirstOffset)
   \   01D5  ED42              SBC     HL,BC
   \   01D7  2822              JR      Z,?0028
   \   01D9            ?0037:
    139                            memcpy(offset,vbuff+temp+39,2);
   \   01D9  DD5E02            LD      E,(IX+2)
   \   01DC  DD5603            LD      D,(IX+3)
   \   01DF  212700            LD      HL,vbuff+39
   \   01E2  FDE5              PUSH    IY
   \   01E4  C1                POP     BC
   \   01E5  09                ADD     HL,BC
   \   01E6  010200            LD      BC,2
   \   01E9  EDB0              LDIR
    140                          else 
   \   01EB            ?0038:
    141                             break;
   \   01EB            ?0039:
    142                       i--;
   \   01EB  DD35FE            DEC     (IX-2)
   \   01EE            ?0036:
    143                  }           
    144                     if(i>=MENU_GROUP)
   \   01EE  DD7EFE            LD      A,(IX-2)
   \   01F1  FE06              CP      6
   \   01F3  3006              JR      NC,?0028
   \   01F5            ?0040:
    145                       break;
   \   01F5            ?0041:
    146                     if(i<0)
   \   01F5            ?0042:
    147                      break;                             
   \   01F5            ?0043:
    148                     ui_Read_Data(*offset);
   \   01F5  CD0002            CALL    LWRD ?0109
    149                }    
    150          }
   \   01F8  C35601            JP      LWRD ?0027
   \   01FB            ?0028:
   \   01FB  FDE1              POP     IY
   \   01FD  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0200            ?0109:
   \   0200  DD6E02            LD      L,(IX+2)
   \   0203  DD6603            LD      H,(IX+3)
   \   0206  5E                LD      E,(HL)
   \   0207  23                INC     HL
   \   0208  56                LD      D,(HL)
   \   0209  3E00              LD      A,BYTE3 ui_Read_Data
   \   020B  21B700            LD      HL,LWRD ui_Read_Data
   \   020E  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0211            ui_userplaylist:
    151          
    152          int ui_userplaylist(file_location_t *location,char type)
    153          {
   \   0211  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0214  F4FF              DEFW    -12
   \   0216  FDE5              PUSH    IY
    154              char old_active,new_active;
    155              char key;
    156              WORD g_list_count;
    157              BOOL need_read=TRUE;
    158              BOOL  need_draw=TRUE;
    159              char  direct=0;
    160              char  list_num;  
    161              char  last_list =0; 
    162              WORD CurOffset;
    163              char IO27 = input8(0x27);
   \   0218  DB27              IN      A,(39)
   \   021A  DD77F7            LD      (IX-9),A
    164              vsave_offset = 0xFFFF;
   \   021D  21FFFF            LD      HL,65535
   \   0220  22C802            LD      (vsave_offset),HL
    165              if(!Open_view())
   \   0223  DD36F901          LD      (IX-7),1
   \   0227  DD36F501          LD      (IX-11),1
   \   022B  DD36FB00          LD      (IX-5),0
   \   022F  DD36FE00          LD      (IX-2),0
   \   0233  3E00              LD      A,BYTE3 Open_view
   \   0235  210000            LD      HL,LWRD Open_view
   \   0238  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   023B  2C                INC     L
   \   023C  2D                DEC     L
   \   023D  CA9904            JP      Z,?0104
   \   0240            ?0044:
    166                 return RESULT_IGNORE;
   \   0240            ?0045:
    167              CurOffset = vFirstOffset;
   \   0240  2AC202            LD      HL,(vFirstOffset)
   \   0243  DD75FC            LD      (IX-4),L
   \   0246  DD74FD            LD      (IX-3),H
    168              new_active=0;
    169              old_active = 0;
    170              g_list_count = 0;
    171              //Process_onePage(&CurOffset,0);
    172              list_num =vTotal-g_list_count;
   \   0249  3AC602            LD      A,(vTotal)
   \   024C  DD77F8            LD      (IX-8),A
   \   024F  DD36F400          LD      (IX-12),0
   \   0253  DD36F600          LD      (IX-10),0
   \   0257  FD210000          LD      IY,0
   \   025B            ?0047:
    173              
    174              while(1)
    175              {
    176                  if(need_read)
   \   025B  AF                XOR     A
   \   025C  DDB6F9            OR      (IX-7)

⌨️ 快捷键说明

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