[net.micro.cpm] nswp204 bug? - a reply from the author

W8SDZ@Simtel20.ARPA (04/16/84)

From:  Keith Petersen <W8SDZ@Simtel20.ARPA>

Here is a reply from Dave Rand, re the bug reports you sent.  He has
just released NSWP205 which is now on SIMTEL20 in the
MICRO:<CPM.FILCPY> directory.  The files are NSWP205.COM, .HEX and
.DOC (a short file explaining the changes in NSWP204 and 205).
NSWP2.DOC or .DQC remains current.

---
Dave Rand
10232-160 St.
Edmonton, Alberta  CANADA
T5P 3E9
(403) 484-4114
04/16/84


Bob,

   Got your sugggestions/bug reports... Here is a short reply..

1.  With regard to R/O on (C)opy command - This is correct. I had originally
    put in the disk reset, and then took it out. Reason - Takes TOO LONG! on
    floppy based systems, especially when you want to copy more than one
    file. If enough people beat me hard enough, I will put it back in.

2.  As of version 2.04, USQ should change the case of SQ'ed files back to
    upper.

3.  I will take care of the R/O on delete after mass on next revision. Look
    for NSWP206 after the end of the month.

Now on to the suggestions...

1.  NSWP will never, ever have any LBR features. Jim Lopushinsky has released
    a utility that works BOTH on ARChives and on LBRs, and he does it SO much
    better than I could have. His utility, called LBRDISK, makes a virtual
    drive out of a LBR/ARC file, thus creating subdirectories, with no
    limit other than RAM. Neat stuff, and I highly recommend it!

2.  BISHOW has its place, and I don't think it would be worth it to put
    it inside NSWP (which would increase the size by at least 1K).

3.  COPY does have the V option for verify already. I have considered adding
    some other PIP functions, but high on my list is file concatanation.
    I will try to add those functions Real Soon Now.

4.  Boy! Do you think of these at night?  Need a survey on this one. A lot
    of people pressured me into KEEPING the original tags, including R/O.
    This will add about .1-.2K to the file.

5.  CRC on tagged files... Hmmm... what a concept! Since I have CRC code in
    already.... tag this one with Real Soon Now.

6.  DU: form on entry... look for it in NSWP206.

7.  This one, no. I HATE worrying about status of files. If destination is
    R/O, and you are copying over it, you REALLY want to. Same for rename.
    Delete is the only case that you SHOULD be warned, because you might
    NOT know that the file is R/O (but with Rev. Video tags now....)

8.  A*:*.QQZ - I like it... Look for this one in 206 or 207.

9.  Exception masks are ok... Look for !*.COM wildcard first, then maybe
    on login as well - 207 or 208.

10. Ok, on this one, a definate maybe. I sorta like the idea of single file
    tags, but... what can I say. That changes the basic commands, and I
    DON'T like that. Consistant, these commands aren't. But they are
    standard.

11. Vfiler output - I am getting a LOT of heat on this one. I will try
    Real Soon Now to get that started. Look around 210 or so.

12. Disk resets - Even Big Systems have a floppy or two. BUT, I will be
    looking real hard at the DPB's and see if there is enough information
    to decide if I can pick out devices that need resetting when you try to
    access them. CPM3 is my big block, on this one.

13. Sorry - This one, no can do. I can't keep device independent enough to
    run on 2.2, 3.0 and mpm, to say nothing of Turbodos...

14. You missed one. If you tag/squeeze a file to the same drive/user group
    you have specified, the new file DOES NOT show up in the directory list
    until the next LOG. I tried, briefly, in NSWP203 to auto-log after a
    mass sq/usq, but... of course you loose all tags. No one was happy.
    I can't show file space until after I do a directory scan, and I can't
    do a directory scan... you get the idea. I will work on it, though.



Thank you for your suggestions, and I will implement them ASAP. A lot
of my free time has been taken up with NSWP86, which is now done.

If you note my comments on LBR - you will find I don't like LBRs very much.
ARS were my first love, and still are. LBR has a ways to go in terms of
utilities and flexibilty to catch up to the ARC series. Do check out
Jim's utility though, since it works very well, and fast to boot!


Following is a yet still unsolved question on NSWP:
---------------------------------------------------

Dave Rand
10232 - 160 Street
Edmonton, Alberta  Canada
T5P 3E9
(403) 484-4114
03/21/84

A few days ago, I had a call from a mildly irate user of NSWP2. He claimed
that NSWP failed on the 'X' command, and proceeded to tell me why. I can
find no reason behind his logic, so here it is... if someone has an
idea, PLEASE let me know!

In NSWP, I don't jump to zero when I exit. Instead, I do what amounts to a
return to the CCP. The actual code involved goes like this...

	XTHL		;get contents of (SP) into HL
	SHLD CCPRET+1	;save it as part of a JMP instruction
	LXI  SP,STACK	;and move stack local

later on, when I want to return to CP/M, I use:

CCPRET:	JMP 0000h	;to be filled in

The users' system was a heavily modified CPM 2.2 system, that included
bank selected memory. He says, however, that had I have done things
'correctly', I should have used the following code:

	lxi h,0		;offset zero
	dad sp		;from stack pointer
	shld CCPSTK+1	;and save old stack address
	LXI  SP,STACK	;and move stack local

and to return to the CCP:

CCPSTK:	lxi SP,0	;to be filled in
	ret		;get back!

Now... You know, and I know, that JMPing to the address on the top of the
stack is EXACTLY the same as RET'ing, except that I don't preserve the stack.
But DR's CCP, along with all CCP replacements, ALWAYS use the code:

	CALL	100h	;execute transient program
	LXI	SP,LOCS	;restore stack, in case we get back.

except for CPM 3.0, which uses

	LXI	H,0	;return address of warm boot!
	push	h
	jmp	100h	;execute transient

What I think, is that his CCP (which has been modified by him), DOES NOT
do the LXI SP. However, I am open to suggestions. By the way, he is the
ONLY user (from the 50 or so that have contacted me) that has reported this
problem.

I am mystified. He claims that the LXI SP is there. If that is the case
(which I don't believe), magic must be occuring. If anyone can explain
to me the difference between the JMP and the RET, I would forever be in
your debt!

Thanks in advance... Dave Rand