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

📄 sub_function2.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
     72          
     73          /*
     74          ********************************************************************************
     75          *             void make_dirname(void)
     76          *
     77          * Description : 读系统变量和ap局部变量
     78          *
     79          * Arguments   : void
     80          *
     81          * Returns     : void
     82          *
     83          * Notes       :
     84          *
     85          ********************************************************************************
     86          */
     87          void make_dirname(void)
     88          {
   \   00B8  C5                PUSH    BC
   \   00B9  D5                PUSH    DE
   \   00BA  DDE5              PUSH    IX
   \   00BC  21E0FF            LD      HL,65504
   \   00BF  39                ADD     HL,SP
   \   00C0  F9                LD      SP,HL
     89              int result;
     90              char Backbuf[32];
     91              fselGetLocation(&g_amv_vars.location);
   \   00C1  110500            LD      DE,g_amv_vars+5
   \   00C4  3E00              LD      A,BYTE3 fselGetLocation
   \   00C6  210000            LD      HL,LWRD fselGetLocation
   \   00C9  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     92              if(g_amv_vars.location.path[0]==':')
   \   00CC  3A1300            LD      A,(g_amv_vars+19)
   \   00CF  FE3A              CP      58
   \   00D1  200B              JR      NZ,?0013
   \   00D3            ?0012:
     93                  {
     94                      strcpy(dir_name,"ROOT");
   \   00D3  110000            LD      DE,?0014
   \   00D6  210000            LD      HL,dir_name
   \   00D9  CD0000            CALL    LWRD ?STRCPY_L11
     95                  }
     96              else
   \   00DC  1864              JR      ?0015
   \   00DE            ?0013:
     97                  {
     98          
     99                  FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   00DE  210000            LD      HL,0
   \   00E1  E5                PUSH    HL
   \   00E2  0E02              LD      C,2
   \   00E4  23                INC     HL
   \   00E5  23                INC     HL
   \   00E6  39                ADD     HL,SP
   \   00E7  EB                EX      DE,HL
   \   00E8  CD0000            CALL    LWRD FS_Backup
   \   00EB  E1                POP     HL
    100          
    101                 dir_name[0] = ':';
   \   00EC  3E3A              LD      A,58
   \   00EE  320000            LD      (dir_name),A
    102                      FS_CD(dir_name);
   \   00F1  110000            LD      DE,dir_name
   \   00F4  CD0000            CALL    LWRD FS_CD
    103                  memcpy(dir_name, g_amv_vars.location.path, 12);
   \   00F7  010C00            LD      BC,12
   \   00FA  110000            LD      DE,dir_name
   \   00FD  211300            LD      HL,g_amv_vars+19
   \   0100  EDB0              LDIR
    104                      result = FS_GetName(dir_name, 14); //取出长名
   \   0102  0E0E              LD      C,14
   \   0104  110000            LD      DE,dir_name
   \   0107  CD0000            CALL    LWRD FS_GetName
   \   010A  0600              LD      B,0
    105                      if (result != 0)
   \   010C  B7                OR      A
   \   010D  2815              JR      Z,?0017
   \   010F            ?0016:
    106                      {
    107                          unitochar(dir_name, sizeof(dir_name), g_langid);
   \   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            ?0043:
   \   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
   \   0152  21D2FF            LD      HL,65490
   \   0155  39                ADD     HL,SP
   \   0156  F9                LD      SP,HL
    123                  int result;
    124                  browser_vars_t temp_browser_vars;
    125          
    126          
    127                  //read comval
    128                  result = VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
   \   0157  212000            LD      HL,32
   \   015A  E5                PUSH    HL
   \   015B  010002            LD      BC,512
   \   015E  110000            LD      DE,g_comval
   \   0161  CD0000            CALL    LWRD VMRead
   \   0164  E1                POP     HL
    129                  ASSERT(result);
    130          
    131                  //check if valid
    132                  if (g_comval.magic != MAGIC_COMVAL)
   \   0165  21ADDE            LD      HL,57005
   \   0168  ED4B0000          LD      BC,(g_comval)
   \   016C  A7                AND     A
   \   016D  ED42              SBC     HL,BC
   \   016F  2806              JR      Z,?0020
   \   0171            ?0019:
    133                  {
    134                      GetDefaultComval(&g_comval);
   \   0171  110000            LD      DE,g_comval
   \   0174  CD0000            CALL    LWRD GetDefaultComval
   \   0177            ?0020:
    135                  }
    136          
    137                  g_langid = g_comval.langid;//记录系统语言
   \   0177  3A0C00            LD      A,(g_comval+12)
   \   017A  320000            LD      (g_langid),A
    138                  g_BatteryType = g_comval.BatteryType;//记录电池类型
   \   017D  3A0F00            LD      A,(g_comval+15)
   \   0180  320000            LD      (g_BatteryType),A
    139          
    140                  ap_message_init(& g_comval);
   \   0183  110000            LD      DE,g_comval
   \   0186  3E00              LD      A,BYTE3 ap_message_init
   \   0188  210000            LD      HL,LWRD ap_message_init
   \   018B  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));
   \   018E  213800            LD      HL,56
   \   0191  E5                PUSH    HL
   \   0192  010048            LD      BC,18432
   \   0195  110000            LD      DE,g_amv_vars
   \   0198  CD0000            CALL    LWRD VMRead
   \   019B  E1                POP     HL
    144                  ASSERT(result);
    145          
    146              //check if valid
    147              if (g_amv_vars.magic != MAGIC_AMV)
   \   019C  216D61            LD      HL,24941
   \   019F  ED4B0000          LD      BC,(g_amv_vars)
   \   01A3  A7                AND     A
   \   01A4  ED42              SBC     HL,BC
   \   01A6  2829              JR      Z,?0022
   \   01A8            ?0021:
    148              {
    149          
    150                  g_amv_vars.magic = MAGIC_AMV;
   \   01A8  216D61            LD      HL,24941
   \   01AB  220000            LD      (g_amv_vars),HL
    151                  g_amv_vars.volume = 24;
   \   01AE  3E18              LD      A,24
   \   01B0  320200            LD      (g_amv_vars+2),A
    152                  output8(0x87, 24|0xe0);
   \   01B3  3EF8              LD      A,248
   \   01B5  D387              OUT     (135),A
    153                  g_amv_vars.repeat_mode = FSEL_ALL_SEQUENCE;
   \   01B7  AF                XOR     A
   \   01B8  320300            LD      (g_amv_vars+3),A
    154                  g_amv_vars.location.disk = 'C';
   \   01BB  3E43              LD      A,67
   \   01BD  320500            LD      (g_amv_vars+5),A
    155          
    156                  strcpy(g_amv_vars.location.path, FS_CD_ROOT);
   \   01C0  110500            LD      DE,?0023
   \   01C3  211300            LD      HL,g_amv_vars+19
   \   01C6  CD0000            CALL    LWRD ?STRCPY_L11
    157                  ClearTimePara();
   \   01C9  3E00              LD      A,BYTE3 ClearTimePara
   \   01CB  218D02            LD      HL,LWRD ClearTimePara
   \   01CE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01D1            ?0022:
    158              }
    159              if(g_from_browser)
   \   01D1  3A0000            LD      A,(g_from_browser)
   \   01D4  B7                OR      A
   \   01D5  2827              JR      Z,?0025
   \   01D7            ?0024:
    160              {
    161                  VMRead(&temp_browser_vars, VM_AP_BROWSER, sizeof(browser_vars_t));
   \   01D7  212D00            LD      HL,45
   \   01DA  E5                PUSH    HL
   \   01DB  01004C            LD      BC,19456
   \   01DE  2E02              LD      L,2
   \   01E0  39                ADD     HL,SP
   \   01E1  EB                EX      DE,HL
   \   01E2  CD0000            CALL    LWRD VMRead
   \   01E5  E1                POP     HL
    162                  memcpy(&g_amv_vars.location, &temp_browser_vars.location, sizeof(file_location_t));
   \   01E6  012B00            LD      BC,43
   \   01E9  110500            LD      DE,g_amv_vars+5
   \   01EC  68                LD      L,B
   \   01ED  60                LD      H,B
   \   01EE  39                ADD     HL,SP
   \   01EF  0E02              LD      C,2
   \   01F1  09                ADD     HL,BC
   \   01F2  0E2B              LD      C,43
   \   01F4  EDB0              LDIR
    163                  ClearTimePara();
   \   01F6  3E00              LD      A,BYTE3 ClearTimePara
   \   01F8  218D02            LD      HL,LWRD ClearTimePara
   \   01FB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01FE            ?0025:
    164              }
    165          
    166          
    167          }
   \   01FE  212E00            LD      HL,46
   \   0201  C34501            JP      LWRD ?0043
   \   0204            DealErrCase:
    168          /*
    169          ********************************************************************************
    170          *             bool DealErrCase(void)
    171          *

⌨️ 快捷键说明

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