Changeset 47036 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Jul 8, 2013 12:26:47 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/floppy.c
r46947 r47036 392 392 retval = 1; 393 393 } 394 else if ( drive_type == 14 || drive_type == 15 ) { 395 // 15.6 MB 3.5" (fake) || 63.5 MB 3.5" (fake) - report same as 2.88 MB. 396 config_data = 0xCC; // 1100 1100 397 media_state = 0xD7; // 1101 0111 398 retval = 1; 399 } 394 400 else { 395 401 // not recognized … … 1026 1032 SET_AL(0); 1027 1033 SET_DL(num_floppies); 1034 SET_DH(1); // max head # 1028 1035 1029 1036 switch (drive_type) { … … 1035 1042 case 1: // 360KB, 5.25" 1036 1043 CX = 0x2709; // 40 tracks, 9 sectors 1037 SET_DH(1); // max head #1038 1044 break; 1039 1045 1040 1046 case 2: // 1.2MB, 5.25" 1041 1047 CX = 0x4f0f; // 80 tracks, 15 sectors 1042 SET_DH(1); // max head #1043 1048 break; 1044 1049 1045 1050 case 3: // 720KB, 3.5" 1046 1051 CX = 0x4f09; // 80 tracks, 9 sectors 1047 SET_DH(1); // max head #1048 1052 break; 1049 1053 1050 1054 case 4: // 1.44MB, 3.5" 1051 1055 CX = 0x4f12; // 80 tracks, 18 sectors 1052 SET_DH(1); // max head #1053 1056 break; 1054 1057 1055 1058 case 5: // 2.88MB, 3.5" 1056 1059 CX = 0x4f24; // 80 tracks, 36 sectors 1057 SET_DH(1); // max head #1058 1060 break; 1059 1061 … … 1070 1072 case 8: // 320k, 5.25" 1071 1073 CX = 0x2708; // 40 tracks, 8 sectors 1072 SET_DH(1); // max head # 1073 break; 1074 1074 break; 1075 1076 case 14: // 15.6 MB 3.5" (fake) 1077 CX = 0xfe3f; // 255 tracks, 63 sectors 1078 break; 1079 1080 case 15: // 63.5 MB 3.5" (fake) 1081 CX = 0xfeff; // 255 tracks, 255 sectors - This works because the cylinder 1082 break; // and sectors limits/encoding aren't checked by the BIOS 1083 // due to copy protection schemes and such stuff. 1084 1075 1085 default: // ? 1076 1086 BX_PANIC("%s: bad floppy type\n", __func__);
Note:
See TracChangeset
for help on using the changeset viewer.