Do you want it? Would you like to help?
I love the idea, but I have no time to help
 80%  [ 12 ]
I love it, and I'd love to help.
 20%  [ 3 ]
Meh, useless to me.
 0%  [ 0 ]
Total Votes : 15

Several people have bemoaned the speed of moving a bulk of programs from one folder to another in Doors CS, something with which I sympathize. When I recognized that issue myself during development, I resolved that I would solve it by creating or helping someone create a tool optimized for that specific purpose, with a list of programs on-calc that you can use to quickly check off programs and move them all at once. Want to help? Have some suggestions? Have some opinions?
Kerm and I just had an IRC chat about this. Here's a log of the conversation, edited for readability. The bolded section has the useful technical details of how DCS stores the folder structure.
Quote:
(02:17:51) DrDnar: KermM: On the topic of nitpicks about DCS, I had a serious issue that isn't a bug: moving programs into a folder is slow. I have so many programs that isn't practical for me to organize all of them (it'd take FOREVER), and it also isn't practical not to do so (too much scrolling). It'd be really helpful if I could select a bunch of programs at once and move them in one operation. I'd also venture to guess that doing many at once would be a whole lot faster for DCS.
(02:18:21) DrDnar: The DCS GUI system is so slick, it's a bit of shame that I tend to write things that won't interact well with shells.
(02:18:52) KermM: Aww DrDnr
(02:19:03) KermM: and that's a common request
(02:19:13) KermM: I'm hoping to write a program that will allow mass-moves
(02:19:13) KermM: or that someone will volunteer to write one with my guidance.
(02:19:17) DrDnar: Ah, so I'm not alone.
(02:19:33) KermM: nope
(02:19:44) KermM: would you mind posting that in the DCS suggestions thread at your convenience?
(02:19:54) KermM: I think a program-list view would be better for that kind of mass-move program anyway
(02:20:14) KermM: rather than the DCS desktop itself Smile
(02:21:04) DrDnar: You could do something like form a giant array where each bit in each byte corresponds to a VAT entry (numbering in a sequential fashion, possibly even including items that DCS ignores).
(02:21:47) KermM: absolutely, DrDnar
(02:21:57) KermM: kindly post that before I forget Very Happy
(02:21:58‍) KermM: Actually, I'll start a topic about this
(02:22:24) DrDnar: A thousand entries would only require 128 bytes. People with more than that might have other problems.
(02:23:26) DrDnar: Does the DCS SDK document what I'd need to open the appvar DCS uses to store the folder structure and then modify it accordingly?
(02:24:31) DrDnar: Actually, the OS already has the functionality to mark items for a special action built-in.
(02:24:20) KermM: Actually, Doors CS does not store the folder structure in an appvar
(02:24:31) KermM: each program has its T2 byte in the VAT set to indicate what folder it is in
(02:24:31) KermM: 0 is unsorted
(02:24:31) KermM: 1 is on the desktop
(02:24:41) KermM: 2-255 is in folder #[that]
(02:25:02) KermM: folders themselves are stored as 8-byte programs named %FLD[#]

(02:25:03) DrDnar: That's a BrandonW-level hack there!
(02:25:12) KermM: the contents of each program is its zero-padded program name
(02:25:22) KermM: *each folder program
(02:25:42) KermM: and of course the T2 byte of folders are set too, to define what their parent folder is
(02:26:37) DrDnar: You'd just need to set one of the high bits in the T1 byte to indicate that the item has been marked. Perhaps the one for doing link operations.
(02:27:06) KermM: I think that would work well
(02:27:13) KermM: I'd be cleaning them up afterwards anyway
(02:27:31) KermM: before the program exited
(02:27:40) KermM: so I could set any of the spare bits
(02:27:48‍) KermM: the link bit, the graph-enabled bit, etc

(02:27:56) DrDnar: This sounds like it wouldn't be too hard to do.
(02:28:04) KermM: absolutely
(02:28:18‍) KermM: maybe even a bit of DCS GUI goodness for spiffitude Smile
(02:28:41) DrDnar: Ah, but time is the enemy of us all.
(02:28:45) KermM: amen for that
Also, Unicode for the win.

I might give a go at this if I have time this weekend. Or, I might not.
I hope that you do get a chance to give it a try, or if not, that someone else does. Smile
Ooh, with that explanation it really *does* sound easy to make ^^ I'll maybe attempt to make this in a bit.
I love it, and would like to help >(^_^)>
_player1537 wrote:
Ooh, with that explanation it really *does* sound easy to make ^^ I'll maybe attempt to make this in a bit.
Cool! I'll be happy to provide all the assistance that I can. One possible design consideration I just thought of: should you/I/we show the users all the program in one view, and let them select any of them? Or show them a folder-based view, and let them navigate up and down the filesystem selecting folders and files?

@Qazz: thanks!
DrDnar wrote:
Kerm and I just had an IRC chat about this. Here's a log of the conversation, edited for readability. The bolded section has the useful technical details of how DCS stores the folder structure.
Quote:
(02:17:51) DrDnar: KermM: On the topic of nitpicks about DCS, I had a serious issue that isn't a bug: moving programs into a folder is slow. I have so many programs that isn't practical for me to organize all of them (it'd take FOREVER), and it also isn't practical not to do so (too much scrolling). It'd be really helpful if I could select a bunch of programs at once and move them in one operation. I'd also venture to guess that doing many at once would be a whole lot faster for DCS.
(02:18:21) DrDnar: The DCS GUI system is so slick, it's a bit of shame that I tend to write things that won't interact well with shells.
(02:18:52) KermM: Aww DrDnr
(02:19:03) KermM: and that's a common request
(02:19:13) KermM: I'm hoping to write a program that will allow mass-moves
(02:19:13) KermM: or that someone will volunteer to write one with my guidance.
(02:19:17) DrDnar: Ah, so I'm not alone.
(02:19:33) KermM: nope
(02:19:44) KermM: would you mind posting that in the DCS suggestions thread at your convenience?
(02:19:54) KermM: I think a program-list view would be better for that kind of mass-move program anyway
(02:20:14) KermM: rather than the DCS desktop itself Smile
(02:21:04) DrDnar: You could do something like form a giant array where each bit in each byte corresponds to a VAT entry (numbering in a sequential fashion, possibly even including items that DCS ignores).
(02:21:47) KermM: absolutely, DrDnar
(02:21:57) KermM: kindly post that before I forget Very Happy
(02:21:58‍) KermM: Actually, I'll start a topic about this
(02:22:24) DrDnar: A thousand entries would only require 128 bytes. People with more than that might have other problems.
(02:23:26) DrDnar: Does the DCS SDK document what I'd need to open the appvar DCS uses to store the folder structure and then modify it accordingly?
(02:24:31) DrDnar: Actually, the OS already has the functionality to mark items for a special action built-in.
(02:24:20) KermM: Actually, Doors CS does not store the folder structure in an appvar
(02:24:31) KermM: each program has its T2 byte in the VAT set to indicate what folder it is in
(02:24:31) KermM: 0 is unsorted
(02:24:31) KermM: 1 is on the desktop
(02:24:41) KermM: 2-255 is in folder #[that]
(02:25:02) KermM: folders themselves are stored as 8-byte programs named %FLD[#]

(02:25:03) DrDnar: That's a BrandonW-level hack there!
(02:25:12) KermM: the contents of each program is its zero-padded program name
(02:25:22) KermM: *each folder program
(02:25:42) KermM: and of course the T2 byte of folders are set too, to define what their parent folder is
(02:26:37) DrDnar: You'd just need to set one of the high bits in the T1 byte to indicate that the item has been marked. Perhaps the one for doing link operations.
(02:27:06) KermM: I think that would work well
(02:27:13) KermM: I'd be cleaning them up afterwards anyway
(02:27:31) KermM: before the program exited
(02:27:40) KermM: so I could set any of the spare bits
(02:27:48‍) KermM: the link bit, the graph-enabled bit, etc

(02:27:56) DrDnar: This sounds like it wouldn't be too hard to do.
(02:28:04) KermM: absolutely
(02:28:18‍) KermM: maybe even a bit of DCS GUI goodness for spiffitude Smile
(02:28:41) DrDnar: Ah, but time is the enemy of us all.
(02:28:45) KermM: amen for that
Also, Unicode for the win.

I might give a go at this if I have time this weekend. Or, I might not.


What do the T1 and T2 bytes mean?

I would love to help!
The T or T1 (Type) byte is the byte in the VAT that indicates the type of the item. $05 = program, $06 = protected program, $15 = appvar, etc. The T2 (type 2) byte is "reserved" for future use by the TI-OS; since it doesn't use it for anything, and it's a per-program byte, it's an excellent candidate to use for folders.
This sounds like it wouldn't be all too difficult to make. Good luck on it, although I'm not entirely sure you would really even need it. (luck, that is)

I was tempted to vote not interested though, because I still don't use DCS. (no offense to you KermM)
I would like such feature in the future. It is not a problem for me right now, as I currently don't have a lot of programs on my calc, but in the future, it might be useful if I have some projects and a lot of games. Smile
DJ Omnimaga wrote:
I would like such feature in the future. It is not a problem for me right now, as I currently don't have a lot of programs on my calc, but in the future, it might be useful if I have some projects and a lot of games. Smile
Cheers, glad to hear this would be helpful. Keep in mind that realistically I don't see this being a feature of Doors CS itself, although now that DrDnar has brought up the idea of using the link/graph flags, I'm considering how hard it would be to integrate into Doors CS itself...
*Bump
Is there any more progress on this?
ralphdspam wrote:
*Bump
Is there any more progress on this?

I don't think so.
ralphdspam wrote:
*Bump
Is there any more progress on this?
I know that DrDnar was working on it, but I haven't heard from him in a few months how it's progressing. I was actually under the impression that he had made significant progress on it.
I made significant progress in understanding how the GUI system and folder structure work. But I had trouble with my code not always properly processing simple folder structures, and then school work happened. Hmm, looking at the code again, I really want to get this to work.
I want you to too! Please feel free to pick my brain if it might help you in any way. Smile
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement