main.lst

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

LST
1,391
字号
    154          }
   \   0063  18F3              JR      ?0005
   \   0065            ?0004:
   \   0065  D1                POP     DE
   \   0066  C1                POP     BC
   \   0067  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   006A            main:
    155          /*
    156          ********************************************************************************
    157          * Description : 主函数
    158          *
    159          * Arguments   :
    160          *
    161          * Returns     : 结果消息或0
    162          *
    163          * Notes       :
    164          *
    165          ********************************************************************************
    166          */
    167          int main(int param)
    168          {
   \   006A  DDE5              PUSH    IX
   \   006C  DD210000          LD      IX,0
   \   0070  DD39              ADD     IX,SP
   \   0072  D5                PUSH    DE
   \   0073  21DEFF            LD      HL,65502
   \   0076  39                ADD     HL,SP
   \   0077  F9                LD      SP,HL
    169              char *IRQCounter=(char *)(0x37);
   \   0078  DD36DC37          LD      (IX-36),55
   \   007C  DD36DD00          LD      (IX-35),0
    170              int active=0;    //当前活动的项目
    171              int i,TheFirstId,TheLastId;
    172              char key;
    173              char IsUDisk=0;
    174              char tempbuf[]="abcde";
   \   0080  210C00            LD      HL,12
   \   0083  39                ADD     HL,SP
   \   0084  EB                EX      DE,HL
   \   0085  215800            LD      HL,?0008
   \   0088  010600            LD      BC,6
   \   008B  EDB0              LDIR
    175              int result;
    176              int result_bak=0;    //关机时把上次执行的ap记在此
    177              BOOL need_draw=TRUE;
    178              BOOL need_draw_all=TRUE;
    179          //    BYTE sec_tester_count = 0;
    180          //    BYTE sec_staff_count = 0;
    181              BYTE item_count,n;        //主界面有几个项目
    182              BOOL with_fm;        //存在fm模块
    183              BOOL FlashFlag=TRUE;
    184              int  counter;
    185              BYTE  REG_8_BAK;
    186          
    187              output8(0x4e,input8(0x4e) | 0x08);
   \   008D  DB4E              IN      A,(78)
   \   008F  CBDF              SET     3,A
   \   0091  D34E              OUT     (78),A
    188              output8(0x3c,((input8(0x3c)&0xf8) | 0x03));
   \   0093  DB3C              IN      A,(60)
   \   0095  E6F8              AND     248
   \   0097  F603              OR      3
   \   0099  D33C              OUT     (60),A
    189          #ifdef  CHGVDD
    190              output8(0x4f,0x46);      //VCC  set to 3.0V, VDD set to 2.2V first step
    191          #else
    192              output8(0x4f,0x49);      //VCC  set to 3.0V, VDD set to 2.5V second step
   \   009B  3E49              LD      A,73
   \   009D  D34F              OUT     (79),A
    193          #endif
    194              for (counter=0; counter<0x80; counter++){;}
   \   009F  AF                XOR     A
   \   00A0  DD77DE            LD      (IX-34),A
   \   00A3  DD77DF            LD      (IX-33),A
   \   00A6  DD77F0            LD      (IX-16),A
   \   00A9  DD77F1            LD      (IX-15),A
   \   00AC  DD36F201          LD      (IX-14),1
   \   00B0  DD36F301          LD      (IX-13),1
   \   00B4  DD77F8            LD      (IX-8),A
   \   00B7  DD77F9            LD      (IX-7),A
   \   00BA            ?0010:
   \   00BA  018080            LD      BC,32896
   \   00BD  DD6EF8            LD      L,(IX-8)
   \   00C0  DD66F9            LD      H,(IX-7)
   \   00C3  78                LD      A,B
   \   00C4  AC                XOR     H
   \   00C5  67                LD      H,A
   \   00C6  ED42              SBC     HL,BC
   \   00C8  300A              JR      NC,?0009
   \   00CA            ?0011:
   \   00CA  DD34F8            INC     (IX-8)
   \   00CD  20EB              JR      NZ,?0010
   \   00CF  DD34F9            INC     (IX-7)
   \   00D2  18E6              JR      ?0010
   \   00D4            ?0009:
    195          
    196              //装显示驱动之前要把USB FIFO切给z80使用
    197              output8(0x8c,input8(0x8c) | 0x10);
   \   00D4  DB8C              IN      A,(140)
   \   00D6  CBE7              SET     4,A
   \   00D8  D38C              OUT     (140),A
    198          
    199              //安装驱动
    200              if(!DRV_Install("UI_S0724.DRV",0)) while(1) {;}    //缺省简体
   \   00DA  010000            LD      BC,0
   \   00DD  110000            LD      DE,?0015
   \   00E0  CD0000            CALL    LWRD DRV_Install
   \   00E3  B7                OR      A
   \   00E4  2002              JR      NZ,?0014
   \   00E6            ?0013:
   \   00E6            ?0017:
   \   00E6  18FE              JR      ?0013
   \   00E8            ?0014:
    201              if(!DRV_Install("ky_hard.drv",0)) while(1) {;}
   \   00E8  010000            LD      BC,0
   \   00EB  110D00            LD      DE,?0021
   \   00EE  CD0000            CALL    LWRD DRV_Install
   \   00F1  B7                OR      A
   \   00F2  2002              JR      NZ,?0020
   \   00F4            ?0019:
   \   00F4            ?0023:
   \   00F4  18FE              JR      ?0019
   \   00F6            ?0020:
    202              if(!DRV_Install("vm_nanf.drv",0)) while(1) {;}
   \   00F6  010000            LD      BC,0
   \   00F9  111900            LD      DE,?0027
   \   00FC  CD0000            CALL    LWRD DRV_Install
   \   00FF  B7                OR      A
   \   0100  2002              JR      NZ,?0026
   \   0102            ?0025:
   \   0102            ?0029:
   \   0102  18FE              JR      ?0025
   \   0104            ?0026:
    203          
    204              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   0104  DB4E              IN      A,(78)
   \   0106  CBDF              SET     3,A
   \   0108  D34E              OUT     (78),A
    205              *IRQCounter=0;
   \   010A  DD6EDC            LD      L,(IX-36)
   \   010D  DD66DD            LD      H,(IX-35)
   \   0110  3600              LD      (HL),0
    206              enable_interrupt();
   \   0112  FB                EI
    207          
    208          
    209              read_var();
   \   0113  3E00              LD      A,BYTE3 read_var
   \   0115  210000            LD      HL,LWRD read_var
   \   0118  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    210          
    211              output8(0xf5,input8(0xf5)|0x01);
   \   011B  DBF5              IN      A,(245)
   \   011D  CBC7              SET     0,A
   \   011F  D3F5              OUT     (245),A
    212              REG_8_BAK=input8(0x8b); 
   \   0121  DB8B              IN      A,(139)
   \   0123  DD77FA            LD      (IX-6),A
    213              //安装驱动
    214              switch (g_comval.langid)
   \   0126  ED5B0C00          LD      DE,(g_comval+12)
   \   012A  CD0000            CALL    LWRD ?C_S_SWITCH_L06
   \   012D  01                DEFB    1
   \   012E  0400              DEFW    4
   \   0130  7801              DEFW    ?0055
   \   0132  6A01              DEFW    ?0053
   \   0134  3A01              DEFW    ?0032
   \   0136  4A01              DEFW    ?0039
   \   0138  5A01              DEFW    ?0046
   \   013A            ?0032:
    215              {
    216                  case 2:
    217                      if(!DRV_Install("UI_T0724.DRV",1)) while(1) {;}
   \   013A  010100            LD      BC,1
   \   013D  112500            LD      DE,?0035
   \   0140  CD0000            CALL    LWRD DRV_Install
   \   0143  B7                OR      A
   \   0144  2032              JR      NZ,?0055
   \   0146            ?0033:
   \   0146            ?0037:
    218                      break;
   \   0146  18FE              JR      ?0033
   \   0148            ?0034:
   \   0148  182E              JR      ?0055
   \   014A            ?0039:
    219                  case 3:
    220                      if(!DRV_Install("UI_J0724.DRV",1)) while(1) {;}
   \   014A  010100            LD      BC,1
   \   014D  113200            LD      DE,?0042
   \   0150  CD0000            CALL    LWRD DRV_Install
   \   0153  B7                OR      A
   \   0154  2022              JR      NZ,?0055
   \   0156            ?0040:
   \   0156            ?0044:
    221                      break;
   \   0156  18FE              JR      ?0040
   \   0158            ?0041:
   \   0158  181E              JR      ?0055
   \   015A            ?0046:
    222                  case 4:
    223                      if(!DRV_Install("UI_K0724.DRV",1)) while(1) {;}
   \   015A  010100            LD      BC,1
   \   015D  113F00            LD      DE,?0049
   \   0160  CD0000            CALL    LWRD DRV_Install
   \   0163  B7                OR      A
   \   0164  2012              JR      NZ,?0055
   \   0166            ?0047:
   \   0166            ?0051:
    224                      break;
   \   0166  18FE              JR      ?0047
   \   0168            ?0048:
   \   0168  180E              JR      ?0055
   \   016A            ?0053:
    225                  case LAN_ID_ENGLISH:
    226                      if(!DRV_Install("UI_L0724.DRV",1)) while(1) {;}
   \   016A  010100            LD      BC,1
   \   016D  114C00            LD      DE,?0056
   \   0170  CD0000            CALL    LWRD DRV_Install
   \   0173  B7                OR      A
   \   0174  2002              JR      NZ,?0055
   \   0176            ?0054:
   \   0176            ?0058:
    227                      break;
   \   0176  18FE              JR      ?0054
   \   0178            ?0055:
   \   0178            ?0060:
    228                  default:
    229                      break;
   \   0178            ?0031:
    230              }
    231              SetBackgdColor(Color_BLACK_def);
   \   0178  010000            LD      BC,0
   \   017B  59                LD      E,C
   \   017C  50                LD      D,B
   \   017D  CD0000            CALL    LWRD SetBackgdColor
    232              SetPenColor(Color_WHITE_def);
   \   0180  CDB407            CALL    LWRD ?0294
    233              ClearScreen(NULL);
   \   0183  110000            LD      DE,0
   \   0186  CD0000            CALL    LWRD ClearScreen
    234          
    235          
    236          
    237              UpdateScreen(NULL);        //recommended by chliang
   \   0189  110000            LD      DE,0
   \   018C  CD0000            CALL    LWRD UpdateScreen
    238              StandbyScreen(TRUE);
   \   018F  1E01              LD      E,1
   \   0191  CD0000            CALL    LWRD StandbyScreen
    239              //TODO: support other language
    240          
    241              //初始化资源文件
    242              res_fp = ResOpen("ui30.res");
   \   0194  115900            LD      DE,?0061
   \   0197  3E00              LD      A,BYTE3 ResOpen
   \   0199  210000            LD      HL,LWRD ResOpen
   \   019C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   019F  220000            LD      (res_fp),HL
    243              ASSERT( res_fp != NULL);
    244          
    245              SetTextOutMode(1);       //设字体透明      1;
   \   01A2  1E01              LD      E,1
   \   01A4  CD0000            CALL    LWRD SetTextOutMode
    246          //    SetPenColor(Color_BLACK_def);
    247          //    SetAsciiFont(FONT_TYPE_LARGE);
    248          
    249          
    250          
    251              result = NULL;//RESULT_MAIN;
   \   01A7  FD210000          LD      IY,0
   \   01AB            ?0063:
    252          
    253              //clear the message pool
    254              while(GetSysMsg() != Msg_KeyNull) {;}
   \   01AB  CD0000            CALL    LWRD GetSysMsg
   \   01AE  B7                OR      A
   \   01AF  20FA              JR      NZ,?0063
   \   01B1            ?0064:
   \   01B1            ?0062:

⌨️ 快捷键说明

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