home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1995
/
ARCHIVE95.iso
/
text
/
hints
/
volume_06
/
issue11
< prev
next >
Wrap
Text File
|
1995-02-16
|
27KB
|
638 lines
Hints and Tips
6.11
Å Amstrad CPC monitor link Ö Let me describe how to use the old monitor
left over from your Amstrad CPC for emergency use with your Archimedes.
6.11
You need a six-pin, 270-degree DIN female plug, like the one in your
CPC, a normal D-sub nine-pin male, to plug into your RGB socket on the
computer and some soldering skill. (If you use an A5000 or later, you
need a 15-pin VGA-compatible plug, instead.)
6.11
To make the setup even more user-friendly, you should invest in a two-
way, double switch, to cater for both mono and colour monitors.
6.11
The DIN plug has six pins, with the centre pin being mono-in. When seen
from the rear with the soldering lugs towards you, (as in the diagram
opposite) the pin for the red is top left (1), then comes green (2),
blue (3), sync (4) and signal earth (5).
6.11
On the 9-pin D-sub, pin number 1 is red, 2 is green and 3 is blue. Pin
number 4 is sync and 7 signal earth. The rest are unused. The
arrangement on the new machines is slightly different, as there are more
pins, but it is essentially the same!
6.11
Basically you connect 1 to 1, 2 to 2 and 3 to 3, but the addition of a
switch makes it much more useful. Before starting, switch on the
computer while pressing <0>, to change to monitortype 0 for 50Hz
monitors and TVs.
6.11
The switch on the cable is essential under two circumstances: You might
also want to use your TV as a colour monitor. Then you have to use the
Amstrad TV MP-2 modulator (still available). That does not use the
central monochrome pin, but the normal three RGB pins. You could make
two converters of course, but you might forget which is which. Instead,
you just flip the switch if the picture looks odd! Those with TVs that
accept RGB through the SCART connector should use those, of course!
A3010 owners should first try connecting to a TV, but the green CPC
monitor should be much sharper, if not having a higher resolution!
6.11
Sometimes, when running some games like MiG-29M, you might want to
switch back and forth as the headup display is almost invisible against
the sky if you have all colours connected to the middle pin. By
momentarily switching to the colour setting, everything yellow will
become easily visible, as it becomes black (or more correctly, a black-
ish green, if you use the green monochrome monitor)!
6.11
Turbo Challenge II becomes a real challenge in green. Chopper Force,
Bughunter II and Taipei work fine in green. Impression, Vector and
ArtWorks are essentially monochrome, if you donæt add colour yourself,
so they are not affected!á Tord Eriksson
6.11
Å BASIC64 application Ö I have, for a long time, toyed with the idea of
testing BASIC64, by running the PCW Benchmarks with it. The normal way
would be to RMLoad the BASIC64 module and then type *BASIC64 Ö not very
user-friendly, as you have to type in the paths each time.
6.11
Remembering David Pillingæs advice on the uses of the OSCLI command
(very odd to me, brought up on Spectrums and mainframes!) I wrote the
following Basic lines:
6.11
*DIR SCSI::Conner170M
6.11
*DIR OldRubbish.BASIC.BenchMARK
6.11
*CAT
6.11
INPUT öWhich file? ò;a$
6.11
OSCLI ö*BASIC64 -quit ò + a$
6.11
The *CAT shows me which files are available and OSCLI ö*BASIC64 -quitò
loads BASIC64 runs the program a$ and then quits. Your version will have
to include your drives and directories, of course! This programming
fragment, I called !RunImage.
6.11
Put this in the directory you have made called !Run64.
6.11
To make this an application, steal some !Sprites from a program you
like, rename the individual icon sprites to !Run64 and sm!Run64.
6.11
The next step is to make a copy of BASIC64 and drop that into the
directory. Now for the !Run file:
6.11
Iconsprites <Obey$Dir>.!Sprites
6.11
RUN <Obey$Dir>.BASIC64 -QUIT <Obey$Dir>.!RunImage
6.11
Alternatively, you could run the copy of BASIC64 that you might have in
your systemæs modules directory.
6.11
It seems idiotic to run BASIC64, in order to run BASIC64, to run the
program you have selected, but it works perfectly.
6.11
I tried using the more logical *RMLoad BASIC64, but then you fall into
the editor and we do not want that!
6.11
Finally, you need a !Boot file:
6.11
Iconsprites <obey$Dir>.!Sprites
6.11
(A sample Basic64 application is on this monthæs program disc.)á Tord
Eriksson
6.11
Å ColourCard and VIDC software Ö After I had installed my ColourCard and
(thanks to a hint in Archive) realised that I still would have to use a
VIDC module (Careware 18) to make my monitor display modes 12 and 15, a
problem arose. I had configured my machine to one of those wonderfully
large screen modes (1152╫848 logical pixels), and then when I found the
time to play a mode 15 game, (Tower of Babel, which is completely mouse-
controlled), there was no pointer!
6.11
This is what Nigel Star of Wild Vision told me: In a ColourCard mode,
the VIDC pointer is disabled and some games donæt re-enable it so all
you have to do is switch to mode 15 first, and only then start the
game.á Jochen Konietzko, K÷ln.
6.11
Å Combatting fiddlers Ö A solution for teachers who suffer from children
Éfiddlingæ with the palette, task windows, applications accessing the
hard disc and destroying files might be to use the RMKill command in the
!Boot file. Any or all of the following lines can be added to the !Boot
file.
6.11
RMKill ResourseFiler
6.11
RMKill ADFSFiler
6.11
RMKill PaletteUtil
6.11
RMKill Taskmanager
6.11
This will leave the iconbar empty. Pressing <reset> will give error
messages. If you want a particular program to run, this could be done
from the !Boot file or from an application launcher such as !Menon or
!Two. Directories can be opened in the same way. Switching on whilst
holding down <shift> avoids running the !Boot file and returns icons to
the iconbar.á Paul Harrigan, Hong Kong.
6.11
Å DragASprite module Ö After seeing the tip on the dragging of solid
sprites from a previous Archive, I decided to explore the DragASprite
module for myself. I have not worked on it exhaustively but I have come
across the following which users could put in their Basic programs.
6.11
The DragASprite module supports two SWIs but the more useful of these
two is the SWI DragASprite_Start. It requires the following parameters:
6.11
R0 control value
6.11
R1 1 (this seems to be the only value that works)
6.11
R2 pointer to sprite name
6.11
R3 points to start coordinates of the drag box
6.11
The control value consists of bits which affect the drag. The only ones
I have worked out are:
6.11
bit 6 allow dragging outside graphics window
6.11
bit 7 shadow the sprite
6.11
Bits 0 and 4 seem to allow only the value 5, as far as I can work out.
6.11
I have found that the two most useful values for the control value in R0
are:
6.11
&85 non-shadowed drag outside the graphics window
6.11
&C5 shadowed drag outside the graphics window
6.11
R2 points to the first character of a string which is the name of the
sprite to be used for the drag, for example öfile_fecò.
6.11
R3ápoints to four 32-bit coordinates which describe the start and size
of the drag box (which is the same size as the sprite).
6.11
This is about all I have been able to work out in the time I have spent
on it, but it is possible to modify Basic programs using the Save As
window to use DragASprite_Start instead of Wimp_ DragBox.
6.11
For example, in FormEd 1.24, modify line 4810, which normally reads:
6.11
4810 SYS öWimp_DragBoxò,,q%
6.11
to
6.11
4810 SYS öDragASprite_Startò,&C5 ,1,öFile_fecò,q%+8
6.11
Iæm sure a similar fix could be used for other programs to give solid
sprite dragging.á Robin Terry, Newcastle upon Tyne.
6.11
(Those who can afford ú100 for a RISCáOS 3 PRM will find more details on
page 3-299. Ed.)
6.11
Å Free space on hard discs Ö In Hints and Tips, Archive 5.12, Steve
Drain asked if the same problem of allocating 28Kb to each new directory
applies to IDE drives. I checked this for my A5000 40Mb drive and found
that 7Kb is allocated per directory which seems a reasonable compromise.
This is lucky as there seems to be no way to alter the default format
using HForm.
6.11
N.B. Count only reports the size of the data, not the actual space used
on the disc. This can only be found by using *FREE from the command line
before and after creating a directory/file and subtracting the values.
6.11
The structure of !Fonts is where most directories occur. In my case,
there are 111 directories requiring 777Kb of space initially, but since
each contains over 7Kb of data for IntMetrics and Outlines, the space is
not wasted. However, if 28Kb were allocated, as with Steveæs make of
SCSI drive, then 111 ╫ 28 = 3108Kb would be allocated. In my case, only
2625Kb would be used as font data, losing 483Kb on fonts alone! When
Computer Concepts released Compression, I thought that this would solve
space problems, but I was told by CC that it retains the directory
structure (I assume with the same overheads per directory) and is not
very effective at reducing the disc space taken up by !Fonts.
6.11
I have now installed SparkFS from David Pilling. Although each compacted
Spark file can contain lots of directories when opened, to the IDE
filing system it is only one file and only allocates one lot of 7Kb (or
28Kb for Steve). So it is not sensible to have a Spark file containing
less than 7Kb. (The Count facility is misleading as it only gives the
size of compressed data not the space allocated by the IDE drive.) There
is a speed penalty for using a Spark file but there is also a Spark
directory option which is a lot faster according to the booklet although
it seems to have a much larger disc space requirement of about 14Kb
which does not all seem to be recovered.
6.11
So the conclusions seem to be:
6.11
1) If possible, reformat with the smallest file allocation.
6.11
2) Only create a new directory if you are going to store an amount of
data comparable with the directory space (7Kb for my IDE drive, 28Kb for
Steveæs original SCSI).
6.11
3) Be aware of the overheads due to any compression system you use,
checking by using *FREE at the command line (particularly if it retains
directories.)
6.11
4) If using SparkFS on an A5000, ensure any Spark file will contain
at least 7Kb of data.
6.11
5) If space is tight, remember that a Spark directory will have space
overheads although it is faster.
6.11
It would be interesting to hear the findings from other people using
other compression systems, types of drive and any information on
reformatting A5000 IDE drives with different file allocation sizes.á
Alan Dawes, Ilford
6.11
Å Help_ with menus in C Ö In Archive 6.10 p8, Richard Simpson asks about
using help_ with menus. I enclose a program (on the monthly program
disc) to demonstrate a solution.
6.11
The program offers help via !Help in the following situations:
6.11
ááÅ The main iconbar icon.
6.11
ááÅ Menu (with sub-menu) from from the iconbar.
6.11
ááÅ Dialogue box from iconbar, including special processing for
version details.
6.11
ááÅ A simple window.
6.11
ááÅ Menu from the simple window.
6.11
The program doesnæt actually do anything and is quite long, so I wonæt
attempt to explain its operation here. There are a number of comments in
the code which should, hopefully, be sufficient for a C programmer using
help_.
6.11
The short-hand strings supported by !Help are (this is from !Helpæs
message file), note the spaces:-
6.11
\SááæClick SELECT to æ
6.11
\AááæClick ADJUST to æ
6.11
\GááæThis option is greyed out because æ
6.11
\DááæDrag SELECT to æ
6.11
\wááæwindowæ
6.11
\aááæADJUSTæ
6.11
\RááæMove the pointer right to æ
6.11
\TááæThis is the æ
6.11
\WááæThis window is æ
6.11
\dááæDrag ADJUST to æ
6.11
\sááæSELECTæ
6.11
Please bear in mind that the documentation in Releaseá4 is sketchy and
this may not be Acornæs preferred solution, but it works. Hope this is
of some use.á Joe Wood, Goring-by-Sea.
6.11
Å Impression master pages Ö To create a document with the same master
page as an earlier document in Impression, load the first document, save
a new copy with a new name, create a new chapter with the following
choices: Insert after current chapter / Restart page at 1 / Copy master
page and delete all of the chapters except the new one.á George Foot,
Oxted.
6.11
Å Numeric resets Ö I have a 420/1 and, because of lack of space on the
table where the computer lives, the keyboard has to be kept upright
behind the computer when it is not in use. One day, I turned the
computer on and was greeted by a display moving rapidly upwards and
slowly sideways. Adjusting the monitor had no effect. It turned out that
one of the numeric keys was being held down by the corner of the monitor
and the monitor type had been reconfigured as I switched on. So, if you
keep your keyboard upright (yes, I know itæs bad practice, but where
else can I keep it?) and your display goes crazy, try a <numeric> reset
before panicking!á P Young, Cheltenham
6.11
Å Pocket Book and BJ10ex problems Ö It appears that the Pocket Bookæs
built in Canon BJ10e driver does not work correctly with the Canon
BJ10ex. We have a printer driver (supplied to us from Psion via Richard
Collinson) which works. If you have this printer, send us a formatted
SSD or a disc and your problems will be over. Psion can also supply
other drivers on SSD if necessary.á Simon Moy, Archive.
6.11
Å SigmaSheet revisited Ö John Waddellæs SigmaSheet fix in last monthæs
Hints & Tips requires one more line within DEFPROCexit: *Country UK.
6.11
Å Solid icons Ö If the Édrag solid file iconsæ option is set in RISC OS
3, it causes applications like DrawPlus to reject the file as being of
an incompatible file format. This prevents files being dragged between
applications in the normal way.á Mike McNamara, Dunstable.ááA
6.11
Using RISCáOSá3.10
6.11
Hugh Eagle
6.11
Neil Dickson asks a jolly good question: have I or Archive ever had any
response from Acorn indicating that they are paying attention to this
column? Well, I havenæt (yet) and I think Paul would have told me if he
had. Surely, itæs inconceivable that Acorn are not interested in the
experiences that have been recounted, the suggestions offered and the
views expressed here. Isnæt it? Perhaps weæll have some comment for next
month. Letæs wait and see ...
6.11
RISCáOSá4 Wish List (continued)
6.11
Å Alarm ù (a) An option to display the digital clock not on the iconbar
but at the top right corner of the screen in front of all other windows.
(b) An option to set an alarm that goes off after every n (settable)
minutes Ö to remind you just how much time you are spending on the
machine!!?? (Rex Palmer)
6.11
Å Shutdown ù The <shift-ctrl-F12> routine should dismount any floppy
discs that may be present, then remind the user that they are still
there. (Peter Young)
6.11
All the following are from Neil Dickson:
6.11
Å Paint ù (a) Allow local fills with the ömaskò colour. (b) Use outline
fonts.
6.11
Å Edit ù (a) Use multiple fonts (and maybe accept graphic files: i.e.
have a simple wordprocessing option). (b) Update the font list each time
a new font directory is loaded (like Draw and Impression do.)
6.11
Å Printers ù (a) Put as much as possible of the code into ROM, to save
loading time. (b) A quicker method of ötogglingò within !Printers when
deciding which are active and which are inactive.
6.11
Å Calc ù Make it better, but less complicated than SciCalc. (E.g.
include memory buttons and a percentage button, and allow
multiplication, division, etc, by a constant.)
6.11
Å Draw ù (a) Optional detachable toolbox. (b) An option for redefining
the toolbox (e.g. to include zoom and edit tools.) (c) Patterned fills
(hatching, stripes, etc.)
6.11
Å Tidy windows ù Include a öTidy windowsò option on the desktop.
6.11
Å Filer multitasking ù An option to make all filer actions (load and
save, disc mounting, etc) multitask.
6.11
Å Replacement of system font ù Optional replacement of the system font
by an outline font on the desktop (like the Germans seem to have already
in RISCáOSá3.12)!
6.11
Å RMFaster ù An option to RMFaster various modules, such as
SharedCLibrary, from the Task Manager (rather than having to type in the
command at the command line).
6.11
Å Virtual memory ù For hard disc users.
6.11
Å Built in sounds ù A greater variety.
6.11
Å Simpler mode changing ù A less fiddly method.
6.11
Å Keyboard emulation of the mouse ù e.g. using <Alt> and the arrow keys.
6.11
Å Auto-scrolling of font menus ù Make the list of fonts scroll
automatically when the pointer reaches the bottom.
6.11
Å Compression of sprite files ù Either in addition to, or instead of,
compression of entire discs, arrange for sprite files to be compressed
always.
6.11
Å Font management ù Put a Font Manager on the icon bar showing a list of
available directories which you can select and deselect by clicking.
(Sounds like !FMaster from Risc User.)
6.11
Miscellaneous
6.11
Superfluous icons in template definitions
6.11
Mick Day has found numerous examples of template definitions in standard
RISCáOSá3 applications which contain extra unused icons. The ösaveò
window in Alarm is just one example: this has four superfluous icons.
(To see for yourself: find the template file inside Resources:$.
Resources, load it into FormEd, use the menu to assign vertical and
horizontal scroll bars and a size icon, then scroll around the window.)
He has also noted inconsistent naming of templates and numbering of
icons. If you use existing windows borrowed from existing applications,
beware that the templates may require more memory than you might expect
because of the space taken by the extra icon definitions and pay close
attention to the icon numbering. As Tim Nicholson comments: it is a
great pity that Acorn did not supply a suitable öcleanò set of templates
to work from.
6.11
öOS_Findò and image filing systems
6.11
In one of my programs, I need to be able to check that a specified
filing system object (which might be either a file or directory) is
actually present and, in particular, is not on a floppy disc that has
been removed. In RISCáOSá2, I found that the following code seemed
fairly foolproof:
6.11
ON ERROR LOCAL:PROCReport(öCanæt find ò+Object$):ENDPROC
6.11
SYS öOS_Findò,&40,Object$ TO FileHandle%
6.11
IF FileHandle%<>0 THEN SYS öXOS_Findò,0,FileHandle%
6.11
RESTORE ERROR
6.11
This relied on the fact that the SWI call öOS_Findò,&40 (which is the
general routine for opening a file) should öopenò Object$ whether it is
a directory or a file. However, with the arrival of öimageò filing
systems such as DOSFS and SparkFS, I found that this wouldnæt work,
because an attempt to öopenò a directory inside an image filing system
(e.g. a directory inside a SparkFS archive) resulted in an error
(contrary to the rules set out in the Programmeræs Reference Manual).
6.11
David Pilling says öthere are two entry points to SparkFS, one via the
OS image filing system, the other via a traditional FS entry. The code
in these after the entry point is the same. So it looks like it is the
OS that is faulting your operation and not SparkFS.ò
6.11
I have now rewritten my code so that it checks to see whether Object$ is
a directory and, if it is, it looks inside it for a file and tries to
open that. This seems to work with image filing systems as well as
others, but is a bit cumbersome to say the least (and as David Pilling
observes is still open to being fooled by cacheing). Does anyone know of
a simple and genuinely foolproof way of ensuring that a filing system
object is present?
6.11
Applications that refuse to Shutdown
6.11
Keith Gardner has experienced problems with applications that interfere
with the Shutdown process and cause the computer to hang. He refers to
advice in the June issue of Risc User, according to which the Shutdown
routine in RISCáOSá3 (which can be selected from the Acorn icon or by
pressing <ctrl-shift-F12>) cannot cope if more than one Run file is open
at the time of Shutdown. Run files are left open while applications are
running if there are any lines after the line that calls RunImage. One
way to avoid the problem is to remove surplus blank lines or lines
containing remarks (prefaced with a | ). However, applications sometimes
contain tidying up commands such as RMKill commands to get rid of
modules: in these cases, it may be necessary to Quit one or more
applications before selecting Shutdown.
6.11
Matters arising
6.11
Testing a printeræs on-line status
6.11
(Archive 6.9 p12) Mick Day found that the printer test routine published
in the June edition of Archive lied! It told him that the printer was
not on line whether it was or not, and the printer beeped if it was on
line. Tim Nicholson says that the routine (as previously published) can
fail for two reasons: Firstly, it assumes a printer buffer of 1024
bytes, but the actual size depends upon the setting of *Configure
PrinterBufferSize, which may be different from the default of 1Kb.
Secondly, the first line of the program redirects the whole output
stream to the printer, thus if the program is run from the desktop, the
output which normally goes to the Task window that the desktop
generates, goes to the printer instead as well as the test byte of
CHR$(0). Typically this stream will contain several control codes to
open the task window display and the Task window title, e.g. RUN
ADFS::DiscName.$.PrintTest. Although this stream is sent before running
the program, the FX 3 call at the top of the program is executed in time
to redirect this part way through and upset the printer.
6.11
Tim suggests the following variant of the routine:
6.11
*FX21,3
6.11
empty%=ADVAL(-4)
6.11
PRINT öPrinter is ò;
6.11
*FX3,10
6.11
PRINTCHR$(0);
6.11
a%=INKEY(20)
6.11
a%=ADVAL(-4)
6.11
*FX3,0
6.11
*FX21,3
6.11
IF a%<>empty% THEN
6.11
PRINT önot on lineò
6.11
ELSE PRINT öon lineò
6.11
ENDIF
6.11
END
6.11
This deals with the first problem by comparing the buffer length
immediately after flushing with the length after inserting the test byte
and pausing to allow throughput, and with the second by including a
PRINT statement before redirecting the output stream.
6.11
Tim notes that the original program would run correctly (subject to the
buffer size being correct) from the command line, i.e. after pressing
<f12>, and CHAINing or LOADing and RUNning.
6.11
Tim does not understand the supposed warning from Acorn about the use of
ADVAL(Ö4) (see Archive 6.7 p41) since it is a use specified in the Basic
manual. He can only assume it is a confusion with the use of positive
ADVAL parameters, which are only meaningful if a podule with an analogue
input which mimics that of the original BBC Micro is fitted. He has
experienced no difficulties using negative ADVAL parameters to inspect
the condition of buffers and is not aware of any differing action under
RISCáOSá3.1x as opposed to 2.0 with this facility.
6.11
Basic program compaction
6.11
(Archive 6.9 p65) Rex Palmer says that in his experience compacted
programs only cause problems when you try to alter them. The problem
seems to occur with both Edit and BasicEdit. If a compacted program is
loaded into either of these and any alterations made, then when the
program is re-saved, the line that has been altered will generate the
error even if the resulting error is not part of the line that was
altered!
6.11
Altering the keyboard status
6.11
(Archive 6.8 p27 and 6.9 p65) Rex Palmer has written to explain the
purpose of bit 7 (the öShift enableò bit) of the keyboard status byte.
When this bit is set, the <Shift> key reverses the action of the
<CapsLock> key. Thus, if you hold down <Shift> while pressing <CapsLock>
then release both keys, you put the computer in a state where pressing
the <Shift> key with a letter key gives you lower case letters. The
computer can be configured to start up in this state. Alternatively, the
command *FX202,128,111 will achieve the same effect ... since 111 = 255
Ö 128 Ö 16 the command sets bit 7 (Shift Enable on) and unsets bit 4
(Caps Lock on).
6.11
To recap, the most useful commands are likely to be:
6.11
*FX202,0,239 to set Caps Lock on
6.11
*FX202,16,239 to set Caps Lock off
6.11
*FX202,128,111 to select ShiftCaps
6.11
Programmeræs Reference Manual
6.11
The increase in the number of pages is not önearly 50%ò, as I said last
month, but is in fact over 70% (excluding the indexes, there were 1,882
pages in the RISCáOSá2 manual and there are over 3,200 in the new
edition.) Sorry about the mistake!
6.11
Arm3 hare and tortoise (again)
6.11
(Archive 6.6 p59, 6.8 p30 and 6.10 p63) With the help of Jim Nottingham,
I have found out the source of my problem. The Run file of the Aleph One
!Arm3 application should read:
6.11
IconSprites <Obey$Dir>.!Sprites
6.11
|Use only one of the lines
6.11
|below, comment out the other.
6.11
|Load <Obey$Dir>.CMdlUnix
6.11
Load <Obey$Dir>.CacheMdl
6.11
Load <Obey$Dir>.IconMdl
6.11
<Obey$Dir>.Kick CacheIcon
6.11
In my file, the CacheMdl line had somehow got REMæd out. I vaguely
remember that when I first tried to install !Arm3 with RISCáOSá3, I read
the instruction about öusing only one of the lines belowò as meaning
that only one of the following three lines should be used and, since I
assumed that I no longer needed öCacheMdlò because RISCáOSá3 now had a
module to deal with this, I removed it as well as the CMdlUnix line. On
looking at the file again, I now presume that you are only supposed to
remove one of these two lines, so I have reinstated the CacheMdl line
and everything seems fine. A case of trying to be too clever, it seems.
6.11
Redraw problems (and an alternative)
6.11
(Archive 6.8 p29 and 6.10 p63) Richard Hallas confirms that the problem
of incorrect screen redrawing in Edit and DeskEdit is indeed due to a
bug in the Shared C Library and that the problem seems to occur with
particularly long lines. He says that any program which uses the C
libraryæs text object feature will suffer from the bug until Acorn
corrects it in a future version of CLib. He adds that Acorn has been
aware of the problem for some time, so hopefully a fix should not be too
far off.
6.11
Richard used to use DeskEdit to produce files for input to PMS which
frequently involved very long input lines indeed (up to several hundred
characters). He would occasionally reposition the caret and start
typing, only to find that his input had gone into a separate part of the
file which was not on the screen! Partly because of this bug, he has now
moved over to using the public domain text editor, Zap, which he
thoroughly recommends: öIt has its own redraw routines, which are
unbelievably fast and totally accurate: plus you can get twice as much
text on the screen in multisync modes.òááA
6.11