frechett@boulder.Colorado.EDU (-=Runaway Daemon=-) (10/01/90)
Ok, the info from Rick is very interesting. Thanks. You had mentioned that it could be used like any other directory and sure enough I can easily enter and exit it via numerous methods now. One little problem I have now is that I would like to be able to put the "HIDE" routines in that directory. The hide routines need to be RCLd though, and I can't seem to find any way to put '' in a list or string or anything. What I need is a user-key assingment that looks like this. << {HOME '' HIDE } RCL EVAL >> 11.1 etc.... but as you will find, there seems to be no way to get '' into the list. It just disappears. I have other stuff in my '' directory that I can get to with key assignments but then I am there... Anyone know how I can RCL an object from ''? ian -- -=Runaway Daemon=-
n233dk@tamuts.tamu.edu (Rick Grevelle) (10/01/90)
>... I would like to be able to put the "HIDE" routines in that directory. > The hide routines need to be RCLd though, and I can't seem to find any > way to put '' in a list or string or anything. What I need is a user > key assingment that looks like this. > << {HOME '' HIDE } RCL EVAL >> > 11.1 > .... but as you will find, there seems to be no way to get '' into the list. > It just disappears. I have other stuff in my '' directory that I can get to > with key assignments but then I am there... Anyone know how I can RCL an > object from ''? > > ian It's not a problem. There are probably more than a dozen ways to do what you want to do. The most straight foward approach is to use PUT in the OBJ MENU. You already know how to get the NULL NAME on the stack using #15777h, so the rest is easy. Set up the stack arguments as shown below and execute PUT to obtain the result. Arguments Result 4: 4: 3: { HOME A HIDE } 3: 2: 2 2: 1: '' 1: { HOME HIDE } Note that the NULL NAME does not appear in the list, but none the less it is there. You can check this several ways; the best would be to execute OBJ->. This is a good example of just how deceptive NULL NAMES can be. Personally I'd rather PEEK to see how the actual code is stored when playing around in the 48. You shouldn't trust the display routines to always be truthful when fooling with such things as unallowed names and unsupported objects. Absolutely the easiest way to get the NULL NAME into the list is not to do it at all. All of the above effort was unnecessary because simply by executing PATH when in the NULL DIRECTORY the same list, without the HIDE, is returned to the stack. To put HIDE into the list, simply use the [+] key with the list in level two, and the desired name to add is in level one. Remember, you will not see the NULL NAME in the list PATH returns, but it will be there. The next step is to get the the result list into the program you described. A minor sticking point is that you cannot EDIT the list. If you felt that the display routines were lacking in support, the EDIT routines are useless when it comes to hacking as they provide no support for queer objects. EDIT the result list, and the NULL NAME will disappear for real this time. Verify this by DUPlicating the level one result and executing the keystrokes [orange shift] [+/-] [ENTER]. Check it using OBJ-> again. A modified PUT that utilizes three SYSEVALs to get the result list into the desired program is the solution. Set up the stack arguments as shown below; SYSEVAL these three addresses in order: #1D524h, #54AFh, #5445h; the result will be as follows. Arguments Result 4: 4: 3: << A RCL EVAL >> 3: 2: 2 2: 1: { HOME HIDE } 1: << { HOME HIDE } RCL EVAL >> Providing each of the above steps were performed correctly, the NULL NAME should be in the list within the program. By now it is probably obvious that to hide directories and variables it is only necessary to first store them in the NULL DIRECTORY, and make the necessary userkey assignments. Automating the above process requires a only the use of a relatively short routine. To use this program level one should contain the result returned by the execution of PATH while in the desired directory, and any variable from that directory you choose to add to it. All that's left is to make the necessary user key assignment. ->KEY BYTES: #6704h 94 \<< \<< A RCL EVAL \>> 2 ROT # 1D524h SYSEVAL # 54AFh SYSEVAL # 5445h SYSEVAL \>> Note that this routine could be further shortened as well as the result it returns. i.e. { HOME HIDE } RCL EVAL (no program dilimiters) Rick Grevelle
akcs.dsl@hpcvbbs.UUCP (David Lowenstein) (12/04/90)
Are the HIDE routines still posted somewhere ? Early postings don't seem to be available. What exactly do the HIDE routines do ?