' ****************************************************************** ' Gives brief information on your hdd ' Murat AYDIN Load QB / L QB.QLB ykleyin ' ' ****************************************************************** DECLARE SUB cerceve (satir!, sutun!, en!, boy!, tip!, onr!, arr!) DECLARE SUB fonksion () '$INCLUDE: 'qb.bi' COLOR , 14: CLS cerceve 4, 12, 55, 9, 2, 15, 1 LOCATE 6, 25: COLOR 14, 1: PRINT "H A R D D ˜ S K P R O F I L E" LOCATE 9, 32: PRINT "(c) 1997 " LOCATE 12, 33: COLOR 15, 1: PRINT "MURAT AYDIN" DO WHILE INKEY$ = "": LOOP fonksion SUB cerceve (satir, sutun, en, boy, tip, onr, arr) IF satir > 20 THEN satir = 20 IF sutun > 75 THEN sutun = 75 IF tip > 2 OR tip < 1 THEN tip = 1 IF tip = 1 THEN sou = 218 yci = 196 sau = 191 dci = 179 soa = 192 saa = 217 ELSE sou = 201 yci = 205 sau = 187 dci = 186 soa = 200 saa = 188 END IF sat = satir + INT(boy / 2) sut = sutun + INT(en / 2) en1 = 1: boy1 = 1 DO a4$ = "" sat = sat - 1 sut = sut - 1 en1 = en1 + 2 boy1 = boy1 + 2 IF en1 >= en THEN en1 = en IF sut <= sutun THEN sut = sutun IF sat <= satir THEN sat = satir IF boy1 >= boy THEN boy1 = boy IF sat = satir AND sut = sutun AND boy1 = boy AND en1 = en THEN EXIT DO COLOR onr, arr LOCATE sat, sut: PRINT CHR$(sou); STRING$(en1, yci); CHR$(sau) FOR a = sat + 1 TO sat + boy1 LOCATE a, sut: PRINT CHR$(dci); STRING$(en1, 255); CHR$(dci) NEXT LOCATE a, sut: PRINT CHR$(soa); STRING$(en1, yci); CHR$(saa) FOR r = 1 TO 200: NEXT FOR a = sat + 1 TO sat + boy1 + 1 a1$ = CHR$(SCREEN(a, sut + en1 + 2)) a2$ = CHR$(SCREEN(a, sut + en1 + 3)) COLOR 8, 0 LOCATE a, sut + en1 + 2: PRINT a1$ LOCATE a, sut + en1 + 3: PRINT a2$ NEXT FOR b = sut + 2 TO sut + en1 + 3 a3$ = CHR$(SCREEN(a, b)) a4$ = a4$ + a3$ NEXT COLOR 8, 0 LOCATE a, sut + 2: PRINT a4$ LOOP COLOR 7, 0 END SUB SUB fonksion COLOR , 11: CLS VIEW PRINT 1 TO 25: CLS cerceve 7, 8, 67, 15, 2, 15, 14 DIM totalfree AS LONG: DIM regs AS RegType cerceve 2, 8, 67, 1, 2, 15, 1 COLOR 15, 9: LOCATE 3, 24: PRINT "HARDDISK PROFILE " ': COLOR 11, 14: regs.ax = &H1900 CALL INTERRUPT(&H21, regs, regs) surucu$ = CHR$((regs.ax AND &HFF) + 65) + ":" regs.ax = &H3600 regs.dx = ASC(UCASE$(surucu$)) - 64 CALL INTERRUPT(&H21, regs, regs) Sectorsincluster = regs.ax SektordeByte = regs.cx IF regs.dx >= 0 THEN Clustersindrive = regs.dx ELSE Clustersindrive = regs.dx + 65536 END IF IF regs.bx >= 0 THEN ClustersAvailable = regs.bx ELSE ClustersAvailable = regx.bx + 65536 END IF frespace = ClustersAvailable * Sectorsincluster * SektordeByte totalfree = Clustersindrive * Sectorsincluster * SektordeByte COLOR 11, 14: LOCATE 8, 12: PRINT "Total space :"; COLOR 15, 14: PRINT USING "##,###,###,###"; totalfree COLOR 11, 14: LOCATE 9, 12: PRINT "Area used :"; COLOR 15, 14: PRINT USING "##,###,###,###"; totalfree - frespace COLOR 15, 14: LOCATE 10, 11: PRINT " "; surucu$; COLOR 10, 14: PRINT "In this hdd :"; COLOR 15, 14: PRINT USING "##,###,###,### "; frespace; COLOR 0, 14: PRINT "Byte is free " COLOR 15, 14: LOCATE 12, 12: PRINT "DETAYLAR..." COLOR 11, 14: LOCATE 13, 12: PRINT "Cluster number :"; COLOR 15, 14: PRINT Clustersindrive COLOR 11, 14: LOCATE 14, 12: PRINT "Cluster can be used :"; COLOR 15, 14: PRINT ClustersAvailable COLOR 11, 14: LOCATE 15, 12: PRINT "Sector number per cluster:"; COLOR 15, 6: PRINT Sectorsincluster COLOR 11, 6: LOCATE 16, 12: PRINT "Bytes per sector "; COLOR 15, 6: PRINT SektordeByte cerceve 19, 18, 45, 1, 1, 15, 1 per = ((totalfree - frespace) / totalfree) COLOR 12, 9: LOCATE 20, 22: PRINT "˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛˛" COLOR 14, 0: LOCATE 22, 24: PRINT "Full" COLOR 12, 0: LOCATE 22, 52: PRINT "Empty" FOR yuzde = 1 TO (per * 100) / 3 yuzde$ = yuzde$ + "˛" NEXT yuzde COLOR 14, 2: LOCATE 20, 22: PRINT yuzde$ COLOR 14, 9: LOCATE 20, 58: PRINT "%"; FIX(per * 100) 'LOCATE 23, 32: COLOR 15, 14: PRINT " Murat AYDIN " DO WHILE INKEY$ = "" COLOR 15, 9: LOCATE 3, 65: PRINT TIME$ LOOP COLOR 7, 0 END END SUB