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

📄 sub_function2.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   010F  3A0000            LD      A,(g_langid)
   \   0112  4F                LD      C,A
   \   0113  C5                PUSH    BC
   \   0114  0E1E              LD      C,30
   \   0116  110000            LD      DE,dir_name
   \   0119  3E00              LD      A,BYTE3 unitochar
   \   011B  210000            LD      HL,LWRD unitochar
   \   011E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0121  F1                POP     AF
    108                      }
    109                      else
   \   0122  1810              JR      ?0018
   \   0124            ?0017:
    110                      {
    111                          memcpy(dir_name, g_amv_vars.location.path, 12);
   \   0124  0E0C              LD      C,12
   \   0126  110000            LD      DE,dir_name
   \   0129  211300            LD      HL,g_amv_vars+19
   \   012C  EDB0              LDIR
    112                          dir_name[8]=0;
   \   012E  320800            LD      (dir_name+8),A
    113                          dir_name[9]=0;
   \   0131  320900            LD      (dir_name+9),A
   \   0134            ?0018:
    114                      }
    115                      FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   0134  210000            LD      HL,0
   \   0137  E5                PUSH    HL
   \   0138  0E02              LD      C,2
   \   013A  23                INC     HL
   \   013B  23                INC     HL
   \   013C  39                ADD     HL,SP
   \   013D  EB                EX      DE,HL
   \   013E  CD0000            CALL    LWRD FS_Restore
   \   0141  E1                POP     HL
   \   0142            ?0015:
    116                  }
    117          
    118          
    119          }
   \   0142  212000            LD      HL,32
   \   0145  39                ADD     HL,SP
   \   0146  F9                LD      SP,HL
   \   0147  DDE1              POP     IX
   \   0149  D1                POP     DE
   \   014A  C1                POP     BC
   \   014B  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   014E            read_var:
    120          
    121          void read_var( void )
    122          {
   \   014E  C5                PUSH    BC
   \   014F  D5                PUSH    DE
   \   0150  DDE5              PUSH    IX
    123                  int result;
    124                  //comval_t g_comval; //系统变量,ap不能更改
    125          
    126          
    127                  //read comval
    128                  result = VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
   \   0152  212000            LD      HL,32
   \   0155  E5                PUSH    HL
   \   0156  010002            LD      BC,512
   \   0159  110000            LD      DE,g_comval
   \   015C  CD0000            CALL    LWRD VMRead
   \   015F  E1                POP     HL
    129                  ASSERT(result);
    130          
    131                  //check if valid
    132                  if (g_comval.magic != MAGIC_COMVAL)
   \   0160  21ADDE            LD      HL,57005
   \   0163  ED4B0000          LD      BC,(g_comval)
   \   0167  A7                AND     A
   \   0168  ED42              SBC     HL,BC
   \   016A  2806              JR      Z,?0020
   \   016C            ?0019:
    133                  {
    134                      GetDefaultComval(&g_comval);
   \   016C  110000            LD      DE,g_comval
   \   016F  CD0000            CALL    LWRD GetDefaultComval
   \   0172            ?0020:
    135                  }
    136          
    137                  g_langid = g_comval.langid;//记录系统语言
   \   0172  3A0C00            LD      A,(g_comval+12)
   \   0175  320000            LD      (g_langid),A
    138                  g_BatteryType = g_comval.BatteryType;//记录电池类型
   \   0178  3A0F00            LD      A,(g_comval+15)
   \   017B  320000            LD      (g_BatteryType),A
    139          
    140                  ap_message_init(& g_comval);
   \   017E  110000            LD      DE,g_comval
   \   0181  3E00              LD      A,BYTE3 ap_message_init
   \   0183  210000            LD      HL,LWRD ap_message_init
   \   0186  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    141          
    142                  //read ap vars
    143                  result = VMRead(& g_amv_vars, VM_AP_AMV, sizeof(g_amv_vars));
   \   0189  213600            LD      HL,54
   \   018C  E5                PUSH    HL
   \   018D  010048            LD      BC,18432
   \   0190  110000            LD      DE,g_amv_vars
   \   0193  CD0000            CALL    LWRD VMRead
   \   0196  E1                POP     HL
    144                  ASSERT(result);
    145          
    146              //check if valid
    147              if (g_amv_vars.magic != MAGIC_AMV)
   \   0197  216D61            LD      HL,24941
   \   019A  ED4B0000          LD      BC,(g_amv_vars)
   \   019E  A7                AND     A
   \   019F  ED42              SBC     HL,BC
   \   01A1  2825              JR      Z,?0022
   \   01A3            ?0021:
    148              {
    149          
    150                  g_amv_vars.magic = MAGIC_AMV;
   \   01A3  216D61            LD      HL,24941
   \   01A6  220000            LD      (g_amv_vars),HL
    151                  g_amv_vars.volume = 24;
   \   01A9  3E18              LD      A,24
   \   01AB  320200            LD      (g_amv_vars+2),A
    152                  g_amv_vars.repeat_mode = FSEL_ALL_SEQUENCE;
   \   01AE  AF                XOR     A
   \   01AF  320300            LD      (g_amv_vars+3),A
    153                  g_amv_vars.location.disk = 'C';
   \   01B2  3E43              LD      A,67
   \   01B4  320500            LD      (g_amv_vars+5),A
    154          
    155                  strcpy(g_amv_vars.location.path, FS_CD_ROOT);
   \   01B7  110500            LD      DE,?0023
   \   01BA  211300            LD      HL,g_amv_vars+19
   \   01BD  CD0000            CALL    LWRD ?STRCPY_L11
    156                  ClearTimePara();
   \   01C0  3E00              LD      A,BYTE3 ClearTimePara
   \   01C2  215802            LD      HL,LWRD ClearTimePara
   \   01C5  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01C8            ?0022:
    157              }
    158          
    159          
    160          }
   \   01C8  DDE1              POP     IX
   \   01CA  D1                POP     DE
   \   01CB  C1                POP     BC
   \   01CC  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01CF            DealErrCase:
    161          /*
    162          ********************************************************************************
    163          *             bool DealErrCase(void)
    164          *
    165          * Description : 获取文件选择器的出错类型  (文件选择器错处理)
    166          *
    167          * Arguments   : void
    168          *
    169          * Returns     : int 出错号
    170          *
    171          * Notes       :
    172          *
    173          ********************************************************************************
    174          */
    175          bool DealErrCase( void )
    176          {
   \   01CF  C5                PUSH    BC
   \   01D0  D5                PUSH    DE
   \   01D1  F5                PUSH    AF
    177           
    178              BYTE id;
    179          
    180           
    181              id = FSELGetErrID();
   \   01D2  3E00              LD      A,BYTE3 fselGetErrID
   \   01D4  210000            LD      HL,LWRD fselGetErrID
   \   01D7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01DA  E5                PUSH    HL
   \   01DB  210200            LD      HL,2
   \   01DE  39                ADD     HL,SP
   \   01DF  C1                POP     BC
   \   01E0  71                LD      (HL),C
   \   01E1            ?0025:
    182              while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
   \   01E1  CD0000            CALL    LWRD ap_get_message
   \   01E4  B7                OR      A
   \   01E5  20FA              JR      NZ,?0025
   \   01E7            ?0026:
   \   01E7            ?0024:
    183              switch (id)
   \   01E7  6F                LD      L,A
   \   01E8  67                LD      H,A
   \   01E9  39                ADD     HL,SP
   \   01EA  7E                LD      A,(HL)
   \   01EB  FE02              CP      2
   \   01ED  200C              JR      NZ,?0029
   \   01EF            ?0028:
    184              {
    185                  case FSEL_ERR_EMPTY:
    186                      ui_show_msg (DFILEOUT, DFILEOUT, g_langid);
   \   01EF  ED4B0000          LD      BC,(g_langid)
   \   01F3  0600              LD      B,0
   \   01F5  C5                PUSH    BC
   \   01F6  019201            LD      BC,402
   \   01F9  1812              JR      ?0040
    187                      ap_sleep(4);
    188                      break;
   \   01FB            ?0029:
   \   01FB  FE15              CP      21
   \   01FD  3824              JR      C,?0027
   \   01FF  FE17              CP      23
   \   0201  3020              JR      NC,?0027
    189          
    190                  case FSEL_ERR_FAIL:
    191                  case FSEL_ERR_DISK:
    192                      ui_show_msg (MREADERR, MREADERR, g_langid);
   \   0203  ED4B0000          LD      BC,(g_langid)
   \   0207  0600              LD      B,0
   \   0209  C5                PUSH    BC
   \   020A  018901            LD      BC,393
   \   020D            ?0040:
   \   020D  59                LD      E,C
   \   020E  50                LD      D,B
   \   020F  3E00              LD      A,BYTE3 ui_show_msg
   \   0211  210000            LD      HL,LWRD ui_show_msg
   \   0214  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0217  F1                POP     AF
    193                      ap_sleep(4);
   \   0218  110400            LD      DE,4
   \   021B  3E00              LD      A,BYTE3 ap_sleep
   \   021D  210000            LD      HL,LWRD ap_sleep
   \   0220  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    194                      break;
   \   0223            ?0030:
    195          
    196                  default:
    197                      break;
   \   0223            ?0027:
    198              }
    199          
    200              ResClose(g_Resfp_Sav);
   \   0223  ED5B0000          LD      DE,(g_Resfp_Sav)
   \   0227  3E00              LD      A,BYTE3 ResClose
   \   0229  210000            LD      HL,LWRD ResClose
   \   022C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    201              return 0;
   \   022F  2E00              LD      L,0
    202          
    203          }
   \   0231  F1                POP     AF
   \   0232  D1                POP     DE
   \   0233  C1                POP     BC
   \   0234  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0237            openDAC:
    204          
    205          
    206          void openDAC(void)
    207          {
   \   0237  D5                PUSH    DE
   \   0238  F5                PUSH    AF
   \   0239  F5                PUSH    AF
    208              dac_t dacattr;
    209              output8(0x5,0xf7); // set the 05 regsiter
   \   023A  3EF7              LD      A,247
   \   023C  D305              OUT     (5),A
    210              output8(0x4e,input8(0x4e)|0x8);
   \   023E  DB4E              IN      A,(78)
   \   0240  CBDF              SET     3,A
   \   0242  D34E              OUT     (78),A
    211          
    212              dacattr.dacselect = 0;
   \   0244  210000            LD      HL,0
   \   0247  39                ADD     HL,SP
   \   0248  3600              LD      (HL),0
    213              dacattr.rate = 22;
   \   024A  23                INC     HL
   \   024B  3616              LD      (HL),22
    214              EnableDAC(&dacattr);
   \   024D  2B                DEC     HL
   \   024E  EB                EX      DE,HL
   \   024F  CD0000            CALL    LWRD EnableDAC
    215          
    216          }
   \   0252  E1                POP     HL
   \   0253  E1                POP     HL
   \   0254  D1                POP     DE
   \   0255  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0258            ClearTimePara:
    217          
    218          void ClearTimePara(void)
    219          {
   \   0258  C5                PUSH    BC
    220                  BYTE i;
    221                  g_amv_vars.amvfilebreakpoint.AmvFileFLashDot=0;
   \   0259  010000            LD      BC,0
   \   025C  ED432E00          LD      (g_amv_vars+46),BC
   \   0260  ED433000          LD      (g_amv_vars+48),BC
    222                  g_amv_vars.amvfilebreakpoint.TimeSec=0;
   \   0264  AF                XOR     A
   \   0265  323200            LD      (g_amv_vars+50),A
    223                  g_amv_vars.amvfilebreakpoint.TimeMin=0;
   \   0268  323300            LD      (g_amv_vars+51),A
    224                  g_amv_vars.amvfilebreakpoint.TimeHou=0;
   \   026B  323400            LD      (g_amv_vars+52),A
    225          
    226          
    227          }
   \   026E  C1                POP     BC
   \   026F  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0272            GetInformation1:
    228          
    229          
    230          
    231          /*
    232          ********************************************************************************
    233          *             int GetInformation(void)
    234          *
    235          * Description : 读取歌曲信息,歌词
    236          *
    237          * Arguments   : void
    238          *
    239          * Returns     : int
    240          *
    241          * Notes       :
    242          *
    243          ********************************************************************************
    244          */
    245          int GetInformation1( void )//取下一首文件信息
    246          {
   \   0272  C5                PUSH    BC
   \   0273  D5                PUSH    DE
   \   0274  DDE5              PUSH    IX
    247                int result;
    248                memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
   \   0276  010C00            LD      BC,12
   \   0279  110000            LD      DE,g_TagInfoBuf
   \   027C  211F00            LD      HL,g_amv_vars+31
   \   027F  EDB0              LDIR
    249               result = FS_GetName(g_TagInfoBuf, 31); //取出长名
   \   0281  0E1F              LD      C,31
   \   0283  110000            LD      DE,g_TagInfoBuf
   \   0286  CD0000            CALL    LWRD FS_GetName
   \   0289  0600              LD      B,0
    250                   if (result != 0)
   \   028B  B7                OR      A
   \   028C  2815              JR      Z,?0032
   \   028E            ?0031:

⌨️ 快捷键说明

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