1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
case BDT_FLOPPY:
do {
"Include $PURPLE$0x$FG$ prefix.\nI/O Port Base:\n";
GetS(base0_buf,STR_LEN);
} while (!Str2I64(base0_buf))
do {
"Drv Num:\n";
unit=GetChar-'0';
} while (0<=unit<=3)
"If you have a 3.5-inch high-density (1.44 Meg)\n"
"floppy disk, there are some default params you can use.\n"
"Otherwise, you will need to set the manually (Intel's datasheet\n"
"for the 82077AA is very useful here).\n\n"
"Use default params ";
If (YorN) {
defaults=TRUE;
} else {
"The following params are stored as they will be sent to the ctrlr:\n"
"Enter them in hex, prefixed with $PURPLE$0x$FG$.\n";
do {
"Cylinders:\n";
GetS(cyl_buf,STR_LEN);
} while (!Str2I64(cyl_buf));
do {
"Heads:\n";
heads=GetChar-'0';
} while (1<=heads<=2);
do {
"Sectors:\n";
GetS(spt_buf,STR_LEN);
} while (0<=Str2I64(spt_buf)<=255);
do {
"Sector Size (128<<X bytes):\n";
size=GetChar-'0'
} while (0<=size<=7);
if (size==0) {
do {
"DTL (data length):\n";
GetS(dtl_buf,STR_LEN);
} while (1<=Str2I64(dtl_buf)<=128);
} else {
dtl_buf="0xFF"; // If sect size is not 128, DTL is set to 255
}
do {
"Step Rate:\n";
GetS(srt_buf,STR_LEN);
} while (0<=Str2I64(srt_buf)<=15);
do {
"Head Unload Time:\n";
GetS(hut_buf,STR_LEN);
} while (0<=Str2I64(hut_buf)<=15);
do {
"Head Load Time:\n";
GetS(hlt_buf,STR_LEN);
} while (0<=Str2I64(hlt_buf)<=127);
do {
"GPL1 (normal GAP3 len):\n";
GetS(gpl1_buf,STR_LEN);
} while (1<=Str2I64(gpl1_buf)<=255);
do {
"NOTE: Setting GPL2 to 0 will disable low-level fmt!\n";
"GPL2 (fmt GAP3 len):\n";
GetS(gpl2_buf,STR_LEN);
} while (0<=Str2I64(gpl2_buf)<=255);
do {
"*** Data Rates ***\n"
"0=500 Kbit\n"
"1=300 Kbit\n"
"2=250 Kbit\n"
"3=1 Mbit (Not Supported)\n\n";
"Data Rate:\n";
bps=GetChar-'0'
} while (0<=bps<=3);
}
|