GlobalDeffuncCmd.as [コマンドラインスイッチ定義命令]

;*******************************************************************************
; SetFSB Command Line Switch Global Space Definition Function  [2007.09.19]
;   Programmed in HSP Ver3.1 ONION software(http://www.onionsoft.net/hsp/)
;
; 1. CommandLineSwitch
;
;*******************************************************************************

;/Command Line Switch Definition Function
;--------+---------+---------+---------+---------+---------+---------+---------+
;  SetFSB.exe -w05 -s144
;   -w : Wait [sec] (default=10sec)
;   -u : Ultra 0=normal(default) , 1=ultra
;   -i : Increment [MHz] 0=max(default)
;   -s : Set FSB [MHz]
;--------+---------+---------+---------+---------+---------+---------+---------+
#deffunc CommandLineSwitch
    while ((dir_cmdline!"")&(iSetFsbFlg=0))
        szCmdBuf=dir_cmdline : CharLower varptr(szCmdBuf)
        
    ; Wait [sec] (default=10sec)
        if instr(szCmdBuf,,"-w")!-1 | instr(szCmdBuf,,"/w")!-1 {
            iCmdWait=int(strmid(szCmdBuf,CND(instr(szCmdBuf,,"-w")!-1,instr(szCmdBuf,,"-w"),0)+CND(instr(szCmdBuf,,"/w")!-1,instr(szCmdBuf,,"/w"),0)+2,2))
        } else {
            iCmdWait=10
        }

        repeat iCmdWait
            #if TEST
                title2 SoftName+VerNo+"  - test mode -   Waiting "+str(iCmdWait-cnt)+"sec" : wait 100
            #else
                title2 SoftName+VerNo+"   Waiting "+str(iCmdWait-cnt)+"sec" : wait 100
            #endif
            if iSetFsbFlg&CmdCansel : break
        loop

        if iSetFsbFlg&CmdCansel : _break

    ; Ultra (default=0)
        if instr(szCmdBuf,,"-u")!-1 | instr(szCmdBuf,,"/u")!-1 {
            fUltra=int(strmid(szCmdBuf,CND(instr(szCmdBuf,,"-u")!-1,instr(szCmdBuf,,"-u"),0)+CND(instr(szCmdBuf,,"/u")!-1,instr(szCmdBuf,,"/u"),0)+2,2))&1
        } else {
            fUltra=0
        }
        setchkbox hwUltChk,fUltra

    ; Increment[MHz] (default=0)
        if instr(szCmdBuf,,"-i")!-1 | instr(szCmdBuf,,"/i")!-1 {
            iCmdInc=int(strmid(szCmdBuf,CND(instr(szCmdBuf,,"-i")!-1,instr(szCmdBuf,,"-i"),0)+CND(instr(szCmdBuf,,"/i")!-1,instr(szCmdBuf,,"/i"),0)+2,2))
        }
        else {
            iCmdInc=0
        }

    ; Set FSB [MHz]
        do 
            #if TEST
                title2 SoftName+VerNo+"  - test mode -   Setting... " : wait 100
            #else
                title2 SoftName+VerNo+"   Setting... " : wait 100
            #endif

            if instr(szCmdBuf,,"-s")!-1 | instr(szCmdBuf,,"/s")!-1 {
                iCmdFsb=int(strmid(szCmdBuf,CND(instr(szCmdBuf,,"-s")!-1,instr(szCmdBuf,,"-s"),0)+CND(instr(szCmdBuf,,"/s")!-1,instr(szCmdBuf,,"/s"),0)+2,3))
            } else {
                iSetFsbFlg|=CmdFailed : _break
            }

            ButtonFSB nGetFSB : if iSetFsbFlg&0xFF : _break

            wait 50

            do
                SetCulationData 1,iNumFsb,iNumPci
                if (iCmdInc!0)&(iCmdFsb-iCmdInc>=dCalcFsbFrq) : dCmdSet=dCalcFsbFrq+iCmdInc : else : dCmdSet=double(iCmdFsb)
                iNumFsb=int(dCmdSet*iFsbRef*iCpuDiv*1000/iFsbGear-iDivNA_Ofset)

                setupdnpos hwFsbUpd,iNumFsb
                settrackpos hwFsbTrb,iNumFsb
                settext hwNumFsbStc,str(Gettrackpos(hwFsbTrb)-CND(fUltra,iFsbTrbMin-iFsbTrbOfsU,iFsbTrbMin-iFsbTrbOfsN))+"/"+str(iFsbTrbMax-iFsbTrbMin)

                SetCulationData 1,Gettrackpos(hwFsbTrb),iNumPci
                settext hwSelFrqStc,strf("%3.1f",dCalcFsbFrq)+"/"+strf("%3.1f",dCalcDdrFrq)+"/"+strf("%3.1f",dCalcAgpFrq)+"/"+strf("%3.1f",dCalcPciFrq)+"MHz"
                wait 50

                ButtonFSB nSetFSB : if iSetFsbFlg&0xFF : _break

                wait 100 

                if iNumFsb=CND(fUltra,iFsbTrbMax-iFsbTrbOfsU,iFsbTrbMax-iFsbTrbOfsN) : _break
                SetCulationData 1,iNumFsb+1,iNumPci

            until ((iCmdFsb<=dCalcFsbFrq)|(iSetFsbFlg&CmdCansel))

            if (iSetFsbFlg&CmdCansel)=0 : iSetFsbFlg|=CmdCompleted
        until

    wend

    if iSetFsbFlg&CmdCansel {
        #if TEST
            title2 SoftName+VerNo+"  - test mode -"
        #else
            title2 SoftName+VerNo
        #endif
    }

    return

;------------------------------------------------------------------------------