Introducing CBM-Command

Started by Payton Byrd, May 02, 2010, 01:18 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

What do you think of CBM-Command

I Love It - Can't wait for next release
1 (12.5%)
It's ok - I'll keep an eye on it
5 (62.5%)
Bleh
2 (25%)
I don't like it, or you - Stop coding it now
0 (0%)

Total Members Voted: 8

Payton Byrd


OK, what is it?  It's a Norton-Commander-like file manager for the c64 and c128 (has separate binaries for each platform).  You can read all the details as well as download the D64 release and all the source code at:


http://cbmcommand.codeplex.com/


I'm looking for any and all feedback.  This is a VERY rough first public alpha version.  At best it's a toy right now, but it's been growing by leaps and bounds over the last two weeks and I'm sure will grow a lot more over the coming weeks. 


Thanks for your time!


EDIT:

A common question is "How does it work."  Well, since I cannot tell you to RTFM as there isn't one, I'll let you know here.  :)


To bring up the menus, you use the C= key in conjunction with the first letter of the menu, such as C= F for the file menu.


Docs will be forthcoming, it was late last night when I posted and I just didn't think that it might not be the most intuitive thing in the world.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd

#1
New version released tonight:  2010-05-03


You can download at http://cbmcommand.codeplex.com.


Release Notes

New features in this build

       
  • Keyboard Shortcuts
  • Panel Swapping
  • Panel Toggling On/Off
  • Toggling 40/80 Columns
  • Confirming Quit
  • Confirming GO64 (C128 Version)
  • Rereading directories
Known Issues

       
  • Memory leak when reloading large directories repeatedly causes crash
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Blacklord

You did a cut and paste with formatted text didn't you ? :)

SMF's WYSIWYG editor will attempt to interpret the formatting. Good idea to either type it in manually or only paste plain text (add formating BBCode after).

cheers,

Lance

Payton Byrd

Quote from: Blacklord on May 04, 2010, 02:22 PM
You did a cut and paste with formatted text didn't you ? :)

SMF's WYSIWYG editor will attempt to interpret the formatting. Good idea to either type it in manually or only paste plain text (add formating BBCode after).

cheers,

Lance


Sure did.  I just fixed the message.  That's annoying.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd


This is a major new version which includes a lot of important fixes and new functionality including renaming files/directories, scratching files/directories and making new directories. 


As always you can get the latest version from CodePlex at:


http://cbmcommand.codeplex.com


Thanks!  Feel free to comment about the software here.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd

A couple of screenshots from 64 mode (sorry, not at my desktop right now and only have Cloanto 64 Forever available and it's 128 mode doesn't do VDC for some stupid reason).
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd


CBM-Command is rapidly maturing and is now fully featured as a file manager with the ability to copy multiple files between drives in a batch.  And since it uses all kernel routines to do its work it takes advantage of whatever disk speeder you may be using such as JiffyDOS (performance is of course determined by compatible devices). 


As always, you can download the latest release in a D64 containing both the C64 and C128 versions from the CBM-Command website on Codeplex:


http://cbmcommand.codeplex.com


PS.  Screenshots are available at the URL above.

Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd


I've posted a bunch of new screenshots to go along with tonight's release of CBM-Command.  I've take a LOT of feedback into consideration when compiling the changes for this build.  I think most will be pleasantly surprised with how quickly this is shaping up. (It's amazing what I can do with a combination of time and motivation.)


As always, you can get the latest news, downloads and screenshots at:


http://cbmcommand.codeplex.com

Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd

I've created a Google Group for CBM-Command so we'll have a mailing list.  You can join at: http://groups.google.com/group/cbm-command
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd

I've just posted Release 2010-05-13 over on Codeplex.  The new
version's only new feature is a really big one.  You may now configure
the way the CBM-Command looks as well as set default drives for the
left and right panel.  Now that configuration is in place, CBM-Command
will now also load your default drive for the left panel when the
program starts.
A **LOT** of work went into this build.  I had to spend a lot of time
analyzing how every string was declared, what functions were only used
once or twice so they could be eliminated and thus not have to be
linked into the executable (I save nearly 1K of ram by simply
eliminating one function).  I'm starting to become a lot more
comfortable with C and believe I'm starting to find the right balance
of when to use certain features.  THERE'S ALWAYS ROOM FOR IMPROVEMENT,
and I invite all of you to look at the sources and tell me where those
improvements are!

I do want to point out some technical accomplishments in the project
as a whole.  The Configuration Manager and CBM-Commander are two
separate applications, yet they share much of the same code.  I feel
like this helps justify the delineation of code that I have chosen and
shows I've encapsulated things well.  It would not be hard for someone
to take the sources for CBM-Command and have a great starting point
for their own TUI style application.  If you would like to do so then
please get with me so I can show you around the code a bit.

I believe CBM-Command is stable enough to go to beta, but I'd like you
guys to give me feedback first.  I really need you guys to test, test,
test.  If you have an IDE64 I'd REALLY appreciate any feedback you
might have, especially where directory navigation is concerned.

Thanks again to everyone who has participated in this little project
experiment of mine.  Without knowing that CBM-Command would be used
and accepted by the community I'm not sure I would have had the desire
to see it to completion as I feel like I have.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

wte

Hi Payton!

Nice job. But needs some improvements ...  ;D
I have some questions and remarks:

       
  • Why do you use SHIFT / SPACE AND SHIFT / RETURN (also C= [but not CTRL] instead of SHIFT works) to tag a file instead of pure SPACE or pure RETURN?
  • Why do you use RETURN to leave the application (F2 and CTRL/U [I would prefer CTRL/Q] is enough to quit)?
  • The marker ">" vanishs after (un)taging a file.
  • Scrolling in the FILE-Menu always results in a hideously flickering redraw. Don't restore the background during scrolling up and down.
  • Scrolling the panel (for long directories) also results in a complete redraw. Horrible.
  • (olso reading the directory bit by bit is annoying on a C128)
  • Nice would be a function to scroll for all 20 lines with one keystroke.
  • Nice would be a function to scroll with one keystroke to the top and the bottom (maybe HOME / SHIFT HOME - I use these keys in cases like this  ;) )
  • The DRIVE Selection BOX is to small for a 1581 Drive!
  • You should at the least add drive #16. The RAMLink uses this number by default. Maybe this list could be configurable or extended up to #19 (#31 is the last possible number).
  • F7: Make directory: It is not clear what kind of DIR will be made. Does it work for an emulator (direct HD access) or only for an SD2IEC or IEC2ATA or 1541 III or any other SD / FD Hardware? Does it work on CMD Drives too?
I hope this helps as a first test result and feedback.

Regards
WTE

Payton Byrd


Thanks for the feedback, it is greatly appreciated.

Quote from: wte on May 14, 2010, 07:20 AM
Hi Payton!

Nice job. But needs some improvements ...  ;D
I have some questions and remarks:

       
  • Why do you use SHIFT / SPACE AND SHIFT / RETURN (also C= [but not CTRL] instead of SHIFT works) to tag a file instead of pure SPACE or pure RETURN?


You can also use F3 to tag and untag a file.  At first I wasn't going to use Function keys because I was afraid it would conflict with predefined keys, but I figured out that CONIO returns back the actual key value instead of letting the kernel return back a string like what happens in BASIC.


Quote from: wte on May 14, 2010, 07:20 AM

       
  • Why do you use RETURN to leave the application (F2 and CTRL/U [I would prefer CTRL/Q] is enough to quit)?
Return actually launches the currently selected PRG file.  If you are not pointing at a PRG file then it does nothing.
Quote from: wte on May 14, 2010, 07:20 AM

       
  • The marker ">" vanishs after (un)taging a file.
  • Scrolling in the FILE-Menu always results in a hideously flickering redraw. Don't restore the background during scrolling up and down.
I'm getting rid of the menus to save space.  Everything has at least one hotkey.
Quote from: wte on May 14, 2010, 07:20 AM

       
  • Scrolling the panel (for long directories) also results in a complete redraw. Horrible.


This is unavoidable as cc65 doesn't provide a way to smoothly scroll without writing your own assembler and since this program is meant to be portable I do not intend to stray from CONIO.


Quote from: wte on May 14, 2010, 07:20 AM

       
  • (olso reading the directory bit by bit is annoying on a C128)


This is a limitation of the computers we use.  There's only so many directory entries that I can cache in RAM (doing 30 for each panel) before I simply run out of RAM.


Quote from: wte on May 14, 2010, 07:20 AM

       
  • Nice would be a function to scroll for all 20 lines with one keystroke.
  • Nice would be a function to scroll with one keystroke to the top and the bottom (maybe HOME / SHIFT HOME - I use these keys in cases like this  ;) )


Yes, it would be nice to have these, but scrolling 20 isn't feasible without hitting the disk drive, same as going directly to the top and bottom, but I can see what I can do.


Quote from: wte on May 14, 2010, 07:20 AM

       
  • The DRIVE Selection BOX is to small for a 1581 Drive!
  • You should at the least add drive #16. The RAMLink uses this number by default. Maybe this list could be configurable or extended up to #19 (#31 is the last possible number).


I'll squeeze in a drive def for unit 16.  I cannot control how big those init strings are.  Unfortunately there's just so many characters available for the C64 version and the panel already takes up the whole width on the C64.


Quote from: wte on May 14, 2010, 07:20 AM

       
  • F7: Make directory: It is not clear what kind of DIR will be made. Does it work for an emulator (direct HD access) or only for an SD2IEC or IEC2ATA or 1541 III or any other SD / FD Hardware? Does it work on CMD Drives too?


This feature works on any drive that supports using "MD" to make a directory.  That includes SD2IEC devices and CMD hardware, AFAIK.


Quote from: wte on May 14, 2010, 07:20 AMI hope this helps as a first test result and feedback.

Regards
WTE
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

wte

Quote from: Payton Byrd on May 14, 2010, 07:47 AM
You can also use F3 to tag and untag a file. ...
(I know) That's not really better. Using SPACE is intuitive.

Quote from: Payton Byrd on May 14, 2010, 07:47 AM
Return actually launches the currently selected PRG file.  If you are not pointing at a PRG file then it does nothing.
Ok, launching a PRG file would be intuitive. But RETURN is NOT doing nothing if it is not a PRG file! It quits the program (but is kindly asking if it is ok to quit). RETURN should start the file menu (but you intend to drop the menu ...).

Quote from: Payton Byrd on May 14, 2010, 07:47 AM
... I cannot control how big those init strings are.  Unfortunately there's just so many characters available for the C64 version and the panel already takes up the whole width on the C64.
The 1581-string destroys the window. You should shorten the strings (e.g. cutting off the tt, ss bytes).

Quote from: Payton Byrd on May 14, 2010, 07:47 AM
This is unavoidable as cc65 doesn't provide a way to smoothly scroll without writing your own assembler
[...]
This is a limitation of the computers we use.  There's only so manydirectory entries that I can cache in RAM (doing 30 for each panel)before I simply run out of RAM.
Maybe CONIO is not really the best tool to do what you have planned to do.

Regards WTE

Payton Byrd

Quote from: wte on May 15, 2010, 09:15 AMMaybe CONIO is not really the best tool to do what you have planned to do.


Well, my #1 goal is to use standard libraries and standard techniques.  I don't intend to write separate screen routines for the 64 and 128.  I've already received requests for an Apple II version which I intend to work on once I'm done with CBM-Command.  I can't make it perfect nor meet everyone's priorities.


Having said that, I do take feedback very seriously.  I have included some new navigation options in the next release.  The up arrow (not cursor key) will take you to the top of the listing and SHIFT-UP-ARROW will take you to the bottom of the listing.  CTRL-A will now select all files and CTRL-S will now deselect all files.  I know it has already made things easier for me (I use CBM-Command a lot). 
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd


Release Notes - 2010-05-16
New Features
New navigation options: Page Up, Page Down, Top of Directory, Bottom of Directory. See documentation (http://cbmcommand.codeplex.com/documentation) for hotkey assignments.
Write D64 to Disk
Write Disk to D64
Configuration program
Generic Loader in CBMCommand.d64


Changes
Removed the dropdown menus. All functions have at least one hotkey.
Default panels allow you to enter CBM-Command with your favorite drive ready to go.
Added function keys and function key bar at bottom of screen.
Moved status bar to top of screen.
Many, many, many bug fixes.


Known Issues
Getting directory for drive without a disk prints garbage
Writing D64 to disk does not check the target drive for correct type (1541/1571).


Download at http://cbmcommand.codeplex.com
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

brain

Payton, I think it would be useful to consider an ncurses-like library for apps like this.  CONIO is very limiting, as has been noted, and a cross platform screen-based IO library would still provide a high degree of portability (And, cc65 would love a cross-platform library like that, and maybe already has one that can be used or augmented.  I think supporting a new primitives (write at position, clear screen, scroll up/down/left/right) would provide lots of value to many applications.

Jim

Payton Byrd

I did a lot of digging into ncurses libraries when I first started.  What I found was that the overhead of such a library was so large as to make it nearly impossible to write an app.  My menu system was hard coded and not generalized at all and even so it took 3K of Ram.  My windowing framework is pretty generic and new apps could definitely take advantage of it and refactoring it to a library would be feasible.  XLAR54 also has a framework and I think he has some ideas that I could incorporate using more structs and stuff to pass info into and out of the framework.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd

I haven't gotten any bug reports this week and there have been 60+ downloads of the current release between CodePlex and CSDb.  I would like to go ahead and publish a beta this weekend unless anybody knows of a show-stopping bug.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

redrumloa

@Payton

I understand you are freezing features soon? Any chance of drop down menus returning in the future? After you are finished with other ports, any chance of more C= specific features?

I find this to be a very useful utility, thank you for it. I would love to see it expanded to be a C= "do all" file utility.

Payton Byrd

The drop down menus just took up so much memory... It's hard to justify leaving them in (as a matter of fact, I was about to blow away the code for them today from the project). 


I'd love to make this a "do all" utility, but due to memory constraints I think it needs to be broken down into a series of small applications; a file commander application, an archive manager application, a file viewer application, maybe even a disk hex-editor (although there are so many good ones out there already).


But I think I'm feature complete for version 1.0, which I would like to get out before C4.  I've still yet to receive a single bug report for the current build that I may only post it as a beta until Wednesday at which point I'll either continue as beta because of bugs, or declare victory and put the 1.0 label on it. 
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd


It's been a week since the last release and there hasn't been a single bug report (just feature requests).  I spent the last week cleaning up the code, relaxing, and building the file viewer.  :)  Yes, now CBM-Command has a simple file viewer.  Simply select SHIFT-RETURN on any PRG or SEQ file and you can view the file in question.  The viewer is simple, it does not attempt to do any conversion from ASCII or screen codes... it's simply a text file viewer and assumes PETSCII.  I had to keep it as small as possible to get it to fit.


As always you can download the newest version at: http://cbmcommand.codeplex.com


Thanks,
Payton


PS.  CBM-Command is now used frequently in the day-to-day workings of building CBM-Command.  I'm very confident in the quality of this release and want to convey that confidence to you.  If you have any problems using CBM-Command then PLEASE let me know ASAP before going to version 1.0.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

saehn

If you select a filename, press F6, and then press RETURN (because you decided not to rename it), the filename changes to "=". Also, if you try this in VICE with True Drive Emulation turned off, it crashes VICE. The VICE part isn't that big of a deal, but I think CBMCMD would be more user-friendly if it did error-checking and assumed that null entry means cancel.

Payton Byrd

Quote from: saehn on May 25, 2010, 07:41 AM
If you select a filename, press F6, and then press RETURN (because you decided not to rename it), the filename changes to "=". Also, if you try this in VICE with True Drive Emulation turned off, it crashes VICE. The VICE part isn't that big of a deal, but I think CBMCMD would be more user-friendly if it did error-checking and assumed that null entry means cancel.


Fixed for version 1.0.  Thank you for the bug report.
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

Payton Byrd


The official release of CBM-Command is here!  I want to thank all the folks who've tested, supported and critiqued the project; you have all made it better.  Please see the website at http://cbmcommand.codeplex.com for downloads and release notes.  There are no new features over the beta, but I have cleaned up the display of the screen so that more of the filenames can be seen.


Thanks,
Payton
Payton Byrd
---------------------------------------------------
Flat 128 w/JD, uIEC/SD, uIEC-CF/IDE,
1541 Ultimate, 1571 w/JD, 1581 w/JD,
VDC-SVideo, Visio 19" HDTV

xlar54

As a frequent user of this app now,... all I can say is DAAAAaaaaamm... Nice work Payton.