'********** SERIAL.BAS - gets a disk's serial number 'Copyright (c) 1992 Ethan Winer 'Compile and link as follows: ' ' bc serial /o ; ' link serial , , nul, qb[x] ; DEFINT A-Z '$INCLUDE: 'QB.BI' 'defines RegType, declares Interrupt DEF FnPad$ (IntVar) = RIGHT$("000" + HEX$(IntVar), 4) DIM Regs AS RegType 'for CALL Interrupt below DOS = &H21 TYPE SNType Zero AS INTEGER SerLo AS INTEGER SerHi AS INTEGER Label AS STRING * 11 Media AS STRING * 8 END TYPE DIM SN AS SNType PRINT "SERIAL version 1.00" 'say hello PRINT Cmd$ = COMMAND$ IF LEN(Cmd$) THEN Drive = ASC(UCASE$(COMMAND$)) - 64 'see if they entered a drive END IF IF Drive < 1 THEN 'no, show the syntax PRINT "Usage: SERIAL d:" END END IF Regs.AX = &H6900 'AX: service &H69, subsvc 0 (get info) Regs.BX = Drive 'BX: 0 = default, 1 = A, 2 = B, etc. Regs.DX = VARPTR(SN) 'DS:DX points to the SN info block CALL Interrupt(DOS, Regs, Regs) PRINT "Media descriptor: "; SN.Media PRINT " Serial number: "; FnPad$(SN.SerHi); "-"; FnPad$(SN.SerLo)