89 lines
2.9 KiB
QBasic
89 lines
2.9 KiB
QBasic
color 1,1
|
||
cls
|
||
color 14,1
|
||
locate 5,5:print " HEADS "
|
||
locate 7,5:print " CYLINDERS "
|
||
locate 9,5:print " SECTORS "
|
||
locate 12,5:print" SIZE "
|
||
locate 17,5:print"LANDING ZONE "
|
||
color 11,1
|
||
locate 9,27:print"* 512 Bytes"
|
||
locate 12,32:print"Bytes"
|
||
locate 13,32:print"kBytes"
|
||
locate 14,32:print"MBytes"
|
||
locate 15,32:print"GBytes"
|
||
color 15,1
|
||
locate 5,40:print "Up/Down - Switch between HEADS,"
|
||
locate 6,40:print " CYLINDERS and SECTORS"
|
||
locate 7,40:print "Right/Left - Increase / decrease"
|
||
locate 8,40:print " selected value"
|
||
locate 9,40:print "[ENTER] - enter value directly"
|
||
locate 10,40:print"[ESC]ape - Quit this nice proggy"
|
||
color 16,7:locate 2,27:print" HARDDISK-SIZE-CALCULATOR "
|
||
gosub PrintItOut
|
||
1 a$=inkey$:if a$="" then 1
|
||
if a$=chr$(27) then goto Ende
|
||
if mid$(a$,2,1)="H" and active>1 then active=active-1
|
||
if mid$(a$,2,1)="P" and active<3 then active=active+1
|
||
if active=1 then value=heads
|
||
if active=2 then value=cylinders
|
||
if active=3 then value=sectors
|
||
if mid$(a$,2,1)="M" and value<999999 then Incr Value
|
||
if mid$(a$,2,1)="K" and value>0 then Decr Value
|
||
if a$=chr$(13) and active<>0 then gosub InputIt
|
||
if active=1 then heads=value
|
||
if active=2 then cylinders=value
|
||
if active=3 then sectors=value
|
||
gosub PrintItOut
|
||
goto 1
|
||
|
||
InputIt:
|
||
locate 19,10:color 14,1:print"Enter the new value for ";
|
||
if active=1 then print"HEADS";
|
||
if active=2 then print"CYLINDERS";
|
||
if active=3 then print"SECTORS";
|
||
print " :";
|
||
oldvalue=value
|
||
color 11,1:input "",value
|
||
if value=0 then value=oldvalue
|
||
if value>999999 then value=oldvalue
|
||
locate 19,10:print space$(70);
|
||
return
|
||
|
||
PrintItOut:
|
||
color 0,3
|
||
locate 5,19:print using "######";heads
|
||
locate 7,19:print using "######";cylinders
|
||
locate 9,19:print using "######";sectors
|
||
color 11+16,1
|
||
if active=0 then goto 2
|
||
if active=1 then l=5
|
||
if active=2 then l=7
|
||
if active=3 then l=9
|
||
locate 5,18:if l=5 then print chr$(16); else print " ";
|
||
locate 7,18:if l=7 then print chr$(16); else print " ";
|
||
locate 9,18:if l=9 then print chr$(16); else print " ";
|
||
locate 5,25:if l=5 then print chr$(17); else print " ";
|
||
locate 7,25:if l=7 then print chr$(17); else print " ";
|
||
locate 9,25:if l=9 then print chr$(17); else print " ";
|
||
2 color 0,7
|
||
locate 17,18:print using "#######";cylinders+1
|
||
sizeb=heads*cylinders*sectors*512
|
||
sizek=sizeb/1024
|
||
sizem=sizek/1024
|
||
sizeg=sizem/1024
|
||
locate 12,18
|
||
if sizeb<9999999999 then print using ",,,,,,,,,,,,,";sizeb else color 12,7:print"* OVERFLOW * ":color 0,7
|
||
locate 13,18
|
||
if sizek<9999999999 then print using ",,,,,,,,,,,,,";sizek else color 12,7:print"* OVERFLOW * ":color 0,7
|
||
locate 14,18
|
||
if sizem<9999999999 then print using ",,,,,,,,,,,,,";sizem else color 12,7:print"* OVERFLOW * ":color 0,7
|
||
locate 15,18
|
||
if sizeg<9999999999 then print using ",,,,,,,,,,,,,";sizeg else color 12,7:print"* OVERFLOW * ":color 0,7
|
||
return
|
||
|
||
Ende:
|
||
color 7,0
|
||
cls
|
||
print "READY."
|
||
end |