show_stop.lst

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

LST
1,184
字号
    314                              g_record_vars.rec_bitrate != rec_bitrate)
   \   03A2  3E67              LD      A,103
   \   03A4  AD                XOR     L
   \   03A5  B4                OR      H
   \   03A6  2808              JR      Z,?0058
   \   03A8  3A0300            LD      A,(g_record_vars+3)
   \   03AB  DDBEFC            CP      (IX-4)
   \   03AE  2816              JR      Z,?0057
   \   03B0            ?0058:
   \   03B0            ?0059:
   \   03B0            ?0056:
    315                          {
    316                              g_record_vars.Rec_Fsrate=rec_FsrateCodec[g_record_vars.rec_bitrate];
   \   03B0  ED4B0300          LD      BC,(g_record_vars+3)
   \   03B4  0600              LD      B,0
   \   03B6  210400            LD      HL,rec_FsrateCodec
   \   03B9  09                ADD     HL,BC
   \   03BA  46                LD      B,(HL)
   \   03BB  78                LD      A,B
   \   03BC  320200            LD      (g_record_vars+2),A
    317                              //目录改变后,重新分析文件个数
    318                              need_parse = TRUE;
   \   03BF  DD36F801          LD      (IX-8),1
   \   03C3  C37904            JP      LWRD ?0097
   \   03C6            ?0057:
    319                          }
    320                          else if(result != 0) return result;
   \   03C6  7D                LD      A,L
   \   03C7  B4                OR      H
   \   03C8  CA7904            JP      Z,?0097
   \   03CB            ?0061:
   \   03CB  C38A04            JP      LWRD ?0086
   \   03CE            ?0062:
   \   03CE            ?0060:
    321          
    322                          need_draw = TRUE;
    323                      }
    324                      else
   \   03CE            ?0052:
    325                          g_menu_active = TRUE;
   \   03CE  3E01              LD      A,1
   \   03D0  320B00            LD      (g_menu_active),A
   \   03D3            ?0063:
    326                      break;
   \   03D3  C3FD01            JP      LWRD ?0022
   \   03D6            ?0064:
    327          
    328                      
    329                  case AP_KEY_AB:
    330                      //skip this hotkey
    331                      break;
   \   03D6            ?0065:
    332                      
    333                  case AP_KEY_PLAY | AP_KEY_UP:
    334                  case AP_KEY_AB |AP_KEY_UP:
    335                      if(!waiting_keyup)
   \   03D6  AF                XOR     A
   \   03D7  DDB6FB            OR      (IX-5)
   \   03DA  C2F901            JP      NZ,?0093
   \   03DD            ?0066:
    336                      {
    337                          result = do_rec();
   \   03DD  3E00              LD      A,BYTE3 do_rec
   \   03DF  210000            LD      HL,LWRD do_rec
   \   03E2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   03E5  E5                PUSH    HL
   \   03E6  FDE1              POP     IY
    338          
    339                          //打开自动关机检测
    340                          ap_message_init(NULL);
   \   03E8  110000            LD      DE,0
   \   03EB  3E00              LD      A,BYTE3 ap_message_init
   \   03ED  210000            LD      HL,LWRD ap_message_init
   \   03F0  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    341                          
    342                          //check if user hold rec to stop it
    343                          if(result == RESULT_USER_STOP)
   \   03F3  FDE5              PUSH    IY
   \   03F5  E1                POP     HL
   \   03F6  3E65              LD      A,101
   \   03F8  AD                XOR     L
   \   03F9  B4                OR      H
   \   03FA  2008              JR      NZ,?0069
   \   03FC            ?0068:
    344                          {
    345                              waiting_keyup = TRUE;
    346                              
    347                              result = 0;
   \   03FC  DD36FB01          LD      (IX-5),1
   \   0400  FD210000          LD      IY,0
   \   0404            ?0069:
    348                          }
    349                           
    350                          if(result==AP_MSG_SD_OUT)
   \   0404  FDE5              PUSH    IY
   \   0406  E1                POP     HL
   \   0407  3E37              LD      A,55
   \   0409  AD                XOR     L
   \   040A  B4                OR      H
   \   040B  2009              JR      NZ,?0071
   \   040D            ?0070:
    351                          {
    352                                 
    353                                  show_error(CARDPULL);//显示卡拔出  
   \   040D  CD9404            CALL    LWRD ?0101
    354                                  output8(0x27,0x60); 
   \   0410  3E60              LD      A,96
   \   0412  D327              OUT     (39),A
    355                                  g_record_vars.location.disk = 'C';   
   \   0414  182A              JR      ?0099
    356                                  fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
    357                                 // fselGetLocation(&g_record_vars.location); 
    358                                  reset_record_dir();
    359                                  make_dirname(); 
    360                                  need_parse = TRUE; 
    361                                  break;
   \   0416            ?0071:
    362                          } 
    363                          
    364                          //check for hotkey
    365                          if(result != 0) return result;
   \   0416  7D                LD      A,L
   \   0417  B4                OR      H
   \   0418  284E              JR      Z,?0096
   \   041A            ?0072:
   \   041A  186E              JR      ?0086
   \   041C            ?0073:
    366                          
    367                          //gen a new file name for nex time recording
    368                          need_parse = TRUE;
    369                      }
    370                      else
   \   041C            ?0067:
    371                      {
    372                          //取走用户的按键抬起
    373                          
    374                          waiting_keyup = FALSE;
   \   041C            ?0074:
    375                      }
    376                      
    377                      break;
   \   041C            ?0075:
    378          
    379                      
    380                  case AP_MSG_RTC:
    381                      ui_show_batt(GetBattery(), g_comval.BatteryType,0);
    382          
    383                      break;
   \   041C            ?0076:
    384          
    385                      
    386                  case AP_MSG_CHARGING:
    387                      ui_show_batt(GetBattery(), g_comval.BatteryType,0);
   \   041C  0E00              LD      C,0
   \   041E  C5                PUSH    BC
   \   041F  ED4B0F00          LD      BC,(g_comval+15)
   \   0423  CD0000            CALL    LWRD GetBattery
   \   0426  5F                LD      E,A
   \   0427  1600              LD      D,0
   \   0429  3E00              LD      A,BYTE3 ui_show_batt
   \   042B  210000            LD      HL,LWRD ui_show_batt
   \   042E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0431  E1                POP     HL
    388          
    389                      break;
   \   0432  C3FD01            JP      LWRD ?0022
   \   0435            ?0077:
    390                  case AP_MSG_SD_OUT:
    391                      if(g_record_vars.location.disk=='H')
   \   0435  3A0A00            LD      A,(g_record_vars+10)
   \   0438  FE48              CP      72
   \   043A  C2FD01            JP      NZ,?0022
   \   043D            ?0078:
    392                      {         
    393                                  show_error(CARDPULL);//显示卡拔出
   \   043D  CD9404            CALL    LWRD ?0101
    394                                  g_record_vars.location.disk = 'C';  
   \   0440            ?0099:
   \   0440  3E43              LD      A,67
   \   0442  320A00            LD      (g_record_vars+10),A
    395                                  fselInit(DIRECTORY_ALL,  FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
   \   0445  4F                LD      C,A
   \   0446  C5                PUSH    BC
   \   0447  0E00              LD      C,0
   \   0449  C5                PUSH    BC
   \   044A  0E07              LD      C,7
   \   044C  1E02              LD      E,2
   \   044E  3E00              LD      A,BYTE3 fselInit
   \   0450  210000            LD      HL,LWRD fselInit
   \   0453  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0456  F1                POP     AF
   \   0457  F1                POP     AF
    396                                 // fselGetLocation(&g_record_vars.location); 
    397                                  reset_record_dir(); 
   \   0458  3E00              LD      A,BYTE3 reset_record_dir
   \   045A  210000            LD      HL,LWRD reset_record_dir
   \   045D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    398                                  make_dirname(); 
   \   0460  3E00              LD      A,BYTE3 make_dirname
   \   0462  210000            LD      HL,LWRD make_dirname
   \   0465  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    399                                  need_parse = TRUE;
   \   0468            ?0096:
   \   0468  DD36F801          LD      (IX-8),1
   \   046C            ?0079:
    400                      }
    401                      break;  
   \   046C  C3FD01            JP      LWRD ?0022
   \   046F            ?0080:
    402              
    403                  default:
    404                      key = ap_handle_hotkey( key);
   \   046F  CD0000            CALL    LWRD ap_handle_hotkey
   \   0472  DD77F9            LD      (IX-7),A
    405                      if(key == RESULT_REDRAW) need_draw = TRUE;
   \   0475  FE32              CP      50
   \   0477  2007              JR      NZ,?0082
   \   0479            ?0081:
   \   0479            ?0097:
   \   0479  DD36FA01          LD      (IX-6),1
   \   047D  C3FD01            JP      LWRD ?0022
   \   0480            ?0082:
    406                      else if(key != 0) return key;
   \   0480  AF                XOR     A
   \   0481  DDB6F9            OR      (IX-7)
   \   0484  CAFD01            JP      Z,?0022
   \   0487            ?0084:
   \   0487  6F                LD      L,A
   \   0488  2600              LD      H,0
    407                  }//switch(key);
   \   048A            ?0086:
   \   048A  DDF9              LD      SP,IX
   \   048C  DDE1              POP     IX
   \   048E  FDE1              POP     IY
   \   0490  C1                POP     BC
   \   0491  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0494            ?0101:
   \   0494  119101            LD      DE,401
   \   0497            ?0100:
   \   0497  3E00              LD      A,BYTE3 show_error
   \   0499  210000            LD      HL,LWRD show_error
   \   049C  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   049F            ?0085:
   \   049F            ?0083:
   \   049F            ?0048:
    408          
    409              }//while(1)
    410          }
    411          
   \   0000                    RSEG    CSTR
   \   0000            ?0015:
   \   0000  524543            DEFB    'REC'
   \   0003  00                DEFB    0
   \   0004            ?0016:
   \   0004  20205741          DEFB    '  WAV'
   \   0008  56
   \   0009  00                DEFB    0
   \   000A            ?0019:
   \   000A  52454330          DEFB    'REC00'
   \   000E  30
   \   000F  00                DEFB    0
   \   0000                    RSEG    CONST
   \   0000            rec_Fsrate:
   \   0000  08                DEFB    8
   \   0001  08                DEFB    8
   \   0002  30                DEFB    '0'
   \   0003  30                DEFB    '0'
   \   0004            rec_FsrateCodec:
   \   0004  00                DEFB    0
   \   0005  00                DEFB    0
   \   0006  08                DEFB    8
   \   0007  08                DEFB    8
   \   0000                    RSEG    UDATA0
   \   0000            currentBitrate:
   \   0004                    DEFS    4
   \   0004            Rec_format:
   \   000A                    DEFS    6
   \   000A            channelnum:
   \   000B                    DEFS    1
   \   000B            g_menu_active:
   \   000C                    DEFS    1
   \   0000                    RSEG    IDATA0
   \   0000            Rec_resource:
   \   0002                    DEFS    2
   \   0000                    RSEG    CDATA0
   \   0000  00                DEFB    0
   \   0001  00                DEFB    0
   \   0002                    END

Errors: none
Warnings: none
Code size: 1183
Constant size: 26
Static variable size: Data(14) Iram(0)

⌨️ 快捷键说明

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