@@ -97,15 +97,15 @@ struct menu_flist mfl;
97
97
98
98
/***** menu items *****/
99
99
100
- #define MENU_NUM 10
100
+ #define MENU_NUM 11
101
101
#define MENU_WINDOW 7
102
102
103
- int mval_y [] = {0 , 0 , 0 , 0 , 0 , 2 , 1 , 0 , 1 , 1 };
103
+ int mval_y [] = {0 , 0 , 0 , 0 , 0 , 0 , 2 , 1 , 0 , 1 , 1 };
104
104
105
- enum menu_id {M_SYS , M_JOM , M_FD1 , M_FD2 , M_FS , M_VKS , M_VBS , M_HJS , M_NW , M_JK };
105
+ enum menu_id {M_SYS , M_JOM , M_FD1 , M_FD2 , M_HD1 , M_FS , M_VKS , M_VBS , M_HJS , M_NW , M_JK };
106
106
107
107
// Max # of characters is 15.
108
- char menu_item_key [][15 ] = {"SYSTEM" , "Joy/Mouse" , "FDD1" , "FDD2" , "Frame Skip" , "VKey Size" , "VBtn Swap" , "HwJoy Setting" , "No Wait Mode" , "JoyKey" , "uhyo" , "" };
108
+ char menu_item_key [][15 ] = {"SYSTEM" , "Joy/Mouse" , "FDD1" , "FDD2" , "HDD1" , " Frame Skip" , "VKey Size" , "VBtn Swap" , "HwJoy Setting" , "No Wait Mode" , "JoyKey" , "uhyo" , "" };
109
109
110
110
// Max # of characters is 30.
111
111
// Max # of items including terminater `""' in each line is 15.
@@ -114,6 +114,7 @@ char menu_items[][15][30] = {
114
114
{"Joystick" , "Mouse" , "" },
115
115
{"dummy" , "EJECT" , "" },
116
116
{"dummy" , "EJECT" , "" },
117
+ {"dummy" , "EJECT" , "" },
117
118
{"Auto Frame Skip" , "Full Frame" , "1/2 Frame" , "1/3 Frame" , "1/4 Frame" , "1/5 Frame" , "1/6 Frame" , "1/8 Frame" , "1/16 Frame" , "1/32 Frame" , "1/60 Frame" , "" },
118
119
{"Ultra Huge" , "Super Huge" , "Huge" , "Large" , "Medium" , "Small" , "" },
119
120
{"TRIG1 TRIG2" , "TRIG2 TRIG1" , "" },
@@ -142,6 +143,7 @@ struct _menu_func menu_func[] = {
142
143
{menu_joy_or_mouse , 1 },
143
144
{menu_create_flist , 0 },
144
145
{menu_create_flist , 0 },
146
+ {menu_create_flist , 0 },
145
147
{menu_frame_skip , 1 },
146
148
{menu_vkey_size , 1 },
147
149
{menu_vbtn_swap , 1 },
@@ -150,10 +152,16 @@ struct _menu_func menu_func[] = {
150
152
{menu_joykey , 1 }
151
153
};
152
154
153
- int WinUI_get_fdd_num (int key )
155
+ int WinUI_get_drv_num (int key )
154
156
{
155
- return strcmp ("FDD1" , menu_item_key [key ])?
156
- (strcmp ("FDD2" , menu_item_key [key ])? -1 : 1 ) : 0 ;
157
+ char * s = menu_item_key [key ];
158
+
159
+ if (!strncmp ("FDD" , s , 3 )) {
160
+ return strcmp ("FDD1" , s )?
161
+ (strcmp ("FDD2" , s )? -1 : 1 ) : 0 ;
162
+ } else {
163
+ return strcmp ("HDD1" , s )? -1 : 2 ;
164
+ }
157
165
}
158
166
159
167
static void menu_hwjoy_print (int v )
@@ -204,8 +212,9 @@ WinUI_Init(void)
204
212
mval_y [M_NW ] = Config .NoWaitMode ;
205
213
mval_y [M_JK ] = Config .JoyKey ;
206
214
207
- strcpy (mfl .dir [0 ], CUR_DIR_STR );
208
- strcpy (mfl .dir [1 ], CUR_DIR_STR );
215
+ for (i = 0 ; i < 3 ; i ++ ) {
216
+ strcpy (mfl .dir [i ], CUR_DIR_STR );
217
+ }
209
218
}
210
219
211
220
#if 0
@@ -314,29 +323,37 @@ static void upper(char *s)
314
323
static void menu_create_flist (int v )
315
324
{
316
325
int drv ;
326
+ //file extension of FD image
327
+ char support [] = "D8888DHDMDUP2HDDIMXDFIMG" ;
317
328
318
- drv = WinUI_get_fdd_num (mkey_y );
329
+ drv = WinUI_get_drv_num (mkey_y );
319
330
printf ("***** drv:%d *****\n" , drv );
320
331
if (drv < 0 ) {
321
332
return ;
322
333
}
323
334
324
335
// set current directory when FDD is ejected
325
336
if (v == 1 ) {
326
- FDD_EjectFD (drv );
327
- Config .FDDImage [drv ][0 ] = '\0' ;
337
+ if (drv < 2 ) {
338
+ FDD_EjectFD (drv );
339
+ Config .FDDImage [drv ][0 ] = '\0' ;
340
+ } else {
341
+ Config .HDImage [0 ][0 ] = '\0' ;
342
+ }
328
343
strcpy (mfl .dir [drv ], CUR_DIR_STR );
329
344
return ;
330
345
}
331
346
347
+ if (drv >= 2 ) {
348
+ strcpy (support , "HDF" );
349
+ }
350
+
332
351
// This routine gets file lists.
333
352
DIR * dp ;
334
353
struct dirent * dent ;
335
354
struct stat buf ;
336
355
int i , len ;
337
356
char * n , ext [4 ], * p ;
338
- //file extension of FD image
339
- char support [] = "D8888DHDMDUP2HDDIMXDFIMG" ;
340
357
char ent_name [MAX_PATH ];
341
358
342
359
dp = opendir (mfl .dir [drv ]);
@@ -616,9 +633,9 @@ int WinUI_Menu(int first)
616
633
menu_state = ms_key ;
617
634
menu_redraw = 1 ;
618
635
619
- drv = WinUI_get_fdd_num (mkey_y );
636
+ drv = WinUI_get_drv_num (mkey_y );
620
637
printf ("***** drv:%d *****\n" , drv );
621
- if (drv == 0 || drv == 1 ) {
638
+ if (drv >= 0 ) {
622
639
if (mval_y [mkey_y ] == 0 ) {
623
640
// go file_mode
624
641
printf ("hoge:%d" , mval_y [mkey_y ]);
@@ -637,7 +654,7 @@ int WinUI_Menu(int first)
637
654
}
638
655
break ;
639
656
case ms_file :
640
- drv = WinUI_get_fdd_num (mkey_y );
657
+ drv = WinUI_get_drv_num (mkey_y );
641
658
printf ("***** drv:%d *****\n" , drv );
642
659
if (drv < 0 ) {
643
660
break ;
@@ -659,8 +676,12 @@ int WinUI_Menu(int first)
659
676
char tmpstr [MAX_PATH ];
660
677
strcpy (tmpstr , mfl .dir [drv ]);
661
678
strcat (tmpstr , mfl .name [y ]);
662
- FDD_SetFD (drv , tmpstr , 0 );
663
- strcpy (Config .FDDImage [drv ], tmpstr );
679
+ if (drv < 2 ) {
680
+ FDD_SetFD (drv , tmpstr , 0 );
681
+ strcpy (Config .FDDImage [drv ], tmpstr );
682
+ } else {
683
+ strcpy (Config .HDImage [0 ], tmpstr );
684
+ }
664
685
menu_state = ms_key ;
665
686
menu_redraw = 1 ;
666
687
}
0 commit comments