mirror of
https://github.com/jfdelnero/HxCFloppyEmulator.git
synced 2026-10-27 06:20:50 +00:00
Code clean up.
git-svn-id: svn://svn.code.sf.net/p/hxcfloppyemu/code/HxCFloppyEmulator/HxCFloppyEmulator_software/trunk@386 63fa2f70-6a9b-4bc4-b855-9c6a949b1d69
This commit is contained in:
1 parent
949348fd6c
commit
ea755ad298
21 files changed
+483
-709
No files matched your search
@@ -325,7 +325,7 @@ SOURCE=..\sources\gui\main_gui.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\sources\msg_txt.h
|
||||
SOURCE=..\sources\gui\msg_txt.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
|
||||
@@ -24,17 +24,6 @@
|
||||
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
//
|
||||
*/
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/filename.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
#include <FL/Fl_Timer.H>
|
||||
|
||||
|
||||
#include <errno.h>
|
||||
#include <malloc.h>
|
||||
@@ -51,49 +40,41 @@ extern "C"
|
||||
#include "version.h"
|
||||
}
|
||||
|
||||
#include "fl_includes.h"
|
||||
|
||||
#include "about_gui.h"
|
||||
#include "license_gui.h"
|
||||
|
||||
void open_license_window(Fl_Widget *, void *)
|
||||
|
||||
static void tick(void *v)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//#define BUTTON_XPOS 5
|
||||
//#define BUTTON_YPOS 50
|
||||
//#define BUTTON_XSIZE 120
|
||||
//#define BUTTON_YSIZE 25
|
||||
|
||||
|
||||
|
||||
static void tick(void *v) {
|
||||
About_box *window;
|
||||
unsigned char * ptr1;
|
||||
int i,j,k;
|
||||
|
||||
window=(About_box *)v;
|
||||
|
||||
if(window->shown())
|
||||
{
|
||||
window->make_current();
|
||||
uintro_getnextframe(window->ui_context);
|
||||
|
||||
ptr1=(unsigned char*)window->ui_context->framebuffer;
|
||||
k=0;
|
||||
j=0;
|
||||
for(i=0;i<window->xsize*window->ysize;i++)
|
||||
{
|
||||
ptr1[j++]=ptr1[k+2];
|
||||
ptr1[j++]=ptr1[k+1];
|
||||
ptr1[j++]=ptr1[k+0];
|
||||
k=k+4;
|
||||
}
|
||||
|
||||
fl_draw_image((unsigned char *)window->ui_context->framebuffer, window->xpos_size, window->ypos_size, window->xsize, window->ysize, 3, 0);
|
||||
}
|
||||
|
||||
Fl::repeat_timeout(0.02, tick, v);
|
||||
|
||||
About_box *window;
|
||||
unsigned char * ptr1;
|
||||
int i,j,k;
|
||||
|
||||
window=(About_box *)v;
|
||||
|
||||
if(window->shown())
|
||||
{
|
||||
window->make_current();
|
||||
uintro_getnextframe(window->ui_context);
|
||||
|
||||
ptr1=(unsigned char*)window->ui_context->framebuffer;
|
||||
k=0;
|
||||
j=0;
|
||||
for(i=0;i<window->xsize*window->ysize;i++)
|
||||
{
|
||||
ptr1[j++]=ptr1[k+2];
|
||||
ptr1[j++]=ptr1[k+1];
|
||||
ptr1[j++]=ptr1[k+0];
|
||||
k=k+4;
|
||||
}
|
||||
|
||||
fl_draw_image((unsigned char *)window->ui_context->framebuffer, window->xpos_size, window->ypos_size, window->xsize, window->ysize, 3, 0);
|
||||
}
|
||||
|
||||
Fl::repeat_timeout(0.02, tick, v);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -171,14 +152,6 @@ About_box::About_box()
|
||||
|
||||
tick(this);
|
||||
|
||||
return ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: hello.cxx 6102 2008-04-21 19:54:34Z matt $".
|
||||
//
|
||||
return ;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <FL/Fl_Input.H>
|
||||
#include <FL/Fl_Output.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
|
||||
extern void batch_converter_window_bt_select_src(Fl_Button*, void*);
|
||||
extern void batch_converter_window_bt_select_dst(Fl_Button*, void*);
|
||||
extern void batch_converter_window_bt_convert(Fl_Button*, void*);
|
||||
|
||||
@@ -50,10 +50,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <direct.h>
|
||||
|
||||
#include <FL/Fl_File_Browser.H>
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
#include <FL/Fl_Native_File_Chooser.H>
|
||||
|
||||
#include "fl_includes.h"
|
||||
#include "fl_dnd_box.h"
|
||||
|
||||
extern "C"
|
||||
@@ -63,15 +60,15 @@ extern "C"
|
||||
#include "os_api.h"
|
||||
}
|
||||
|
||||
#include "main.h"
|
||||
#include "batch_converter_window.h"
|
||||
#include "cb_batch_converter_window.h"
|
||||
|
||||
|
||||
#include "loader.h"
|
||||
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
batchconverterparams bcparams;
|
||||
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
typedef struct s_param_bc_params_
|
||||
{
|
||||
const char * files;
|
||||
@@ -376,7 +373,7 @@ int convertthread(void* floppycontext,void* hw_context)
|
||||
if(strlen(bcparams.sourcedir) && strlen(bcparams.destdir))
|
||||
{
|
||||
|
||||
browse_and_convert_directory( flopemu,
|
||||
browse_and_convert_directory( guicontext->hxcfe,
|
||||
bcparams.sourcedir,
|
||||
bcparams.destdir,
|
||||
"*.*",
|
||||
@@ -455,7 +452,7 @@ int draganddropconvertthread(void* floppycontext,void* hw_context)
|
||||
if(filecount)
|
||||
{
|
||||
|
||||
draganddropconvert( flopemu,
|
||||
draganddropconvert( guicontext->hxcfe,
|
||||
filelist,
|
||||
bcparams.destdir,
|
||||
bcw->choice_file_format->value(),
|
||||
@@ -521,7 +518,7 @@ void batch_converter_window_bt_convert(Fl_Button* bt, void*)
|
||||
dw=((Fl_Window*)(bt->parent()));
|
||||
bcw=(batch_converter_window *)dw->user_data();
|
||||
bcw->bt_convert->deactivate();
|
||||
hxc_createthread(flopemu,bcw,&convertthread,1);
|
||||
hxc_createthread(guicontext->hxcfe,bcw,&convertthread,1);
|
||||
}
|
||||
|
||||
void batch_converter_window_bt_select_src(Fl_Button* bt, void*)
|
||||
@@ -597,7 +594,7 @@ void dnd_bc_cb(Fl_Widget *o, void *v)
|
||||
bcparams->files=dnd->event_text();
|
||||
|
||||
|
||||
hxc_createthread(flopemu,bcparams,&draganddropconvertthread,1);
|
||||
hxc_createthread(guicontext->hxcfe,bcparams,&draganddropconvertthread,1);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -50,22 +50,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <direct.h>
|
||||
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/filename.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
#include <FL/Fl_File_Browser.H>
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
#include <FL/Fl_Native_File_Chooser.H>
|
||||
#include <FL/Fl_Timer.H>
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
#include "fl_includes.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
@@ -75,11 +60,10 @@ extern "C"
|
||||
#include "thirdpartylibs/fdrawcmd/fdrawcmd.h"
|
||||
}
|
||||
|
||||
|
||||
#include "loader.h"
|
||||
#include "main.h"
|
||||
|
||||
unsigned char * mapfloppybuffer;
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
typedef struct floppydumperparams_
|
||||
{
|
||||
@@ -133,7 +117,7 @@ void tick_dump(void *w) {
|
||||
if(window->window->shown())
|
||||
{
|
||||
window->window->make_current();
|
||||
fl_draw_image((unsigned char *)mapfloppybuffer, 8, 210, 460, 200, 3, 0);
|
||||
fl_draw_image(guicontext->mapfloppybuffer, 8, 210, 460, 200, 3, 0);
|
||||
}
|
||||
|
||||
Fl::repeat_timeout(0.02, tick_dump, w);
|
||||
@@ -330,11 +314,11 @@ int DumpThreadProc(void* floppycontext,void* hw_context)//( LPVOID lpParameter)
|
||||
l=xsize;
|
||||
while(l)
|
||||
{
|
||||
mapfloppybuffer[o++]=0x55;
|
||||
mapfloppybuffer[o++]=0x55;
|
||||
mapfloppybuffer[o]=0x55;
|
||||
guicontext->mapfloppybuffer[o++]=0x55;
|
||||
guicontext->mapfloppybuffer[o++]=0x55;
|
||||
guicontext->mapfloppybuffer[o]=0x55;
|
||||
if(i&1)
|
||||
mapfloppybuffer[o]=0xA5;
|
||||
guicontext->mapfloppybuffer[o]=0xA5;
|
||||
o++;
|
||||
|
||||
//o++;
|
||||
@@ -439,9 +423,9 @@ int DumpThreadProc(void* floppycontext,void* hw_context)//( LPVOID lpParameter)
|
||||
l=4<<(sr->Header[k].size);
|
||||
while(l)
|
||||
{
|
||||
mapfloppybuffer[o++]=0xFF;
|
||||
mapfloppybuffer[o++]=0xFF;
|
||||
mapfloppybuffer[o++]=0xFF;
|
||||
guicontext->mapfloppybuffer[o++]=0xFF;
|
||||
guicontext->mapfloppybuffer[o++]=0xFF;
|
||||
guicontext->mapfloppybuffer[o++]=0xFF;
|
||||
//o++;
|
||||
l--;
|
||||
}
|
||||
@@ -504,9 +488,9 @@ int DumpThreadProc(void* floppycontext,void* hw_context)//( LPVOID lpParameter)
|
||||
l=4<<(sr->Header[k].size);
|
||||
while(l)
|
||||
{
|
||||
mapfloppybuffer[o++]=0xFF;
|
||||
mapfloppybuffer[o++]=0xFF;
|
||||
mapfloppybuffer[o++]=0x00;
|
||||
guicontext->mapfloppybuffer[o++]=0xFF;
|
||||
guicontext->mapfloppybuffer[o++]=0xFF;
|
||||
guicontext->mapfloppybuffer[o++]=0x00;
|
||||
//o++;
|
||||
l--;
|
||||
}
|
||||
@@ -536,9 +520,9 @@ int DumpThreadProc(void* floppycontext,void* hw_context)//( LPVOID lpParameter)
|
||||
l=4<<(sr->Header[k].size);
|
||||
while(l)
|
||||
{
|
||||
mapfloppybuffer[o++]=0xFF;
|
||||
mapfloppybuffer[o++]=0x00;
|
||||
mapfloppybuffer[o++]=0x00;
|
||||
guicontext->mapfloppybuffer[o++]=0xFF;
|
||||
guicontext->mapfloppybuffer[o++]=0x00;
|
||||
guicontext->mapfloppybuffer[o++]=0x00;
|
||||
//o++;
|
||||
l--;
|
||||
}
|
||||
@@ -554,9 +538,9 @@ int DumpThreadProc(void* floppycontext,void* hw_context)//( LPVOID lpParameter)
|
||||
l=4<<(sr->Header[k].size);
|
||||
while(l)
|
||||
{
|
||||
mapfloppybuffer[o++]=0x00;
|
||||
mapfloppybuffer[o++]=0xFF;
|
||||
mapfloppybuffer[o++]=0x00;
|
||||
guicontext->mapfloppybuffer[o++]=0x00;
|
||||
guicontext->mapfloppybuffer[o++]=0xFF;
|
||||
guicontext->mapfloppybuffer[o++]=0x00;
|
||||
//o++;
|
||||
l--;
|
||||
}
|
||||
@@ -645,13 +629,13 @@ void floppy_dump_window_bt_read(Fl_Button* bt, void*)
|
||||
fdp.retry=(int)fdw->number_of_retry->value();
|
||||
fdp.number_of_track=(int)fdw->number_of_track->value();
|
||||
|
||||
fdp.flopemu=flopemu;
|
||||
fdp.flopemu=guicontext->hxcfe;
|
||||
|
||||
sprintf(tempstr,"%d Sector(s) Read, %d bytes, %d Bad sector(s)",0,0,0);
|
||||
fdw->current_status->value(tempstr);
|
||||
|
||||
//fdw->deactivate();
|
||||
hxc_createthread(flopemu,&fdp,&DumpThreadProc,1);
|
||||
hxc_createthread(guicontext->hxcfe,&fdp,&DumpThreadProc,1);
|
||||
}
|
||||
|
||||
void floppy_dump_ok(Fl_Button*, void* w)
|
||||
|
||||
@@ -50,21 +50,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <direct.h>
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/filename.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
#include <FL/Fl_File_Browser.H>
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
#include <FL/Fl_Native_File_Chooser.H>
|
||||
#include <FL/Fl_Timer.H>
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
#include "fl_includes.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
@@ -75,13 +61,11 @@ extern "C"
|
||||
#include "thirdpartylibs/fdrawcmd/fdrawcmd.h"
|
||||
}
|
||||
|
||||
|
||||
#include "main.h"
|
||||
#include "loader.h"
|
||||
#include "fl_mouse_box.h"
|
||||
|
||||
unsigned char * floppyinfobuffer;
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
extern FLOPPY * thefloppydisk;
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
void update_graph(floppy_infos_window * w)
|
||||
{
|
||||
@@ -98,29 +82,29 @@ void update_graph(floppy_infos_window * w)
|
||||
{
|
||||
w->window->make_current();
|
||||
|
||||
td=hxcfe_td_init(flopemu,disp_xsize,disp_ysize,(int)(w->x_time->value()*1000),(int)w->y_time->value(),(int)(w->x_offset->value()*1000));
|
||||
td=hxcfe_td_init(guicontext->hxcfe,disp_xsize,disp_ysize,(int)(w->x_time->value()*1000),(int)w->y_time->value(),(int)(w->x_offset->value()*1000));
|
||||
if(td)
|
||||
{
|
||||
if(thefloppydisk)
|
||||
if(guicontext->loadedfloppy)
|
||||
{
|
||||
if(w->track_number_slide->value()>=thefloppydisk->floppyNumberOfTrack)
|
||||
w->track_number_slide->value(thefloppydisk->floppyNumberOfTrack-1);
|
||||
if(w->track_number_slide->value()>=guicontext->loadedfloppy->floppyNumberOfTrack)
|
||||
w->track_number_slide->value(guicontext->loadedfloppy->floppyNumberOfTrack-1);
|
||||
|
||||
if(w->side_number_slide->value()>=thefloppydisk->floppyNumberOfSide)
|
||||
w->side_number_slide->value(thefloppydisk->floppyNumberOfSide-1);
|
||||
if(w->side_number_slide->value()>=guicontext->loadedfloppy->floppyNumberOfSide)
|
||||
w->side_number_slide->value(guicontext->loadedfloppy->floppyNumberOfSide-1);
|
||||
|
||||
w->track_number_slide->scrollvalue((int)w->track_number_slide->value(),1,0,thefloppydisk->floppyNumberOfTrack);
|
||||
w->side_number_slide->scrollvalue((int)w->side_number_slide->value(),1,0,thefloppydisk->floppyNumberOfSide);
|
||||
w->track_number_slide->scrollvalue((int)w->track_number_slide->value(),1,0,guicontext->loadedfloppy->floppyNumberOfTrack);
|
||||
w->side_number_slide->scrollvalue((int)w->side_number_slide->value(),1,0,guicontext->loadedfloppy->floppyNumberOfSide);
|
||||
|
||||
if(w->track_view_bt->value())
|
||||
{
|
||||
hxcfe_td_draw_track(flopemu,td,thefloppydisk,(int)w->track_number_slide->value(),(int)w->side_number_slide->value());
|
||||
hxcfe_td_draw_track(guicontext->hxcfe,td,guicontext->loadedfloppy,(int)w->track_number_slide->value(),(int)w->side_number_slide->value());
|
||||
}
|
||||
else
|
||||
{
|
||||
if(w->disc_view_bt->value())
|
||||
{
|
||||
hxcfe_td_draw_disk(flopemu,td,thefloppydisk);
|
||||
hxcfe_td_draw_disk(guicontext->hxcfe,td,guicontext->loadedfloppy);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,7 +120,7 @@ void update_graph(floppy_infos_window * w)
|
||||
}
|
||||
|
||||
fl_draw_image((unsigned char *)td->framebuffer, w->floppy_map_disp->x(), w->floppy_map_disp->y(), td->xsize, td->ysize, 3, 0);
|
||||
hxcfe_td_deinit(flopemu,td);
|
||||
hxcfe_td_deinit(guicontext->hxcfe,td);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,8 +56,9 @@ extern "C"
|
||||
}
|
||||
|
||||
#include "loader.h"
|
||||
#include "main.h"
|
||||
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
#define TWOSIDESFLOPPY 0x02
|
||||
#define SIDE_INVERTED 0x04
|
||||
@@ -212,7 +213,7 @@ void raw_loader_window_bt_loadrawfile(Fl_Button* bt, void*)
|
||||
|
||||
if(!fileselector("Select raw file",(char*)file,0,"*.img",0,0))
|
||||
{
|
||||
loadrawfile(flopemu,&rfc,file);
|
||||
loadrawfile(guicontext->hxcfe,&rfc,file);
|
||||
dw->hide();
|
||||
}
|
||||
}
|
||||
@@ -241,7 +242,7 @@ void raw_loader_window_bt_createemptyfloppy(Fl_Button* bt, void*)
|
||||
|
||||
getWindowState(rlw,&rfc);
|
||||
|
||||
loadrawfile(flopemu,&rfc,NULL);
|
||||
loadrawfile(guicontext->hxcfe,&rfc,NULL);
|
||||
|
||||
dw->hide();
|
||||
}
|
||||
|
||||
@@ -59,8 +59,6 @@ extern "C"
|
||||
|
||||
#include "loader.h"
|
||||
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
|
||||
unsigned char filebuffer[8*1024];
|
||||
|
||||
|
||||
|
||||
@@ -56,30 +56,10 @@ extern "C"
|
||||
#include "libhxcfe.h"
|
||||
#include "usb_hxcfloppyemulator.h"
|
||||
}
|
||||
|
||||
#include "main.h"
|
||||
#include "loader.h"
|
||||
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
extern USBHXCFE * usbhxcfe;
|
||||
|
||||
|
||||
/*platform platformlist[]=
|
||||
{
|
||||
{ AMIGA_DD_FLOPPYMODE,"Amiga","DS0","DS1","DS2","MTRON"},
|
||||
{ AMIGA_HD_FLOPPYMODE,"Amiga HD","DS0","DS1","DS2","MTRON"},
|
||||
{ ATARIST_DD_FLOPPYMODE,"Atari ST","D0SEL","D1SEL","-","MTRON"},
|
||||
{ ATARIST_HD_FLOPPYMODE,"Atari ST HD","D0SEL","D1SEL","-","MTRON"},
|
||||
{ IBMPC_DD_FLOPPYMODE,"IBM PC 720kB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ IBMPC_HD_FLOPPYMODE,"IBM PC 1.44MB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ IBMPC_ED_FLOPPYMODE,"IBM PC 2.88MB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ CPC_DD_FLOPPYMODE,"Amstrad CPC","Drive Select 0","Drive Select 1","-","MOTOR ON"},
|
||||
{ MSX2_DD_FLOPPYMODE,"MSX 2","DS0","DS1","DS2","MTRON"},
|
||||
{ GENERIC_SHUGART_DD_FLOPPYMODE,"Generic Shugart","DS0","DS1","DS2","MTRON"},
|
||||
{ EMU_SHUGART_FLOPPYMODE,"Emu Shugart","DS0","DS1","DS2","MTRON"},
|
||||
{ C64_DD_FLOPPYMODE,"C64 1541","NA","NA","NA","NA"},
|
||||
{ -1,"?","DS0","DS1","DS2","MTRON"}
|
||||
};*/
|
||||
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
void tick_usb(void *v) {
|
||||
char tempstr[512];
|
||||
@@ -93,7 +73,7 @@ void tick_usb(void *v) {
|
||||
|
||||
window=(usbhxcfecfg_window *)v;
|
||||
|
||||
status=libusbhxcfe_getStats(flopemu,usbhxcfe,&stats,0);
|
||||
status=libusbhxcfe_getStats(guicontext->hxcfe,guicontext->usbhxcfe,&stats,0);
|
||||
|
||||
sprintf(tempstr,"%d (%d p/s)",stats.totalpacketsent,stats.packetsent);
|
||||
stats.packetsent=0;
|
||||
@@ -164,7 +144,7 @@ void tick_usb(void *v) {
|
||||
}
|
||||
|
||||
|
||||
switch( libusbhxcfe_getDrive(flopemu,usbhxcfe) & 0x3 )
|
||||
switch( libusbhxcfe_getDrive(guicontext->hxcfe,guicontext->usbhxcfe) & 0x3 )
|
||||
{
|
||||
case 0:
|
||||
window->rbt_ds0->set();
|
||||
@@ -194,7 +174,7 @@ void tick_usb(void *v) {
|
||||
break;
|
||||
}
|
||||
|
||||
if( libusbhxcfe_getDrive(flopemu,usbhxcfe) >3)
|
||||
if( libusbhxcfe_getDrive(guicontext->hxcfe,guicontext->usbhxcfe) >3)
|
||||
{
|
||||
window->chk_disabledrive->set();
|
||||
}
|
||||
@@ -203,7 +183,7 @@ void tick_usb(void *v) {
|
||||
window->chk_disabledrive->clear();
|
||||
}
|
||||
|
||||
if(libusbhxcfe_getDoubleStep(flopemu,usbhxcfe))
|
||||
if(libusbhxcfe_getDoubleStep(guicontext->hxcfe,guicontext->usbhxcfe))
|
||||
{
|
||||
window->chk_doublestep->set();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/filename.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
#include <FL/Fl_Tiled_Image.H>
|
||||
#include <FL/Fl_File_Browser.H>
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
#include <FL/Fl_Native_File_Chooser.H>
|
||||
|
||||
#include <FL/Fl_File_Icon.H>
|
||||
#include <FL/Fl_Shared_Image.H>
|
||||
#include <FL/Fl_PNM_Image.H>
|
||||
#include <FL/Fl_Light_Button.H>
|
||||
#include <FL/Fl_BMP_Image.H>
|
||||
|
||||
#include <FL/fl_ask.H>
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
|
||||
typedef struct _guicontext
|
||||
{
|
||||
char bufferfilename[4096];
|
||||
char buffertext[4096];
|
||||
|
||||
char * logfile;
|
||||
|
||||
int loadstatus;
|
||||
|
||||
unsigned char autoselectmode;
|
||||
unsigned char twistedcable;
|
||||
}guicontext;
|
||||
|
||||
|
||||
typedef struct track_type_
|
||||
{
|
||||
int id;
|
||||
char * name;
|
||||
int tracktype;
|
||||
}track_type;
|
||||
|
||||
enum
|
||||
{
|
||||
FM_TRACK_TYPE,
|
||||
FMIBM_TRACK_TYPE,
|
||||
MFM_TRACK_TYPE,
|
||||
MFMIBM_TRACK_TYPE,
|
||||
GCR_TRACK_TYPE
|
||||
};
|
||||
@@ -43,20 +43,6 @@
|
||||
// Change History (most recent first):
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/filename.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
#include <FL/Fl_Timer.H>
|
||||
#include <FL/Fl_Text_Buffer.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
|
||||
|
||||
#include <errno.h>
|
||||
#include <malloc.h>
|
||||
#include <stdio.h>
|
||||
@@ -65,6 +51,7 @@
|
||||
#include <stdarg.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "fl_includes.h"
|
||||
#include "licensetxt.h"
|
||||
|
||||
extern "C"
|
||||
@@ -77,12 +64,9 @@ extern "C"
|
||||
|
||||
void close_license(Fl_Widget *w, void * t)
|
||||
{
|
||||
|
||||
delete(w->window());
|
||||
}
|
||||
|
||||
|
||||
|
||||
void License_box::hide()
|
||||
{
|
||||
delete(this);
|
||||
@@ -92,7 +76,6 @@ License_box::~License_box()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
License_box::License_box()
|
||||
: Fl_Window(600,400)
|
||||
{
|
||||
@@ -111,13 +94,10 @@ License_box::License_box()
|
||||
button_ok=new Fl_Button(xsize-100, ysize-35, 80, 30, "OK" ); // Fl_Button* o
|
||||
button_ok->callback(close_license,0);
|
||||
|
||||
|
||||
this->end();
|
||||
this->label(NOMFENETRE);
|
||||
this->show();
|
||||
|
||||
|
||||
return ;
|
||||
|
||||
}
|
||||
|
||||
@@ -66,7 +66,6 @@
|
||||
#include <stdarg.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "mainrouts.h"
|
||||
#include "log_gui.h"
|
||||
|
||||
extern "C"
|
||||
@@ -75,6 +74,9 @@ extern "C"
|
||||
#include "usb_hxcfloppyemulator.h"
|
||||
}
|
||||
|
||||
#include "main.h"
|
||||
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
#define LOGFIFOSIZE 256
|
||||
#define LOGSTRINGSIZE 1024
|
||||
@@ -87,7 +89,6 @@ typedef struct logfifo_
|
||||
|
||||
logfifo logsfifo;
|
||||
char * logs_buffer;
|
||||
extern guicontext * gui_context;
|
||||
|
||||
|
||||
int CUI_affiche(int MSGTYPE,char * chaine, ...)
|
||||
@@ -174,9 +175,9 @@ int CUI_affiche(int MSGTYPE,char * chaine, ...)
|
||||
}
|
||||
|
||||
|
||||
if(gui_context->logfile)
|
||||
if(guicontext->logfile)
|
||||
{
|
||||
debugfile=fopen(gui_context->logfile,"a");
|
||||
debugfile=fopen(guicontext->logfile,"a");
|
||||
if(debugfile)
|
||||
{
|
||||
switch(MSGTYPE)
|
||||
@@ -229,15 +230,15 @@ void savelog_log(Fl_Widget *w, void * t)
|
||||
}
|
||||
default:
|
||||
{
|
||||
if(gui_context->logfile)
|
||||
if(guicontext->logfile)
|
||||
{
|
||||
logfile=gui_context->logfile;
|
||||
gui_context->logfile=0;
|
||||
logfile=guicontext->logfile;
|
||||
guicontext->logfile=0;
|
||||
free(logfile);
|
||||
}
|
||||
logfile=(char*)malloc(1024);
|
||||
sprintf(logfile,"%s",(char*)fnfc.filename());
|
||||
gui_context->logfile=logfile;
|
||||
guicontext->logfile=logfile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -304,7 +305,7 @@ Log_box::Log_box()
|
||||
button_savelog=new Fl_Button(10+80, ysize-35, 80, 30, "Set log file" );
|
||||
button_savelog->callback(savelog_log,0);
|
||||
|
||||
gui_context->logfile=0;
|
||||
guicontext->logfile=0;
|
||||
|
||||
memset(&logsfifo,0,sizeof(logfifo));
|
||||
old_index=0;
|
||||
|
||||
@@ -43,26 +43,7 @@
|
||||
// Change History (most recent first):
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/filename.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
#include <FL/Fl_Tiled_Image.H>
|
||||
#include <FL/Fl_File_Browser.H>
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
#include <FL/Fl_Native_File_Chooser.H>
|
||||
|
||||
#include <FL/Fl_File_Icon.H>
|
||||
#include <FL/Fl_Shared_Image.H>
|
||||
#include <FL/Fl_PNM_Image.H>
|
||||
#include <FL/Fl_Light_Button.H>
|
||||
#include <FL/Fl_BMP_Image.H>
|
||||
|
||||
#include <FL/fl_ask.H>
|
||||
#include "fl_includes.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <malloc.h>
|
||||
@@ -72,8 +53,6 @@
|
||||
#include <stdarg.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "msg_txt.h"
|
||||
|
||||
#include "batch_converter_window.h"
|
||||
#include "filesystem_generator_window.h"
|
||||
#include "floppy_dump_window.h"
|
||||
@@ -85,10 +64,7 @@
|
||||
#include "about_gui.h"
|
||||
|
||||
#include "soft_cfg_file.h"
|
||||
|
||||
#include "fl_dnd_box.h"
|
||||
#include "fl_mouse_box.h"
|
||||
|
||||
#include "win32\resource.h"
|
||||
|
||||
extern "C"
|
||||
@@ -99,66 +75,23 @@ extern "C"
|
||||
}
|
||||
|
||||
#include "loader.h"
|
||||
|
||||
|
||||
#include "main_gui.h"
|
||||
#include "mainrouts.h"
|
||||
#include "main.h"
|
||||
|
||||
#include "cb_floppy_dump_window.h"
|
||||
#include "cb_floppy_infos_window.h"
|
||||
|
||||
Fl_File_Browser *files;
|
||||
Fl_Shared_Image *image = 0;
|
||||
|
||||
// Widget that displays the image
|
||||
Fl_Box *box = (Fl_Box*)0;
|
||||
|
||||
extern FLOPPY * thefloppydisk;
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
extern guicontext * gui_context;
|
||||
extern USBHXCFE * usbhxcfe;
|
||||
int backlight_tmr,standby_tmr,step_sound,ui_sound,lcd_scroll;
|
||||
unsigned int txtindex;
|
||||
|
||||
extern int xsize,ysize;
|
||||
extern unsigned char*mapfloppybuffer;
|
||||
extern unsigned char*floppyinfobuffer;
|
||||
|
||||
typedef struct main_button_list_
|
||||
{
|
||||
Fl_Button * button;
|
||||
char * label;
|
||||
char * desc;
|
||||
}main_button_list;
|
||||
|
||||
|
||||
main_button_list txt_buttons_main[]=
|
||||
{
|
||||
{0,"Load","Load a floppy file image"},
|
||||
{0,"Load Raw image","Load a custom raw floppy image /\ncreate a custom floppy"},
|
||||
{0,"Batch converter","Convert multiple floppy file image."},
|
||||
{0,"Create FS Floppy","Create a DOS/AmigaDOS\nfile system based floppy disk."},
|
||||
{0,"Export","Export/save the loaded file image"},
|
||||
{0,"SD HxC Floppy\nEmulator settings","Configure the SDCard HxC Floppy Emulator"},
|
||||
{0,"USB HxC Floppy\nEmulator settings","Configure the USB HxC Floppy Emulator"},
|
||||
{0,"Floppy disk dump","Read a real disk"}
|
||||
};
|
||||
|
||||
|
||||
|
||||
void beepcb(Fl_Widget *, void *) {
|
||||
printf("\007"); fflush(stdout);
|
||||
}
|
||||
#include "msg_txt.h"
|
||||
|
||||
extern int CUI_affiche(int MSGTYPE,char * chaine, ...);
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
static void tick_main(void *v) {
|
||||
|
||||
Main_Window *window;
|
||||
|
||||
window=(Main_Window *)v;
|
||||
|
||||
window=(Main_Window *)v;
|
||||
window->make_current();
|
||||
|
||||
Fl::repeat_timeout(0.10, tick_main, v);
|
||||
}
|
||||
|
||||
@@ -248,7 +181,6 @@ void bt_clicked(Fl_Widget * w, void * fc_ptr)
|
||||
}
|
||||
|
||||
|
||||
|
||||
void load_file_image(Fl_Widget * w, void * fc_ptr)
|
||||
{
|
||||
Fl_Native_File_Chooser fnfc;
|
||||
@@ -261,24 +193,20 @@ void load_file_image(Fl_Widget * w, void * fc_ptr)
|
||||
switch ( fnfc.show() ) {
|
||||
case -1:
|
||||
{
|
||||
//printf("ERROR: %s\n", fnfc.errmsg());
|
||||
break; // ERROR
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
//printf("CANCEL\n");
|
||||
break; // CANCEL
|
||||
}
|
||||
default:
|
||||
{
|
||||
//printf("PICKED: %s\n", fnfc.filename());
|
||||
load_floppy_image((char*)fnfc.filename());
|
||||
break; // FILE CHOSEN
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void save_file_image(Fl_Widget * w, void * fc_ptr)
|
||||
{
|
||||
int i;
|
||||
@@ -297,14 +225,14 @@ void save_file_image(Fl_Widget * w, void * fc_ptr)
|
||||
{PLUGIN_HXC_EXTHFE}
|
||||
};
|
||||
|
||||
if(!thefloppydisk)
|
||||
if(!guicontext->loadedfloppy)
|
||||
{
|
||||
fl_alert("No floppy loaded !\nPlease drag and drop your disk file into the window\n",10.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
sprintf((char*)deffilename,"%s",gui_context->bufferfilename);
|
||||
sprintf((char*)deffilename,"%s",guicontext->bufferfilename);
|
||||
i=0;
|
||||
while(deffilename[i]!=0)
|
||||
{
|
||||
@@ -337,17 +265,14 @@ void save_file_image(Fl_Widget * w, void * fc_ptr)
|
||||
{
|
||||
i=fnfc.filter_value();
|
||||
|
||||
loaderid=hxcfe_getLoaderID(flopemu,(char*)plugid_lst[i]);
|
||||
loaderid=hxcfe_getLoaderID(guicontext->hxcfe,(char*)plugid_lst[i]);
|
||||
|
||||
if(loaderid>=0)
|
||||
{
|
||||
// hxcfe_floppyGetSetParams(flopemu,thefloppydisk,SET,DOUBLESTEP,&hwif->double_step);
|
||||
// hxcfe_floppyGetSetParams(flopemu,thefloppydisk,SET,INTERFACEMODE,&hwif->interface_mode);
|
||||
hxcfe_floppyExport(flopemu,thefloppydisk,(char*)fnfc.filename(),loaderid);
|
||||
// hxcfe_floppyGetSetParams(guicontext->hxcfe,thefloppydisk,SET,DOUBLESTEP,&hwif->double_step);
|
||||
// hxcfe_floppyGetSetParams(guicontext->hxcfe,thefloppydisk,SET,INTERFACEMODE,&hwif->interface_mode);
|
||||
hxcfe_floppyExport(guicontext->hxcfe,guicontext->loadedfloppy,(char*)fnfc.filename(),loaderid);
|
||||
}
|
||||
|
||||
//printf("PICKED: %s\n", fnfc.filename());
|
||||
//loadfloppy((char*)fnfc.filename());
|
||||
break; // FILE CHOSEN
|
||||
}
|
||||
}
|
||||
@@ -360,28 +285,12 @@ void load_file_image_pb(Fl_Widget * widget, void * ptr)
|
||||
load_file_image(widget,ptr);
|
||||
}
|
||||
|
||||
|
||||
void export_file_image_pb(Fl_Widget * widget, void * ptr)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void fc_callback(Fl_File_Chooser * fc, void *)
|
||||
{
|
||||
const char * fp;
|
||||
fp=fc->value();
|
||||
}
|
||||
|
||||
void save_fc_callback(Fl_File_Chooser * fc, void *)
|
||||
{
|
||||
const char * fp;
|
||||
|
||||
fp=fc->value();
|
||||
//loadfloppy((char*)fp,0);
|
||||
}
|
||||
|
||||
|
||||
#define BUTTON_XPOS 5
|
||||
#define BUTTON_YPOS 30
|
||||
@@ -391,204 +300,11 @@ void save_fc_callback(Fl_File_Chooser * fc, void *)
|
||||
|
||||
#define WINDOW_XSIZE 341
|
||||
|
||||
Fl_Menu_Item menutable[] = {
|
||||
{"&Floppy image",0,0,0,FL_SUBMENU},
|
||||
{"&Load", FL_ALT+'l',load_file_image_pb,0},
|
||||
{"Load custom RAW file/Create custom floppy", FL_ALT+'r',menu_clicked,(void*)1},
|
||||
{"&Create DOS/AmigaDOS disk", FL_ALT+'c', menu_clicked,(void*)3},
|
||||
{"&Export disk/Save As", FL_ALT+'e', save_file_image, 0},
|
||||
{"Batch convert files images", FL_ALT+'o', menu_clicked,(void*)2},
|
||||
{"Dump a Floppy disk", FL_ALT+'o', menu_clicked,(void*)7},
|
||||
{"Show floppy infos", FL_ALT+'i', menu_clicked,(void*)10},
|
||||
|
||||
{0},
|
||||
{"&Settings",FL_F+2,0,0,FL_SUBMENU},
|
||||
{"SDCard HxC FLoppy Emulator settings", FL_ALT+'l',menu_clicked,(void*)5},
|
||||
{"USB HxC Floppy Emulator settings", FL_ALT+'s',menu_clicked,(void*)6},
|
||||
{0},
|
||||
{"&Log",FL_F+3,0,0,FL_SUBMENU},
|
||||
{"&Log", FL_ALT+'l',menu_clicked,(void*)8},
|
||||
{0},
|
||||
{"&About",0,0,0,FL_SUBMENU},
|
||||
{"&HxCFloppyEmulator", FL_ALT+'h',menu_clicked,(void*)9},
|
||||
{0},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
void format_choice_cb(Fl_Widget *, void *v) {
|
||||
//cursor = (Fl_Cursor)(long)v;
|
||||
//cursor_slider->value(cursor);
|
||||
//fl_cursor(cursor,fg,bg);
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
FS_720KB_ATARI_FAT12=0,
|
||||
FS_902KB_ATARI_FAT12,
|
||||
FS_360KB_ATARI_FAT12,
|
||||
FS_880KB_AMIGADOS,
|
||||
|
||||
FS_5P25_300RPM_160KB_MSDOS_FAT12,
|
||||
FS_5P25_360RPM_160KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_300RPM_180KB_MSDOS_FAT12,
|
||||
FS_5P25_360RPM_180KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_SS_300RPM_320KB_MSDOS_FAT12,
|
||||
FS_5P25_SS_360RPM_320KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_DS_300RPM_320KB_MSDOS_FAT12,
|
||||
FS_5P25_DS_360RPM_320KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_DS_300RPM_360KB_MSDOS_FAT12,
|
||||
FS_5P25_DS_360RPM_360KB_MSDOS_FAT12,
|
||||
|
||||
FS_3P5_DS_300RPM_640KB_MSDOS_FAT12,
|
||||
|
||||
FS_720KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_300RPM_1200KB_MSDOS_FAT12,
|
||||
|
||||
FS_1_44MB_MSDOS_FAT12,
|
||||
FS_1_68MB_MSDOS_FAT12,
|
||||
FS_2_88MB_MSDOS_FAT12,
|
||||
FS_3_38MB_MSDOS_FAT12,
|
||||
FS_4_23MB_ATARI_FAT12,
|
||||
FS_6_78MB_MSDOS_FAT12,
|
||||
FS_16MB_MSDOS_FAT12
|
||||
};
|
||||
|
||||
|
||||
|
||||
Fl_Menu_Item format_choices[]=
|
||||
{
|
||||
{ "HFE - SDCard HxC Floppy Emulator file format",0,format_choice_cb,(void*)PLUGIN_HXC_HFE},
|
||||
{ "MFM - MFM/FM track file format",0,format_choice_cb,(void*)PLUGIN_HXC_MFM},
|
||||
{ "AFI - Advanced file image format",0,format_choice_cb,(void*)PLUGIN_HXC_AFI},
|
||||
{ "VTR - VTrucco Floppy Emulator file format",0,format_choice_cb,(void*)PLUGIN_VTR_IMG},
|
||||
{ "RAW - RAW sectors file format",0,format_choice_cb,(void*)PLUGIN_RAW_IMG},
|
||||
{ "IMD - IMD sectors file format",0,format_choice_cb,(void*)PLUGIN_IMD_IMG},
|
||||
{ "HFE - Rev 2 - Experimental",0,format_choice_cb,(void*)PLUGIN_HXC_EXTHFE},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
Fl_Menu_Item fs_choices[]=
|
||||
{
|
||||
{ "5\"25 & 8\" 160KB SSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_300RPM_160KB_MSDOS_FAT12},
|
||||
{ "5\"25 & 8\" 160KB SSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_360RPM_160KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 180KB SSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_300RPM_180KB_MSDOS_FAT12},
|
||||
{ "5\"25 180KB SSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_360RPM_180KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 320KB SSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_SS_300RPM_320KB_MSDOS_FAT12},
|
||||
{ "5\"25 320KB SSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_SS_360RPM_320KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 320KB DSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_300RPM_320KB_MSDOS_FAT12},
|
||||
{ "5\"25 320KB DSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_360RPM_320KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 & 8\" 360KB DSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_300RPM_360KB_MSDOS_FAT12},
|
||||
{ "5\"25 & 8\" 360KB DSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_360RPM_360KB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 640KB DSDD FAT12",0,format_choice_cb,(void*)FS_3P5_DS_300RPM_640KB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 720KB DSDD FAT12 ",0,format_choice_cb,(void*)FS_720KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 1.2MB DSHD FAT12",0,format_choice_cb,(void*)FS_5P25_300RPM_1200KB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 1.44MB DSHD FAT12",0,format_choice_cb,(void*)FS_1_44MB_MSDOS_FAT12},
|
||||
{ "3\"5 1.68MB DSHD FAT12",0,format_choice_cb,(void*)FS_1_68MB_MSDOS_FAT12},
|
||||
{ "3\"5 2.88MB DSED FAT12",0,format_choice_cb,(void*)FS_2_88MB_MSDOS_FAT12},
|
||||
{ "3\"5 3.38MB DSHD FAT12",0,format_choice_cb,(void*)FS_3_38MB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 6.78MB DSHD FAT12",0,format_choice_cb,(void*)FS_6_78MB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 360KB SSDD Atari FAT12",0,format_choice_cb,(void*)FS_360KB_ATARI_FAT12},
|
||||
{ "3\"5 720KB DSDD Atari FAT12",0,format_choice_cb,(void*)FS_720KB_ATARI_FAT12},
|
||||
{ "3\"5 902KB DSDD Atari FAT12",0,format_choice_cb,(void*)FS_902KB_ATARI_FAT12},
|
||||
{ "3\"5 4.23MB DSDD Atari FAT12",0,format_choice_cb,(void*)FS_4_23MB_ATARI_FAT12},
|
||||
|
||||
{ "3\"5 880KB DSDD AmigaDOS",0,format_choice_cb,(void*)FS_880KB_AMIGADOS},
|
||||
|
||||
|
||||
{0}
|
||||
};
|
||||
|
||||
Fl_Menu_Item sectorsize_choices[]=
|
||||
{
|
||||
{ "128",0,raw_loader_window_datachanged,(void*)128},
|
||||
{ "256",0,raw_loader_window_datachanged,(void*)256},
|
||||
{ "512",0,raw_loader_window_datachanged,(void*)512},
|
||||
{ "1024",0,raw_loader_window_datachanged,(void*)1024},
|
||||
{ "2048",0,raw_loader_window_datachanged,(void*)2048},
|
||||
{ "4096",0,raw_loader_window_datachanged,(void*)4096},
|
||||
{ "8192",0,raw_loader_window_datachanged,(void*)8192},
|
||||
{ "16384",0,raw_loader_window_datachanged,(void*)16384},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
Fl_Menu_Item if_choices[]=
|
||||
{
|
||||
{ "Amiga",0,format_choice_cb,(void*)AMIGA_DD_FLOPPYMODE},
|
||||
{ "Amiga HD",0,format_choice_cb,(void*)AMIGA_HD_FLOPPYMODE},
|
||||
{ "Atari ST",0,format_choice_cb,(void*)ATARIST_DD_FLOPPYMODE},
|
||||
{ "Atari ST HD",0,format_choice_cb,(void*)ATARIST_HD_FLOPPYMODE},
|
||||
{ "IBM PC 720kB",0,format_choice_cb,(void*)IBMPC_DD_FLOPPYMODE},
|
||||
{ "IBM PC 1.44MB",0,format_choice_cb,(void*)IBMPC_HD_FLOPPYMODE},
|
||||
{ "IBM PC 2.88MB",0,format_choice_cb,(void*)IBMPC_ED_FLOPPYMODE},
|
||||
{ "AKAI S900/S950 DD",0,format_choice_cb,(void*)S950_DD_FLOPPYMODE},
|
||||
{ "AKAI S950 HD",0,format_choice_cb,(void*)S950_HD_FLOPPYMODE},
|
||||
{ "Amstrad CPC",0,format_choice_cb,(void*)CPC_DD_FLOPPYMODE},
|
||||
{ "MSX 2",0,format_choice_cb,(void*)MSX2_DD_FLOPPYMODE},
|
||||
{ "Generic Shugart",0,format_choice_cb,(void*)GENERIC_SHUGART_DD_FLOPPYMODE},
|
||||
{ "Emu Shugart",0,format_choice_cb,(void*)EMU_SHUGART_FLOPPYMODE},
|
||||
{ "C64 1541",0,format_choice_cb,(void*)C64_DD_FLOPPYMODE},
|
||||
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
Fl_Menu_Item track_type_choices[]=
|
||||
{
|
||||
{ "FM",0,raw_loader_window_datachanged,(void*)ISOFORMAT_SD},
|
||||
{ "IBM FM",0,raw_loader_window_datachanged,(void*)IBMFORMAT_SD},
|
||||
{ "MFM",0,raw_loader_window_datachanged,(void*)ISOFORMAT_DD},
|
||||
{ "IBM MFM",0,raw_loader_window_datachanged,(void*)IBMFORMAT_DD},
|
||||
{0}
|
||||
};
|
||||
|
||||
/*
|
||||
platform platformlist[]=
|
||||
{
|
||||
{ AMIGA_DD_FLOPPYMODE,"Amiga","DS0","DS1","DS2","MTRON"},
|
||||
{ AMIGA_HD_FLOPPYMODE,"Amiga HD","DS0","DS1","DS2","MTRON"},
|
||||
{ ATARIST_DD_FLOPPYMODE,"Atari ST","D0SEL","D1SEL","-","MTRON"},
|
||||
{ ATARIST_HD_FLOPPYMODE,"Atari ST HD","D0SEL","D1SEL","-","MTRON"},
|
||||
{ IBMPC_DD_FLOPPYMODE,"IBM PC 720kB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ IBMPC_HD_FLOPPYMODE,"IBM PC 1.44MB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ IBMPC_ED_FLOPPYMODE,"IBM PC 2.88MB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ CPC_DD_FLOPPYMODE,"Amstrad CPC","Drive Select 0","Drive Select 1","-","MOTOR ON"},
|
||||
{ MSX2_DD_FLOPPYMODE,"MSX 2","DS0","DS1","DS2","MTRON"},
|
||||
{ GENERIC_SHUGART_DD_FLOPPYMODE,"Generic Shugart","DS0","DS1","DS2","MTRON"},
|
||||
{ EMU_SHUGART_FLOPPYMODE,"Emu Shugart","DS0","DS1","DS2","MTRON"},
|
||||
{ C64_DD_FLOPPYMODE,"C64 1541","NA","NA","NA","NA"},
|
||||
{ -1,"?","DS0","DS1","DS2","MTRON"}
|
||||
};
|
||||
|
||||
*/
|
||||
|
||||
void cb_read_disk(class Fl_Button *,void *)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
void cb_ok(class Fl_Button *,void *)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
void dnd_open(const char *urls)
|
||||
@@ -612,13 +328,17 @@ static void tick_mw(void *v) {
|
||||
|
||||
window=(Main_Window *)v;
|
||||
|
||||
if(strlen(gui_context->bufferfilename))
|
||||
if(strlen(guicontext->bufferfilename))
|
||||
{
|
||||
sprintf(tempstr,"%s - %d track(s) %d side(s) ",gui_context->bufferfilename,thefloppydisk->floppyNumberOfTrack,thefloppydisk->floppyNumberOfSide);
|
||||
if(txtindex>=strlen(tempstr))txtindex=0;
|
||||
sprintf(tempstr,"%s - %d track(s) %d side(s) ",guicontext->bufferfilename,guicontext->loadedfloppy->floppyNumberOfTrack,guicontext->loadedfloppy->floppyNumberOfSide);
|
||||
|
||||
if( guicontext->txtindex >= strlen(tempstr) )
|
||||
{
|
||||
guicontext->txtindex=0;
|
||||
}
|
||||
|
||||
i=0;
|
||||
j=txtindex;
|
||||
j=guicontext->txtindex;
|
||||
do
|
||||
{
|
||||
tempstr2[i]=tempstr[j];
|
||||
@@ -632,13 +352,13 @@ static void tick_mw(void *v) {
|
||||
window->file_name_txt->value((const char*)tempstr2);
|
||||
//SetDlgItemText(hwndDlg,IDC_EDIT_STATUS,tempstr2);
|
||||
|
||||
txtindex++;
|
||||
guicontext->txtindex++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(gui_context->loadstatus!=HXCFE_NOERROR)
|
||||
if(guicontext->loadstatus!=HXCFE_NOERROR)
|
||||
{
|
||||
switch(gui_context->loadstatus)
|
||||
switch(guicontext->loadstatus)
|
||||
{
|
||||
case HXCFE_UNSUPPORTEDFILE:
|
||||
window->file_name_txt->value((const char*)"Load error! Image file not supported!");
|
||||
@@ -650,22 +370,21 @@ static void tick_mw(void *v) {
|
||||
window->file_name_txt->value((const char*)"Load error! Read file error!");
|
||||
break;
|
||||
default:
|
||||
sprintf(tempstr2,"Load error! error %d",gui_context->loadstatus);
|
||||
sprintf(tempstr2,"Load error! error %d",guicontext->loadstatus);
|
||||
window->file_name_txt->value((const char*)tempstr2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(thefloppydisk)
|
||||
if(guicontext->loadedfloppy)
|
||||
{
|
||||
sprintf(tempstr,"Track %d/%d",libusbhxcfe_getCurTrack(flopemu,usbhxcfe),thefloppydisk->floppyNumberOfTrack);
|
||||
sprintf(tempstr,"Track %d/%d",libusbhxcfe_getCurTrack(guicontext->hxcfe,guicontext->usbhxcfe),guicontext->loadedfloppy->floppyNumberOfTrack);
|
||||
|
||||
window->track_pos_str->value((const char*)tempstr);
|
||||
window->track_pos->minimum(0);
|
||||
window->track_pos->maximum(thefloppydisk->floppyNumberOfTrack);
|
||||
window->track_pos->value((float)libusbhxcfe_getCurTrack(flopemu,usbhxcfe));
|
||||
|
||||
window->track_pos->maximum(guicontext->loadedfloppy->floppyNumberOfTrack);
|
||||
window->track_pos->value((float)libusbhxcfe_getCurTrack(guicontext->hxcfe,guicontext->usbhxcfe));
|
||||
}
|
||||
|
||||
Fl::repeat_timeout(0.10, tick_mw, v);
|
||||
@@ -680,6 +399,13 @@ Main_Window::Main_Window()
|
||||
i=0;
|
||||
evt_txt=0;
|
||||
|
||||
guicontext->loadedfloppy=0;
|
||||
guicontext->hxcfe=hxcfe_init();
|
||||
hxcfe_setOutputFunc(guicontext->hxcfe,CUI_affiche);
|
||||
|
||||
guicontext->usbhxcfe=libusbhxcfe_init(guicontext->hxcfe);
|
||||
|
||||
|
||||
Fl::scheme("gtk+");
|
||||
|
||||
Fl_Group group(0,0,WINDOW_XSIZE,392);
|
||||
@@ -758,23 +484,21 @@ Main_Window::Main_Window()
|
||||
this->fdump_window->number_of_track->value(80);
|
||||
this->fdump_window->sel_drive_a->value(1);
|
||||
this->fdump_window->sel_drive_b->value(0);
|
||||
xsize=460;
|
||||
ysize=200;
|
||||
mapfloppybuffer=(unsigned char*)malloc(xsize*ysize*4);
|
||||
memset(mapfloppybuffer,0,xsize*ysize*4);
|
||||
guicontext->xsize=460;
|
||||
guicontext->ysize=200;
|
||||
guicontext->mapfloppybuffer=(unsigned char*)malloc(guicontext->xsize * guicontext->ysize * 4);
|
||||
memset(guicontext->mapfloppybuffer,0,guicontext->xsize*guicontext->ysize*4);
|
||||
tick_dump(this->fdump_window);
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Floppy view window
|
||||
this->infos_window=new floppy_infos_window();
|
||||
floppyinfobuffer=(unsigned char*)malloc(xsize*ysize*4);
|
||||
memset(floppyinfobuffer,0,xsize*ysize*4);
|
||||
tick_infos(this->infos_window);
|
||||
this->infos_window->x_offset->bounds(0.0, 100);
|
||||
this->infos_window->x_time->scrollvalue(300,1,1,1000);
|
||||
this->infos_window->y_time->scrollvalue(16,1,2,64);
|
||||
this->infos_window->track_view_bt->value(1);
|
||||
|
||||
tick_infos(this->infos_window);
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Batch convert window
|
||||
this->batchconv_window=new batch_converter_window();
|
||||
@@ -813,19 +537,19 @@ Main_Window::Main_Window()
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// SD FE CFG window
|
||||
backlight_tmr=20;
|
||||
standby_tmr=20;
|
||||
lcd_scroll=150;
|
||||
step_sound=0xD8;
|
||||
ui_sound=0x60;
|
||||
guicontext->backlight_tmr = 20;
|
||||
guicontext->standby_tmr = 20;
|
||||
guicontext->lcd_scroll = 150;
|
||||
guicontext->step_sound = 0xD8;
|
||||
guicontext->ui_sound = 0x60;
|
||||
|
||||
this->sdcfg_window=new sdhxcfecfg_window();
|
||||
sdcfg_window->choice_hfeifmode->menu(if_choices);
|
||||
sdcfg_window->slider_scrolltxt_speed->scrollvalue(0xFF-lcd_scroll,1,0,(255-64));
|
||||
sdcfg_window->slider_stepsound_level->scrollvalue(0xFF-step_sound,1,0x00, 0xFF-0xD8);
|
||||
sdcfg_window->slider_uisound_level->scrollvalue(ui_sound,1,0,128);
|
||||
sdcfg_window->valslider_device_backlight_timeout->scrollvalue(backlight_tmr,1,0,256);
|
||||
sdcfg_window->valslider_device_standby_timeout->scrollvalue(standby_tmr,1,0,256);
|
||||
sdcfg_window->slider_scrolltxt_speed->scrollvalue(0xFF-guicontext->lcd_scroll,1,0,(255-64));
|
||||
sdcfg_window->slider_stepsound_level->scrollvalue(0xFF-guicontext->step_sound,1,0x00, 0xFF-0xD8);
|
||||
sdcfg_window->slider_uisound_level->scrollvalue(guicontext->ui_sound,1,0,128);
|
||||
sdcfg_window->valslider_device_backlight_timeout->scrollvalue(guicontext->backlight_tmr,1,0,256);
|
||||
sdcfg_window->valslider_device_standby_timeout->scrollvalue(guicontext->standby_tmr,1,0,256);
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// USB FE CFG window
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
|
||||
typedef struct main_button_list_
|
||||
{
|
||||
Fl_Button * button;
|
||||
char * label;
|
||||
char * desc;
|
||||
}main_button_list;
|
||||
|
||||
|
||||
// Main class...
|
||||
class Main_Window : public Fl_Window {
|
||||
|
||||
@@ -40,7 +48,6 @@ class Main_Window : public Fl_Window {
|
||||
Fl_File_Chooser *fc_load;
|
||||
Fl_File_Chooser *fc_save;
|
||||
|
||||
//Fl_Text_Display* file_name_txt;
|
||||
Fl_Output* file_name_txt;
|
||||
Fl_Progress* track_pos;
|
||||
Fl_Output* track_pos_str;
|
||||
@@ -50,7 +57,9 @@ class Main_Window : public Fl_Window {
|
||||
//virtual handle(int event);
|
||||
Main_Window();
|
||||
~Main_Window();
|
||||
|
||||
};
|
||||
|
||||
|
||||
void load_file_image_pb(Fl_Widget * widget, void * ptr);
|
||||
void menu_clicked(Fl_Widget * w, void * fc_ptr);
|
||||
void save_file_image(Fl_Widget * w, void * fc_ptr);
|
||||
void format_choice_cb(Fl_Widget *, void *v);
|
||||
@@ -1,44 +0,0 @@
|
||||
/*
|
||||
//
|
||||
// Copyright (C) 2006, 2007, 2008, 2009 Jean-François DEL NERO
|
||||
//
|
||||
// This file is part of HxCFloppyEmulator.
|
||||
//
|
||||
// HxCFloppyEmulator may be used and distributed without restriction provided
|
||||
// that this copyright statement is not removed from the file and that any
|
||||
// derivative work contains the original copyright notice and the associated
|
||||
// disclaimer.
|
||||
//
|
||||
// HxCFloppyEmulator is free software; you can redistribute it
|
||||
// and/or modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation; either version 2
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// HxCFloppyEmulator is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with HxCFloppyEmulator; if not, write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
//
|
||||
*/
|
||||
|
||||
|
||||
|
||||
typedef struct _guicontext
|
||||
{
|
||||
char bufferfilename[4096];
|
||||
char buffertext[4096];
|
||||
|
||||
char * logfile;
|
||||
|
||||
int loadstatus;
|
||||
|
||||
unsigned char autoselectmode;
|
||||
unsigned char twistedcable;
|
||||
}guicontext;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
|
||||
main_button_list txt_buttons_main[]=
|
||||
{
|
||||
{0,"Load","Load a floppy file image"},
|
||||
{0,"Load Raw image","Load a custom raw floppy image /\ncreate a custom floppy"},
|
||||
{0,"Batch converter","Convert multiple floppy file image."},
|
||||
{0,"Create FS Floppy","Create a DOS/AmigaDOS\nfile system based floppy disk."},
|
||||
{0,"Export","Export/save the loaded file image"},
|
||||
{0,"SD HxC Floppy\nEmulator settings","Configure the SDCard HxC Floppy Emulator"},
|
||||
{0,"USB HxC Floppy\nEmulator settings","Configure the USB HxC Floppy Emulator"},
|
||||
{0,"Floppy disk dump","Read a real disk"}
|
||||
};
|
||||
|
||||
Fl_Menu_Item menutable[] = {
|
||||
{"&Floppy image",0,0,0,FL_SUBMENU},
|
||||
{"&Load", FL_ALT+'l',load_file_image_pb,0},
|
||||
{"Load custom RAW file/Create custom floppy", FL_ALT+'r',menu_clicked,(void*)1},
|
||||
{"&Create DOS/AmigaDOS disk", FL_ALT+'c', menu_clicked,(void*)3},
|
||||
{"&Export disk/Save As", FL_ALT+'e', save_file_image, 0},
|
||||
{"Batch convert files images", FL_ALT+'o', menu_clicked,(void*)2},
|
||||
{"Dump a Floppy disk", FL_ALT+'o', menu_clicked,(void*)7},
|
||||
{"Show floppy infos", FL_ALT+'i', menu_clicked,(void*)10},
|
||||
|
||||
{0},
|
||||
{"&Settings",FL_F+2,0,0,FL_SUBMENU},
|
||||
{"SDCard HxC FLoppy Emulator settings", FL_ALT+'l',menu_clicked,(void*)5},
|
||||
{"USB HxC Floppy Emulator settings", FL_ALT+'s',menu_clicked,(void*)6},
|
||||
{0},
|
||||
{"&Log",FL_F+3,0,0,FL_SUBMENU},
|
||||
{"&Log", FL_ALT+'l',menu_clicked,(void*)8},
|
||||
{0},
|
||||
{"&About",0,0,0,FL_SUBMENU},
|
||||
{"&HxCFloppyEmulator", FL_ALT+'h',menu_clicked,(void*)9},
|
||||
{0},
|
||||
{0}
|
||||
};
|
||||
|
||||
Fl_Menu_Item format_choices[]=
|
||||
{
|
||||
{ "HFE - SDCard HxC Floppy Emulator file format",0,format_choice_cb,(void*)PLUGIN_HXC_HFE},
|
||||
{ "MFM - MFM/FM track file format",0,format_choice_cb,(void*)PLUGIN_HXC_MFM},
|
||||
{ "AFI - Advanced file image format",0,format_choice_cb,(void*)PLUGIN_HXC_AFI},
|
||||
{ "VTR - VTrucco Floppy Emulator file format",0,format_choice_cb,(void*)PLUGIN_VTR_IMG},
|
||||
{ "RAW - RAW sectors file format",0,format_choice_cb,(void*)PLUGIN_RAW_IMG},
|
||||
{ "IMD - IMD sectors file format",0,format_choice_cb,(void*)PLUGIN_IMD_IMG},
|
||||
{ "HFE - Rev 2 - Experimental",0,format_choice_cb,(void*)PLUGIN_HXC_EXTHFE},
|
||||
{0}
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
FS_720KB_ATARI_FAT12=0,
|
||||
FS_902KB_ATARI_FAT12,
|
||||
FS_360KB_ATARI_FAT12,
|
||||
FS_880KB_AMIGADOS,
|
||||
|
||||
FS_5P25_300RPM_160KB_MSDOS_FAT12,
|
||||
FS_5P25_360RPM_160KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_300RPM_180KB_MSDOS_FAT12,
|
||||
FS_5P25_360RPM_180KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_SS_300RPM_320KB_MSDOS_FAT12,
|
||||
FS_5P25_SS_360RPM_320KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_DS_300RPM_320KB_MSDOS_FAT12,
|
||||
FS_5P25_DS_360RPM_320KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_DS_300RPM_360KB_MSDOS_FAT12,
|
||||
FS_5P25_DS_360RPM_360KB_MSDOS_FAT12,
|
||||
|
||||
FS_3P5_DS_300RPM_640KB_MSDOS_FAT12,
|
||||
|
||||
FS_720KB_MSDOS_FAT12,
|
||||
|
||||
FS_5P25_300RPM_1200KB_MSDOS_FAT12,
|
||||
|
||||
FS_1_44MB_MSDOS_FAT12,
|
||||
FS_1_68MB_MSDOS_FAT12,
|
||||
FS_2_88MB_MSDOS_FAT12,
|
||||
FS_3_38MB_MSDOS_FAT12,
|
||||
FS_4_23MB_ATARI_FAT12,
|
||||
FS_6_78MB_MSDOS_FAT12,
|
||||
FS_16MB_MSDOS_FAT12
|
||||
};
|
||||
|
||||
Fl_Menu_Item fs_choices[]=
|
||||
{
|
||||
{ "5\"25 & 8\" 160KB SSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_300RPM_160KB_MSDOS_FAT12},
|
||||
{ "5\"25 & 8\" 160KB SSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_360RPM_160KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 180KB SSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_300RPM_180KB_MSDOS_FAT12},
|
||||
{ "5\"25 180KB SSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_360RPM_180KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 320KB SSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_SS_300RPM_320KB_MSDOS_FAT12},
|
||||
{ "5\"25 320KB SSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_SS_360RPM_320KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 320KB DSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_300RPM_320KB_MSDOS_FAT12},
|
||||
{ "5\"25 320KB DSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_360RPM_320KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 & 8\" 360KB DSDD 300RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_300RPM_360KB_MSDOS_FAT12},
|
||||
{ "5\"25 & 8\" 360KB DSDD 360RPM FAT12",0,format_choice_cb,(void*)FS_5P25_DS_360RPM_360KB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 640KB DSDD FAT12",0,format_choice_cb,(void*)FS_3P5_DS_300RPM_640KB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 720KB DSDD FAT12 ",0,format_choice_cb,(void*)FS_720KB_MSDOS_FAT12},
|
||||
|
||||
{ "5\"25 1.2MB DSHD FAT12",0,format_choice_cb,(void*)FS_5P25_300RPM_1200KB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 1.44MB DSHD FAT12",0,format_choice_cb,(void*)FS_1_44MB_MSDOS_FAT12},
|
||||
{ "3\"5 1.68MB DSHD FAT12",0,format_choice_cb,(void*)FS_1_68MB_MSDOS_FAT12},
|
||||
{ "3\"5 2.88MB DSED FAT12",0,format_choice_cb,(void*)FS_2_88MB_MSDOS_FAT12},
|
||||
{ "3\"5 3.38MB DSHD FAT12",0,format_choice_cb,(void*)FS_3_38MB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 6.78MB DSHD FAT12",0,format_choice_cb,(void*)FS_6_78MB_MSDOS_FAT12},
|
||||
|
||||
{ "3\"5 360KB SSDD Atari FAT12",0,format_choice_cb,(void*)FS_360KB_ATARI_FAT12},
|
||||
{ "3\"5 720KB DSDD Atari FAT12",0,format_choice_cb,(void*)FS_720KB_ATARI_FAT12},
|
||||
{ "3\"5 902KB DSDD Atari FAT12",0,format_choice_cb,(void*)FS_902KB_ATARI_FAT12},
|
||||
{ "3\"5 4.23MB DSDD Atari FAT12",0,format_choice_cb,(void*)FS_4_23MB_ATARI_FAT12},
|
||||
|
||||
{ "3\"5 880KB DSDD AmigaDOS",0,format_choice_cb,(void*)FS_880KB_AMIGADOS},
|
||||
|
||||
|
||||
{0}
|
||||
};
|
||||
|
||||
Fl_Menu_Item sectorsize_choices[]=
|
||||
{
|
||||
{ "128",0,raw_loader_window_datachanged,(void*)128},
|
||||
{ "256",0,raw_loader_window_datachanged,(void*)256},
|
||||
{ "512",0,raw_loader_window_datachanged,(void*)512},
|
||||
{ "1024",0,raw_loader_window_datachanged,(void*)1024},
|
||||
{ "2048",0,raw_loader_window_datachanged,(void*)2048},
|
||||
{ "4096",0,raw_loader_window_datachanged,(void*)4096},
|
||||
{ "8192",0,raw_loader_window_datachanged,(void*)8192},
|
||||
{ "16384",0,raw_loader_window_datachanged,(void*)16384},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
Fl_Menu_Item if_choices[]=
|
||||
{
|
||||
{ "Amiga",0,format_choice_cb,(void*)AMIGA_DD_FLOPPYMODE},
|
||||
{ "Amiga HD",0,format_choice_cb,(void*)AMIGA_HD_FLOPPYMODE},
|
||||
{ "Atari ST",0,format_choice_cb,(void*)ATARIST_DD_FLOPPYMODE},
|
||||
{ "Atari ST HD",0,format_choice_cb,(void*)ATARIST_HD_FLOPPYMODE},
|
||||
{ "IBM PC 720kB",0,format_choice_cb,(void*)IBMPC_DD_FLOPPYMODE},
|
||||
{ "IBM PC 1.44MB",0,format_choice_cb,(void*)IBMPC_HD_FLOPPYMODE},
|
||||
{ "IBM PC 2.88MB",0,format_choice_cb,(void*)IBMPC_ED_FLOPPYMODE},
|
||||
{ "AKAI S900/S950 DD",0,format_choice_cb,(void*)S950_DD_FLOPPYMODE},
|
||||
{ "AKAI S950 HD",0,format_choice_cb,(void*)S950_HD_FLOPPYMODE},
|
||||
{ "Amstrad CPC",0,format_choice_cb,(void*)CPC_DD_FLOPPYMODE},
|
||||
{ "MSX 2",0,format_choice_cb,(void*)MSX2_DD_FLOPPYMODE},
|
||||
{ "Generic Shugart",0,format_choice_cb,(void*)GENERIC_SHUGART_DD_FLOPPYMODE},
|
||||
{ "Emu Shugart",0,format_choice_cb,(void*)EMU_SHUGART_FLOPPYMODE},
|
||||
{ "C64 1541",0,format_choice_cb,(void*)C64_DD_FLOPPYMODE},
|
||||
|
||||
{0}
|
||||
};
|
||||
|
||||
Fl_Menu_Item track_type_choices[]=
|
||||
{
|
||||
{ "FM",0,raw_loader_window_datachanged,(void*)ISOFORMAT_SD},
|
||||
{ "IBM FM",0,raw_loader_window_datachanged,(void*)IBMFORMAT_SD},
|
||||
{ "MFM",0,raw_loader_window_datachanged,(void*)ISOFORMAT_DD},
|
||||
{ "IBM MFM",0,raw_loader_window_datachanged,(void*)IBMFORMAT_DD},
|
||||
{0}
|
||||
};
|
||||
|
||||
/*
|
||||
platform platformlist[]=
|
||||
{
|
||||
{ AMIGA_DD_FLOPPYMODE,"Amiga","DS0","DS1","DS2","MTRON"},
|
||||
{ AMIGA_HD_FLOPPYMODE,"Amiga HD","DS0","DS1","DS2","MTRON"},
|
||||
{ ATARIST_DD_FLOPPYMODE,"Atari ST","D0SEL","D1SEL","-","MTRON"},
|
||||
{ ATARIST_HD_FLOPPYMODE,"Atari ST HD","D0SEL","D1SEL","-","MTRON"},
|
||||
{ IBMPC_DD_FLOPPYMODE,"IBM PC 720kB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ IBMPC_HD_FLOPPYMODE,"IBM PC 1.44MB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ IBMPC_ED_FLOPPYMODE,"IBM PC 2.88MB","MOTEA","DRVSB","DRVSA","MOTEB"},
|
||||
{ CPC_DD_FLOPPYMODE,"Amstrad CPC","Drive Select 0","Drive Select 1","-","MOTOR ON"},
|
||||
{ MSX2_DD_FLOPPYMODE,"MSX 2","DS0","DS1","DS2","MTRON"},
|
||||
{ GENERIC_SHUGART_DD_FLOPPYMODE,"Generic Shugart","DS0","DS1","DS2","MTRON"},
|
||||
{ EMU_SHUGART_FLOPPYMODE,"Emu Shugart","DS0","DS1","DS2","MTRON"},
|
||||
{ C64_DD_FLOPPYMODE,"C64 1541","NA","NA","NA","NA"},
|
||||
{ -1,"?","DS0","DS1","DS2","MTRON"}
|
||||
};
|
||||
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
FM_TRACK_TYPE,
|
||||
FMIBM_TRACK_TYPE,
|
||||
MFM_TRACK_TYPE,
|
||||
MFMIBM_TRACK_TYPE,
|
||||
GCR_TRACK_TYPE
|
||||
};
|
||||
|
||||
|
||||
track_type track_type_list[]=
|
||||
{
|
||||
{ FM_TRACK_TYPE,"FM",ISOFORMAT_SD},
|
||||
{ FMIBM_TRACK_TYPE,"IBM FM",IBMFORMAT_SD},
|
||||
{ MFM_TRACK_TYPE,"MFM",ISOFORMAT_DD},
|
||||
{ MFMIBM_TRACK_TYPE,"IBM MFM",IBMFORMAT_DD},
|
||||
//{ GCR_TRACK_TYPE,"GCR"},
|
||||
{ -1,"",0}
|
||||
};
|
||||
|
||||
@@ -47,22 +47,15 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "mainrouts.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include "libhxcfe.h"
|
||||
#include "usb_hxcfloppyemulator.h"
|
||||
// #include "../../common/plugins/raw_loader/raw_loader.h"
|
||||
}
|
||||
|
||||
#include "main.h"
|
||||
#include "loader.h"
|
||||
|
||||
extern HXCFLOPPYEMULATOR * flopemu;
|
||||
extern USBHXCFE * usbhxcfe;
|
||||
|
||||
extern FLOPPY * thefloppydisk;
|
||||
extern guicontext * gui_context;
|
||||
extern s_gui_context * guicontext;
|
||||
|
||||
extern track_type track_type_list[];
|
||||
|
||||
@@ -71,33 +64,32 @@ extern char * basename (const char *name);
|
||||
int load_floppy(FLOPPY * floppydisk)
|
||||
{
|
||||
int ret;
|
||||
int i;
|
||||
int oldifmode;
|
||||
|
||||
hxcfe_floppyUnload(flopemu,thefloppydisk);
|
||||
thefloppydisk=0;
|
||||
thefloppydisk=floppydisk;
|
||||
hxcfe_floppyUnload(guicontext->hxcfe,guicontext->loadedfloppy);
|
||||
guicontext->loadedfloppy=0;
|
||||
guicontext->loadedfloppy=floppydisk;
|
||||
|
||||
ret=HXCFE_NOERROR;
|
||||
gui_context->loadstatus=ret;
|
||||
guicontext->loadstatus=ret;
|
||||
|
||||
if(ret!=HXCFE_NOERROR || !thefloppydisk)
|
||||
if(ret!=HXCFE_NOERROR || !guicontext->loadedfloppy)
|
||||
{
|
||||
thefloppydisk=0;
|
||||
gui_context->bufferfilename[0]=0;
|
||||
guicontext->loadedfloppy=0;
|
||||
guicontext->bufferfilename[0]=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
oldifmode=libusbhxcfe_getInterfaceMode(flopemu,usbhxcfe);
|
||||
libusbhxcfe_setInterfaceMode(flopemu,usbhxcfe,thefloppydisk->floppyiftype,thefloppydisk->double_step,0);
|
||||
libusbhxcfe_loadFloppy(flopemu,usbhxcfe,thefloppydisk);
|
||||
oldifmode=libusbhxcfe_getInterfaceMode(guicontext->hxcfe,guicontext->usbhxcfe);
|
||||
libusbhxcfe_setInterfaceMode(guicontext->hxcfe,guicontext->usbhxcfe,guicontext->loadedfloppy->floppyiftype,guicontext->loadedfloppy->double_step,0);
|
||||
libusbhxcfe_loadFloppy(guicontext->hxcfe,guicontext->usbhxcfe,guicontext->loadedfloppy);
|
||||
|
||||
if(!gui_context->autoselectmode)
|
||||
if(!guicontext->autoselectmode)
|
||||
{ // keep the old interface mode
|
||||
//hwif->interface_mode=oldifmode;
|
||||
};
|
||||
|
||||
sprintf(gui_context->bufferfilename,"Floppy Dump");
|
||||
sprintf(guicontext->bufferfilename,"Floppy Dump");
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -110,30 +102,30 @@ int load_floppy_image(char *filename)
|
||||
int oldifmode;
|
||||
int loaderid;
|
||||
|
||||
hxcfe_floppyUnload(flopemu,thefloppydisk);
|
||||
thefloppydisk=0;
|
||||
hxcfe_floppyUnload(guicontext->hxcfe,guicontext->loadedfloppy);
|
||||
guicontext->loadedfloppy=0;
|
||||
|
||||
ret=-1;
|
||||
|
||||
loaderid=hxcfe_autoSelectLoader(flopemu,filename,0);
|
||||
loaderid=hxcfe_autoSelectLoader(guicontext->hxcfe,filename,0);
|
||||
|
||||
if(loaderid>=0)
|
||||
thefloppydisk=hxcfe_floppyLoad(flopemu,filename,loaderid,&ret);
|
||||
guicontext->loadedfloppy=hxcfe_floppyLoad(guicontext->hxcfe,filename,loaderid,&ret);
|
||||
|
||||
gui_context->loadstatus=ret;
|
||||
guicontext->loadstatus=ret;
|
||||
|
||||
if(ret!=HXCFE_NOERROR || !thefloppydisk)
|
||||
if(ret!=HXCFE_NOERROR || !guicontext->loadedfloppy)
|
||||
{
|
||||
thefloppydisk=0;
|
||||
gui_context->bufferfilename[0]=0;
|
||||
guicontext->loadedfloppy=0;
|
||||
guicontext->bufferfilename[0]=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// oldifmode=hwif->interface_mode;
|
||||
|
||||
libusbhxcfe_setInterfaceMode(flopemu,usbhxcfe,thefloppydisk->floppyiftype,thefloppydisk->double_step,0);
|
||||
libusbhxcfe_loadFloppy(flopemu,usbhxcfe,thefloppydisk);
|
||||
if(!gui_context->autoselectmode)
|
||||
libusbhxcfe_setInterfaceMode(guicontext->hxcfe,guicontext->usbhxcfe,guicontext->loadedfloppy->floppyiftype,guicontext->loadedfloppy->double_step,0);
|
||||
libusbhxcfe_loadFloppy(guicontext->hxcfe,guicontext->usbhxcfe,guicontext->loadedfloppy);
|
||||
if(!guicontext->autoselectmode)
|
||||
{ // keep the old interface mode
|
||||
//hwif->interface_mode=oldifmode;
|
||||
};
|
||||
@@ -146,11 +138,11 @@ int load_floppy_image(char *filename)
|
||||
i--;
|
||||
}
|
||||
if(filename[i]=='\\') i++;
|
||||
sprintf(gui_context->bufferfilename,"%s",&filename[i]);
|
||||
sprintf(guicontext->bufferfilename,"%s",&filename[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(gui_context->bufferfilename,"Empty Floppy");
|
||||
sprintf(guicontext->bufferfilename,"Empty Floppy");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,8 +164,8 @@ int loadrawfile(HXCFLOPPYEMULATOR* floppycontext,cfgrawfile * rfc,char * file)
|
||||
|
||||
if(f || file==NULL)
|
||||
{
|
||||
if(thefloppydisk)
|
||||
hxcfe_floppyUnload(flopemu,thefloppydisk);
|
||||
if(guicontext->loadedfloppy)
|
||||
hxcfe_floppyUnload(guicontext->hxcfe,guicontext->loadedfloppy);
|
||||
|
||||
nbside=(rfc->sidecfg)&2?2:1;
|
||||
|
||||
@@ -183,8 +175,8 @@ int loadrawfile(HXCFLOPPYEMULATOR* floppycontext,cfgrawfile * rfc,char * file)
|
||||
memset(trackbuffer,rfc->fillvalue,(128<<rfc->sectorsize)*rfc->sectorpertrack);
|
||||
}
|
||||
|
||||
sprintf(gui_context->bufferfilename,"");
|
||||
thefloppydisk=0;
|
||||
sprintf(guicontext->bufferfilename,"");
|
||||
guicontext->loadedfloppy=0;
|
||||
fb=hxcfe_initFloppy(floppycontext,rfc->numberoftrack,nbside);
|
||||
if(fb)
|
||||
{
|
||||
@@ -235,8 +227,9 @@ int loadrawfile(HXCFLOPPYEMULATOR* floppycontext,cfgrawfile * rfc,char * file)
|
||||
}
|
||||
}
|
||||
|
||||
thefloppydisk=hxcfe_getFloppy(fb);
|
||||
guicontext->loadedfloppy=hxcfe_getFloppy(fb);
|
||||
}
|
||||
|
||||
/*t=hxcfe_getfloppysize(floppycontext,thefloppydisk,0);
|
||||
|
||||
test=malloc(512*18);
|
||||
@@ -247,24 +240,24 @@ int loadrawfile(HXCFLOPPYEMULATOR* floppycontext,cfgrawfile * rfc,char * file)
|
||||
hxcfe_deinit_sectorsearch(ss);*/
|
||||
|
||||
|
||||
if(thefloppydisk)
|
||||
if(guicontext->loadedfloppy)
|
||||
{
|
||||
ret=HXCFE_NOERROR;
|
||||
|
||||
gui_context->loadstatus=ret;
|
||||
guicontext->loadstatus=ret;
|
||||
|
||||
//oldifmode=hwif->interface_mode;
|
||||
libusbhxcfe_setInterfaceMode(flopemu,usbhxcfe,thefloppydisk->floppyiftype,thefloppydisk->double_step,0);
|
||||
libusbhxcfe_loadFloppy(flopemu,usbhxcfe,thefloppydisk);
|
||||
if(!gui_context->autoselectmode)
|
||||
libusbhxcfe_setInterfaceMode(guicontext->hxcfe,guicontext->usbhxcfe,guicontext->loadedfloppy->floppyiftype,guicontext->loadedfloppy->double_step,0);
|
||||
libusbhxcfe_loadFloppy(guicontext->hxcfe,guicontext->usbhxcfe,guicontext->loadedfloppy);
|
||||
if(!guicontext->autoselectmode)
|
||||
{ // keep the old interface mode
|
||||
//hwif->interface_mode=oldifmode;
|
||||
};
|
||||
|
||||
if(f)
|
||||
sprintf(gui_context->bufferfilename,basename(file));
|
||||
sprintf(guicontext->bufferfilename,basename(file));
|
||||
else
|
||||
sprintf(gui_context->bufferfilename,"Empty Floppy");
|
||||
sprintf(guicontext->bufferfilename,"Empty Floppy");
|
||||
}
|
||||
|
||||
if(f)
|
||||
|
||||
@@ -43,25 +43,7 @@
|
||||
// Change History (most recent first):
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/filename.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Text_Display.H>
|
||||
#include <FL/Fl_Tiled_Image.H>
|
||||
#include <FL/Fl_File_Browser.H>
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
|
||||
#include <FL/Fl_File_Icon.H>
|
||||
#include <FL/Fl_Shared_Image.H>
|
||||
#include <FL/Fl_BMP_Image.H>
|
||||
|
||||
#include <FL/fl_ask.H>
|
||||
|
||||
#include "fl_includes.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
@@ -69,7 +51,8 @@ extern "C"
|
||||
#include "usb_hxcfloppyemulator.h"
|
||||
}
|
||||
|
||||
#include "gui_struct.h"
|
||||
#include "main.h"
|
||||
|
||||
#include "batch_converter_window.h"
|
||||
#include "filesystem_generator_window.h"
|
||||
#include "floppy_dump_window.h"
|
||||
@@ -81,44 +64,21 @@ extern "C"
|
||||
#include "about_gui.h"
|
||||
#include "main_gui.h"
|
||||
|
||||
HXCFLOPPYEMULATOR * flopemu;
|
||||
FLOPPY * thefloppydisk;
|
||||
USBHXCFE * usbhxcfe;
|
||||
|
||||
guicontext * gui_context;
|
||||
s_gui_context * guicontext;
|
||||
|
||||
extern int CUI_affiche(int MSGTYPE,char * chaine, ...);
|
||||
|
||||
track_type track_type_list[]=
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
guicontext=(s_gui_context *)malloc(sizeof(s_gui_context));
|
||||
if(guicontext)
|
||||
{
|
||||
{ FM_TRACK_TYPE,"FM",ISOFORMAT_SD},
|
||||
{ FMIBM_TRACK_TYPE,"IBM FM",IBMFORMAT_SD},
|
||||
{ MFM_TRACK_TYPE,"MFM",ISOFORMAT_DD},
|
||||
{ MFMIBM_TRACK_TYPE,"IBM MFM",IBMFORMAT_DD},
|
||||
//{ GCR_TRACK_TYPE,"GCR"},
|
||||
{ -1,"",0}
|
||||
};
|
||||
memset(guicontext,0,sizeof(s_gui_context));
|
||||
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
gui_context=(guicontext *)malloc(sizeof(guicontext));
|
||||
if(gui_context)
|
||||
{
|
||||
memset(gui_context,0,sizeof(guicontext));
|
||||
|
||||
thefloppydisk=0;
|
||||
flopemu=hxcfe_init();
|
||||
hxcfe_setOutputFunc(flopemu,CUI_affiche);
|
||||
|
||||
usbhxcfe=libusbhxcfe_init(flopemu);
|
||||
|
||||
Main_Window * mw;
|
||||
mw=new Main_Window();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
typedef struct s_gui_context_
|
||||
{
|
||||
char bufferfilename[4096];
|
||||
char buffertext[4096];
|
||||
|
||||
char * logfile;
|
||||
|
||||
int loadstatus;
|
||||
|
||||
unsigned char autoselectmode;
|
||||
unsigned char twistedcable;
|
||||
|
||||
HXCFLOPPYEMULATOR * hxcfe;
|
||||
FLOPPY * loadedfloppy;
|
||||
USBHXCFE * usbhxcfe;
|
||||
|
||||
int backlight_tmr;
|
||||
int standby_tmr;
|
||||
int step_sound;
|
||||
int ui_sound;
|
||||
int lcd_scroll;
|
||||
|
||||
unsigned int txtindex;
|
||||
|
||||
int xsize,ysize;
|
||||
unsigned char * mapfloppybuffer;
|
||||
|
||||
//signed char * floppyinfobuffer;
|
||||
|
||||
}s_gui_context;
|
||||
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "mainrouts.h"
|
||||
|
||||
#include "soft_cfg_file.h"
|
||||
|
||||
#include "libhxcfe.h"
|
||||
#include "usb_hxcfloppyemulator.h"
|
||||
|
||||
#include "main.h"
|
||||
|
||||
typedef struct laststate_
|
||||
{
|
||||
unsigned int usb_packet_size;
|
||||
@@ -24,9 +24,7 @@ typedef struct laststate_
|
||||
unsigned int double_step;
|
||||
}laststate;
|
||||
|
||||
|
||||
//extern HWINTERFACE * hwif;
|
||||
extern guicontext * gui_context;
|
||||
extern s_gui_context * guicontext;
|
||||
unsigned char cfg_file_buffer[4*1024];
|
||||
|
||||
int load_last_cfg()
|
||||
@@ -64,8 +62,8 @@ int load_last_cfg()
|
||||
// hwif->drive_select_source=lastst->drive_select_source;
|
||||
// hwif->interface_mode=lastst->interface_mode;
|
||||
// hwif->double_step=lastst->double_step;
|
||||
gui_context->autoselectmode=lastst->autoselectmode;
|
||||
gui_context->twistedcable=lastst->twistedcable;
|
||||
guicontext->autoselectmode=lastst->autoselectmode;
|
||||
guicontext->twistedcable=lastst->twistedcable;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user