[Date Prev][Date Next][Subject Prev][Subject Next][Date Index][Subject Index]

Re: v3 workarounds [was RE: IS XW A DO]

** Reply to note from "..."  04/23/96 12:57pm -0400

> < problem? I suppose you'll next tell me that you haven't figured a way
> past the 64K move limit in 3.5.>> --Chet
> <> --me
> <> --Chet
> Chet: I edited out the snotty part.  Thanks for the further
> explanation--although I think it a bit unfair to others who asked for
> clarification for you to use my impatience as a reason to withhold the
> code from them. And your remedy for the v3.5 64k move limit?

Ahem.  May I butt in?  You guys blab too much about nothing.  Take a look
at my BIGDEFIN.PM from 1989.  BIGDEFIN.ZIP.  Should be on the TTG BBS (if
it isn't, I'll put it back up).  Here's the first part of the DOC file:


BIGDEFIN.PM v1.0b For XyWrite III+.  R.J. Holmgren 10/2/89

Purpose:  Copy, Move, or Rubout "DeFined" block of ANY size within
	current file, or Copy|Move block to another open file|window.
	Copy|Move ANY distance -- no 64K limits apply

BIGDEFINe overcomes several major XyWrite headaches:  moving, copying, or
rubbing out (deleting) big blocks of text in one movement (with one command)
both within one file or between two files, as well as moving or copying blocks
of any size (small or large) across "long distances", which is to say, across
64Kbyte segment barriers.  This program is useful mainly for handling large
files, usually 64K and larger.  It has been tested with almost a megabyte of
files loaded into XyWrite windows simultaneously, including several files in
the 200-250K size range, and huge block moves.

The "trick" used is to move/copy large blocks in manageable pieces (BIGDEFIN
works around XyWrite's main limitation in all these procedures, which is the
size of its DeFined block buffer).

One User VAriable MUST be set, at LaBel A:  the size of the blocks to be
transferred.  Because this program occupies part of the buffer that normally
stores DeFined text, the size of the "manageable pieces" that are manipulated
is smaller than if you DeFine manually from the keyboard.  This size cannot,
however, be calculated exactly; it depends on the size of other data that you
have loaded in the same buffer.  A default block size of 24000 bytes is used;
higher block sizes yield slightly faster execution (try increasing the
value in 1000 byte increments, using a test file and a giant block move).
When you exceed your system's limit, the program will halt and report the
error, as well as the current block size:  reduce the size until the program
runs successfully.

BIGDEFIN (and XyWrite, in normal use) will run much faster if your overflow
files are written on an extended/expanded memory RAM disk rather than magnetic
media (hard or floppy).  Default VAriable DR controls the disk drive to which
overflow files are written.  Set VAriable DR to your RAM disk, if you have one
available:  e.g., in STARTUP.INT, with a RAM disk on drive E:, declare:

blah blah blah


It works, too.  Ciao.

Robert Holmgren