Skip to content

Commit 3180bb6

Browse files
committed
add 2nd HDD support
1 parent a74f103 commit 3180bb6

File tree

4 files changed

+28
-17
lines changed

4 files changed

+28
-17
lines changed

readme.txt

+14-6
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ PX68K は以下の成分からできています。
340340
・ ディレクトリを深く掘りすぎたり、長いファイル名の場合、UI 画面から
341341
はみ出すのは仕様です。
342342

343-
・以下の様に引数で指定することもできます。最初が FDD1, 次が FDD2
343+
・以下の様に引数で指定することもできます。最初が FDD0, 次が FDD1
344344

345345
$ ./px68k hoge.xdf hogege.xdf
346346

@@ -408,7 +408,7 @@ PX68K は以下の成分からできています。
408408
+-[Mouse]
409409
仮想マウスを有効にします。
410410

411-
[FDD1]-+-[イメージファイル名] または [-- no disk --]
411+
[FDD0]-+-[イメージファイル名] または [-- no disk --]
412412
| イメージファイルを選択している場合はイメージファイル名が
413413
| 表示され、選択していない場合は no disk 表示となります。
414414
|
@@ -420,14 +420,20 @@ PX68K は以下の成分からできています。
420420
+-[EJECT]
421421
イメージファイルを解除します。
422422

423-
[FDD2]
424-
[FDD1] と同じです。
423+
[FDD1]
424+
[FDD0] と同じです。
425425
ディスクドライブ2についての設定となります。
426426

427-
[HDD1]
428-
[FDD1] と同じです。
427+
[HDD0]
428+
[FDD0] と同じです。
429429
SASI HDD についての設定となります。
430430

431+
[HDD1]
432+
[FDD0] と同じです。
433+
SASI HDD についての設定となります。
434+
HDD を 2 台以上接続する場合は、switch.x で HD_MAX の値を確認し、
435+
必要ならば変更してください。3 台以上の HDD を接続したい場合は
436+
config ファイルを直接編集してください。
431437

432438
[Frame Skip]
433439
フレームスキップの設定をします。
@@ -592,6 +598,8 @@ PX68K は以下の成分からできています。
592598
いなかったのを修正 (c68k MPU コア)
593599
これで gcc のフリーズが直るはず
594600
2014/07/03 サウンド出力ロジックの見直し(音が変になることがあるのを修正)
601+
2014/07/03 UI の FDD/HDD 番号を 0 origin に変更
602+
2014/07/03 2 台目の HDD イメージに対応
595603

596604

597605
9. 免責

x11/windraw.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1880,7 +1880,7 @@ void WinDraw_DrawMenu(int menu_state, int mkey_pos, int mkey_y, int *mval_y)
18801880
if (drv < 2) {
18811881
p = Config.FDDImage[drv];
18821882
} else {
1883-
p = Config.HDImage[0];
1883+
p = Config.HDImage[drv - 2];
18841884
}
18851885

18861886
if (p[0] == '\0') {

x11/winui.c

+12-9
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ struct menu_flist mfl;
103103
#define MENU_NUM 11
104104
#define MENU_WINDOW 7
105105

106-
int mval_y[] = {0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1};
106+
int mval_y[] = {0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 1};
107107

108-
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};
108+
enum menu_id {M_SYS, M_JOM, M_FD0, M_FD1, M_HD0, M_HD1, M_FS, M_VKS, M_VBS, M_HJS, M_NW, M_JK};
109109

110110
// Max # of characters is 15.
111-
char menu_item_key[][15] = {"SYSTEM", "Joy/Mouse", "FDD0", "FDD1", "HDD0", "Frame Skip", "VKey Size", "VBtn Swap", "HwJoy Setting", "No Wait Mode", "JoyKey", "uhyo", ""};
111+
char menu_item_key[][15] = {"SYSTEM", "Joy/Mouse", "FDD0", "FDD1", "HDD0", "HDD1", "Frame Skip", "VKey Size", "VBtn Swap", "HwJoy Setting", "No Wait Mode", "JoyKey", "uhyo", ""};
112112

113113
// Max # of characters is 30.
114114
// Max # of items including terminater `""' in each line is 15.
@@ -118,6 +118,7 @@ char menu_items[][15][30] = {
118118
{"dummy", "EJECT", ""},
119119
{"dummy", "EJECT", ""},
120120
{"dummy", "EJECT", ""},
121+
{"dummy", "EJECT", ""},
121122
{"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", ""},
122123
{"Ultra Huge", "Super Huge", "Huge", "Large", "Medium", "Small", ""},
123124
{"TRIG1 TRIG2", "TRIG2 TRIG1", ""},
@@ -147,6 +148,7 @@ struct _menu_func menu_func[] = {
147148
{menu_create_flist, 0},
148149
{menu_create_flist, 0},
149150
{menu_create_flist, 0},
151+
{menu_create_flist, 0},
150152
{menu_frame_skip, 1},
151153
{menu_vkey_size, 1},
152154
{menu_vbtn_swap, 1},
@@ -163,7 +165,8 @@ int WinUI_get_drv_num(int key)
163165
return strcmp("FDD0", s)?
164166
(strcmp("FDD1", s)? -1 : 1) : 0;
165167
} else {
166-
return strcmp("HDD0", s)? -1 : 2;
168+
return strcmp("HDD0", s)?
169+
(strcmp("HDD1", s)? -1: 3) : 2;
167170
}
168171
}
169172

@@ -230,7 +233,7 @@ WinUI_Init(void)
230233
cur_dir_slen = strlen(cur_dir_str);
231234
p6logd("cur_dir_str %s %d\n", cur_dir_str, cur_dir_slen);
232235

233-
for (i = 0; i < 3; i++) {
236+
for (i = 0; i < 4; i++) {
234237
strcpy(mfl.dir[i], cur_dir_str);
235238
}
236239
}
@@ -345,7 +348,7 @@ static void menu_create_flist(int v)
345348
char support[] = "D8888DHDMDUP2HDDIMXDFIMG";
346349

347350
drv = WinUI_get_drv_num(mkey_y);
348-
p6logd("***** drv:%d ***** %s \n", drv, mfl.dir[drv]);
351+
p6logd("*** drv:%d ***** %s \n", drv, mfl.dir[drv]);
349352
if (drv < 0) {
350353
return;
351354
}
@@ -356,7 +359,7 @@ static void menu_create_flist(int v)
356359
FDD_EjectFD(drv);
357360
Config.FDDImage[drv][0] = '\0';
358361
} else {
359-
Config.HDImage[0][0] = '\0';
362+
Config.HDImage[drv - 2][0] = '\0';
360363
}
361364
strcpy(mfl.dir[drv], cur_dir_str);
362365
return;
@@ -655,7 +658,7 @@ int WinUI_Menu(int first)
655658
menu_redraw = 1;
656659

657660
drv = WinUI_get_drv_num(mkey_y);
658-
printf("***** drv:%d *****\n", drv);
661+
printf("**** drv:%d *****\n", drv);
659662
if (drv >= 0) {
660663
if (mval_y[mkey_y] == 0) {
661664
// go file_mode
@@ -702,7 +705,7 @@ int WinUI_Menu(int first)
702705
FDD_SetFD(drv, tmpstr, 0);
703706
strcpy(Config.FDDImage[drv], tmpstr);
704707
} else {
705-
strcpy(Config.HDImage[0], tmpstr);
708+
strcpy(Config.HDImage[drv - 2], tmpstr);
706709
}
707710
}
708711
menu_state = ms_key;

x11/winui.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ enum MenuState {ms_key, ms_value, ms_file, ms_hwjoy_set};
2424
struct menu_flist {
2525
char name[MFL_MAX][MAX_PATH];
2626
char type[MFL_MAX];
27-
char dir[3][MAX_PATH];
27+
char dir[4][MAX_PATH];
2828
int ptr;
2929
int num;
3030
int y;

0 commit comments

Comments
 (0)