jec@iuvax.UUCP (02/24/86)
I have a few questions about the Amiga that I'm hoping someone else can answer. Some of these questions might have answers in manuals that I don't have, so please don't just say "Look it up on page #132, 'Voodoo and the Kernel Vol. 3' please). QUESTIONS: ---------- I'm sure everyone has noticed the clicking of the drives when they don't have a disk in them. I've heard that it is "validating" the disks. What exactly is validating, and why is it done when the machine can detect that there is no disk in the drive (using TD_CHANGESTATE in the trackdisk driver). Someone mentioned a way to have all of your allocated memory be freed upon task exit. I can't seem to find this on Usenet right now, but I have a question about it. When you start putting no longer needed blocks of allocated memory on this list, can you say, "oops, give me that block back" and take it off that list (i.e. can you do allocs and deallocs from this area?) Is there anyway to tell AmigaDos to look in RAM: and then look in Workbench:c. I am aware of the Assign command, but this only solves half the problem. I really need a search path. Is there such thing as an shell environment for the CLI? I'd like to have a program be able to look into an environment for some things. Has anyone else noticed that the Amiga keyboard has a roll-over problem? For instance, if you quickly type modem, you get modlem on ocassion. This is sort of annoying since I need to purposely slow down to type certain commands. Is there a fix? If I do the following (from root of Workbench) copy c/diskcopy ram:diskcopy cd ram: diskcopy df0: to df1: /* change disks */ diskcopy df0: to df1: /* change disks */ . . diskcopy df0: to df1: /* change disks */ I SOMETIMES get complaints about Workbench not being mounted. If I hit the CANCEL button some number of times greater than one, it usually gives up and lets me continue in peace. What is the deal? SUGGESTIONS: ------------ Improve the CLI. I know there is MyCLI, but that really isn't enough. Granted, I'm spoiled using the C shell (yeah, I know there are even better shells around), but even MS-DOS can handle a change of a disk better that hanging until you put the other disk back. I suggest that ASSIGN C: DF0: really assign C: to DF0: and not translate the df0: into whatever disk happens to be mounted at the time. If someone wants to get their commands ONLY from some disk, let them say Assign C: Mydisk:. Buffer directories (probably kernel level). This will allow such great things are command completion without hitting disk all of the time. I know there is a track buffer and on mostly empty disks this may contain the directory most of the time, but on large mamouth disks with scads of files, going to disk everytime is a big drag. Oh, put command completion into the CLI. You can make most of this stuff part of a CLI library so you really aren't losing big chunks of memory for multiple CLIs. Allow people to slide screens UP as well as DOWN from their normal positions. Sometime I need to see the buttoms of two screens rather than the tops. CONCLUSION: ----------- I know this looks like a big Amiga gripe letter, but I really do like the machine a lot. I think the hardware is great, the O.S. is pretty good, but the CLI is just awful-- unfortunately, this is the part of the machine that I see most often when doing any work. Anyway, keep up the good work and let me know if you ever need to beta test anything... :-). James E. Conley Usenet: {ihnp4,pur-ee,purdue}!iuvax!jec I.U. Dept. of Linguistics Phone: (812) 335-8702 [Work] 401 Lindley Hall (812) 333-6702 [Home] Bloomington, IN. 47405
dillon@CORY.BERKELEY.EDU (Matt Dillon) (03/03/86)
I agree that the drive clicking is a problem. In terms of lattice C, any malloc's are automagically deallocated when you exit; the AllocMem stuff you do is not, though there is a way of collecting many AllocMem's together and deallocating them all at once (I don't have the manual on me, so I don't remember what the routines were called) In terms of the 'c:' directory, and the CLI: The CLI was written for code compactness... that is, it's small. The proper solution to both the above problems is to use another 'shell' program. For instance, on UNIX systems, the CSH or SH programs are used. I posted a SHELL like program to the net. It doesn't do everything (I have not implimented path's for instance), but it gives you considerably more flexibility in many respects. Note on my shell: Since I don't know how to retrieve error conditions, there's no handling of that. Also, I have not implimented labels. Those are comming soon. -Matt