>>>*SerialBinTest.prg >>>parameters driveletter >>>set talk off >>>clear >>>mp = chr(asc(upper(driveletter))-ASC("A")+1)+chr(0)+; >>> space(22) && 24 bytes total >>>load serial >>>call serial with mp && execute binary code >>>? substr(mp,2+1) && First two bytes are always chr(0) >>>cSerial1 = substr(mp,1+2,1) >>>cSerial2 = substr(mp,2+2,1) >>>cSerial3 = substr(mp,3+2,1) >>>cSerial4 = substr(mp,4+2,1) >>> >>>? asc(cSerial4) && Disk serial number >>>? asc(cSerial3) && is a doubleword >>>? asc(cSerial2) && So read in reverse order >>>? asc(cSerial1) && as shown in dir >>>* Now print in hex format just like dir >>>? "Disk serial number is " >>>?? padl(dec2hex(asc(cSerial4)),2,"0") >>>?? padl(dec2hex(asc(cSerial3)),2,"0") >>>?? ":" >>>?? padl(dec2hex(asc(cSerial2)),2,"0") >>>?? padl(dec2hex(asc(cSerial1)),2,"0") >>>? >>> >>>function Dec2Hex >>>parameters nDecimal >>>n=0 >>>do while floor(nDecimal/16^n) > 15 >>> n = n+1 >>>enddo >>>cHEX = "" >>>for ix=n to 0 step -1 >>> cHEX = cHex + DecDigit2HexDigit(floor(nDecimal/16^ix)) >>> nDecimal = nDecimal % 16 >>>endfor >>>return cHex >>> >>>function DecDigit2HexDigit >>>parameters nDecimal >>>return iif(ndecimal>9,chr(asc("A")+nDecimal%10),str(nDecimal,1)) >>>>>>
*Create bin - run once >>>handle=fcreate('Serial.Bin') >>>=FWRITE(handle,CHR(83)+CHR(184)+; >>> CHR(0)+CHR(105)+CHR(139)+CHR(211)+; >>> CHR(139)+CHR(31)+CHR(205)+CHR(33)+; >>> CHR(91)+CHR(203)) >>>=fclose(handle) >>>Cetin