Sample of DM Script Writing — ODD
Please copy the content below and paste it in DriveMaster’s Script Window to run this sample script.
//Please make sure you have inserted a CD in the Drive and the drive is ready. TUR //"Cls" is used to clear the content in the log window. CLS //There is a set of print commands for user to display the information in the log //window. PRNS[R], PRNL[R], PRNSL[R], PRNSX[R], PRNF PRNS "==================================================" //"Script" displays the name of current script; "VER" displays the version number //of current DriveMaster; "DEVNAME" displays the information of current tested //device including model number, serial number and firmware revision; "DATE"/"TIME" //displays current date and time SCRIPT; VER; DEVNAME; DATE; TIMEPRNS "==================================================" //"Echo On" or "Echo Off" is used to control the display of command issued to be //echoed to the Log window. Default is "Echo On" ECHO OFF //"Log1"/"Log2"/"LogOff" is used to control how detail information will be displayed //on the Log Window when command failed. Default is "Log2" LOGOFF //"HaltErr On" or "HaltErr Off" is used to control if script will be halted //when command fails. Default is "HaltErr Off" HALTERR OFF //"UPD ON" or "UPD OFF" is used to control how frequent the screen display will be //refreshed. When "Upd On", the screen will be refreshed by every second; When "Upd //Off", the screen will be refreshed by each script line. Default is "UPD off" UPD ON //Issue "Read Capacity" command to get the maximum LBA RDCAP //ST, CDF, SEL are global variables for specific meaning in Read CD command ST = 0 //Expected Sector Type CDF = 0f8h //Flag Bits SEL = 0 //SubCode Selection //V0-V99, G0-G99, I-I10, J-J10, K-K10 are DWORD Global variables for general //purpose. Also user can define the meaningful variables/arrays by "DIM" k9 = 50h //Max. Transfer Len in Read CD PRNS ": Random Read CD Test" //"For...EndFor" let user control scripts in loop. Similar commands
//include "Do...Until", "While...EndWhile"
FOR (v1 = 0; v1 < 100; v1+= 1)
k1 = RAND%MAXLBA //Start LBA
k2 = RAND%k9 //Transfer Len
//"If...ElseIf...Else...EndIf" will let user control conditional execution IF ((k1 + k2) > MAXLBA)
//Math/logical/conditional/assignment operators work similar as C language
k2 = MAXLBA - k1
ENDIF
//Print out current LBA and Transfer Len
PRNF "\r READ CD LBA %09ld ", k1
PRNF " LEN %04d ", k2
//Issue "Read CD" command with LBA k1, Length k2 //Besides ATA/ATAPI standard commands, user also can send Vendor specified //ATA/ATAPI commands by using "WTF28", "WTF48", "PACKET" RDCD k1, k2 ENDFOR //Restore to the defaults Logging control parameters ECHO ON LOG2 HALTERR OFF UPD OFF PRNF "\n End" End //User also can use "Sub"/"Call" functions to generate more complex scripts //as needed. |
||