[原创] SAMSUNG HM321HI 固件

[复制链接]
  • TA的每日心情
    开心
    2018-9-8 09:42
  • 签到天数: 90 天

    [LV.6]五品郎中

    10

    主题

    268

    回帖

    608

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    608
    发表于 2017-5-25 20:19:37 | 显示全部楼层 |阅读模式
           此固件是从一块有问题的盘上来的。此盘从32000000处开始就出现很多坏道,大概有10M左右,以后就是好的。然后,盘的最后面一点点又出现一些坏道,但不多。用mhdd erase不起作用,有时刚修好的部分,过几天相同的位置又出现坏道了。以下是我读固件的工具。

           固件中有两个文件一个是BI_SCRPT.08,这是burn-in脚本,一个是BINEWSCR.99(new burn-in脚本)。前一个在winhex中看,全是0。是一个空文件。我把后一个改名为BI_SCRPT.08,然后回写进去。给硬盘断电后,重新通电,结果是什么也没发生。只是BI_SCRPT.08的后面可以看得懂的内容全不见了。这说明硬盘自检没有被激活。BINEWSCR.99用记事本是可以打开的。后面是用C语言写的程序,看不太懂,请高手指教。部份内容如下(全部内容附件中自己打开看):
          *****************************************************************************
    //
    //  Project: SHOS2
    //
    //  Copyright (C) 2007/2008 Samsung Electronics
    //
    //  All Rights Reserved.
    //
    // *****************************************************************************
    //=============================================================================
    //! \shos\Selftest\BiParam\m7\24\BiScript.c
    //! @brief <brief module description>
    //!
    //!     <detail module description>
    //!
    //! @author <email address>
    //!
    //=============================================================================
    //=============================================================================
    //                          
    //       This software is the confidential and proprietary information
    //       of Samsung Electronics, Inc. ("Confidential Information").  You
    //       shall not disclose such Confidential Information and shall use
    //       it only in accordance with the terms of the license agreement                                                              
    //       you entered into with Samsung.                                                              
    //                                                                     
    //=============================================================================

    //-----------------------------------------------------------------------------
    //  #includes
    //-----------------------------------------------------------------------------

    //-----------------------------------------------------------------------------
    //  #define  constants
    //-----------------------------------------------------------------------------

    //-----------------------------------------------------------------------------
    // Macro  Inlines functions
    //-----------------------------------------------------------------------------

    //-----------------------------------------------------------------------------
    // Type defines  -- or class
    //-----------------------------------------------------------------------------

    //-----------------------------------------------------------------------------
    // Data definition
    //-----------------------------------------------------------------------------

    //-----------------------------------------------------------------------------
    // Public function definitions (extern)
    //-----------------------------------------------------------------------------

    #define BI_SCRIPT_MAJOR_REV 1
    #define BI_SCRIPT_MINOR_REV 06
    //============================================================================================================================
    //= Module: BiScript.c
    //=
    //=         M7 platform 24 BI Script
    //=
    //============================================================================================================================
    //= HISTORY
    //=
    //= Rev.     Date       By          Reason
    //= ======== ========== =========== ==========================================================================================
    //  1.04     2/17      Qlin        Set up for tone scan, enable gapfill & tone scan.
    //  1.03     12/02      Qlin        Correct last rev: enable servo head_gap. Leave the init_head_gap on.
    //  1.02     12/01      Qlin        Disable head_gap in function for now.
    //  1.01     11/10      crhawks     Initial paste - M7_25 sript modified with F3_84 changes?
    ////*********** brought over from platform 25 ***************
    //  1.06     10/21      Jonathan    NEW AZL Revision 2 added (variable FDT)
    //  1.05     10/14      Qlin        Added IAD: gete_osa_osd, linear, rco16,
    //  1.04     10/14      Qlin        Added WPC and linear all wpc regs.
    ////*********** brought over from platform 20 ***************
    //  1.03     09/24      Qlin        geo104x go back to default_acq as 28.
    //  1.02     09/17      Qlin        default_acq not used; hard code now as 22 due to zone layout. M7S1 pf78 does same thing.
    //                                  We will consolidate later as zone layout is more stable and define as constant.
    //  1.01     09/04      CRHawks     Updates from current Suwon DB - M7p75. Clean up commented out tests by commenting whole test.
    //  1.00     08/27      CRHawks     Began clean up. Fix erase test to do 4 heads properly.
    //============================================================================================================================
    //============================================================================================================================
    //= HISTORY - this is where I started 8/27/08 crh platform 20 - never updated on N3M7
    //  0.40     07/24      S Kang      Add one more FOD TD1 to fix 0x2105 error and moved FOD screen test to right after the TD1 test  
    //  0.39     01/29      CRHawks     Add tests to improve RCO of MC (per Hung)
    //                                  Hung VO     1) MC RCO: [RCO5->RCO10->RCO7->RCO10]
    //
    //  0.38     01/29      CRHawks     Move tBI_SINGLE_HEAD_SKEW_INPUT to main part after servo cal
    //
    //============================================================================================================================

    #define X32 int

    #define ZONE_MC                 (1<<0)
    #define ZONE_0                  (1<<0)
    #define ZONE_1                  (1<<1)
    #define ZONE_2                  (1<<2)
    #define ZONE_3                  (1<<3)
    #define ZONE_4                  (1<<4)
    #define ZONE_5                  (1<<5)
    #define ZONE_6                  (1<<6)
    #define ZONE_7                  (1<<7)
    #define ZONE_8                  (1<<8)
    #define ZONE_9                  (1<<9)
    #define ZONE_10                 (1<<10)
    #define ZONE_11                 (1<<11)
    #define ZONE_12                 (1<<12)
    #define ZONE_13                 (1<<13)
    #define ZONE_14                 (1<<14)
    #define ZONE_15                 (1<<15)
    #define ZONE_16                 (1<<16)
    #define ZONE_17                 (1<<17)
    #define ZONE_18                 (1<<18)
    #define ZONE_19                 (1<<19)
    #define ZONE_20                 (1<<20)
    #define ZONE_21                 (1<<21)
    #define ZONE_22                 (1<<22)
    #define ZONE_23                 (1<<23)
    #define ZONE_24                 (1<<24)

    #define HEAD_0                  (1<<0)
    #define HEAD_1                  (1<<1)
    #define HEAD_2                  (1<<2)
    #define HEAD_3                  (1<<3)
    #define HEAD_4                  (1<<4)
    #define HEAD_5                  (1<<5)
    #define HEAD_6                  (1<<6)
    #define HEAD_7                  (1<<7)
    #define HEAD_8                  (1<<8)
    #define EVEN_HEADS              0x55    // even heads
    #define ODD_HEADS               0xAA    // odd heads

    #define ALL_REAL_HEADS          0xFF    // real for this drive

    #define ALL_ZONES               0xFFFFFFFF
    #define ALL_USER_ZONES          0xFFFFFFFE
    #define ALL_HEADS               0xFF

    #define HEAD_SELECT_MASK        0xFF    // all heads
    //#define HEAD_SELECT_MASK      0x55    // even heads
    //#define HEAD_SELECT_MASK      0xAA    // odd heads

    //--- Number of user data zones to test
    #define DATA_ZONE_TEST_MASK     ALL_USER_ZONES  // 24 zone process
    #define AZL_RCO_ZONE_MASK       ZONE_1 | ZONE_16 | ZONE_24
    #define ARCO_ZONE_MASK          ZONE_1 | ZONE_16 | ZONE_24      //ZONE_1 | ZONE_7 | ZONE_19 | ZONE_24
    #define WPC_ZONE_MASK               ZONE_1 | ZONE_5 | ZONE_9 | ZONE_17 | ZONE_24;
    #define OSAD_ZONE_MASK               ZONE_1 | ZONE_5 | ZONE_9 | ZONE_13 | ZONE_17 | ZONE_21 | ZONE_24
    #define HTG_ZONE_MASK               ZONE_1 | ZONE_3 | ZONE_7 | ZONE_11 | ZONE_16 | ZONE_20 | ZONE_23 | ZONE_24
    #define WATE_OSAD_ZONE_MASK     ZONE_1 | ZONE_13 | ZONE_24
    #define PRE_SGRY_ZONE_TEST_MASK ZONE_17 | ZONE_18 | ZONE_19 | ZONE_20 | ZONE_21 | ZONE_22 | ZONE_23 | ZONE_24
    #define MEAS_PES_ZONE_MASK      ZONE_1 | ZONE_3 | ZONE_5 | ZONE_7 | ZONE_9 | ZONE_11 | ZONE_13 | ZONE_15 | ZONE_17 | ZONE_19 | ZONE_21 | ZONE_23
    #define BPI_TEST_ZONE_MASK      ZONE_1 | ZONE_6 | ZONE_11 | ZONE_16 | ZONE_22 | ZONE_24

    #define FORCED_RCC_ZONE_MASK    ALL_USER_ZONES
    //#define FORCED_RCC_ZONE_MASK    ZONE_1 | ZONE_2 | ZONE_3 | ZONE_4 | ZONE_14 | ZONE_15 | ZONE_16 | ZONE_17
    //--- Number of user data heads to test
    #define DATA_HEAD_TEST_MASK     ALL_HEADS       // all headed process
    //#define DATA_HEAD_TEST_MASK     HEAD_0 | HEAD_1 | HEAD_2

    //--- MC Area Usage
    #define MC_HEAD_TEST_MASK       HEAD_0 | HEAD_1 | HEAD_2        // mc uses three heads
    #define MC_START_CYL            0       //start of area used by MC
    #define MC_END_CYL              63          //end of area used by MC  BROKE - why?

    #define ZONE_OR_CYL             0       //0 for zone mask, else use cylinder ranges
    #define START_CYL               10      //start cylinder range
    #define END_CYL                 10      //end cylinder range
    #define SINGLE_HEAD             0       //test head for tests that take single head
    #define SINGLE_ZONE             3       //test zone for test that single zone

    #define TEST_ZONE               0       //test zones
    #define TEST_CYLINDER           1       //test cylinders

    //--- OTE Test
    //#define OTE_TEST_ZONE_MASK      ZONE_1 | ZONE_24
    #define OTE_TEST_ZONE_MASK        ZONE_17       //merge2

    //--- RAM TEST mode
    //#define EN_RAMTEST_BUFFER_RAM     0x0001      // Buffer RAM
    //#define EN_RAMTEST_CPU_ISRAM      0x0002      // CPU ISRAM
    //#define EN_RAMTEST_CPU_DSRAM      0x0004      // CPU DSRAM
    //#define EN_RAMTEST_ECC_BUFFER     0x0008      // ECC buffer
    //#define EN_RAMTEST_SEQ_RAM        0x0010      // sequencer RAM
    //#define EN_RAMTEST_LL_REG         0x0020      // Linked List Registers
    //#define EN_RAMTEST_SERVO_WCS      0x0040      // Servo WCS
    //#define EN_RAMTEST_SPIRAL_RAM     0x0080      // spiral RAM
    //#define EN_RAMTEST_NLS            0x0100      // NLS
    //#define EN_RAMTEST_PRAM           0x0200      // PRAM
    //#define EN_RAMTEST_DT_RAM         0x0400      // DT RAM
    //#define EN_RAMTEST_HOST_FIFO      0x0800      // SATA Host FIFO
    //#define EN_RAMTEST_DF_FIFO        0x1000      // DF FIFO

    #define EN_RAMTEST_MODES            0x1
    #define NO_TOLERANCE_RESTORE        0x4 // Channel chip //merge2

    #define RAMDOM_WRITE_OPERATION  1
    #define RANDOM_READ_OPERATION   2

    //#define NUM_SVO_COPY_PASSES     5
    //#define NUM_SVO_COPY_PASSES       4
    //#define NUM_SVO_COPY_PASSES       2
    //#define NUM_SVO_COPY_PASSES       30      // flag to do 3 heads, all individually
    //#define NUM_SVO_COPY_PASSES       40      // flag to do 4 heads, all individually
    #define NUM_SVO_COPY_PASSES     1

    #define USER_PATTERN_ENABLE       1
    #define RANDOM_PATTERN_ENABLE     0
    #define RCO_PATTERN               RANDOM_PATTERN_ENABLE
    #define USER_PATTERN              0x00000000    //32bit pattern

    #define CSS_INLINE_NONE            0
    #define CSS_INLINE_ON              1
    #define CSS_EMERGENCY              2

    #include "biscript.h"

    void main()
    {
        //enable serial output
        tGLOBAL_SETTINGS_INPUT.globalFlags = GLOBAL_SETTINGS_SERIAL_OUTPUT;
        tGLOBAL_SETTINGS_INPUT.alarmParkLimit = 800;         // merge2 chg
        tGLOBAL_SETTINGS_INPUT.alarmParkLimitByStep = 800;    // 0 means no limit
        tGLOBAL_SETTINGS_INPUT.resumeTime = 3600;   // 0 = no automatic resume, n = wait seconds before resuming/continuing
        BiCmd(tGLOBAL_SETTINGS_INPUT);

        //::TEST::
        tBI_SAVE_HEADSELECT_INPUT.headMask =  HEAD_SELECT_MASK;
        tBI_SAVE_HEADSELECT_INPUT.inlineKillFlag = EN_INLINE_KILL;
        BiCmd(tBI_SAVE_HEADSELECT_INPUT);

        //::TEST:: initialize the burnin
        tBI_INIT_INPUT.majorScriptRevision = BI_SCRIPT_MAJOR_REV;
        tBI_INIT_INPUT.minorScriptRevision = BI_SCRIPT_MINOR_REV;
        tBI_INIT_INPUT.option = 0;  // 0 = Fresh burnin run,  1 = Burnin Rerun (preserve lists)
        BiCmd(tBI_INIT_INPUT);

        //::TEST:: perform memory diagnostics on SDRAM
        tDIAGNOSE_COMMAND_INPUT.testloop = 1;
        tDIAGNOSE_COMMAND_INPUT.testcnt = 1;
        tDIAGNOSE_COMMAND_INPUT.testmode = EN_RAMTEST_BUFFER_DMA;
        BiCmd(tDIAGNOSE_COMMAND_INPUT);

    //-----------------------------------------------------------------------------
    // Functional Begin
    //-----------------------------------------------------------------------------
        //::TEST:: initialize functional - start functional, save critical files outside MC, begin writing files to RAM while preparing MC
        BiCmd(tFUNCTIONAL_SETUP_INPUT);

        //::TEST:: shock sensor - noise
        tSERVO_MEASUREMENT_INPUT.servoTest = SS_CHECK;       // Latch Force Test
        tSERVO_MEASUREMENT_INPUT.headMask = 0;  // head mask for PES test
        tSERVO_MEASUREMENT_INPUT.zoneMask = 0;  // zone mask for PES test
        tSERVO_MEASUREMENT_INPUT.mode = 0;
        tSERVO_MEASUREMENT_INPUT.passCount = 0;
        tSERVO_MEASUREMENT_INPUT.trackIterations = 0;
        tSERVO_MEASUREMENT_INPUT.fileId = 0;
        BiCmd(tSERVO_MEASUREMENT_INPUT);           //

        //::TEST:: shock sensor - presence
        tSERVO_MEASUREMENT_INPUT.servoTest = SS_MEAS;       // Latch Force Test
        tSERVO_MEASUREMENT_INPUT.headMask = 0;  // head mask for PES test
        tSERVO_MEASUREMENT_INPUT.zoneMask = 0;  // zone mask for PES test
        tSERVO_MEASUREMENT_INPUT.mode = 0;
        tSERVO_MEASUREMENT_INPUT.passCount = 0;
        tSERVO_MEASUREMENT_INPUT.trackIterations = 0;
        tSERVO_MEASUREMENT_INPUT.fileId = 0;
        BiCmd(tSERVO_MEASUREMENT_INPUT);           //

        //::TEST:: reload read channel - initialize read channel
        tRELOAD_READ_CHANNEL.option = RELOAD_CHANNEL_DEFAULT;
        BiCmd(tRELOAD_READ_CHANNEL);

        //::TEST:: adaptive preamp gain for MC
        tBI_PAGAIN_OPTIMIZE_INPUT.headMask = ALL_HEADS;
        tBI_PAGAIN_OPTIMIZE_INPUT.zoneMask = AZL_RCO_ZONE_MASK;     //== needs to be changed once we move out of two zone mode
        tBI_PAGAIN_OPTIMIZE_INPUT.refZone = 16;
        BiCmd(tBI_PAGAIN_OPTIMIZE_INPUT);

    //-----------------------------------------------------------------------------
    // (Functional test) Servo calibrations
    //-----------------------------------------------------------------------------

        //::TEST:: servo calibration - clpd
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_CLPD_LIN;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - resonance ID
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_RESO;
        tSERVO_DIAG_INPUT.headMask  = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask  = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - bias
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_BIAS;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - kt
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_KT;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - np offset
    //    tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_NP_OFFSET;
    //    tSERVO_DIAG_INPUT.headMask  = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
    //    tSERVO_DIAG_INPUT.zoneMask  = ALL_ZONES;
    //    tSERVO_DIAG_INPUT.testMode = 0;
    //    BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - ab slope
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_AB_SLOPE;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - clpd
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_CLPD_LIN;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - loop gain
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_LOOP_GAIN;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - RRO1x
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_RRO1X;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.thresHold = 570;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - resonance ID
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_RESO;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - slpd bump slope
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_SLPDBUMP;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 0;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - head skew
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_HEAD_SKEW;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 1;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - head gap
        tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_HEAD_GAP;
        tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
        tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
        tSERVO_DIAG_INPUT.testMode = 1;
        BiCmd(tSERVO_DIAG_INPUT);

        //::TEST:: servo calibration - slpd bump slope
    //    tSERVO_DIAG_INPUT.calibTest = SERVO_CALIB_SLPDBUMP;
    //    tSERVO_DIAG_INPUT.headMask = MC_HEAD_TEST_MASK | DATA_HEAD_TEST_MASK;
    //    tSERVO_DIAG_INPUT.zoneMask = ALL_ZONES;
    //    tSERVO_DIAG_INPUT.testMode = 0;
    //    BiCmd(tSERVO_DIAG_INPUT);

        tDC_ERASE2_INPUT.dataOrServo = ERASE2_DATA_TRACKS;
        tDC_ERASE2_INPUT.eraseOption = ERASE2_0_PERCENT | ERASE2_50_PERCENT;        // | ERASE_RCC;
        tDC_ERASE2_INPUT.errorCount = 0;    // 0 means don't fail // merge2
        tDC_ERASE2_INPUT.zoneOrCylinder = TEST_ZONE;
        tDC_ERASE2_INPUT.zoneMask = ZONE_MC;
        tDC_ERASE2_INPUT.startCylinder = MC_START_CYL;
        tDC_ERASE2_INPUT.endCylinder = MC_END_CYL;
        tDC_ERASE2_INPUT.extraErasePositiveCyls = 0;
        tDC_ERASE2_INPUT.extraEraseNegativeCyls = 0;

        tDC_ERASE2_INPUT.thirdPassHds = 0;  // clear out settings that may not be used
        tDC_ERASE2_INPUT.fourthPassHds = 0;
        tDC_ERASE2_INPUT.fifthPassHds = 0;
        tDC_ERASE2_INPUT.thirdPassServoingHd = 0;
        tDC_ERASE2_INPUT.fourthPassServoingHd = 0;
        tDC_ERASE2_INPUT.fifthPassServoingHd = 0;

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    该用户从未签到

    0

    主题

    2727

    回帖

    1386

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1386
    发表于 2017-7-19 05:02:41 | 显示全部楼层
    thanks for sharing
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-3-1 14:11
  • 签到天数: 21 天

    [LV.4]七品知县

    4

    主题

    195

    回帖

    306

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    306
    发表于 2019-1-27 15:32:19 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-15 07:49
  • 签到天数: 2 天

    [LV.1]布衣百姓

    0

    主题

    64

    回帖

    1088

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1088
    发表于 2019-3-14 15:48:07 | 显示全部楼层
    感谢分享,慢慢学习中.....
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    274

    回帖

    141

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    141
    发表于 2022-6-11 17:36:29 | 显示全部楼层
    спачибо
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-1-29 05:51
  • 签到天数: 21 天

    [LV.4]七品知县

    0

    主题

    116

    回帖

    195

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    195
    发表于 2022-6-25 14:25:30 | 显示全部楼层
    THANKS FRIEND
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表