0% found this document useful (0 votes)
16 views

DriveMaster_Sample_Scripts2

This document provides a sample script for DriveMaster's HDD testing, detailing commands for clearing logs, displaying device information, and executing read/write operations. It includes control commands for error handling, logging, and buffer management, as well as loops and conditional statements for script execution. The script concludes with restoring default settings and printing the end of the test message.

Uploaded by

ff tan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

DriveMaster_Sample_Scripts2

This document provides a sample script for DriveMaster's HDD testing, detailing commands for clearing logs, displaying device information, and executing read/write operations. It includes control commands for error handling, logging, and buffer management, as well as loops and conditional statements for script execution. The script concludes with restoring default settings and printing the end of the test message.

Uploaded by

ff tan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Sample of DM Script Writing — HDD

Please copy the content below and paste it in DriveMaster’s Script Window to run this sample script.

//"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; TIME


PRNS "=================================================="
PRNS "*** CLEAR DISK ***"
PRNS "* BY DMA CMD *"

//"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"

LOG2

//"HaltErr On" or "HaltErr Off" is used to control if script will be halted


//when command fails. Default is "HaltErr Off"
HALTERR ON

//"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

PRNS "SOFT RESET"

//Issue "ATA Soft Reset" command


REST

//"Wait" will let script wait for number of milliseconds before continuing //to execute
//next script line.
WAIT 2000
//Issue "Set Feature" command to set PIO mode 4
SETF 3,0ch,0 //set PIO MODE 4

//Issue ATA "Identify" command


IDFY
SETF 3,45h,0 //set UDMA MODE 5 (UDMA100)

//Get the Total Lba address of the current tested HDD and save the value to variable "V0"
//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"

V0 = totallba
PRNSL "total lba=",V0
G8=256 //G8 is set for sector count per write/read

//Math/logical/conditional/assignment operators work same as C language

V0 = V0/1000 //shorten the size for sample purpose

//Issue "Read DMA" command with LBA 0, Length 256


//Besides ATA/ATAPI standard commands, user also can send Vendor specified ATA,ATAPI

//commands by using "WTF28", "WTF48", "PACKET"


RDMA 0,256 //Issue Read DMA command

//There is a set of buffer filling commands to let user fill buffer with different
//patterns: PAT, PATI, PATZ, PATD, PATR, PATV, and PATF

PATZ "WRITE" //fill write buffer with 0


WDMA 0,256 //write from WRITE buffer
RDMA 0,256 //read to READ buffer

//Also there is a set of buffer management commands to let user control buffer easily.
//RPOINT, WPOINT, RR[W], RW[W], WRB[W], WWB[W], R[B]FILE, W[B]FILE,
SAVB(O)
//NEW, SETSIZE, FREE, COPY, CMPSET, CMP, APPEND, SWAP, MOD
CMP //compare READ and WRITE buffer

PRNSR "Write Start "; time


PRNS ""
G8=256 //sector count per write/read

//"For...EndFor" let user control scripts in loop. Similar commands include


//"Do...Until", "While...EndWhile"
FOR (G9=0; G9<(V0-1); G9+=G8 )

//"PRNF" will let user print information into a formatted text.

PRNF "\r UDMA WRITE LBA %09ld ", G9

//"If...ElseIf...Else...EndIf" will let user control conditional execution


IF ( (G9+G8)>=V0 ) G8=V0-G9; ENDIF //CHECK OUT OF BOUND
WDMA G9,G8
ENDFOR
PRNS ""
PRNSR "Write End"; time

G8=256 //sector count per write/read


PRNSR "Read Start"; time
PRNS""
FOR (G9=0; G9<(V0-1); G9+=G8 )
PRNF "\r UDMA READ LBA %09ld", G9
IF ( (G9+G8)>=V0 ) G8=V0-G9; ENDIF //CHECK OUT OF BOUND
RDMA G9,G8
G7=G8*512; //bytes

//"CmpSet" works with "Cmp" together to control the location/size of buffer comparison
//instead of comparing the whole buffers by default.
CMPSET 1,0,G7 //type, offset, size
CMP
ENDFOR
PRNS ""
PRNSR "Read End "; time

//Restore to the defaults Logging control parameters


ECHO ON
Log2
HaltErr Off
Upd OFF
Prns "End of Test"
End
//User also can use "Sub"/"Call" functions to generate more complex scripts as needed.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy