From: SourceForge.net <no...@so...> - 2010-05-25 10:46:13
|
Patches item #2030341, was opened at 2008-07-29 00:17 Message generated for change (Comment added) made by fredm You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=596650&aid=2030341&group_id=91293 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Resolution: Accepted Priority: 5 Private: No Submitted By: Gergely Szasz (szaszg) Assigned to: Nobody/Anonymous (nobody) Summary: disk drive setup options Initial Comment: This patch add options to setup the attached disk drive parameters: +D, Beta128 and +3 disk B. changes: 1., settings.dat: - add settings for enable, auto/manual** geometry, 1/2 head and cylinders 2., menu_data.dat: - add the 'Options/Disk options' menu branch 3., ui.c: - add new entries to 'menu_item_lookup[]' to enable/disable the apropriate media menu branches 4., menu.c: - add the 'menu_options..._detail()' functions 5., menu.h: - add 'menu_options_diskoptions...' declarations 6., ui/ui.h: - add new 'ui_menu_item's 7., ui/options.dat: - add new options for the disk setup 8., ui/widget/widget.h: - add new widget types 9., ui/widget/widget.c: - add new entries to the 'widget_data[]' 10., ui/widget/widget.c: - add new functions to call setup widgets 11., disk/fdd.h: - add new error code 'FDD_NONE' for disabled drives - add new fdd type 'FDD_TYPE_NONE' for disabled drives - 'fdd_init()' now have a 'int reinit' argument 11., disk/fdd.c: - add new error message for 'FDD_NONE' code - change 'fdd_init()' to implement 'reinit' - change 'fdd_load()'. Now if drive disabled, return with 'FDD_NONE' error - change all DISK_OK return value to FDD_OK :) 12., disk/beta.c, disk/plusd.c, machines/specplus3.c*: - change to call 'fdd_init' with the new arg - add new ui_menu_activate() calls to enable/disable the media/disk menus entries - add code to initialise the 'fdd drives' with the appropriate settings - add code to the '..._disk_insert()' to 'inserts' new disks with 'good' geometry 13., machines/specplus3.c: - add new function 'specplus3_765_reset()' 14., machines/specplus3.h: - 'specplus3_765_reset' declaration 15., machines/specplus3e.c: - now uses 'specplus3_765_reset()' to resets and setups drives geometry *note: the +3 builtin drive has '1 side 42 cylinder' fix geometry so, only the drive B settings are changeable **Note: auto geometry: when open disk: fuse set the drive geometry to fit the opened disk. when insert new disk: insert a 'default' 2 side 80 cylinder disk. ---------------------------------------------------------------------- >Comment By: Fredrick Meunier (fredm) Date: 2010-05-25 20:46 Message: I don't think it is?: Status: Closed Resolution: Accepted ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2010-05-25 20:39 Message: Why this stil open..? ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-03-29 11:05 Message: Thanks, applied fuse.disksetup_06d.diff in revision 3991. I did miss that Auto was not the default option in 6c (I will blame lack of sleep from a new baby!), though I still have some doubts that it is an improvement over your 6d patch. This is because we swap one set of failure cases (drive does not handle larger disk images than configured by default) for some other ones (new disk is of same size as last inserted disk, +D OS oddities too) as well as comments I've made before. I think I am most comfortable with things that fail in real hardware also failing in the emulator by default. With your +D example, we default to DSDD drives so opening the SSSD image would have worked with the standard setting if I understand correctly (and if we deliberately switched to a SSSD drive we would surely know what that meant when we came to use a DSDD disk image?). With the +3 example, I asked for that as feature request 1724331 asks for that configuration, and there are people out there with this configuration on their real hardware presumably along with matching disk images, so I think it is desirable to support this in Fuse given you had put in all the support required. Maybe it is worth putting Auto in as a new patch tracker entry to see if there is any interest from other users or Phil etc. in the future. BTW I agree the small text entry area is annoying - I use Safari which allows the text edit boxes to be resized, hopefully this becomes a standard feature across browsers! ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-03-28 04:13 Message: Huhh... sorry, `fuse.disksetup_06d.diff' is the 'Auto'less patch... ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-03-28 04:10 Message: Fred, I submit a patch (`fuse.disksetup_06c.diff') without the 'Auto' option already... With this i want to give a signal: i do not hang on 'Auto'... ;-) ------------------------ btw. in the other patch, *not* the 'Auto' the default option. This is just selectable, if user like it... +D, Beta128 +D save the drive parameters to the 'system disk', and Beta128 save disk(drive) parameters to all disk... So, if we open a 40 track 1 sided disk image, the drive automagically change to 40 track 1 headed, and if there is no any strange trick the disk works. O.K. if we start +D with e.g. a SS/SD system disk and try to use a DS/DD disk image it may fail, but it fail in the real life too. And next, if we change to 80 track 2 sided system disk, now it works again without we have to change the disk parameters... +3 In my first patch I used fixed geometry for Drive A, but you ask: "Some people have changed their +3 builtin drive to 3.5", so that should be allowed?"... So, ..."inserting a 80-track disk image into a +3 internal drive by transforming the disk drive type - why would a user want that?" - because she/he "...have changed their +3 builtin drive to 3.5..." :) ... This new SF 'design' with this only '7 line height' comment textarea frustrating me hardly... :-( ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-03-27 20:36 Message: I agree there are other confusing options in Fuse - I do not regard that as an argument to add more confusing options. If Phil were happy to I would be keen to trim out various parts of Fuse that are complex and very rarely used. We have often had this obscure functionality breaking with no-one realising for several releases! Of course it may be the case that others will disagree with me, which is why I leave open the option for others to speak up for your proposed approach if they are keen on it's usefulness but as it stands I am not convinced. > Why we want to protect users to do `unusual' things? If a user cannot > understand `Auto' disk geometry, how can she/he understand the difference > between Use tape traps/Detect loaders, or Fastloading/Accelerate loaders? > Once again: What is the problem with the Auto? If the default option is > correct 99.9% of the time, then `Auto' is correct 99.99%. My question is what does "Auto" provide? When will it be used - all options have a cost, they can go wrong and require more testing to check, they require documentation, and they require effort from all the users to attempt to understand. As a result, in my opinion they must all provide some useful utility and justify themselves - in my opinion sometimes software is improved by omitting a feature rather than including everything possible. Our default configuration already covers the vast majority of cases and the only obvious (to me!) use is handling inserting a 80-track disk image into a +3 internal drive by transforming the disk drive type - why would a user want that? how does having the disk drive type change under something like +D DOS where as you point out the disk format is encoded in the software level work usefully? Is it worth the argument? I think the overall change is useful and worthwhile - but I disagree on the reasoning for Auto and that is why I personally don't feel comfortable committing the change. I apologise if my opinion is frustrating. ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-03-18 01:48 Message: File Added: fuse.disksetup_06d.diff ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-03-18 01:46 Message: Here are two new patch. First, i change the `3"' and `3.5"' to `40 track' and `80 track', because theese are not synonyms. Users can use 3", 3.5", 5.25" or even 8" disk drives too, with the disk controllers (+D, Beta128, Opus, etc.), and the programs (+D system disk/Beta basic) itself ask this parameter (40/80 track) and not the size of the disk system. And e.g. the 5.25" floppy drives can be 40 or 80 track or switchable (Opus), so the `5.25"' or `3.5"' cannot give any usable information about the number of tracks. Second: in the first patch there is an 'Auto' option and if user inserts a `new blank' disk, fuse asks the type of the drive/disk. Sorry Fred, but i cannot understand, why do you think that, the `Auto' disk geometry option can make user dizzy... btw. fuse full of options which aid users to do `unusual' things: e.g.: `Open binary data', `Open SCR screenshot', change `emulation speed' and `frame rate', `allow writes to ROM', `Use tape tarps', `Fastloading', `Detect loaders', `Accelerate loaders', `Auto-load media', `Beeper pseudo-stereo', `Force 8-bit', assign keys to joystick, `Select ROMs', NMI, etc... Why we want to protect users to do `unusual' things? If a user cannot understand `Auto' disk geometry, how can she/he understand the difference between Use tape traps/Detect loaders, or Fastloading/Accelerate loaders? Onec again: What is the problem with the Auto? If the default option is correct 99.9% of the time, then `Auto' is correct 99.99%. "With auto opening a disk may change the drive type and may produce unexpected results where someone didn't realise that their geometry was changed by a previous disk file use?" ... why user has to realise that? What is that unexpected result? If i open a 2 sided 40 track disk in beta128, the geometry of drive `changes' and act as a 2 sided 40 track drive. The `unexpected' result only that: beta128 can read all the sides and all the tracks... An ordinary user just insert a disk and press [ENTER], or type RUN [ENTER]... File Added: fuse.disksetup_06c.diff ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-03-17 02:56 Message: "..Auto option against the extra complexity.." - there is no any extra complexity, because the underlying "API"s know this stuff already (btw. all the drives exept `+3 drive A' works 'Auto' mode now) "...and potential for confusion..." - imho there is no bigger risk, if user choose 'Auto' or user choose e.g. `SS DD 3.5"' for '+3 drive A'. btw. 'Auto' option has no practical effect on reading or even writing existing disks, because the existing disk images all fitt to the 'format capabilities' of the corresponding hardware/software... btw. the 'default' 80track DD drive may so 'unusual' for `+3 drive B', or +3 can handle it? "...window should be made wider." - i try to do something with `widget_calculate_option_width()'... ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-03-16 23:15 Message: Thanks for that. The drives setup window has the options labels overlapping the currently selected item, so the window should be made wider. I'm still struggling to see the benefit of the Auto option against the extra complexity and potential for confusion given the existing default option is correct 99.9% of the time and is only likely to be wrong if the user has made the choice to do unusual things. I'd be happy to commit a patch without Auto and with the extra width for the drives setup dialog unless someone else wants to speak up for "Auto". ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-03-16 03:10 Message: Here is the updated patch. It includes a little change on 'combo' (sorry): now we can nark a combo option as default with a star (*) at the beginning of the entry. I leave the 'auto' option, yet... File Added: fuse.disksetup_05.diff ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-03-15 12:32 Message: Could you please update the patch for the current head? ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-03-04 23:33 Message: I've shuffled the combo box stuff over to it's own tracker item. On 'auto' I think the default situation is that users will not change the defaults, so if +3 is SSDD 3" and the others are DSDD 3.5" everything will work without problems for these users. 99.9% of +3 dsks are going to be standard SSDD 3", the others will handle any size media by default. If the user gets smart and wants to use different disk drive setups from the default, I think they should be expecting that they will get the results they are asking for - that is on the +3 they need to use special formatting to create larger disks, or that there will be disks bigger than are supported on their smaller drives for the others. Having auto means more options to explain to the user and for the user to try and understand. With auto opening a disk may change the drive type and may produce unexpected results where someone didn't realise that their geometry was changed by a previous disk file use? What do you think? ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-03-02 07:52 Message: ``leaving out the "builtin" and "auto" options'': 'builtin' - not a big loss 'auto' - imho this is a good starting point for an average user, with this (default) setting she/he can open every disk without problems "I think the combo ends up being a different look and feel to the other selection from list of choices type dialogs, but doesn't seem to add anything new?" - hmm... it adds at least one thing: you don't need to write any code to use "selection", just set up a Combo option in 'options.dat' and 'settings.dat', and the code autogenerated... With GTK+ UI, the joystick selection code is not so correct, because we cannot force 'menu factory', to show the 'selected' item. So, if you open the dialog, you always see the first item in the 'combo box' (e.g. 'Joystick Fire'). Anyway, the Combo is an 'option entry', so you can put it on an option tab and the code is reusable. The joystick selection stuff is a 'submenu' plus some 'individual' code, so you can put it into a menu tree and you have to write the code 'by hand'. ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-03-01 11:04 Message: What do you think about leaving out the "builtin" and "auto" options and just having the default drives being: +3 disks: 3" SS Beta128 disks: 3.5" DS +D disks: 3.5" DS What would we lose in this case? At least with the widget code, I think the combo ends up being a different look and feel to the other selection from list of choices type dialogs, but doesn't seem to add anything new? It would be possible to add the drive selections with menu_data.dat entries like: Options/_Disk options, Branch Options/Disk options/+_3 Drive A..., Item,, menu_options_diskoptions_select, menu_drive_plus3_a_detail, 1 Options/Disk options/+3 Driv_e B..., Item,, menu_options_diskoptions_select, menu_drive_plus3_b_detail, 2 Options/Disk options/Beta 128 Drive _A..., Item,, menu_options_diskoptions_select, menu_drive_beta_a_detail, 3 Options/Disk options/Beta 128 Drive _B..., Item,, menu_options_diskoptions_select, menu_drive_beta_b_detail, 4 Options/Disk options/Beta 128 Drive _C..., Item,, menu_options_diskoptions_select, menu_drive_beta_c_detail, 5 Options/Disk options/Beta 128 Drive _D..., Item,, menu_options_diskoptions_select, menu_drive_beta_d_detail, 6 Options/Disk options/+D Drive _1..., Item,, menu_options_diskoptions_select, menu_drive_plusd_1_detail, 7 Options/Disk options/+D Drive _2..., Item,, menu_options_diskoptions_select, menu_drive_plusd_2_detail, 8 the _detail options would return the currently selected drive option text, while the menu_options_diskoptions_select function would set up which option would be set and draw a generic drive list (like the joystick selection widget). What do you think? ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-02-26 02:45 Message: Here is a new patch... So... this patch need the "combo box" patch: #2637346 File Added: fuse.disksetup_04.diff ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-02-16 22:55 Message: Thanks for the explanation, let's have a look with drive type selection included - I'm keen to get this one integrated. ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-02-16 05:46 Message: If `drive_plus3a_builtin' is 1, then drive parameters are heads: 1, cyls: 42. If `drive_plus3a_builtin' is 0 and `drive_plus3a_auto' is 0, then drive parameters came from `drive_plus3a_2head' and `drive_plus3a_cylinders'. If `drive_plus3a_builtin' is 0 and `drive_plus3a_auto' is 1, then drive parameters came from the inserted disk: drive heads = inserted disk sides and drive cylinders are 42 or 83 depend to fit the inserted disk tracks. So, if we use 'auto geometry' we have to determine the inserted disk geometry `manually'. The easiest way to use fix numbers (2/80), but we may use offer a list to the user to pick one... If we do not use `auto geometry' the inserted new disk geometry is the same as drive geometry of course.. The others work like this, except `builtin' thing... "What happens if I insert a 80-track double sided disk in a 40 track single sided drive?" - if the disk tracks greater then drive, the disk will be `unreadable'.. so you cannot see any data on it. I will look the joystick type selection... ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-02-15 23:20 Message: Thanks for pointing out that the formatting issue is a separate bug, ideally that would be fixed first, so that we can test the updated Insert New menu items for +3 disks in this patch. As far as I can see, fuse.disksetup_03a.diff has settings.dat with: drive_plus3a_2head, boolean, 1 drive_plus3a_cylinders, numeric, 83 drive_plus3b_2head, boolean, 0 drive_plus3b_cylinders, numeric, 42 I think this doesn't match the standard built-in +3 drive geometry and I would expect the default +3 A: and B: to be single sided, single density drives? Could disk drive type selection work like the existing joystick type selections? I think this should be OK for now? Do you think the auto geometry option will be used much? It would be simpler if we could just default to having Insert New have the media match the drives configured geometry? Reading your explanation again, I think I may be missing the relationship between the drive and media geometry, could you please explain how the two interact? Do we support them both as separate things? What happens if I insert a 80-track double sided disk in a 40 track single sided drive? ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-02-15 22:20 Message: The format error independent of the patch... I submit a new bug #2602397. The standard is the built-in +3 drive geometry. "..have options like single-sided 3" disk, double-sided 3.5" disk..." -- yes it will be fine, but we need some "combo box" to make it adequately. ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-02-11 23:10 Message: I tried the patch, first attempt was to start fuse, select +3, select Media->Disk->+3->Drive A:->Insert New, go to +3 basic, type format "a:" and I get a "No data, 0:1" error. Is this because the disk has "non-standard" geometry? I think we should still default +3 built-in drive as standard, but allow the user to override if required. I'd also be tempted to try and make drive definition a bit simpler for the average user (like just have options like single-sided 3" disk, double-sided 3.5" disk rather than number of tracks which I think you don't select with real hardware), what do you think? ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-02-11 16:35 Message: Hmm... here is the patch again, because i changed two things: - +3 drive A default not 'builtin' settings now: 2 heads and 83 cylinders similar to other drives... - if drive A 'auto_geom' set, the new disks are created with 80 cylinders instead of 83 like in other drives File Added: fuse.disksetup_03a.diff ---------------------------------------------------------------------- Comment By: Gergely Szasz (szaszg) Date: 2009-02-11 07:32 Message: Here is a new patch. +3 drive A parameters are changeable now... File Added: fuse.disksetup_03.diff ---------------------------------------------------------------------- Comment By: Fredrick Meunier (fredm) Date: 2009-02-09 23:01 Message: Some people have changed their +3 builtin drive to 3.5", so that should be allowed? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=596650&aid=2030341&group_id=91293 |